joomla 1.7:覆盖模块helper.php

时间:2012-01-03 13:33:36

标签: php joomla joomla-extensions joomla1.7

我想覆盖模块的helper.php文件,完全

  

\管理员\模块\ mod_quickicon \ helper.php

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

我必须覆盖此特定文件的选项有哪些?它可以使用插件吗?

感谢

2 个答案:

答案 0 :(得分:7)

您实际上只能对名为default.php的tmpl文件夹中的文件执行模板覆盖。如果要覆盖helper.php,则基本上是重写模块本身。这不一定是坏事,只需将现有helper.php文件的内容复制到另一个文件进行备份,然后就可以了。这样做的缺点是,如果有人更新模块,并且您安装了该更新,则必须重做您的黑客攻击。再说一次,解决起来并不难。只需备份备份备份。

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

这样做可以确保您免受更新丢失。

答案 1 :(得分:-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"

享受!