Magento getURL не находит контроллер пользовательского модуля
Я добавляю новое массовое действие для сетки заказов на продажу, и когда я добавляю URL для моего действия, Magento не может найти мой контроллер.
config.xml
<admin>
<routers>
<mymodule>
<use>admin</use>
<args>
<module>Namespace_mymodule</module>
<frontName>frontendname</frontName>
</args>
</mymodule>
</routers>
</admin>
<global>
<events>
<adminhtml_block_html_before>
<observers>
<mymodule>
<class>Namespace_mymodule_Model_Observer</class>
<method>addActions</method>
</mymodule>
</observers>
</adminhtml_block_html_before>
</events>
</global>
observer.php
public function addActions($event)
{
$block = $event->getBlock();
if($block instanceof Mage_Adminhtml_Block_Sales_Order_Grid)
{
$block->getMassactionBlock()->addItem('cpsync', array(
'label' => 'Push Orders to CounterPoint',
'url' => Mage::helper("adminhtml")->getUrl("frontendname/adminhtml_index/push/")
));
}
}
Всякий раз, когда я пытаюсь использовать свое массовое действие, оно отправляет меня на страницу перенаправления 404 с URL
sitename.com/index.php/frontendname/adminhtml_index/push/key/
1 ответ
Я думаю, что ваш config.xml не так. В приведенном выше файле config.xml вы не упомянули о модели, блочных или вспомогательных классах. Вы только что объявили о модуле и событии. Вот основной файл config.xml, которому вы должны следовать. Попробуйте изменить ваш config.xml, как показано ниже.
<?xml version="1.0"?>
<config>
<modules>
<Test_Helloworld>
<version>0.1.0</version>
</Test_Helloworld>
</modules>
<frontend>
<routers>
<helloworld>
<use>standard</use>
<args>
<module>Test_Helloworld</module>
<frontName>helloworld</frontName>
</args>
</helloworld>
</routers>
<layout>
<updates>
<helloworld>
<file>helloworld.xml</file>
</helloworld>
</updates>
</layout>
</frontend>
<global>
<blocks>
<helloworld>
<class>Test_Helloworld_Block</class>
</helloworld>
</blocks>
<helpers>
<helloworld>
<class>Test_Helloworld_Helper</class>
</helloworld>
</helpers>
</global>
</config>