0

Magentoの特定のカテゴリのすべての製品ページに特定のHTMLブロックを表示したい。

例えば:

カテゴリ-これらのカテゴリのドレス、電話、gps HTMLブロック:dress.phtml、phone.phtml、gps.phtml

ドレスの商品のすべてのページに、dress.phtmlが表示されます-ドレスサイズチャート、カラーチャート、洗濯方法など。

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

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

あなたはその考えを理解します。Magentoでこれを行うにはどうすればよいですか?カタログ/product/view.phtml内のさまざまなPHTMLファイル(dress.phtml、phone.phtml、またはgps.phtml)を製品カテゴリ別に呼び出すにはどうすればよいですか?

ありがとう!

4

2 に答える 2

1

これは、catalog/product/view.phtmlファイルとカスタム テーマのlayout/local.xmlファイルにいくつかの変更を加えることで簡単に実現できます。

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>

local.xml を変更することで本質的に行っていることは、 product.infoブロック内のcatalog/product/view.phtmlファイルで新しいテンプレートを使用できるようにすることです。ブロック タイプは *catalog/product_view* であるため、 catalog/product/view.phtml内で利用可能なすべての同じ情報とメソッドにアクセスできます。次に、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');
}

ここで行っているのは、製品の現在のカテゴリを確認し、関連するブロックを出力することだけです。もちろん、「_ __カテゴリの ID」を適切なカテゴリ ID 値に置き換える必要があります。検索したいカテゴリのいずれかの子カテゴリにいる場合、これは機能しません。たとえば、電話 > アクセサリ > 電話充電器製品のような構造の場合、電話充電器製品の最新のカテゴリ (アクセサリ) のみが検索されます。Google と StackOverflow に散らばっている親カテゴリを見つける方法は他にもあります。

それが役立つことを願っています。残念ながら、このコードをテストする手段はありませんが、動作するはずです。幸運を!

于 2012-05-13T18:26:10.730 に答える
0

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

于 2012-05-13T18:34:17.813 に答える