我创建了自定义模块,在目录中添加了两个菜单。我还为其中一个菜单创建了控制器,但控制器永远不会被调用,而是被重定向到管理信息中心页面。
我的问题是与此问题相关的一些内容Magento admin routing isn't working
我已经尝试了答案中提到的建议,但没有一个对我有用。
我什么时候拨打网址http://localhost/compare/index.php/ecomm/index/key/bb9f436ee373421b170aa862a1cbb305/
我被重定向到http://localhost/compare/index.php/admin/dashboard/index/key/bb9f436ee373421b170aa862a1cbb305/,你好世界永远不会被打印出来。
我正在使用 magento 1.9 并已禁用所有缓存。
我的模块名称是 Super_Awesome ,下面是目录结构
Super | |-Awesome |-etc (adminhtml.xml, config.xml) |-controllers (ManageEcomm.php) |-Helper (Data.php)
app / etc / modules / Super_Awesome.xml中的配置文件如下
<?xml version="1.0"?>
<config>
<modules>
<Super_Awesome>
<active>true</active>
<codePool>local</codePool>
</Super_Awesome>
</modules>
</config>
app / code / local / Super / Awesome / etc / config.xml中的配置文件是
<?xml version="1.0"?>
<config>
<modules>
<Super_Awesome>
<version>0.1.0</version>
</Super_Awesome>
</modules>
<admin>
<routers>
<ecomm>
<use>admin</use>
<args>
<module>Super_Awesome</module>
<frontName>ecomm</frontName>
</args>
</ecomm>
</routers>
</admin>
<adminhtml>
<!-- The <acl> section is for access control. Here we define the pieces where access can be controlled within a role. -->
<acl>
<resources>
<admin>
<children>
<catalog>
<!--<title>Awesome Menu Item</title>-->
<children>
<example translate="title" module="awesome">
<title>Manage Ecommerce</title>
</example>
<example1 translate="title" module="awesome">
<title>Manage Ecommerce Pages</title>
</example1>
</children>
</catalog>
</children>
</admin>
</resources>
</acl>
</adminhtml>
<global>
<helpers>
<awesome>
<class>Super_Awesome_Helper</class>
</awesome>
</helpers>
</global>
</config>
控制器app / code / local / Super / Awesome / controllers / IndexController.php
<?php
class Super_Awesome_IndexController extends Mage_adminhtml_Controller_Action
{
public function indexAction()
{
echo "hello world";
exit();
}
}
最后是app / code / local / Super / Awesome / etc /
中的adminhtml.xml文件<?xml version="1.0"?>
<config>
<menu>
<catalog translate="title" module="awesome">
<!--<title>Awesome</title>
<sort_order>15</sort_order>-->
<children>
<example translate="title" module="awesome">
<title>Manage Ecommerce</title>
<sort_order>1</sort_order>
<action>adminhtml/ecomm</action>
</example>
<example1 translate="title" module="awesome">
<title>Manage Ecommerce Pages</title>
<sort_order>2</sort_order>
<action>adminhtml/example/index</action>
</example1>
</children>
</catalog>
</menu>
</config>
答案 0 :(得分:2)
我认为您错过了<modules/>
中add your new module as a router for adminhtml
所在的部分。它应该是这样的:
当Magento尝试查找管理员URL的控制器文件时,它还会检查此
<config> <admin> <routers> <adminhtml> <args> <modules> <Super_Awesome after="Mage_Adminhtml">Super_Awesome</Super_Awesome> </modules> </args> </adminhtml> </routers> </admin> </config>
标记内配置的任何模块。
NSKeyedUnarchiver
答案 1 :(得分:0)
我终于找到了自己创建模块并不好的方法。如果你犯了错误,你可能会花费宝贵的时间找出问题所在。
最好从Ultimate Module Creator安装模块创建者扩展程序或使用Silk提供的在线工具