kategoriler yönetici olarak gösterildiği gibi nasıl sıralanır?


15

İşte kod:

$category = Mage::getModel('catalog/category')->load(3);
$subCats = Mage::getModel('catalog/category')->load($category->getId())->getChildren();
$subCatIds = explode(',',$subCats);
$currentUrl = Mage::helper('core/url')->getCurrentUrl();

Lütfen tavsiye, teşekkürler!

Yanıtlar:


24
$category = Mage::getModel('catalog/category')->load(3);
$children = Mage::getModel('catalog/category')->getCollection()->setStoreId(Mage::app()->getStore()->getId());
$children->addAttributeToSelect('*')
        ->addAttributeToFilter('parent_id', $category->getId())
        ->addAttributeToFilter('is_active', 1)//get only active categories if you want
        ->addAttributeToSort('position');//sort by position

foreach ($children as $child){
    //do something with $child
}

Parçacık için teşekkür ederim, ancak şablonda zaten uygulandığı için koduma bağlı kalmak istiyorum. Bu sıralama niteliğini nasıl ekleyebiliriz $subCats = Mage::getModel('catalog/category')->load($category->getId())->getChildren();? Teşekkür!
Aamir Siddique

3
Sen değiştirebilir getChildren()ile getChildrenCategories()ve onları sıralanmış olmalıdır. Ama yine de kategori nesnelerini id'lere değil. Kimliklere ihtiyacınız varsa alt kategoriler arasında geçiş yapabilir ve kimliklerini birleştirebilirsiniz. Neyi başarmaya çalıştığınızı gerçekten anlamıyorum.
Marius

^^ Keşke, getChildren()sıralanmamış kimlikler getChildrenCategories()döndüren ve sıralanmış nesneleri döndüren bir yerde daha açık bir şekilde belgelenmesini dilerdim . Bu benim için her şeyi temizledi, magento dokümanlar şu andan itibaren bunu netleştirmiyor.
waffl

getChildrenCategoriler Flat Kategoriler ile çalışmaz
Samyer

7

GetChilderCategories () ve toArray işlevinin güzel bir karışımını kullanmak için kodunuzu değiştirmeyi deneyebilirsiniz.

$category = Mage::getModel('catalog/category')->load(3);
$subCats = $category->getChildrenCategories();
$subCatIds = $subCats->toArray(array('entity_id'));

GetChildrenCategories işlevi size yönetici bölümü ile aynı sırada bir koleksiyon verir ve ardından toArray'ı çağırarak ve sadece author_id özniteliğini sorarak bir dizi kategori kimliğine sahip olursunuz

array(3) {
    [10]=> array(1) {
         ["entity_id"]=> string(2) "10"
    }
    [13]=> array(1) {
        ["entity_id"]=> string(2) "13"
    }
    [18]=> array(1) {
        ["entity_id"]=> string(2) "18"
    }
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.