- Веб-Шаблоны
- Шаблон интернет-магазина
- Шаблоны для CMS
- Facebook шаблоны
- Конструктор сайтов
Magento. Отображение списка под-категорий
Февраль 12, 2013
Этот урок покажет как отображать под-категорий на страницах Вашего Magento магазина.
Чтобы отобразить миниатюры под-категорий и их имена, необходимо сделать следующее:
- В панели управления Magento перейдите к меню CMS -> Static Blocks (Статичные Блоки);
- Нажмите кнопку “Add New Block” (Добавить Новый Блок) в правом верхнем углу;
- Создайте новый статический блок следующим образом:
- Нажмите кнопку “Save Block” (Сохранить Блок) в правом верхнем углу;
- Перейдите к меню Catalog (Каталог) –> Manage Categories (Управление Категориями);
- Выберите категорию, которая включает в себя под-категории и на вкладке “Display Settings” укажите следующие настройки:
- Нажмите на кнопку “Save category” (Сохранить категорию) в правом верхнем углу;
- На Вашем компьютере создайте новый файл с именем “subcategory_listing.phtml” со следующим содержимым:
- Посредством FTP, войдите на Ваш сервер и загрузите ранее созданный файл в директорию:
- Используя любой FTP-клиент или файловый менеджер, перейдите к директории app\code\core\Mage\Catalog\Block\.
- Загрузите файл Navigation.php на Ваш компьютер.
- В файле “Navigation.php” найдите следующую часть кода:
- Замените её кодом, представленным ниже:
- На Вашем сайте откройте категорию с добавленными ранее под-категориями. Теперь под-категории будут корректно отображаться в каталоге Вашего сайта.
- Если Вы не видите изменений, попробуйте очистить кэш Magento и кэш Вашего браузера. В случае, если Ваши подкатегории не отображают эскизы, убедитесь, что Вы загрузили изображения для под-категорий.
Block Title (Заголовок блока): Sub Category Listing
Identifier (Идентификатор): subcategory_listing
Status (Статус): Enabled
Content (Содержание):
{{block type="catalog/navigation" template="catalog/navigation/subcategory_listing.phtml"}}
Display mode: Static Block only
CMS Block: Sub Category Listing
Is Anchor: No.
<div class="category-products"> <ul class="products-grid"> <?php $_categories=$this->getCurrentChildCategories(); if($_categories->count()): $categorycount = 0; foreach ($_categories as $_category): if($_category->getIsActive()): $cur_category=Mage::getModel('catalog/category')->load($_category->getId()); $layer = Mage::getSingleton('catalog/layer'); $layer->setCurrentCategory($cur_category); $catName = $this->getCurrentCategory()->getName(); if ($categorycount == 0){ $class = "first"; } elseif ($categorycount == 3){ $class = "last"; } else{ $class = ""; } ?> <li class="item <?=$class?>"> <a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><img src="<?php echo $_category->getImageUrl() ?>" width="100" alt="<?php echo $this->htmlEscape($_category->getName()) ?>" /></a> <h2><a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><?php echo $this->htmlEscape($_category->getName()) ?></a></h2> </li> <?php endif; if($categorycount == 3){ $categorycount = 0; echo "</ul>\n\n<ul class=\"products-grid\">"; } else{ $categorycount++; } endforeach; endif; ?> </ul> </div>
app/design/frontend/default/MY-TEMPLATE-DIR/template/catalog/navigation/
(если указанные выше папки отсутствуют на сервере, необходимо создать их вручную)
public function getCurrentChildCategories() { $layer = Mage::getSingleton('catalog/layer'); $category = $layer->getCurrentCategory(); /* @var $category Mage_Catalog_Model_Category */ $categories = $category->getChildrenCategories(); $productCollection = Mage::getResourceModel('catalog/product_collection'); $layer->prepareProductCollection($productCollection); $productCollection->addCountToCategories($categories); return $categories; }
public function getCurrentChildCategories() { $layer = Mage::getSingleton('catalog/layer'); $category = $layer->getCurrentCategory(); /* @var $category Mage_Catalog_Model_Category */ $collection = Mage::getModel('catalog/category')->getCollection(); /* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */ $collection->addAttributeToSelect('url_key') ->addAttributeToSelect('name') ->addAttributeToSelect('is_anchor') ->addAttributeToSelect('image') ->addAttributeToFilter('is_active', 1) ->addIdFilter($category->getChildren()) ->setOrder('position', 'ASC') ->joinUrlRewrite() ->load(); $productCollection = Mage::getResourceModel('catalog/product_collection'); $layer->prepareProductCollection($productCollection); $productCollection->addCountToCategories($collection); return $collection; }
Посредством FTP, перейдите к директории app\code\local\Mage\Catalog\Block\ и загрузите файл Navigation.php в эту директорию (если указанные выше папки отсутствуют на сервере, необходимо создать их вручную).
Пожалуйста, ознакомьтесь с детальным, обучающим видео ниже: