【发布时间】:2012-01-26 11:40:04
【问题描述】:
我阅读了很多关于为 Magento 创建自定义模块的文档。
第一次尝试,我使用Module Creator创建了模块结构,这是我在/app/code/local/Test/MyModule/etc/config.xml中添加的代码:
<?xml version="1.0"?>
<config>
<modules>
<Test_MyModule>
<version>0.1.0</version>
</Test_MyModule>
</modules>
<!-- frontend, admin, adminhtml -->
<global>
<!-- models, resources, blocks, helpers -->
<events>
<sales_order_place_before> <!-- event i need to catch -->
<observers>
<trigger_mymodule_placeorder>
<type>model</type>
<class>test/mymodule/model_observer</class>
<method>sendOrder</method>
</trigger_mymodule_placeorder>
</observers>
</sales_order_place_before>
</events>
</global>
</config>
我的/app/etc/modules/Test_MyModule.xml 文件:
<?xml version="1.0"?>
<config>
<modules>
<Test_MyModule>
<active>true</active>
<codePool>local</codePool>
</Test_MyModule>
</modules>
</config>
这是我的/app/code/local/Test/MyModule/Model/Observer.php:
<?php
class Test_MyModule_Model_Observer
{
public function sendOrder()
{
// do something.
}
}
.. 但是 Test_MyModule_Model_Observer::sendOrder() 函数从未被触发(我尝试在其中放入一个虚拟数据库记录器以查看该函数是否/何时执行)。
我知道模块本身已正确加载,因为在模块的 config.xml 中,它在主菜单中声明了一个新链接,并且该链接正确显示(在刷新 magento 的缓存之后),所以我猜问题是函数命名我在某处遗漏的约定……但是在哪里?
【问题讨论】:
标签: magento magento-1.5 observer-pattern