Frage

In meinem Modul richte ich mein Menü so ein.

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

Der Code, auf den Sie sich konzentrieren müssen, ist action

 <action>adminhtml/catalog_arattr_install</action>

Für diesen Wert sieht meine URL so aus

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

Gemäß dieser URL erwartet Magento ein Controller-Setup wie dieses.

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

     }
}

Das ist jedoch nicht das, was ich will.Ich brauche meine URL-Analyse so.

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

Das heißt, ich möchte, dass die folgende Methode aufgerufen wird, wenn ich auf das Menü klicke

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

     }
}

Aber es scheint, dass Magento immer danach sucht indexAction() wenn wir ein Menü einrichten.

Gibt es eine Möglichkeit, durch Klicken auf das Menü zu meiner benutzerdefinierten Aktion zu gelangen?

War es hilfreich?

Lösung

Sollte so einfach sein wie das Hinzufügen zusätzlicher Teile action Knoten.

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

Sehen Sie sich an, wie der Download-Teil des Admin-Bereichs funktioniert.

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

Hier ist der Controller Mage_Adminhtml_Report_ProductController und die Aktion ist downloadsAction

Andere Tipps

Dein action Pfad sollte sein adminhtml/catalog_arattr/install um das zu definieren install Abschnitt des Pfades als Aktion.Jede / Ein Schrägstrich trennt das Modul, den Controller und dann die Aktion. Da Sie also nur einen Schrägstrich haben, wird davon ausgegangen, dass es sich um die Aktion handelt indexAction().Mit der oben genannten URL richtet sich die Anfrage an die Namespace_Modulename_Adminhtml_Catalog_ArattrController und darin installAction().Sie müssen den Speicherort des Controllers natürlich in ein Verzeichnis weiter oben ändern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top