Как изменить шаблон страницы категории в зависимости от уровня категории в коде?
Вопрос
У меня был проект, в котором не было шаблона, и я применил все изменения макета категорий в области администратора (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.
Что-то типа:
<?php if ($this->IsTopCategory()) : ?>
// Insert subcategory grid logic here
<?php endif; ?>