Erstellen einer benutzerdefinierten Hilfsklasse in Modul

24

Ich habe ein neues Modul namens erstellt test_helperund möchte in diesem Modul eine Hilfsklasse erstellen, damit ich benutzerdefinierte Funktionen hinzufügen kann, die auf meiner Website aufgerufen werden können.

Ich kann jedoch anscheinend keine Beispiele dafür finden, wie man das macht. Ich gehe davon aus, dass ich eine zusätzliche XML-Datei in der Konfiguration erstellen und irgendwo eine andere Datei hinzufügen muss, die einen Basis-Helfer erweitert, aber ich habe kein Glück gehabt, ein Beispiel zu finden, auf dem ich aufbauen kann.

Chris Morris
quelle

Antworten:

34

Ihre Modulbenennungskonvention ist ziemlich verwirrend - Sie rufen das Modul selbst als Helfer auf? Zum Zwecke der Erläuterung beschließe ich, Ihr Modul anzurufenmyname_mymodule

In Ihrem Modul ./app/code/community/MyName/MyModule/etc/config.xmlinnerhalb der <global>Tags

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

Dann erstelle die Datei ./app/code/community/MyName/MyModule/Helper/Data.php

<?php

class MyName_MyModule_Helper_Data extends Mage_Core_Helper_Abstract{

}

Dann würden Sie zum Aufrufen dieses Moduls verwenden

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

Füge einen Verzeichnis-Helfer in das Erweiterungsverzeichnis und dort eine Datei ein Data.php

class Test_Helper_Helper_Data extends Mage_Core_Helper_Abstract {

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

}

Jetzt können Sie es über aufrufen

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

Fügen Sie auch Folgendes in Ihr config.xml

...
<global>
    ...
    <helpers>
        <[extension name]>
            <class>[Namespace]_[extension name]_Helper</class>
        </[extension name]>
    </helpers>
    ...
</global>
...
Sander Mangel
quelle
Vielen Dank euch beiden. Dies bestätigt die winzigen Informationen, die ich finden konnte, und ich konnte sie am Ende zum Laufen bringen. Eigentlich nenne ich es nicht test_helper, das war nur für mich, um Sachen auf meinem kleinen Testblock durchzugehen, aber ja, dumme Idee, es helfer = p zu nennen
Chris Morris
Sie sind wahrscheinlich besser dran, es umzubenennen, aber Hauptsache, es funktioniert! Viel Glück mit dem Projekt
Sander Mangel