Lui*_*cia 1 php zend-framework magento php-5.3 magento-1.7
我正在尝试在特定事件上创建一个观察者,以便在会话中保存url referrer.
我创建了这个结构:http: //screencast.com/t/TG7brmUi
该模块似乎没问题,我可以在magento配置上看到. 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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
和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;
}
}
Run Code Online (Sandbox Code Playgroud)
但是我仍然在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
Run Code Online (Sandbox Code Playgroud)
您需要在config.xml.ie中定义模型,您需要将此代码放在config.xml文件中
<global>
<models>
<luisvalencia_affiliate>
<class>Luisvalencia_Affiliate_Model</class>
</luisvalencia_affiliate>
</models>
</global>
Run Code Online (Sandbox Code Playgroud)
如果没有这个,Magento找不到您在观察者中定义的Observer文件.
| 归档时间: |
|
| 查看次数: |
2344 次 |
| 最近记录: |