G'Day all,
我正在尝试编写我的第一个magento事件处理程序以捕获“ checkout_cart_save_after ”,但是在看了magento上的网站2天之后我无法触发我的Observer.php代码事件我理解整个过程,但代码没有运行..我很困惑为什么。
这是/ var / magento / app / etc / modules /
中的模块xml文件<?xml version="1.0"?>
<config>
<modules>
<Namespace_Yourmodule>
<codePool>local</codePool>
<active>true</active>
<version>1.0.0</version>
</Namespace_Yourmodule>
</modules>
</config>
正如您所知,我正在使用命名空间和您的模块,因为我正在为其他人编写教程....
在我的模块的etc目录中(/ var / magento / app / code / local / Namespace / Yourmodule / Module)我有config.xml
<?xml version="1.0"?>
<global>
<events>
<checkout_cart_save_after>
<observers>
<yourmodule_after_observer>
<type>singleton</type>
<class>Namespace_Yourmodule_Model_Observer</class>
<method>checkout_cart_save_after</method>
</yourmodule_after_observer>
</observers>
</checkout_cart_save_after>
</events>
</global>
并且在Modules目录中我有我的Observer.php文件:
class Namespace_Yourmodule_Model_Observer
{
/*----------------------------------------
*
* LogInfo()
*
* Basic logging of activity to disk for debugging
*/
public function LogInfo($msg)
{
$logfile="/logs/Namespace-module.log";
$fd=fopen($logfile,"a");
if($fd)
{
fwrite($fd,$msg."\n");
fclose($fd);
}
}
public function checkout_cart_save_before($observer)
{
LogInfo("save_before called");
}
public function checkout_cart_save_after($observer)
{
LogInfo("save_after called");
}
}
尝试在购物车中添加和删除项目的结果是没有创建日志文件,并且在手动创建时,没有写入数据,system.log显示没有错误,如果我倾斜XML报告错误,那么正在读取XML文件。
对我错过的任何想法???
西特
更新12/2:
我已经度过了周末并解决了这个问题,感谢提示,这是我应该选择的一些小问题的组合,XML文件的格式现在与上面提到的相符...现在有一个教程!我已完整地记录了使用代码和配置文件的过程。
请参阅http://z900collector.wordpress.com/magento/magento-events/
答案 0 :(得分:0)
尝试将config.xml更新为
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Yourmodule>
<version>1.0</version>
</Namespace_Yourmodule>
</modules>
<global>
<!--helpers>
<yourmodule>
<class>Namespace_Yourmodule_Helper</class>
</yourmodule>
</helpers-->
<models>
<yourmodule>
<class>Namespace_Yourmodule_Model</class>
</yourmodule>
</models>
<events>
<checkout_cart_save_after>
<observers>
<yourmodule_after_observer>
<type>singleton</type>
<class>Namespace_Yourmodule_Model_Observer</class>
<method>checkout_cart_save_after</method>
</yourmodule_after_observer>
</observers>
</checkout_cart_save_after>
</events>
</global>
</config>