Створення користувальницького класу помічників у модулі


24

Я створив новий модуль, який називається, test_helperі я хочу створити клас помічника в цьому модулі, щоб я міг додавати власні функції, які потрібно викликати на всьому сайті.

Однак я не можу знайти жодного прикладу того, як це робити. Я припускаю, що мені доведеться створити додатковий xml у конфігурації та оголосити інший файл десь, який розширює базовий помічник, але мені не пощастило знайти приклад для створення.

Відповіді:


34

Ваша умова іменування модулів досить заплутана - ви викликаєте самого модуля помічником? З метою пояснення я вибираю зателефонувати на ваш модульmyname_mymodule

У вашому модулі ./app/code/community/MyName/MyModule/etc/config.xml, в межах <global>тегів

<helpers>
  <mymodule>
      <class>MyName_MyModule_Helper</class>
  </mymodule>
</helpers>

Потім створіть файл ./app/code/community/MyName/MyModule/Helper/Data.php

<?php

class MyName_MyModule_Helper_Data extends Mage_Core_Helper_Abstract{

}

Тоді для виклику цього модуля ви б використали

$helper = Mage::helper('mymodule');

9

Додати каталог Helper в каталог розширень і там файл Data.php

class Test_Helper_Helper_Data extends Mage_Core_Helper_Abstract {

  public function yourFunction() {
     ...
     your code here
     ...
  } 

}

Тепер ви можете зателефонувати через

Mage::helper('test/helper')->yourFunction();

Також додайте у своє config.xml

...
<global>
    ...
    <helpers>
        <[extension name]>
            <class>[Namespace]_[extension name]_Helper</class>
        </[extension name]>
    </helpers>
    ...
</global>
...

Дякую вам, ви двоє! Я насправді не називаю це test_helper, який був просто для мене, щоб переглядати речі на моєму тестовому блоці litle, але так, німа ідея називати його помічником = p
Кріс Морріс

Вам, мабуть, краще перейменувати його, але головне, це працює! удачі з проектом
Sander Mangel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.