Вывод фильтра в некоторых разделах
Материал из Umicms
Версия от 08:43, 18 сентября 2018; Aposio (обсуждение | вклад) (Новая страница: «'''Актуально для версии 18.''' Очень часто разделы каталога содержат малое количество това…»)
Актуально для версии 18.
Очень часто разделы каталога содержат малое количество товаров, которые помещаются на одной странице. По этой и другим причинам можно скрыть фильтр в определенных разделах, чтобы он не занимал лишнее место. Но вместо того, чтобы удалять из общих шаблонов фильтр, мы добавим возможность удобно скрывать его в определенных разделах.
Пример рассмотрен на шаблоне Demomarket.
1) Создаем поле для фильтра:
- Переходим в модуль "Шаблоны данных"
- Открываем редактирование "Раздела каталога"
- Добавляем группу кастомных полей и в ней поле "Скрыть фильтр" с идентификатором "hide_filter", отмечаем его как видимое поле
2) Добавляем условие в шаблон:
- Открываем файл шаблона разделов /templates/demomarket/php/catalog/category/leaf_category.phtml (файл, в котором вызывается шаблон фильтра):
- Добавляем в начало файла код:
$hierarchy = umiHierarchy::getInstance();
//Получаем id текущей страницы
$page = $hierarchy->getElement($variables['page']->{'id'});
//Получаем значение нашего поля
$hide_filter = $page->getValue('hide_filter');
- Заменяем код в строке:
<?= $this->render($variables, 'catalog/category/filters/index') ?>
- На следующий код:
<?php if ($hide_filter == null) echo $this->render($variables, 'catalog/category/filters/index'); ?>
- Теперь мы можем перейти в режим редактирования любого раздела каталога и отметить галочкой поле "Скрыть фильтр". В этом случае результат проверки ($hide_filter == null) вернет ответ false и фильтр не будет отображен.
Примеры:
- Фильтр не скрыт
- Фильтр скрыт