Как я могу указать метод действия администратора, отличный от indexAction()?
-
12-12-2019 - |
Вопрос
В моем модуле я настраиваю свое меню следующим образом.
<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()
.Вам, конечно, нужно будет изменить местоположение контроллера на каталог выше.