2012-02-09 43 views
0

Magento管理路由扩展我目前参与学习和Magento的发展,我得到的东西针对前端的工作,但现在即时通讯目前正试图得到的东西在后台和IM面临挑战的工作。根据文档和谷歌,它应该很简单,但我仍然得到404s。造成404

我已经创建了一个标准filestructure,它看起来像这样:

​​

我在config.xml中添加了一些东西,得到一个链接到菜单,它的实际工作所展示的模块,但当IM点击链接(其解析为/管理/ csvengine /索引/键/ foobar的,像它应该),我只是得到一个404

我曾尝试过各种东西,但我一直回来:

<admin> 
    <routers> 
     <adminhtml> 
      <args> 
       <modules> 
        <Mediafunction_Csvengine before="Mage_Adminhtml">Mediafunction_Csvengine_Adminhtml</Mediafunction_Csvengine> 
       </modules> 
      </args> 
     </adminhtml> 
    </routers> 
</admin> 

目前没有工作(404)。我IndexController.php极其简单,它的唯一内容是:

<?php 
class Mediafunction_Csvengine_Adminhtml_IndexController extends Mage_Adminhtml_Controller_Action 
{ 
    public function indexAction() 
    { 
     $this->loadLayout(); 
     $this->renderLayout(); 
    } 
} 

更改类的名称没有任何效果要么和IM真的无能什么即时通讯做错了。我如何得到这个工作?

回答

6

你有两个简单的问题进行修复:-)

第一:资本化。每个模块文件和目录(除了controllers,etc/*,data/*sql/*都必须大写,区分大小写的文件系统),原因是直接实现和Varien_Autoload根据类名找到类定义的方式(第二种:你的adminhtml控制器是用来控制你的模块的,但是你的模块应该是Csvengine而不是csvengine,你必须在文件名和模块声明节点modules/Mediafunction_Csvengine中实现它。方法几乎是正确的,根据您的类名,您需要在controllers之下有一个名为Adminhtml的文件夹,您还需要更新admin/routers/adminhtml/args/modules/Mediafunction_csvengineMediafunction_Csvengine,因为这将与模块的代码池一起用于查找您的动作控制器目录。有关config-to-directory逻辑,请参阅Mage_Core_Controller_Varien_Router_Standard::collectRoutes()


编辑

我忽略了你的路线(管理/ csvengine /指数)和控制器的文件名指出的问题。在标准路由到控制器的映射,Magento的网址,有五个方面:

http://site.com/thisisparttwo/thisispartthree/thisispartfour/foo/1/bar/2/ 
Base URL  |front name |controller path|method  | params... 

你的控制器路径指向管理frontname下CsvengineController类。你已经配置了控制器目录(与我的变更)是在Mediafunction/Csvengine/controllers/Adminhtml/,所以在那里你会需要一个CsvengineController.php其中包含一个名为其他Mediafunction_Csvengine_Adminhtml_CsvengineController

一个说明类,一般来说:Magento的管理工作ACL通过Mage_Adminhtml_Controller_Action::_isallowed()方法 - 无需在您的控制器中重新实现此操作,对所有管理员用户的路由访问权限不受限制。

+0

我已更新我的帖子以反映我根据您的帖子所做的更改,但我仍然遇到404当我尝试访问/ admin/csvengine/ – 2012-02-09 13:44:06

+0

编辑的响应包含路径到控制器映射 – benmarks 2012-02-09 14:26:48

+0

即真棒,感谢您的澄清 – 2012-02-09 14:30:07