joomla 1.7: переопределить модуль helper.php

Я хочу переопределить helper.php файл модуля, точно

\administrator\modules\mod_quickicon\helper.php

я хочу обновить функцию getButtons в этом файле

какие у меня есть варианты, чтобы переопределить этот конкретный файл? это возможно с помощью плагина?

Благодарность


person John K    schedule 03.01.2012    source источник


Ответы (2)


Вы действительно можете переопределить шаблон только для файла в папке tmpl с именем default.php. Если вы хотите переопределить helper.php, вы, по сути, переписываете сам модуль. Это не обязательно плохо, просто скопируйте содержимое существующего файла helper.php в другой файл для резервного копирования и взломайте его. Недостатком этого является то, что если кто-то обновит модуль, и вы установите это обновление, вам придется переделывать свой хак. Опять же, это не так сложно обойти. Просто резервная копия резервной копии.

Еще немного мыслей: Вы также можете сделать следующее: 1) Скопировать модуль в другую папку, также начиная с mod_, но с другим именем. 2) Измените файл xml, вспомогательный файл, файл компонента (и любые другие необходимые файлы), чтобы учесть новое имя. Также делайте все, что хотите, с helper.php. 3) Перейдите в диспетчер расширений и выполните обнаружение установки этого нового модуля. 4) Перейдите в диспетчер модулей и создайте новый экземпляр нового модуля (используя ту же позицию, что и старый). 5) Отмените публикацию модуля, который вы заменяете.

Это защитит вас от потери обновлений.

person Mike_K    schedule 03.01.2012

Вот что я сделал с Joomla! 3.3.1, но это можно сделать и с Joomla! 1.7 тоже:

  • Скопировать default.php из

    /administrator/modules/mod_quickicon/tmpl/
    

    to

    /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"

Наслаждаться!

person Farahmand    schedule 13.06.2014
comment
Ваше решение работает для перезаписи шаблона, но не помощника. См.: docs.joomla.org/ - person Chofoteddy; 10.10.2015