Creazione di una classe di supporto personalizzata nel modulo


24

Ho creato un nuovo modulo chiamato test_helpere voglio creare una classe helper in questo modulo in modo da poter aggiungere funzioni personalizzate da chiamare in tutto il mio sito.

Tuttavia, non riesco a trovare alcun esempio di come procedere. Presumo di dover creare un po 'di xml extra in config e di aggiungere un altro file da qualche parte che estende un helper di base, ma non ho avuto fortuna a trovare un esempio su cui costruire.

Risposte:


34

La convenzione di denominazione dei moduli è piuttosto confusa: stai chiamando l'helper stesso del modulo? Allo scopo di spiegare, sto scegliendo di chiamare il tuo modulomyname_mymodule

Nel tuo modulo ./app/code/community/MyName/MyModule/etc/config.xml, all'interno dei <global>tag

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

Quindi crea il file ./app/code/community/MyName/MyModule/Helper/Data.php

<?php

class MyName_MyModule_Helper_Data extends Mage_Core_Helper_Abstract{

}

Quindi per chiamare quel modulo, useresti

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

9

Aggiungi una directory Helper nella directory delle estensioni e lì un file Data.php

class Test_Helper_Helper_Data extends Mage_Core_Helper_Abstract {

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

}

Ora puoi chiamarlo tramite

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

Aggiungi anche quanto segue nel tuo config.xml

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

Grazie mille voi due, questo fa il backup delle piccole informazioni che sono riuscito a trovare e alla fine sono riuscito a farlo funzionare. In realtà non lo sto chiamando test_helper che era solo per me passare attraverso le cose sul mio piccolo blocco di prova ma sì, scema idea chiamarlo helper = p
Chris Morris

Probabilmente stai meglio rinominandolo, ma la cosa principale è che funziona! buona fortuna con il progetto
Sander Mangel
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.