Я создаю магазин Magento и хочу иметь возможность отображать список категорий и иметь ссылку каждой категории на свою собственную страницу.
У меня есть категория «Бренды» с идентификатором 42, и я хочу отобразить список подкатегорий и убедиться, что каждый из них ссылается на указанный URL-адрес в CMS.
Кто-нибудь имел опыт работы с Magento?
Спасибо.
Если вам удобнее редактировать тему, этот фрагмент кода предоставит вам список всех подкатегорий текущей категории (из сеанса, поэтому это должно работать в любой точке вашей темы). Обычно я использую это в app / design / frontend / default / theme_name /template/catalog/category/view.phtml
<?php $_category = $this->getCurrentCategory(); $collection = Mage::getModel('catalog/category')->getCategories($_category->entity_id); $helper = Mage::helper('catalog/category'); ?> <ul> <?php foreach ($collection as $cat):?> <?php if($_category->getIsActive()):?> <?php $cur_category = Mage::getModel('catalog/category')->load($cat->getId()); $_img = $cur_category->getImageUrl(); ?> <li> <a href="<?php echo $helper->getCategoryUrl($cat);?>"> <img src="<?php echo $_img?>" title="<?php echo $cat->getName();?>"/> <cite><?php echo $cat->getName();?></cite> </a> </li> <?php endif?> <?php endforeach;?> </ul>
Если вы хотите отображать категории верхнего уровня и подкатегории U, вы можете сделать вот так ..
<?php $_helper = Mage::helper('catalog/category') ?> <?php $_categories = $_helper->getStoreCategories() ?> <?php $currentCategory = Mage::registry('current_category') ?> <?php if (count($_categories) > 0): ?> <ul> <?php foreach($_categories as $_category): ?> <li> <a href="<?php echo $_helper->getCategoryUrl($_category) ?>"> <?php echo $_category->getName() ?> </a> <?php $_category = Mage::getModel('catalog/category')->load($_category->getId()) ?> <?php $_subcategories = $_category->getChildrenCategories() ?> <?php if (count($_subcategories) > 0): ?> <ul> <?php foreach($_subcategories as $_subcategory): ?> <li> <a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>"> <?php echo $_subcategory->getName() ?> </a> </li> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul> <?php endif; ?>
Для отображения категорий верхнего уровня и текущих категорий SubCategories вы можете делать как ….
<?php $_helper = Mage::helper('catalog/category') ?> <?php $_categories = $_helper->getStoreCategories() ?> <?php $currentCategory = Mage::registry('current_category') ?> <?php if (count($_categories) > 0): ?> <ul> <?php foreach($_categories as $_category): ?> <li> <a href="<?php echo $_helper->getCategoryUrl($_category) ?>"> <?php echo $_category->getName() ?> </a> <?php if ($currentCategory && $currentCategory->getId() == $_category->getId()): ?> <?php $_category = Mage::getModel('catalog/category')->load($_category->getId()) ?> <?php $_subcategories = $_category->getChildrenCategories() ?> <?php if (count($_subcategories) > 0): ?> <ul> <?php foreach($_subcategories as $_subcategory): ?> <li> <a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>"> <?php echo $_subcategory->getName() ?> </a> </li> <?php endforeach; ?> </ul> <?php endif; ?> <?php endif; ?> </li> <?php endforeach; ?> </ul> <?php endif; ?>
Этот вопрос требует долгого ответа. Я укажу вам нужные места.
1) Лучшим решением является использование бесплатного расширения. Я не пробовал, но это подойдет цели. Вам нужно будет сделать некоторый CSS, чтобы добиться правильного внешнего вида.
http://www.magentocommerce.com/extension/1562/magento-easy-catalog-images Демо-версия: http://extension01.templates-master.com/gb/electronics.html
2) Я не верю в модули, так как это может стать трудным для обновления, если поставщик решил прекратить его поддерживать. Я использовал информацию из следующей темы форума, чтобы создать vew сайты. Посмотрите … Не может быть прямолинейным. Возможно, вам придется сделать несколько копий основных файлов в локальный каталог.
http://www.magentocommerce.com/boards/viewthread/3770/P30/
Надеюсь, это поможет вам 🙂
Я сделал это маленькое видео о том, как я создаю блоки с категорией категорий с Magento. Я уверен, что есть лучшие способы достижения этого или даже того, что я мог бы сделать лучше, но это всего лишь мой метод. Я только создал это в надежде, что это поможет объяснить некоторые вещи там.
Листинг-блок Magento Custom
Благодаря!
посмотрев на все решения на сайте magento, я обнаружил, что решение wookiehangover надработало и заняло около 8 секунд.
создает UL, который вы можете создать. Благодарю.
После создания статического блока вы можете получить любой список подкатегорий по этому сценарию:
$_helper = Mage::helper('catalog/category'); $_category = Mage::getModel('catalog/category')->load(5); $_subcategories = $_category->getChildrenCategories(); if (count($_subcategories) <= 0) { return; } $count = 0; foreach($_subcategories as $_category) { $category = Mage::getModel('catalog/category')->load($_category->getId()); $ret->{"object_".$count} ->url = $_helper->getCategoryUrl($_category); $ret->{"object_".$count} ->name = $_category->getName(); $ret->{"object_".$count} ->id = $_category->getId(); $ret->{"object_".$count} ->image = $category->getImageUrl(); $count++; } return $ret; } $list = list_subcategories(5); echo "<pre>"; print_r($list); echo "</pre>"; ?>
Как насчет перечисления только категорий, принадлежащих текущему элементу. Не все категории на странице.
Но в виде дерева.
CATEGORIE – sub cat 1 CATEGORIE 2 – sub cat 1 – sub sub cat 1
BR Cveto