Как я могу указать метод действия администратора, отличный от indexAction()?

magento.stackexchange https://magento.stackexchange.com//questions/44755

Вопрос

В моем модуле я настраиваю свое меню следующим образом.

 <menu>
     <catalog>
        <children>
            <rkt_arattr translate="title" module="rkt_arattr">
                <title>Manage My Custom Attribute</title>
                <sort_order>100</sort_order>
                <children>
                    <install_attr translate="title" module="rkt_arattr">
                        <title>Install My Attribute</title>
                        <action>adminhtml/catalog_arattr_install</action>
                        <sort_order>10</sort_order>
                    </install_attr>
                </children>
            </rkt_arattr>
        </children>
     </catalog>
 </menu>

Код, на котором вам нужно сконцентрироваться: action

 <action>adminhtml/catalog_arattr_install</action>

Для этого значения мой URL выглядит так

www.mydomain.com/admin/catalog_arattr_install/index/key/[key_value]

Согласно этому ulr, Magento ожидает такую ​​настройку контроллера.

Файл : app/code/local/Namespace/Modulename/controllers/Adminhtml/Catalog/Araattr/InstallController.php

<?php
class Namespace_Modulename_Adminhtml_Catalog_Arattr_InstallController extends Mage_Adminhtml_Contorller_Action
{
     public function indexAction()
     {

     }
}

Однако это не то, чего я хочу..Мне нужен такой анализ URL.

www.mydomain.com/admin/catalog_arattr/install/key/[key_value]

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

Файл : app/code/local/Namespace/Modulename/controllers/Adminhtml/Catalog/ArattrController.php

<?php
class Namespace_Modulename_Adminhtml_Catalog_ArattrController extends Mage_Adminhtml_Contorller_Action
{
     public function installAction()
     {

     }
}

Но кажется, что magento всегда ищет indexAction() когда мы настраиваем меню.

Есть ли способ перейти к моему настраиваемому действию при нажатии на меню?

Это было полезно?

Решение

должно быть так же просто, как добавление дополнительных частей к узлу action.

<action>adminhtml/your_controller/your_action</action>
.

Проверьте, как работает загрузки часть сайта администратора.

<action>adminhtml/report_product/downloads</action>
.

Здесь контроллер генеракодичЕТCODCCODE и действие генеракодицетагкод

Другие советы

Твой action путь должен быть adminhtml/catalog_arattr/install определить install участок пути как действие.Каждый / косая черта разделяет модуль, контроллер и затем действие, поэтому, поскольку у вас есть только 1 косая черта, предполагается, что действие indexAction().С указанным выше URL-адресом запрос будет нацелен на Namespace_Modulename_Adminhtml_Catalog_ArattrController и внутри этого installAction().Вам, конечно, нужно будет изменить местоположение контроллера на каталог выше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top