0

こんにちは、

カスタム モジュール用のルーターを作成しようとしています。

url/hotsale でインデックス コントローラの hotsale アクションにアクセスしたいと思います。そこで、モジュールの config.xml に次のルーター xml を作成します。

<hotsale>
 <use>standard</use>
 <args>
  <module>Moon_Products</module>
  <frontName>hotsale</frontName>
 </args>
</hotsale>

url/hotsale にアクセスすると、インデックス コントローラーのインデックス アクションに移動します。ホットセールアクションを実行するにはどうすればよいですか?

hotsale を追加しようとしましたが、うまくいきませんでした。

私は Alan Storm の提案を受けて、次のコードで終了しました。

public function indexAction()
{
    if($this->getRequest()->getRouteName() == 'hotsale'){

        $this->loadLayout();    

        $block = $this->getLayout()->createBlock(
            'Mage_Core_Block_Template',
            'my_block_name_here',
            array('template' => 'moon/hotsale.phtml')
        );


        $this->getLayout()->getBlock('root')->setTemplate('page/product-without-rightbar.phtml');
        $this->getLayout()->getBlock('content')->append($block);

        $this->renderLayout();

    }
}
4

1 に答える 1

2

デフォルトのフロントエンド/ストア ルーティングは次のように機能します

http://example.com/front-name/controller-name/action-name

だから、あなたが行くとき

http://example.com/hostsale

あなたは本当に言っています

http://example.com/hostsale/index/index

フロントネームの概念は少し抽象的ですが、実際には URL を特定のモジュールに結び付けます。

したがって、IndexController.phpという名前のメソッドがhotsaleActionあり、このメソッドを実行したい場合は、次の形式で URL を使用します。

http://example.com/hotsale/index/hotsale 
于 2010-09-30T02:12:01.963 に答える