2012-02-19 4 views
8

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

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

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

Jason

+0

У меня есть аналогичная ошибка с другими модулями: ERR (3): Warning: include (Mage/Adjgiftreg/Helper/Data.php): не удалось открыть поток: нет такого файла или каталога ... где вы call echo Mage :: helper ('SEO') -> getFullProductUrl ($ product); ?? – Leoh

ответ

20

Ваша первая проблема заключается в 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);

+0

Спасибо за ответ - в config.xml, когда вы говорите «другие вещи ...», что вы имеете в виду? Я что-то упустил из файла? –

+1

Вам не хватает _лота! Прочтите http://alanstorm.com/magento_config, чтобы узнать о файлах конфигурации. Если вам нужны блоки, контроллеры или модели, вам также придется объявить их в файле config.xml. Подробнее о http://alanstorm.com/category/magento – Max

1

я пропустил этап добавления модуля в приложение/и т.д./модулей /SEO_Fullurl.xml

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

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