1

我想覆盖helper.php一个模块的文件,正是

\administrator\modules\mod_quickicon\helper.php

我想要的是更新这个文件中的 getButtons 函数

我必须覆盖这个特定文件的选项是什么?它可以使用插件吗?

谢谢

4

2 回答 2

7

您实际上只能对 tmpl 文件夹中名为 default.php 的文件进行模板覆盖。如果你想覆盖 helper.php,你实际上是在重写模块本身。这不一定是坏事,只需将现有的 helper.php 文件的内容复制到另一个文件中进行备份,然后破解即可。这样做的不利之处在于,如果有人更新了模块,并且您安装了该更新,您将不得不重做您的 hack。同样,解决这个问题并不难。只是备份备份备份。

更多想法:您还可以执行以下操作: 1) 将模块复制到不同的文件夹,也以 mod_ 开头,但名称不同。2) 修改 xml 文件、帮助文件、组件文件(以及任何其他必要的文件)以说明新名称。也可以为 helper.php 做任何你想做的事情。3)转到扩展管理器并发现安装此新模块 4)转到模块管理器并创建新模块的新实例(使用与旧模块相同的位置)。5) 取消发布您要替换的模块

这样做可以使您免受更新丢失的影响。

于 2012-01-03T15:25:15.550 回答
-1

这是我对 Joomla 所做的!3.3.1 但它可以用 Joomla 完成!1.7,太:

  • 复制default.php

    /administrator/modules/mod_quickicon/tmpl/
    

    /administrator/templates/YOUR_ADMIN_TEMPLATE_NAME/html/mod_quickicon/
    
  • 打开复制的文件并替换下面的行

    $html = JHtml::_('links.linksgroups', ModQuickIconHelper::groupButtons($buttons));
    

    这些行:

    $myLinks = array(
        'YOUR_QUICKICON_GROUP_NAME' => array(
            array(
                'link' => JRoute::_('index.php?option=com_YOURCOMPONENT'),
                'image' => 'stack',
                'icon' => 'header/icon-48-article-add.png',
                'text' => JText::_('YOUR_QUICKICON_ITEM_NAME'),
                'access' => array('core.manage', 'com_YOURCOMPONENT'),
                'group' => 'YOUR_QUICKICON_GROUP_NAME'
            )
        )
    );
    
    $array = ModQuickIconHelper::groupButtons($buttons);
    $array = array_merge($myLinks, $array);
    
    $html = JHtml::_('links.linksgroups', $array);
    

而已。您可以编辑或创建/administrator/language/overrides/en-GB.override.ini并添加这些行:

YOUR_QUICKICON_GROUP_NAME="The Group"
YOUR_QUICKICON_ITEM_NAME="The Item"

享受!

于 2014-06-13T11:02:47.070 回答