2016-04-05 17 views
0

Alfabetik sıralamamdaki alt kategorilerimi sıralamak istiyorum Çekirdeği değiştirerek yaptım ama bunu düzgün yapabilirsem.magento sort subcategories alfabetik olarak

kullanıyorum: $_category->getChildrenCategories();

dosyasında: 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) 

yılında birileri yardımcı veya başka bir yol kullanın.

Teşekkürler.

cevap

0

Teşekkür Dhaval Patel ve mondev.

0

kodunun altına

<?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> 
+0

Koleksiyonunu arayarak düzelttim, ancak bir diziyi kullanamıyorum çünkü alt kâğıt görüntülerini yeniden boyutlandırmak için bir yardımcı çağırıyorum. – pelijojo

+0

lütfen bunu deneyin: -> setOrder ('name', 'asc'); –

+0

Çalışmıyor :-( – pelijojo

0

İki ipuçlarını deneyin:

  1. Sen durumda yerel Modül ve değişim kodunda Kaynak Modeli yeniden yazabilirsiniz.

  2. Veya yeni böyle Yardımcısı Yöntem şey yaratmak:

 

    $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;