[英]Simple Magento 1.9.1 module helper not working (Failed to open stream)
[英]failed to open stream on magento module
我正在尝试在特定事件上创建观察者,以在会话中保存url引荐来源网址。
我创建了以下结构: http : //screencast.com/t/TG7brmUi
该模块似乎还可以,我可以在magento config上看到。 http://screencast.com/t/5d4FXIJwrGk
代码如下:
Luisvalencia_Affiliate.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Luisvalencia_Affiliate>
<active>true</active>
<codePool>community</codePool>
</Luisvalencia_Affiliate>
</modules>
</config>
config.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Luisvalencia_Affiliate>
<version>0.0.1</version>
</Luisvalencia_Affiliate>
</modules>
<frontend>
<events>
<controller_action_predispatch>
<observers>
<luisvalencia_affiliate>
<class>luisvalencia_affiliate/observer</class>
<method>captureReferral</method>
<type>singleton</type>
</luisvalencia_affiliate>
</observers>
</controller_action_predispatch>
</events>
</frontend>
</config>
和Observer.php
<?php
class Luisvalencia_Affiliate_Model_Observer
{
const COOKIE_KEY_SOURCE = 'luisvalencia_affiliate_source';
public function captureReferral(Varien_Event_Observer $observer)
{
$referrer=Mage::app()->getRequest()->getServer('HTTP_REFERER');
Mage::getSingleton('core/session')->setReferrer($referrer);
$outputMessage = Mage::getSingleton('core/session')->getReferrer();
echo $this->__($outputMessage);
}
protected function _getCookieLifetime()
{
$days = 1;
// convert to seconds
return (int)86400 * $days;
}
}
但是我仍然在system.log上看到这个,我不明白。
2014-08-13T15:50:17+00:00 ERR (3): Warning: include(Mage/Luisvalencia/Affiliate/Model/Observer.php): failed to open stream: No such file or directory in /home/theprint/public_html/preprod/lib/Varien/Autoload.php on line 93
2014-08-13T15:50:17+00:00 ERR (3): Warning: include(Mage/Luisvalencia/Affiliate/Model/Observer.php): failed to open stream: No such file or directory in /home/theprint/public_html/preprod/lib/Varien/Autoload.php on line 93
2014-08-13T15:50:17+00:00 ERR (3): Warning: include(): Failed opening 'Mage/Luisvalencia/Affiliate/Model/Observer.php' for inclusion (include_path='/home/theprint/public_html/preprod/app/code/local:/home/theprint/public_html/preprod/app/code/community:/home/theprint/public_html/preprod/app/code/core:/home/theprint/public_html/preprod/lib:.:/usr/lib/php:/usr/local/lib/php') in /home/theprint/public_html/preprod/lib/Varien/Autoload.php on line 93
您需要在config.xml中定义模型。即,您需要将此代码放入config.xml文件中
<global>
<models>
<luisvalencia_affiliate>
<class>Luisvalencia_Affiliate_Model</class>
</luisvalencia_affiliate>
</models>
</global>
没有这个,Magento将找不到您在观察者中定义的观察者文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.