관리자에 표시된 카테고리를 정렬하는 방법은 무엇입니까?


15

코드는 다음과 같습니다.

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

조언하십시오, thx!

답변:


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
}

스 니펫에 감사하지만 템플릿에 이미 적용 된 코드를 고수하고 싶습니다. 이 정렬 속성을 $subCats = Mage::getModel('catalog/category')->load($category->getId())->getChildren();? 고마워!
Aamir Siddique

3
당신은 대체 할 수 getChildren()와 함께 getChildrenCategories()당신은 그들을 분류해야한다. 그러나 여전히 ID가 아닌 범주 객체를 얻습니다. ID가 필요한 경우 하위 카테고리를 반복하고 해당 ID를 연결할 수 있습니다. 나는 당신이 무엇을 성취하려고하는지 이해하지 못합니다.
Marius

^^ getChildren()정렬되지 않은 ID를 getChildrenCategories()반환하고 정렬 된 객체 를 반환하는 어딘가에 더 명확하게 문서화되기를 바랍니다 . 이것은 나를 위해 모든 것을 정리했으며, 마 젠토 문서 자체 는 현재 이것을 명확하게하지 않습니다.
waffl

getChildren 카테고리는 플랫 카테고리에서 작동하지 않습니다
Samyer

7

getChilderCategories ()와 toArray 함수의 멋진 조합을 사용하도록 코드를 변경할 수 있습니다.

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

getChildrenCategories 함수는 관리 섹션과 동일한 순서로 콜렉션을 제공 한 다음 toArray를 호출하고 entit_id 속성 만 요구하여 카테고리 ID 배열을 갖습니다.

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"
    }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.