2012-01-04 8 views
3

私のモジュールで別のモジュールのヘルパーを呼び出すにはどうすればいいですか?私のモジュールの他のモジュールのヘルパーをmagentoで呼び出す

私は

メイジ::ヘルパー( 'helperClassの')してみてください - >をgetValueClass( ''、$ ID)を

それは私にエラーを与える:

致命的なエラー:クラスのMage_Helperclass_Helper_Data " C:\ wamp \ www \ example \ app \ Mage.phpの行516にありません

ヘルパークラス名はTest_Helperclass_Helper_Dataです。

+1

をし、あなたのヘルパーは、config.xmlで定義され、ファイルがローカル/テスト/ helperClassの/ヘルパー/ Data.phpパスアプリ/コード/に存在しますか? –

答えて

6

これはヘルパーを呼び出す正しい方法ですが、モジュールが正しく設定されていないことを示すエラーが表示されます。あなたのモジュールはapp/code/local/Test/Helperclassに存在し、app/etc/modules/Test_Helperclass.xmlファイルを使用してモジュールを有効にしていると思います。

あなたはMagentoのの工場を呼び出す

、など Mage::getModel()Mage::getSingleton()、または Mage::helper()は、あなたが完全なクラス名を提供していませんが、あなたが好きなクラスへの参照をインスタンス化します。

modulename/classnameの形式です。我々の場合には

、モジュール名はhelperclassです(モジュールの実際名に任意の関係をむき出しにする必要はありません、それだけで、同様foobarすることができる)、そして私たちのクラス名はdataです。したがって本質的にはMage::helper('helperclass/data')と呼んでいますが、MagentoではこれをMage::helper('helperclass')に短縮しています。

helperclass/data -> Test_Helperclass_Helper_Dataを展開するルールをMagentoに伝える必要があります。私たちは、app/code/local/Test/Helperclass/etc/config.xmlでモジュールの設定ファイルに次の操作を行います。

<?xml version="1.0"?> 
<config> 
    ... 
     <global> 
      <helpers> 
       <!-- Here is where we define the mapping rule --> 
       <helperclass> 
        <class>Test_Helperclass_Helper</class> 
       </helperclass> 
      </helpers> 
     </global> 
    ... 
</config> 
関連する問題