将新的简单 javascript 注入到 magento 后端(作为模块)

2023-12-23

我想在 magento 产品管理后端的一些描述和元字段上添加简单的字符计数器功能。就像下面的屏幕截图一样。

我通过将简单的原型脚本添加到在 magento 管理 HTML 上加载的 JS 文件之一来做到这一点。我选择 browser.js (/js/mage/adminhtml/browser.js)因为这是在我的 magento 安装的后端区域加载的最后一个脚本。这是我的原型脚本代码块:

/* ADMIN CHAR COUNTER SCRIPT */
Event.observe(window, 'load', function() {

    Element.insert( $('meta_title').up().next().down('span'), { 
        'after': "<div id='meta_title_counter'>Char count: <span id='meta_title_counter_num'>"+(69-$('meta_title').getValue().length)+"</span></div>"
    });
    Element.insert( $('meta_description').up().next().down('span'), { 
        'after': "<div id='meta_description_counter'>Char count: <span id='meta_description_counter_num'>"+(156-$('meta_description').getValue().length)+"</span></div>"
    });
    Element.insert( $('short_description').up().next().down('span'), { 
        'after': "<div id='short_description_counter'>Char count: <span id='short_description_counter_num'>"+$('short_description').getValue().length+"</span></div>"
    });
    Element.insert( $('description').up().next().down('span'), { 
        'after': "<div id='description_counter'>Char count: <span id='description_counter_num'>"+$('description').getValue().length+"</span></div>"
    });

    Event.observe('meta_title', 'keyup', function(event) {  
        $counter = 69-$('meta_title').getValue().length;
        $("meta_title_counter_num").update($counter);
        if($counter < 0){ $("meta_title_counter").setStyle({ color: 'red' }); }
        else{ $("meta_title_counter").setStyle({ color: '#6F8992' }); }
    });
    Event.observe('meta_description', 'keyup', function(event) {
        $counter = 156-this.getValue().length;
        $("meta_description_counter_num").update($counter);
        if($counter < 0){ $("meta_description_counter").setStyle({ color: 'red' }); }
        else{ $("meta_description_counter").setStyle({ color: '#6F8992' }); }
    });
    Event.observe('short_description', 'keyup', function(event) {   $("short_description_counter_num").update(this.getValue().length);  });
    Event.observe('description', 'keyup', function(event) { $("description_counter_num").update(this.getValue().length);    });
});
/* END OF CHAR COUNTER MODULE */

我确实意识到我所做的是一个如此快速而肮脏的伎俩。我实际上编辑了核心文件。这意味着该脚本将在 magento 升级后删除。我的老板要求我将此功能放入模块中。但我没有任何创建 magento 模块的经验。我试图找到一些关于如何创建简单的 magento 模块的基本教程。但这些教程都没有给我提供注入新脚本的方法。这可能是最接近的指南:

http://www.magentocommerce.com/wiki/5_-_modules_and_development/admin/how_to_customize_backend_template_f.e._sales_order_information http://www.magentocommerce.com/wiki/5_-_modules_and_development/admin/how_to_customize_backend_template_f.e._sales_order_information

但我仍然不知道从哪里开始这个简单的模块创建。如果这个问题感觉太新手,我很抱歉,但我真的需要帮助,与往常不同,这次谷歌无法帮助我(或者至少我找不到一个好的关键字来开始谷歌搜索)。所以在这里我希望有人会很乐意帮助我:)


尝试在您的模块文件中添加管理布局更新

<adminhtml_catalog_product_edit>
    <reference name="head">
        <action method="addJs"><script>your_js_file.js</script></action>
    </reference>
</adminhtml_catalog_product_edit>

or even

<default>
    <reference name="head">
        <action method="addJs"><script>your_js_file.js</script></action>
    </reference>
</default>

添加在所有管理页面上加载您的 js 文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将新的简单 javascript 注入到 magento 后端(作为模块) 的相关文章

