Come posso puntare il metodo di azione Amministratore ad altro "IncessAction ()`?
-
12-12-2019 - |
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?
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.