2012-01-04 12 views
0

私は、製品ページにテンプレートで「ブロック」を追加する方法をWebで検索しました。私は何らかの情報を表示する私のカスタムモジュールをビルドし、それを示したいと思います、私の製品の長い説明の下で言いましょう。Magento - 製品情報ページにカスタムモジュールを挿入します

私は自分のモジュールのxmlレイアウトをフォーマットしようとしていますが、運はありません。

検索の結果、私はこれを見つけました:Programatically create Magento blocks and inject them into layout私はそれを私のために働かせることはできません。しかし、おそらく私は何かを逃したためです。

私のモジュールは次のように構成されています

CODE:アプリ/コード/ローカル/ deveti/Countrypurchase

DESIGN:アプリ/設計/フロントエンド/デフォルト/デフォルト/テンプレート/ Countrypurchase/index.phtmlを

レイアウト:アプリ/設計/フロントエンド/デフォルト/デフォルト/レイアウト/ countrypurchase.xml

私は正しい方法は、ブロックを追加し、手動で、メインのレイアウトファイルを編集することですが、私はそれでやってみたい知っています飛行機。

編集:これが機能します!

だから私は私のモジュールレイアウトのxml countrypurchase.xmlにこのようなものだろう:

<?xml version="1.0"?> 
<layout version="1.0"> 
    <catalog_product_view> 
     <reference name="product.info"> 
      <block type="core/template" name="product.countrypurchase" as="countrypurchase" template="countrypurchase/index.phtml" /> 
     </reference> 
    </catalog_product_view>  
</layout> 

を私はカタログ/製品/ view.phtmlへの呼び出しを追加しました:

<?php echo $this->getChildHtml('countrypurchase'); ?> 

をそれは動作します;)

ありがとうございました!

+0

キャッシュが無効でクリアされていると思われますか? –

+0

はい、そうです。私は常にキャッシュを無効にしてクリアしてこのことをテストします。 –

答えて

1

製品ビューページの問題点は、出力が主にテンプレートcatalog/product/view.phtmlのPHPコードによって制御されていることです。 Magentoでは、拡張性の高い点はほとんど用意されていません。それをcontentブロックに追加することもできますが、これはカスタムコンテンツを完全に一番上に、完全に一番下に配置します。

は、私のような、あなたが望む位置にカスタムブロックをレンダリングするテンプレートを変更し、PHPのコードを追加する必要があると思う:代わりにこれにより

<?php 
    echo $this->getChildHtml('product.countrypurchase'); 
?> 

は、あなたが名前を使用してブロックを追加しますか product.countrypurchaseをXMLレイアウトを使用して、またはプログラムで

+0

あなたが見ることができる場合、私は自分のコードを質問に追加しました。ありがとうございました! –

+0

それは働いた。他の誰かがこれを必要とするなら私の質問のコードを編集します。 –

関連する問題