1

ローカルモジュールから「コミュニティ」コントローラーをオーバーライドしたい」.コアコントローラーのオーバーライドに関するチュートリアルはたくさん見つかりましたが、コミュニティコントローラーについては何も見つかりませんでした。

マジェントのバージョン: 1.6.1

私の現在の状態は次のとおりです:-コアコントローラーをオーバーライド=> OK-コミュニティコントローラーをオーバーライド=> KO

ここに私のファイルツリーがあります:

- community
  - Namespace
    - Mycommunitymodule
      - controllers
        - IndexController.php
- local
  - Namespace
    - Mylocalmodule
      - controllers
        - Mycommunitymodule
          - IndexController.php
      - etc
        - config.xml

私のローカルモジュールのソース

<mycommunitymodule>
   <args>
    <modules>
     <Namespace_Mylocalmodule  before="Namespace_Mycommunitymodule">Namespace_Mylocalmodule_Mycommunitymodule</Namespace_Mylocalmodule>
    </modules>
   </args>
</mycommunitymodule>

私のオーバーライドされたコントローラのソースコード:

<?
$origDir = Mage::getModuleDir('controllers','Namespace_Mycommunitymodule').DS;
require_once $origDir.'IndexController.php';
class Namespace_Mylocalmodule_Mycommunitymodule_IndexController extends     Namespace_Mycommunitymodule_IndexController
{
 public function indexAction() {
      zend_Debug::Dump("test surchargé");
 }
}

前もって感謝します

4

1 に答える 1

0

ほぼ正しいように見えます。交換してみる

<Namespace_Mylocalmodule  before="Namespace_Mycommunitymodule">Namespace_Mylocalmodule_Mycommunitymodule</Namespace_Mylocalmodule>

<Namespace_Mylocalmodule  before="Namespace_Mycommunitymodule">Namespace_Mylocalmodule</Namespace_Mylocalmodule>

必要に応じて、クラス名Namespace_Mylocalmodule_Mycommunitymodule_IndexControllerNamespace_Mylocalmodule_IndexControllerとして、そのファイル名とフォルダーに付けます。

于 2014-01-11T20:11:20.077 に答える