2015-06-01 3 views
0

Я создал пользовательский модуль, что добавляет два меню в каталоге. Я также создал контроллер для одного из меню, но контроллер никогда не вызывается, а вместо этого перенаправляется на страницу панели управления администратора.Невозможно вызвать контроллер Magento админ

Мой вопрос, что некоторые связанные с этим вопросом Magento admin routing isn't working

Я попытался предложения, упомянутые в ответах, но ни один из них не работает для меня.

Если когда-нибудь я называю URL-адрес 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) 

конфигурационный файл в приложение/и т.д./модулей/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 is

<?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> 

контроллер приложения/код/​​местные/Super/Высокий/контроллеры/IndexController.php

<?php 
class Super_Awesome_IndexController extends Mage_adminhtml_Controller_Action 
{ 
    public function indexAction() 
    { 
     echo "hello world"; 
     exit(); 
    } 
} 

Наконец файл adminhtml.xml в приложение/код/​​местные/Super/Высокий/и т.д./

<?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

Я наконец нашел это трудный путь, что это не хорошо, чтобы создать модуль самостоятельно. Если вы допустили ошибку, вы можете потратить свое драгоценное время на поиск вещей, где все пошло не так.

Его лучше установить расширение модуля создатель из Ultimate Module Creator или использовать онлайн-инструмент, предоставляемый Silk

+0

Да, есть много деталей, которые должны быть правы, поэтому может быть причиной ошибок для создания расширений для Magento. Рад, что вы нашли инструмент, который помог вам решить вашу проблему. Вы должны расширить свой ответ, чтобы объяснить, что пошло не так, и затем принять ваш ответ. – fantasticrice

2

Я думаю, вы пропустили ту часть, где вы add your new module as a router for adminhtml в etc/config.xml. Это должно быть что-то вроде этого:

Когда Magento пытается найти файл контроллера для администратора в URL, он будет также проверить для любого модуля сконфигурированной внутри этого тега <modules/>.

<config> 
    <admin> 
     <routers> 
      <adminhtml> 
       <args> 
        <modules> 
         <Super_Awesome after="Mage_Adminhtml">Super_Awesome</Super_Awesome> 
        </modules> 
       </args> 
      </adminhtml> 
     </routers> 
    </admin> 
</config> 
+0

Спасибо за быстрый ответ. Если я добавлю этот блок xml, какой будет мой соответствующий url? У меня есть xmls. http: //localhost/compare/index.php/admin/super/awesome/index/key/e0503149a3834de0cdad2c42eb055775/ показывает 404, а предыдущий URL перенаправляет меня на страницу панели мониторинга. – Searock

+0

@Searock - Вам может потребоваться выйти из администрирования и вернуться в систему до того, как новый маршрут начнет работать.Обычно это 404 отображается внутри шаблона администратора. – fantasticrice

+0

Ее не работает, я добавил блок, который вы сказали плюс ' админ Super_Awesome ECOMM ' – Searock

Смежные вопросы