Вызов вспомогательного класса в Magento - PullRequest
9 голосов
/ 19 февраля 2012

Я пытаюсь создать пользовательский вспомогательный модуль в 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, но я изо всех сил пытаюсь найти правильный способ выполненияthis.

Я был бы очень признателен за любую помощь, которую вы могли бы оказать.Я работал над этим пару дней, но не могу заставить его работать.

Большое спасибо

Джейсон

Ответы [ 2 ]

21 голосов
/ 19 февраля 2012

Ваша первая проблема - 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 голос
/ 05 декабря 2013

Я пропустил шаг добавления модуля в приложение / etc / modules / SEO_Fullurl.xml

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

Надеюсь, это поможет кому-то, очень легко допустить ошибку.

...