Tworzenie niestandardowej klasy pomocnika w module

24

Stworzyłem nowy moduł o nazwie test_helperi chcę utworzyć klasę pomocnika w tym module, aby móc dodawać niestandardowe funkcje, które będą wywoływane w całej witrynie.

Nie mogę jednak znaleźć żadnych przykładów, jak to zrobić. Zakładam, że muszę utworzyć dodatkowe xml w konfiguracji i umieścić w innym pliku, który rozszerza podstawowego pomocnika, ale nie miałem szczęścia znaleźć przykładu, na którym można by zbudować.

Chris Morris
źródło

Odpowiedzi:

34

Twoja konwencja nazewnictwa modułów jest dość myląca - nazywasz sam moduł pomocnikiem? W celu wyjaśnienia wybieram wywołanie twojego modułumyname_mymodule

W twoim module ./app/code/community/MyName/MyModule/etc/config.xmlwewnątrz <global>tagów

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

Następnie utwórz plik ./app/code/community/MyName/MyModule/Helper/Data.php

<?php

class MyName_MyModule_Helper_Data extends Mage_Core_Helper_Abstract{

}

Następnie do wywołania tego modułu użyłbyś

$helper = Mage::helper('mymodule');
Ben Lessani - Sonassi
źródło
9

Dodaj pomocnika katalogu w katalogu rozszerzenia, a tam plik Data.php

class Test_Helper_Helper_Data extends Mage_Core_Helper_Abstract {

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

}

Teraz możesz zadzwonić za pośrednictwem

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

Dodaj także następujące elementy w swoim config.xml

...
<global>
    ...
    <helpers>
        <[extension name]>
            <class>[Namespace]_[extension name]_Helper</class>
        </[extension name]>
    </helpers>
    ...
</global>
...
Sander Mangel
źródło
Dziękuję wam bardzo, To stanowi kopię zapasową drobnych informacji, które udało mi się znaleźć i udało mi się sprawić, że w końcu działało. Właściwie to nie nazywam tego test_helper, który był po prostu dla mnie, aby przejść przez rzeczy na moim małym bloku testowym, ale tak głupi pomysł nazywanie go pomocnikiem = p
Chris Morris
Prawdopodobnie lepiej będzie zmienić nazwę, ale najważniejsze, że działa! powodzenia w projekcie
Sander Mangel