2012-05-13 14 views
0

Magentoの特定のカテゴリのすべての製品ページに特定のHTMLブロックを表示したいとします。例えばMagentoの製品ページの選択的HTMLブロック?

: - :dress.phtml、phone.phtml、ドレスを着た製品のすべてのページにgps.phtml

、ドレス

カテゴリードレス、携帯電話は、これらのカテゴリの HTMLブロックのGPS .phtmlが表示されます - ドレスのサイズチャート、カラーチャート、洗う方法など

電話の製品のすべてのページで、phone.phtmlが表示されます - バッテリーケア、電話機のパッケージ化方法など

すべてのページgps.phtmlの製品が表示されます - GPSの使用、インストールなど

あなたはアイデアを得ます。 Magentoでこれをどうすればいいですか?製品カテゴリ別にcatalog/product/view.phtmlで異なるPHTMLファイル(dress.phtml、phone.phtml、またはgps.phtml)を呼び出すにはどうすればよいですか?

ありがとうございます!

答えて

1

これは、簡単にカタログ/製品/ view.phtmlファイルとカスタムテーマのレイアウト/ local.xmlファイルにいくつかのmodificaitionsを作ることによって達成されます。

まず、local.xmlを変更してみましょう。それを開いて、タイプ/コピー&次のコードを貼り付けます:私たちは、基本的にカタログ/製品/ view.phtmlに新しいテンプレートが利用できるようにすることファイル内にあるlocal.xmlを変更することで、何をやっている

<catalog_product_view> 
    <reference name="content"> 
     <reference name="product.info"> 
      <block type="catalog/product_view" name="product.dress" as="productDress" template="wherever/you/keep/dress.phtml" /> 
      <block type="catalog/product_view" name="product.phone" as="productPhone" template="wherever/you/keep/phone.phtml" /> 
      <block type="catalog/product_view" name="product.gps" as="productGps" template="wherever/you/keep/gps.phtml" /> 
     </reference> 
    </reference> 
</catalog_product_view> 

product.infoブロック。ブロックタイプは* catalog/product_view *ですので、catalog/product/view.phtmlで利用可能なすべての情報とメソッドにアクセスできます。我々は、我々がここでやっているすべての製品の現在のカテゴリをチェックし、関連するブロックを出力して出力するものをブロック

$_currentCategory = Mage::registry('current_category'); 
if ($_currentCategory->getId() == id of dress category) { 
    echo $this->getChildHtml('productDress'); 
} elseif ($_currentCategory->getId() == id of phone category) { 
    echo $this->getChildHtml('productPhone'); 
} elseif ($_currentCategory->getId() == id of gps category) { 
    echo $this->getChildHtml('productGps'); 
} 

決定するview.phtmlのコードのビットを書き込むことができます。もちろん、 "id of _ __"を適切なカテゴリID値に置き換える必要があります。このは、検索したいカテゴリの子カテゴリに属していればにはなりません。たとえば、あなたの構造が次のようなものである場合電話>アクセサリ>電話充電器製品電話充電器製品では、最新のカテゴリ(アクセサリ)のみを検索します。 GoogleやStackOverflowに散在している親カテゴリを見つける他の方法があります。

希望に役立ちます。残念ながらこのコードをテストする手段はありませんが、うまくいくはずです。がんばろう!

0

$ product-> getCategoryIds()は、商品が属するカテゴリIDを提供します。

関連する問題