随机推荐

  • 如何在实体框架代码优先数据库中手动设置实体主键?

    好吧 我有以下模型结构 我有一个类 DatabaseEntity这基本上是 public class DatabaseEntity public int Id get set 所以每个实体 如产品 类别等 都会继承DatabaseEntit
  • 在 Linux 上用 C++ 移动鼠标指针失败

    我使用以下代码来隐藏和显示鼠标光标 XDefineCursor m display m window show None m hiddenCursor XFlush m display 效果很好 但是 当我运行这个时 XWarpPointe
  • 如何将 Joomla recaptcha 插件与我的自定义模块一起使用?

    我为我的联系表格创建了一个自定义模块 现在我想在这个模块中使用 Joomla recaptcha 插件 知道如何完成这件事吗 为了使用 joomla 默认的 recaptcha 插件 请按照以下步骤操作 1 从以下位置获取验证码http w
  • WPF:如何根据 XAML 中另一个文本框的 Text 属性更改文本框的前景色?

    我想将 WPF 文本框的 Foreground 属性设置为红色 只要其 Text 属性与窗体上另一个文本框的 Text 属性不匹配 我可以在后台代码中并通过与转换器的绑定来完成此操作 但是有没有办法只用 XAML 来实现呢 我正在考虑某种触
  • SkipWhile 失败并显示“LINQ to Entities 无法识别该方法...”

    我找不到发生以下异常的原因 非常感谢任何帮助 EdcsEntities is derived from System Data Objects ObjectContext EdcsEntities db new EdcsEntities v
  • Tensorflow 对象检测 API 中的精确召回曲线

    有没有办法在 Tensorflow 对象检测 API 中可视化精确召回曲线 我知道 mAP 代表曲线下面积的绝对值 但我认为实际曲线更适合我的应用程序 我已经在 utils metrics 中找到了一些精度和召回值1 https githu
  • 在 QMenuBar 的另一侧堆叠 QPushButton

    我想堆一些QPushButton我另一边的物体QMenuBar This is how my window looks now And this is how I want it to look like I ve photoshopped
  • Laravel 没有 Eloquent 和数据库迁移?

    我已经是一名 PHP 程序员 12 年了 几乎多次重新发明轮子 为我们的闭源 Web 应用程序构建了自己的框架 该框架作为托管解决方案提供 为所有应用程序使用相同的共享数据库顾客 现在我正在尝试 Laravel 5 并注意到几乎每个示例都使
  • 如何从 PHP 执行 PhantomJS

    我想在本地主机上从 PHP 执行 PhantomJS 任何人都可以解释如何从 PHP 执行 PhantomJS 以及我应该从 phantomjs org 下载什么包 下载PhantomJS 二进制文件 http phantomjs org
  • for 循环中的 __getitem__ 调用

    我正在学习Python 但我什么都不懂 考虑这段代码 class Stack def init self self items def push self item self items append item def pop self r
  • 在两个数据库表中进行循环引用是一个好习惯吗

    在我们的数据库中 我们有两个表 A B 主键为 A id 和 B id 将 B id 作为表 A 中的外键 将 A id 作为表 B 中的外键是否被认为是一个好的做法 这将允许我们在表中拥有多对多关系 另一种方法是使用仅包含两列 A id
  • Hive Flutter 的权限和路径

    我目前正在构建一个应用程序 在其中存储数据并借助 flutter 包 hive 进行增删改查操作 所以我的问题是 我是否需要请求有关存储数据的权限 如果是 那么哪些权限以及存储数据的理想路径应该是什么 谢谢 对于 hive 您不需要添加任何
  • 在c中制作共享数据结构

    我在我的 C 程序中创建了一个数据结构 如下所示 typedef struct int array size t used size t size Array void initArray Array a size t initialSiz
  • 实时验证和复选框、单选、选择组

    Livevalidation 脚本非常适合验证表单 但您应该如何处理复选框 单选和选择组 参见网站 http www livevalidation com http www livevalidation com 这是可以做到的 尽管 Liv
  • 我该如何解决这个问题,res.json不是一个函数

    我的问题如下 我用 guzzle 发送数据 并收到错误 类型错误 res json 不是函数 client new GuzzleHttp Client response client gt request get http localhos
  • 引起:java.lang.NoClassDefFoundError:org/apache/log4j/Logger

    我有一个有趣的问题 在运行时找不到 org apache log4j Logger 类 我正在尝试获得授权 但这就是失败的地方 OAuthAuthorizer oauthAuthorizer new OAuthAuthorizer OAUT
  • 了解协程的执行

    我在 Unity 中工作 但这实际上只是一个 C 问题 所以我希望这是发布此问题的正确部分 无论如何 我仍然很难在脑海中想象脚本的执行情况 特别是当有多个脚本正在运行并且它们都有不同的功能时 最近它变得更加复杂 因为我将 Update Fi
  • 如何使用 Websocket 发送旧消息

    我有一个有效的 Websockets 示例 其中客户端从服务器接收消息 我不确定当客户端连接时应该如何向客户端发送旧消息 Example 每个客户端在连接时提供他们的名字 服务器响应 名称 刚刚连接 对所有客户端 任何新客户都不会收到这些消
  • JSF t:datatable 和 c:forEach 看起来有冲突

    I have
  • 将新的简单 javascript 注入到 magento 后端(作为模块)

    我想在 magento 产品管理后端的一些描述和元字段上添加简单的字符计数器功能 就像下面的屏幕截图一样 我通过将简单的原型脚本添加到在 magento 管理 HTML 上加载的 JS 文件之一来做到这一点 我选择 browser js j