Membuat kelas pembantu kustom dalam modul

24

Saya telah membuat modul baru bernama test_helperdan saya ingin membuat kelas pembantu dalam modul ini sehingga saya dapat menambahkan fungsi kustom untuk dipanggil di seluruh situs saya.

Namun saya tidak bisa menemukan contoh bagaimana melakukan ini. Saya berasumsi bahwa saya harus membuat beberapa xml tambahan di config dan iklankan file lain di suatu tempat yang memperluas basis pembantu, tetapi saya tidak beruntung menemukan contoh untuk dijadikan dasar.

Chris Morris
sumber

Jawaban:

34

Konvensi penamaan modul Anda cukup membingungkan - Anda memanggil penolong modul itu sendiri? Untuk tujuan menjelaskan, saya memilih untuk memanggil modul Andamyname_mymodule

Dalam modul Anda ./app/code/community/MyName/MyModule/etc/config.xml, di dalam <global>tag

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

Lalu buat file ./app/code/community/MyName/MyModule/Helper/Data.php

<?php

class MyName_MyModule_Helper_Data extends Mage_Core_Helper_Abstract{

}

Kemudian untuk memanggil modul itu, Anda akan menggunakan

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

Tambahkan direktori Helper di direktori ekstensi dan di sana ada file Data.php

class Test_Helper_Helper_Data extends Mage_Core_Helper_Abstract {

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

}

Sekarang Anda dapat memanggilnya via

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

Tambahkan juga yang berikut di config.xml

...
<global>
    ...
    <helpers>
        <[extension name]>
            <class>[Namespace]_[extension name]_Helper</class>
        </[extension name]>
    </helpers>
    ...
</global>
...
Sander Mangel
sumber
Terima kasih banyak kalian berdua, ini mendukung sedikit info yang saya dapat temukan dan saya bisa membuatnya bekerja pada akhirnya. Saya tidak benar-benar menyebutnya test_helper yang hanya bagi saya untuk melalui hal-hal di blok tes litle saya tapi ya ide bodoh menyebutnya helper = p
Chris Morris
Anda mungkin lebih baik mengganti nama tetapi yang utama itu berhasil! semoga sukses dengan proyek ini
Sander Mangel