我是magento的新手,在执行管理控制器时遇到了问题。以下是我所做的。
Mailchimp/mailchimpmodule/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Mailchimp_Mailchimpmodule>
<version>1.0.0</version>
<depends>
<!-- no dependencies -->
</depends>
</Mailchimp_Mailchimpmodule>
</modules>
<global>
<models />
<blocks />
<resources />
<extraconfig />
<helpers>
<mailchimpmodule>
<class>Mailchimp_Mailchimpmodule_Helper</class>
</mailchimpmodule>
</helpers>
</global>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<foo_bar before="Mage_Adminhtml">Mailchimp_Mailchimpmodule_Adminhtml</foo_bar>
</modules>
</args>
</adminhtml>
</routers>
</admin>
<frontend>
<layout>
<updates>
<mailchimpmodule>
<file>mailchimp.xml</file>
</mailchimpmodule>
</updates>
</layout>
</frontend>
</config>
Mailchimp/mailchimpmodule/etc/adminhtml.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<menu>
<mailchimpmodule module="mailchimpmodule" translate="title">
<title>Mailchimp</title>
<sort_order>100</sort_order>
<children>
<settings module="mailchimpmodule" translate="title">
<title>Settings</title>
<sort_order>1</sort_order>
<action>adminhtml/settings/index</action>
</settings>
</children>
</mailchimpmodule>
</menu>
<acl>
<resources>
<admin>
<children>
<settings translate="title" module="mailchimpmodule">
<title>Mailchimp</title>
<sort_order>100</sort_order>
<children>
<index translate="title">
<title>Settings</title>
<sort_order>1</sort_order>
</index>
</children>
</settings>
</children>
</admin>
</resources>
</acl>
</config>
Mailchimp/mailchimpmodule/controller/adminhtml/IndexController.php
<?php
class Mailchimp_Mailchimpmodule_Adminhtml_SettingsController extends Mage_Adminhtml_Controller_Action
{
public function indexAction()
{
$this->loadLayout()
->_addContent(
$this->getLayout()
->createBlock('mailchimp_mailchimpmodule/adminhtml_mailchimpmodule')
->setTemplate('mailchimp/form.phtml'))
->renderLayout();
}
}
我可以在管理中看到MailChimp->Settings选项,但当我点击它时,它显示404未找到。以下是被调用的URL:
http://localhost/magento/index.php/admin/settings/index/key/efdd74577eb9cbb46237c3803bc4e29c/
您的问题在admin/routers部分。您有foo_bar
的地方应该是您的模块名称。
<admin>
<routers>
<adminhtml>
<args>
<modules>
<Mailchimp_Mailchimpmodule before="Mage_Adminhtml">Mailchimp_Mailchimpmodule_Adminhtml</Mailchimp_Mailchimpmodule>
</modules>
</args>
</adminhtml>
</routers>
</admin>
此外,您的controllers/adminhtml/IndexController.php应该位于一个大写为"a"的文件夹中,如controllers/adminhtml/IndexController.php。