Domanda

Nel mio modulo, sto configurando il mio menu come questo.

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

Il codice che è necessario concentrarsi è action

 <action>adminhtml/catalog_arattr_install</action>
.

Per questo valore, il mio URL sembra questo

.

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

Secondo questo ulR, Magento si aspetta una configurazione del controller come questa.

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

     }
}
.

Comunque questo non è quello che voglio .. ho bisogno del mio URL analizza come questo.

.

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

significa che voglio che il metodo di seguito viene chiamato quando fai clic sul menu

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

     }
}
.

Ma sembra che, Magento cerca sempre indexAction() quando installiamo un menu.

C'è un modo per indirizzare sulla mia azione personalizzata quando fai clic sul menu?

È stato utile?

Soluzione

dovrebbe essere semplice come aggiungere parti aggiuntive al nodo action.

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

controlla come funziona i download della sezione di amministrazione.

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

Qui il controller è Mage_Adminhtml_Report_ProductController e l'azione è downloadsAction

Altri suggerimenti

Il percorso action deve essere adminhtml/catalog_arattr/install per definire la sezione install del percorso come azione.Ogni / Slash separa il modulo, il controller e quindi l'azione in modo da avere solo 1 Shash L'azione viene presunta di essere indexAction().Con l'URL sopra riportato La richiesta mirarà al Namespace_Modulename_Adminhtml_Catalog_ArattrController e all'interno di quel installAction().Ovviamente dovrai modificare la posizione del controller in una directory più in alto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top