Я работаю над сайтом, где я показываю список всех подкатегорий, связанных с текущей категорией. Ниже приведенный ниже код отлично подходит для этого, но я хотел бы изменить способ сортировки списка подкатегорий. В настоящее время он сортируется по категории ID. Я бы хотел, чтобы он отображался в любом порядке, в котором пользователь Magento помещал категории в админа (где они могут перетаскивать, чтобы изменить порядок категорий). Цените любую помощь!Изменить порядок сортировки подкатегорий Magento
<?php
$currentCat = Mage::registry('current_category');
if ($currentCat->getParentId() == Mage::app()->getStore()->getRootCategoryId())
{
// current category is a toplevel category
$loadCategory = $currentCat;
}
else
{
// current category is a sub-(or subsub-, etc...)category of a toplevel category
// load the parent category of the current category
$loadCategory = Mage::getModel('catalog/category')->load($currentCat->getParentId());
}
$subCategories = explode(',', $loadCategory->getChildren());
foreach ($subCategories as $subCategoryId)
{
$cat = Mage::getModel('catalog/category')->load($subCategoryId);
if($cat->getIsActive())
{
echo '<a href="'.$cat->getURL().'">'.$cat->getName().'</a>';
}
}
?>
Функция рекурсивна, поскольку она загружает коллекцию, фильтрованную Children(). Обратите внимание, что первая функция getChildren возвращает строку из всех идентификаторов дочерних элементов и getChildrenCategories возвращает массив Mage_Catalog_Model_Category – dagfr
Спасибо за отзыв, я обновил свой ответ с помощью этой информации. – dmanners
Добро пожаловать. Обратите внимание, что основными изменениями являются: no explode() и no load() больше не требуется. Такой чистый и более простой код. – dagfr