Как сделать блок пошаговой фильтрации наподобие rezina.cc/shiny?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Александр korbax
  • Группа: Пользователь
  • Сообщений: 3
  • Регистрация: 16.02.2012

16.02.2012 17:44

Здравствуйте.
Подскажите пожалуйста как можна настроить вывод атрибутов таким образом чтобы часть из них выводилась как выподающий список, а часть как обычный список с гиперссылками.

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

16.02.2012 17:45

Приведите пример требуемой функциональности на работающем магазине.

#3 Александр korbax
  • Группа: Пользователь
  • Сообщений: 3
  • Регистрация: 16.02.2012

16.02.2012 17:52

http://rezina.cc/shiny

Вверху три параметра отображаются как выпадающий список: ширина, профиль, глубина, а ниже идет обычный список с ссылками

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

16.02.2012 17:57

Вам нужно либо сделать свой шаблон для стандартного блока пошаговой фильтрации, либо купить модуль пошаговой фильтрации с требуемыми элементами управления.

#5 Александр korbax
  • Группа: Пользователь
  • Сообщений: 3
  • Регистрация: 16.02.2012

16.02.2012 18:28

смотрите по умолчанию в Magento используется такой код в filter.phtml
<ol>
<?php foreach ($this->getItems() as $_item): ?>

<?php //echo "<pre>" . print_r(get_class_methods($_item)) . "</pre>" ?>
<li>
<?php if ($_item->getCount() > 0): ?>
<a href="<?php echo $this->urlEscape($_item->getUrl()) ?>"><?php echo $_item->getLabel() ?></a>
<?php else: echo $_item->getLabel() ?>
<?php endif; ?>
(<?php echo $_item->getCount() ?>)
</li>
<?php endforeach ?>
</ol>

я его изменил на:
<select id="select-filter" onchange="setLocation(this.value)">
<?php foreach ($this->getItems() as $_item): ?>

<option value="<?php echo $this->urlEscape($_item->getUrl()) ?>" >
<?php if ($_item->getCount() > 0): ?>
<a href="<?php echo $this->urlEscape($_item->getUrl()) ?>"><?php echo $_item->getLabel() ?></a>
<?php else: echo $_item->getLabel() ?>
<?php endif; ?>
(<?php echo $_item->getCount() ?>)
</option>


<?php endforeach ?>
</select>

и теперь выводятся все атрибуты как выпадающим списком так и обычным, не могу понять как указать что такие то атрибуты выводятся таким образом а эти другим

#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

16.02.2012 19:46

Опознать то или иное свойство можно по его системному имени.

Поделиться темой: