コードのカテゴリレベルに応じて、カテゴリページのテンプレートを変更する方法は?
質問
パターンがないプロジェクトがあり、管理領域にカテゴリのレイアウトのすべての変更を適用しました(Catalog->Manage Categories->Custom Design
タブ)。今、私は次のものを持っている必要があります:
親カテゴリには、サムネイルとタイトルを備えたすべてのサブカテゴリのグリッドがあります。
サブカテゴリは、デフォルトのものとほぼ同じように見えます - 名前、説明、製品リスト/グリッド
だから私はこれをしたいと思って、正しい方法は何だろうと思います。
解決
あなたの中で catalog/category/view.phtml
これを使用して、カテゴリレベルを確認できます。
$this->getCurrentCategory()->getLevel()
これをバックエンドで決定する場合は、すべてのサブカテゴリを表示し、カスタムレイアウトの更新に以下を追加する個別のテンプレート全体を作成できます。
<reference name="category.products">
<action method="setTemplate"><template>catalog/category/list.phtml</template></action>
</reference>
すべてのサブカテゴリを読むには、これを行うことができます。
$children = explode(',', $this->getCurrentCategory()->getChildren());
$collection = Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect('name')
->addAttributeToFilter('entity_id', array(
'in' => $children
))->load();
foreach ($collection as $category) {
echo $category->getName() . '<br />';
}
他のヒント
Catagory Viewテンプレートの上部にIFブロックを配置できるはずです。
何かのようなもの:
<?php if ($this->IsTopCategory()) : ?>
// Insert subcategory grid logic here
<?php endif; ?>
所属していません magento.stackexchange