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