質問

私のモジュールでは、このようなメニューを設定しています。

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

集中するために必要なコードはaction です。

 <action>adminhtml/catalog_arattr_install</action>
.

この値の場合、My URLはこののように見えます

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

このULRに従って、Magentoはこのようなコントローラ設定を期待しています。

ファイル: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()
     {

     }
}
.

しかしこれは私が欲しいものではありません。私はこのように私のURL解析が必要です。

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

メニューをクリックしたときに以下のメソッドを呼び出すことを意味します。

ファイル: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()
     {

     }
}
.

しかし、メニューを設定するときにマゼントは常にindexAction()を探すように思われるようです。

メニューをクリックすると、カスタムアクションに指示する方法はありますか?

役に立ちましたか?

解決

は、actionノードに追加部品を追加するのと同じくらい簡単です。

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

管理者セクションのダウンロードの一部が機能する方法を確認します。

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

ここでは、ControllerはMage_Adminhtml_Report_ProductControllerで、アクションはdownloadsAction です。

他のヒント

あなたのactionパスは、パスのadminhtml/catalog_arattr/installセクションをアクションとして定義するためにinstallにする必要があります。各/スラッシュは、1つのスラッシュのみを持つようにモジュール、コントローラ、次にアクションを分離します。アクションはindexAction()と見なされます。上記のURLを使用すると、要求はNamespace_Modulename_Adminhtml_Catalog_ArattrControllerをターゲットにし、そのinstallAction()の内側をターゲットにします。もちろん、コントローラの位置を1つのディレクトリに変更する必要があります。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top