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.