Как изменить шаблон страницы категории в зависимости от уровня категории в коде?

magento.stackexchange https://magento.stackexchange.com/questions/173

Вопрос

У меня был проект, в котором не было шаблона, и я применил все изменения макета категорий в области администратора (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; ?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top