Création d'une classe d'assistance personnalisée dans le module

24

J'ai créé un nouveau module appelé test_helperet je veux créer une classe d'assistance dans ce module afin que je puisse ajouter des fonctions personnalisées à appeler partout sur mon site.

Je ne peux cependant pas sembler trouver d'exemples sur la façon de procéder. Je suppose que je dois créer du xml supplémentaire dans la configuration et ajouter un autre fichier quelque part qui étend une aide de base, mais je n'ai pas eu de chance de trouver un exemple sur lequel s'appuyer.

Chris Morris
la source

Réponses:

34

Votre convention de dénomination de module est assez déroutante - vous appelez le module lui-même assistant? Dans le but d'expliquer, je choisis d'appeler votre modulemyname_mymodule

Dans votre module ./app/code/community/MyName/MyModule/etc/config.xml, dans les <global>balises

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

Créez ensuite le fichier ./app/code/community/MyName/MyModule/Helper/Data.php

<?php

class MyName_MyModule_Helper_Data extends Mage_Core_Helper_Abstract{

}

Ensuite, pour appeler ce module, vous utiliseriez

$helper = Mage::helper('mymodule');
Ben Lessani - Sonassi
la source
9

Ajouter un répertoire Helper dans le répertoire d'extension et là-dedans un fichier Data.php

class Test_Helper_Helper_Data extends Mage_Core_Helper_Abstract {

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

}

Vous pouvez maintenant l'appeler via

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

Ajoutez également ce qui suit dans votre config.xml

...
<global>
    ...
    <helpers>
        <[extension name]>
            <class>[Namespace]_[extension name]_Helper</class>
        </[extension name]>
    </helpers>
    ...
</global>
...
Sander Mangel
la source
Merci beaucoup à vous deux, cela sauvegarde le tout petit peu d'informations que j'ai pu trouver et j'ai pu le faire fonctionner à la fin. Je ne l'appelle pas réellement test_helper qui était juste pour moi de passer en revue des trucs sur mon petit bloc de test mais ouais idiot idée de l'appeler helper = p
Chris Morris
Vous feriez probablement mieux de le renommer, mais l'essentiel est que cela fonctionne! bonne chance avec le projet
Sander Mangel