Magento - пользовательский маршрутизатор администратора, но без пункта меню - PullRequest
1 голос
/ 18 марта 2012

Я хочу создать контроллер администратора - без каких-либо пунктов меню, связанных с ним.

В идеале я хочу, чтобы мой контроллер был доступен через /index.php/admin/my_controller/.

Пока что я переписал контроллер adminhtml следующим образом, но я просто получаю 404 внутри консоли администратора (т.е. не на главной странице 404):

    <admin>
    <routers> 
        <my_module>
            <use>admin</use>
            <args>
                <module>Me_Mymodule</module>
                <frontName>my_controller</frontName>
            </args>
        </my_module>
         <adminhtml>
            <args>
                <modules>
                    <my_module after="Mage_Adminhtml">Me_Mymodule</my_module>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

Ответы [ 3 ]

3 голосов
/ 18 марта 2012

Ваша текущая техника конфигурации устарела с версии 1.4. Вместо этого удобнее структурировать его следующим образом .

<admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <my_module before="Mage_Adminhtml">Me_Mymodule_Adminhtml</my_module>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

Затем, чтобы получить путь /index.php/admin/mymodule/, создайте класс Me_Mymodule_Adminhtml_MymoduleController extends Mage_Adminhtml_Controller_Action в Me/Mymodule/controllers/Adminhtml/MymoduleController.php. В своем примере вы использовали подчеркивание в имени контроллера, будьте осторожны с этим, так как он будет использоваться в качестве разделителя каталогов при поиске правильного класса.

Не забудьте сгенерировать URL-адреса для вашего контроллера, например Mage::getUrl('adminhtml/mymodule'), чтобы он добавлял секретный ключ к путям, это необходимо при создании контроллера администратора, или он отклонит страницу.

Если пунктов меню нет, то добавить их в ACL будет невозможно. Вам не нужен файл adminhtml.xml в этом случае.

0 голосов
/ 18 марта 2012

Для вас цель xml config избыточна.Используйте следующие для добавления вашего контроллера в / admin имя_файла Company_Module_Adminhtml
Теперь каждый контроллер, который будет создан в папке controller / Adminhtml, будет доступен через admin, как

/admin/yourfilename/index

Имя класса контроллера должно быть Module_Module_Adminhtml_YourfilenameControllerи должен расширяться Mage_Adminhtml_Controller_Action Это хитрость.

0 голосов
/ 18 марта 2012

Даже если вы не добавляете свой контроллер в меню, вам все равно нужно добавить раздел acl для вашего контроллера adminhtml.xml. После этого не забудьте зайти в админ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...