在Magento中调用辅助类

时间:2012-02-19 08:42:37

标签: php magento e-commerce helpers

我正在尝试在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的方式,但我正在努力找出正确的方法。

我会非常感谢你能给予的任何帮助。我已经在这方面工作了几天但是无法让它发挥作用。

非常感谢

杰森

2 个答案:

答案 0 :(得分:21)

你的第一个问题是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);

答案 1 :(得分:1)

我错过了将模块添加到app / etc / modules / SEO_Fullurl.xml的步骤

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

我希望这有助于某人,非常容易犯错误。