2010-02-06 5 views
0

Я пытаюсь выяснить, как получить код атрибута из списка фильтров в Magento.Magento: Получение кода атрибута

<?php 
$_filters = $this->getFilters(); 
foreach ($_filters as $_filter) 
{ 
    echo $this->__($_filter->getName()); 
    echo $this->__($_filter->getAttributeCode()); # color_name 
} 
?> 

getAttributeCode() is not method. Я хочу задать CSS имя класса для каждого фильтра к attribute_code в приложение/дизайн/интерфейс/по умолчанию/по умолчанию/шаблон/каталог/слой/view.phtml

ответ

14

Следующая будет работать:

foreach($filters as $_filter) 
{ 
    $attributeModel = $_filter->getAttributeModel(); 
    if($attributeModel) { 
     echo $attributeModel->getAttributeCode(); 
    } 
} 

Ключ здесь состоит в том, чтобы проверить, что фильтр на самом деле является атрибутом, поскольку некоторые из них не являются (чаще всего категориями), и эти типы фильтров, очевидно, не будут иметь код атрибута.

+0

Спасибо большое. Я был почти там, получив его от $ this -> _ getFilterableAttributes() Функция getFilters() в приложении/код/​​ядро ​​/ Маг/Каталог/Block/Layer/View.php: $ filters [] = $ this- > GetChild ($ attribute-> getAttributeCode() .'_ фильтр '); – MotionGrafika

3

Остерегайтесь, если вы хотите использовать этот фрагмент в /catalog/layered/state.phtml; пожалуйста, используйте

$attributeModel = $_filter->getFilter()->getAttributeModel(); 

вместо

$attributeModel = $_filter->getAttributeModel(); 
Смежные вопросы