Заменить значение по умолчанию. Выберите вариант текста в раскрывающемся списке многоуровневой навигации Magento.

Я использую раскрывающиеся списки для отображения значений атрибутов многоуровневой навигации. У меня 3 фильтра - цена, размер и цвет. Вот что я пытаюсь сделать: 1. Получить раскрывающиеся списки для многоуровневых навигационных фильтров. 2. Сделайте так, чтобы метка/имя атрибута отображалась в качестве первого варианта. В настоящее время мой код устанавливает значение по умолчанию «Выберите вариант» для каждого раскрывающегося списка, которое я хотел бы заменить чем-то вроде «Выбрать цену», «Выбрать размер» и «Выбрать цвет». Вот мой текущий код для шаблона/каталога/слоя/фильтра.phtml. Выпадающий список работает, но я застрял в получении метки атрибута вместо «Выберите вариант».

<select onchange="setLocation(this.value)">
<option value='' disabled selected style='display:none;'>Choose an Option</option>
</option> 
<?php foreach ($this->getItems() as $_item): ?>
<option
    <?php if ($_item->getCount() > 0): ?>
    value="<?php echo $this->urlEscape($_item->getUrl()) ?>"><?php echo $_item->getLabel() ?>
    <?php else: echo '>' . $_item->getLabel() ?>
    <?php endif; ?>
    (<?php echo $_item->getCount() ?>)
</option>


person GKRP    schedule 12.09.2012    source источник
comment
Не могли бы вы рассказать подробнее о том, как вам удалось использовать выпадающие списки вместо нативных <a> фильтров?   -  person Hervé Guétin    schedule 12.09.2012
comment
Хорошо, выбора варианта не было в фильтре по умолчанию.phtml. Публикация старого и нового кода в моем вопросе.   -  person GKRP    schedule 12.09.2012
comment
Голосуйте за закрытие: специфичные для установки, а не общие вопросы для Magento. Разве вы не можете просто найти текст в своих файлах, чтобы узнать, откуда он взялся?   -  person Theodores    schedule 12.09.2012
comment
Ну, я пытаюсь решить то, что должно быть простой проблемой - получить значения атрибутов в раскрывающемся списке, а затем показать метку в качестве параметра по умолчанию. Я получил первую часть с одной из плат, и пытаюсь понять, как сделать вторую. Я уверен, что многие люди были бы заинтересованы в решении :)   -  person GKRP    schedule 12.09.2012


Ответы (1)


Попробуйте этот код. Он протестирован во всех браузерах.

<select onchange="setLocation(this.value)">
<?php $count = 0; ?>
 <?php foreach ($this->getItems() as $_item): ?> 
 <?php $count++; ?>
 <?php if($count == 1): ?>
<option value='' disabled selected style='display:none;'>Choose <?php echo $attribute_code = $_item->getFilter()->getName();?> </option> 
<?php endif; ?>
<option <?php if ($_item->getCount() > 0): ?> value="<?php echo $this->urlEscape($_item->getUrl()) ?>">
<?php echo $_item->getLabel() ?> <?php else: echo '>' . $_item->getLabel() ?> <?php endif; ?> (<?php echo $_item->getCount() ?>) </option>
<?php endforeach; ?> 
</select>
person Palanikumar    schedule 12.09.2012
comment
Ок, похоже проблема в Safari и IE. Я получаю раскрывающийся список с повторяющимся именем фильтра снова и снова. Вот так: (для ценового фильтра) - Выберите цену, 0,00–49,99 долларов США, выберите цену, 50,00–99,99 долларов США, выберите цену и т. д. Нажатие на любое из повторяющихся значений «Выбрать цену» приводит к ошибке 404. Ошибка появляется только в Safari и IE. В IE я не могу выбрать значение «Выбрать цену», но в Safari могу, и это приводит меня к странице 404. Любая идея, почему это происходит? - person GKRP; 14.09.2012
comment
Спасибо! Хорошо работает во всех браузерах. - person GKRP; 19.09.2012