श्रेणियों को क्रमबद्ध करने के लिए कैसे उन्हें व्यवस्थापक में दिखाया गया है?


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();? धन्यवाद!
आमिर सिद्दीकी

3
आप के getChildren()साथ बदल सकते हैं getChildrenCategories()और आप उन्हें हल करना चाहिए था। लेकिन फिर भी आपको आईडी नहीं श्रेणी की वस्तुएं मिलती हैं। यदि आपको आईडी की आवश्यकता है तो आप बच्चे श्रेणियों के माध्यम से लूप कर सकते हैं और उनकी आईडी को संक्षिप्त कर सकते हैं। मुझे वास्तव में समझ नहीं आ रहा है कि आप क्या हासिल करने की कोशिश कर रहे हैं।
मारियस

^ ^ मैं चाहता हूं कि यह कहीं और स्पष्ट रूप से प्रलेखित किया गया था जो getChildren()बिना आईडी के getChildrenCategories()रिटर्न देता है , और सॉर्ट की गई वस्तुओं को लौटाता है। इसने मेरे लिए सब कुछ साफ कर दिया, मैजेंटो ने खुद को अब तक के रूप में स्पष्ट नहीं किया है।
वफ़ल

यकीन है कि getChildrenCategories फ्लैट श्रेणियों के साथ काम नहीं करता है
समीर

7

आप getChilderCategories () और toArray फ़ंक्शन के अच्छे मिश्रण का उपयोग करने के लिए अपना कोड बदलने का प्रयास कर सकते हैं।

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

GetChildrenCategories फ़ंक्शन आपको उसी अनुभाग में व्यवस्थापक अनुभाग के रूप में एक संग्रह देगा और फिरArray को कॉल करके और केवल हकदार_आईडी विशेषता के लिए पूछकर आपके पास श्रेणी आईडी की एक सरणी होगी

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"
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.