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