web-dev-qa-db-ja.com

Magentoでヘルパークラスを呼び出す

Magentoでカスタムヘルパーモジュールを作成しようとしていますが、ページから呼び出すと次のエラーが発生します。

Warning: include(Mage/SEO/Helper/Data.php) [function.include]: failed to open stream: No such file or directory  in /home/strailco/1stclassholidays.com/html/lib/Varien/Autoload.php on line 93

テンプレートから、以下を使用してヘルパーモジュールを呼び出しています。

<?php echo Mage::helper('SEO')->getFullProductUrl($product); ?>

ヘルパーモジュールは次の場所に設定されています。

/app/code/local/SEO/Fullurl/Helper/Data.php
/app/code/local/SEO/Fullurl/etc/config.xml

Data.phpは関数を呼び出します:

<?php 

class getFullProductUrl {

public function getFullProductUrl( $product )
{
}

config.xmlを次のように設定しています:

<?xml version="1.0"?>
<config>
     <global>
        <helpers>
        <SEO>
        <class>getFullProductUrl</class>
        </SEO>
        </helpers>
   </global>
</config>

問題はconfig.xmlの設定方法にあると思いますが、これを行う正しい方法を見つけるのに苦労しています。

私はあなたが与えることができるどんな助けでも非常に素晴らしいでしょう。私はこれに数日間取り組んできましたが、うまくいきません。

どうもありがとう

ジェイソン

9
Jason Millward

最初の問題はconfig.xmlです。使用しているクラスをMagentoに伝える必要があります。

_...Other Stuff...
<global>
  ...Other Stuff...
  <helpers>
    <SEO>
      <class>SEO_Fullurl_Helper</class>
    </SEO>
   </helpers>
   ...Other Stuff...
</global>
...Other Stuff...
_

次に、_app/code/local/SEO/Fullurl/Helper/Data.php_に次のようなヘルパーが必要です。

_class SEO_Fullurl_Helper_Data extends Mage_Core_Helper_Abstract
{

    function getFullProductUrl( $product )
    {
    }
}
_

次に、echo Mage::helper('SEO')->getFullProductUrl($product);を実行できます

21
Max

モジュールをapp/etc/modules /SEO_Fullurl.xmlに追加する手順を見逃していました

<?xml version="1.0"?>
<config>
    <modules>
        <SEO_Fullurl>
            <active>true</active>
            <codePool>local</codePool>
        </SEO_Fullurl>
    </modules>
</config>

これが誰かの助けになることを願っています。非常に簡単な間違いです。

1
nickspiel