0

この基本的なコントローラーを持つウィジェット モジュールを作成しました。

class MyModule_OrderForm_HandlersController extends Mage_Core_Controller_Front_Action{
  public function handleroneAction(){
    // do some stuff
  }
}

これで mydomain.com/orderform/handlers/handlerone にページが表示されます。これは素晴らしいことですが、その関数に独自のテンプレート ファイルを与えるにはどうすればよいでしょうか。

Google を何時間も検索しましたが、簡単な答えが見つかりませんでした。誰かが助けてくれることを願っています。

ありがとう。

4

1 に答える 1

0

ウィジェットの作成方法を探している場合は、http://www.magentocommerce.com/knowledge-base/entry/tutorial-creating-a-magento-widget-part-1/をチェックしてください。

しかし、コントローラーアクションにテンプレートを与えるために、私はinchooからこの記事をチェックアウトします: http://inchoo.net/ecommerce/magento/programatically-create-magento-blocks-and-inject-them-into-layout/

記事にあるように、適切な「magento の方法」は、拡張するブロック ファイルをモジュールに作成し、Mage_Core_Block_templateレイアウトの更新を使用してそのブロックをテンプレート ファイルとともにページに挿入することです。

inchoo の記事で概説されている方法を使用すると、カスタム ブロックの作成とレイアウトの更新をスキップでき、テンプレートをそのアクションのコンテンツ領域に直接挿入できます。

電話$this->loadLayout()をかけると、そのアクションにサイトのテーマが適用されます。挿入するテンプレートには、そのページのメイン コンテンツ エリアに挿入するすべてのものがあります。

最初のパラメーターは、挿入するブロックのタイプです。この例ではMage_Core_Block_Template、テンプレートを割り当てるための基本的なブロックを使用しています。の 2 番目のパラメータは、createBlock() function ('my_block_name_here')任意の名前にすることができます。3 番目のパラメーターは、ブロックに与えられた属性の配列です。この例では、割り当てている唯一の属性は「テンプレート」です。これは、どのテンプレートを使用するかをブロックに伝える方法です。

于 2012-07-05T15:26:08.310 に答える