magento 按字母顺序对子类别进行排序
magento sort subcategories alphabetically
我想按字母顺序对我的子类别进行排序
我通过更改核心来做到这一点,但如果我能干净地做到这一点。
我正在使用:
$_category->getChildrenCategories();
在文件中:
app/code/core/Mage/Catalog/Model/Resource/Category.php
在
protected function _getChildrenCategoriesBase($category)
// ->setOrder('position', Varien_Db_Select::SQL_ASC)
->setOrder('name', Varien_Db_Select::SQL_ASC)
如果有人使用 helper 或其他方式。
谢谢。
请尝试以下代码
<?php
$subcats = Mage::getModel('catalog/category')->load('1')->getChildren();
$catIds = explode(',',$subcats );
$catarray= array();
foreach($catIds as $catId) {
$category = Mage::getModel('catalog/category')->load($catId);
$catarray[$category->getName()] = $category->getUrl();
}
ksort($catarray, SORT_STRING);
?>
<ul>
<?php foreach($catarray as $catname => $caturl): ?>
<li>
<a href="<?php echo $caturl; ?>"><?php echo $catname ; ?></a>
</li>
<?php endforeach; ?>
</ul>
两个提示:
您可以在本地模块中重写资源模型并根据您的情况更改代码。
或者像这样创建一个新的辅助方法:
$collection = $category->getCollection();
$collection->addAttributeToSelect('url_key')
->addAttributeToSelect('name')
->addAttributeToSelect('all_children')
->addAttributeToSelect('is_anchor')
->setOrder('name', Varien_Db_Select::SQL_ASC)
->joinUrlRewrite()
$collection->addAttributeToFilter('is_active', 1)
->addIdFilter($category->getChildren())
->load();
return $collection;
感谢 Dhaval Patel 和 mondev。我通过调用集合
修复了它
$currentCategory = Mage::getModel('catalog/category')->load($_category->getId());
$_subcategories = $currentCategory->getCollection();
$_subcategories->addAttributeToSelect('url_key')
->addAttributeToSelect('name')
->addAttributeToSelect('all_children')
->addAttributeToFilter('is_active', 1)
->addIdFilter($currentCategory->getChildren())
->setOrder('name', Varien_Db_Select::SQL_ASC)
->load();
我想按字母顺序对我的子类别进行排序 我通过更改核心来做到这一点,但如果我能干净地做到这一点。
我正在使用:
$_category->getChildrenCategories();
在文件中:
app/code/core/Mage/Catalog/Model/Resource/Category.php
在
protected function _getChildrenCategoriesBase($category)
// ->setOrder('position', Varien_Db_Select::SQL_ASC)
->setOrder('name', Varien_Db_Select::SQL_ASC)
如果有人使用 helper 或其他方式。
谢谢。
请尝试以下代码
<?php
$subcats = Mage::getModel('catalog/category')->load('1')->getChildren();
$catIds = explode(',',$subcats );
$catarray= array();
foreach($catIds as $catId) {
$category = Mage::getModel('catalog/category')->load($catId);
$catarray[$category->getName()] = $category->getUrl();
}
ksort($catarray, SORT_STRING);
?>
<ul>
<?php foreach($catarray as $catname => $caturl): ?>
<li>
<a href="<?php echo $caturl; ?>"><?php echo $catname ; ?></a>
</li>
<?php endforeach; ?>
</ul>
两个提示:
您可以在本地模块中重写资源模型并根据您的情况更改代码。
或者像这样创建一个新的辅助方法:
$collection = $category->getCollection(); $collection->addAttributeToSelect('url_key') ->addAttributeToSelect('name') ->addAttributeToSelect('all_children') ->addAttributeToSelect('is_anchor') ->setOrder('name', Varien_Db_Select::SQL_ASC) ->joinUrlRewrite() $collection->addAttributeToFilter('is_active', 1) ->addIdFilter($category->getChildren()) ->load(); return $collection;
感谢 Dhaval Patel 和 mondev。我通过调用集合
修复了它 $currentCategory = Mage::getModel('catalog/category')->load($_category->getId());
$_subcategories = $currentCategory->getCollection();
$_subcategories->addAttributeToSelect('url_key')
->addAttributeToSelect('name')
->addAttributeToSelect('all_children')
->addAttributeToFilter('is_active', 1)
->addIdFilter($currentCategory->getChildren())
->setOrder('name', Varien_Db_Select::SQL_ASC)
->load();