Modülde özel bir yardımcı sınıf oluşturma


24

Adı verilen yeni bir modül yaptım test_helperve bu modülde yardımcı bir sınıf oluşturmak istiyorum, böylece sitemin her yerine çağrılacak özel işlevler ekleyebilirim.

Bununla birlikte, bunun nasıl yapılacağına dair herhangi bir örnek bulamıyorum. Config dosyasında fazladan bir xml yaratmam gerektiğini ve temel yardımcıyı uzatan başka bir yerde reklam vermem gerektiğini sanıyorum ama üzerine kurulacak bir örnek bulma şansım olmadı.

Yanıtlar:


34

Modül adlandırma kuralınız oldukça kafa karıştırıcı - modülün kendisine yardımcı mı diyorsunuz? Açıklama amacıyla modülünüzü aramayı seçiyorummyname_mymodule

Modülünüzde ./app/code/community/MyName/MyModule/etc/config.xml, <global>etiketlerin içinde

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

Ardından dosyayı oluşturun ./app/code/community/MyName/MyModule/Helper/Data.php

<?php

class MyName_MyModule_Helper_Data extends Mage_Core_Helper_Abstract{

}

O zaman bu modülü çağırmak için,

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

9

Eklenti dizine ve oraya bir dosyaya rehber ekle Data.php

class Test_Helper_Helper_Data extends Mage_Core_Helper_Abstract {

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

}

Şimdi arayabilirsin

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

Ayrıca aşağıdakileri config.xml

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

İkinize çok teşekkürler Aslında, benim sadece litle test bloğumdaki şeylerden geçmem için olan test_helper'ı çağırmıyorum ama evet aptal fikir yardımcı olarak çağırıyor = p
Chris Morris

Muhtemelen yeniden adlandırmakta daha iyisin ama asıl mesele işe yarıyor! Projede iyi şanslar
Sander Mangel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.