Comment puis-je pointer une méthode d'action d'administration vers une méthode autre que « indexAction() » ?

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

Question

Dans mon module, je configure mon menu comme ceci.

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

Le code sur lequel vous devez vous concentrer est action

 <action>adminhtml/catalog_arattr_install</action>

Pour cette valeur, mon URL ressemble à ceci

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

Selon cette ulr, Magento s'attend à une configuration de contrôleur comme celle-ci.

Déposer : 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()
     {

     }
}

Mais ce n'est pas ce que je veux..J'ai besoin que mon URL soit analysée comme ceci.

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

Cela signifie que je veux que la méthode ci-dessous soit appelée lorsque je clique sur le menu

Déposer : 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()
     {

     }
}

Mais il semble que magento cherche toujours indexAction() lorsque nous configurons un menu.

Existe-t-il un moyen de diriger vers mon action personnalisée lorsque je clique sur le menu ?

Était-ce utile?

La solution

Cela devrait être aussi simple que d'ajouter des pièces supplémentaires au action nœud.

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

Découvrez comment fonctionne la partie téléchargements de la section d'administration.

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

Ici, le contrôleur est Mage_Adminhtml_Report_ProductController et l'action est downloadsAction

Autres conseils

Ton action le chemin devrait être adminhtml/catalog_arattr/install pour définir le install section du chemin comme action.Chaque / une barre oblique sépare le module, le contrôleur puis l'action donc comme vous n'avez qu'une seule barre oblique, l'action est supposée être indexAction().Avec l'URL ci-dessus, la requête ciblera le Namespace_Modulename_Adminhtml_Catalog_ArattrController et à l'intérieur de ça installAction().Vous devrez bien sûr changer l'emplacement du contrôleur vers un répertoire plus haut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top