Joomla 1.7:覆盖一个模块helper.php


joomla 1.7 : override a module helper.php

我想重写模块的helper.php文件,完全

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

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

我有哪些选项可以覆盖这个特定的文件?可以使用插件吗?

谢谢

实际上只能对tmpl文件夹中名为default.php的文件进行模板覆盖。如果您想重写helper.php,那么实际上就是重写模块本身。这并不一定是一件坏事,只需将现有的helper.php文件的内容复制到另一个文件中进行备份,然后删除即可。这样做的缺点是,如果有人更新了模块,而你安装了更新,你将不得不重做你的黑客。再一次,这并不难解决。只要备份备份备份。

更多的想法:你也可以这样做:1)将模块复制到另一个文件夹,同样以mod_开头,但名称不同。2)修改xml文件、helper文件、组件文件(以及任何其他必要的文件)以解释新名称。也可以做任何你想做的help .php。3)进入扩展管理器,对这个新模块进行发现安装4)转到模块管理器并创建新模块的新实例(使用与旧模块相同的位置)。5)取消发布要替换的模块

这是我对Joomla所做的!但它可以用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"

享受吧!