2012-08-08 13 views
10

Magento में, यदि "रंग" विशेषता स्तरित नेविगेशन में चुना जाता है, तो "रंग" के मान स्वचालित रूप से गायब हो जाते हैं और परिणाम प्रदर्शित होते जा रहे हैं। चयनित फ़िल्टर का नाम कैसे प्राप्त करें?Magento स्तरित नेविगेशन में चयनित फ़िल्टर प्राप्त करें

उत्तर

29

सभी लागू फ़िल्टर परत स्थिति ऑब्जेक्ट में संग्रहीत हैं। आप निम्न स्निपेट का उपयोग कर उन्हें आसानी से पुनर्प्राप्त कर सकते हैं:

$appliedFilters = Mage::getSingleton('catalog/layer')->getState()->getFilters(); 

यह आपको फ़िल्टर आइटम ऑब्जेक्ट्स की एक सरणी वापस कर देगा। आप इस तरह कुछ ऐसा करके एक फ़िल्टर आइटम के नाम और लागू मूल्य को पुनर्प्राप्त कर सकते हैं:

foreach ($appliedFilters as $item) { 
    $item->getName(); // Name of the filter 
    $item->getLabel(); // Currently selected value 
    $item->getFilter()->getRequestVar(); // Filter code (usually attribute code, except category filter, where it equals "cat") 
} 
+1

$ आइटम-> getFilter() -> getRequestVar(); // फिल्टर का गुण कोड –

+2

मुझे विशेषता "रंग" की आईडी कैसे प्राप्त हो सकती है? – Muk

+0

महान जवाब! किसी को पता है कि फ़िल्टर का कोड (या संख्या आईडी) कैसे प्राप्त करें? तो उदाहरण के लिए मेरे मामले में कलर फ़िल्टर आईडी 187 है, मैंने इसे डेटाबेस में देखा, लेकिन मैं इसे php के साथ कैसे प्राप्त करूं? –

संबंधित मुद्दे