Làm thế nào để sắp xếp các danh mục khi chúng được hiển thị trong quản trị viên?


15

Đây là mã:

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

Xin tư vấn, thx!

Câu trả lời:


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
}

Cảm ơn bạn đã cho đoạn trích, nhưng tôi muốn bám vào mã của tôi vì nó đã được áp dụng trong mẫu. Làm thế nào chúng ta có thể thêm thuộc tính sắp xếp này vào $subCats = Mage::getModel('catalog/category')->load($category->getId())->getChildren();? cám ơn!
Aamir Siddique

3
Bạn có thể thay thế getChildren()bằng getChildrenCategories()và bạn nên sắp xếp chúng. Nhưng bạn vẫn nhận được các đối tượng thể loại không phải là id. Nếu bạn cần id, bạn có thể lặp qua các danh mục con và nối các id của chúng. Tôi không thực sự hiểu những gì bạn đang cố gắng để đạt được.
Marius

^^ Tôi ước nó được ghi lại rõ ràng hơn ở đâu đó getChildren()trả về ID chưa được sắp xếp và getChildrenCategories()trả về các đối tượng được sắp xếp. Điều này đã làm sáng tỏ mọi thứ đối với tôi, các tài liệu magento cho đến bây giờ không làm rõ điều này.
waffl

khá chắc chắn getChildrenC loại không hoạt động với Danh mục phẳng
Samyer

7

Bạn có thể thử thay đổi mã của mình để sử dụng kết hợp tốt đẹp của hàm getChilderC loại () và hàm toArray.

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

Hàm getChildrenC loại sẽ cung cấp cho bạn một bộ sưu tập theo thứ tự giống như phần quản trị viên và sau đó bằng cách gọi toArray và chỉ yêu cầu thuộc tính entit_id, bạn sẽ có một mảng các id danh mục

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"
    }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.