Pregunta

En mi módulo, estoy configurando mi menú de esta manera.

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

El código que necesitas para concentrarte es action

 <action>adminhtml/catalog_arattr_install</action>

Para este valor, mi URL se ve así

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

Según este ulr, Magento espera una configuración de controlador como esta.

Archivo : 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()
     {

     }
}

Sin embargo esto no es lo que quiero...Necesito mi análisis de URL como este.

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

Significa que quiero que se llame al siguiente método cuando hago clic en el menú

Archivo : 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()
     {

     }
}

Pero parece que magento siempre busca indexAction() cuando configuramos un menú.

¿Hay alguna forma de dirigirme a mi acción personalizada cuando hago clic en el menú?

¿Fue útil?

Solución

Debería ser tan simple como agregar piezas adicionales al action nodo.

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

Vea cómo funciona la parte de descargas de la sección de administración.

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

Aquí está el controlador Mage_Adminhtml_Report_ProductController y la acción es downloadsAction

Otros consejos

Su action el camino debe ser adminhtml/catalog_arattr/install para definir el install sección del camino como la acción.Cada / La barra diagonal separa el módulo, el controlador y luego la acción, de modo que como solo tiene 1 barra, se supone que la acción es indexAction().Con la URL anterior, la solicitud se dirigirá al Namespace_Modulename_Adminhtml_Catalog_ArattrController y dentro de eso installAction().Por supuesto, necesitarás cambiar la ubicación del controlador a un directorio superior.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top