====== Блок "Магазин: Фильтры" ====== {{:blocks:block.gif }}Блок предназначен для вывода формы с фильтрами для поиска по каталогу товаров магазина. ===== Свойства ===== * Входит в базовый дистрибутив: Нет * Многократное использование: Да * Кэширование данных: Нет * Сопутствует модулю: [[:modules:shoplite|"Магазин"]] ===== Создание блока ===== Для создания блока нужно перейти к управлению блоками в "Сайт" -> "Блоки" и добавить новый блок, выбрав при этом в качестве базового типа "Магазин: Фильтры". {{ :blocks:blockfilters.jpg }} ===== Параметры ===== ^ Название ^ Идентификатор ^ Описание ^ | Раздел | idsec | Раздел магазина. | | Шаблон | template | Шаблон блока, по умолчанию shoplite_filters.tpl. | | Фильтры | filters | Список фильтров. | ===== Данные доступные в шаблоне (shoplite_filters.tpl) ===== Шаблон содержит форму, которая должна быть направлена на страницу result.html соответствующего раздела магазина. ==== $filters ==== Массив записей с данными о фильтрах. Каждая запись состоит из ключей: === field === Строковой идентификатор поля по которому происходит фильтрация. === type === Тип поля, в терминологии A.CMS, может принимать значения: * **string** - Строка. * **text** - Текст. * **select** - Значение из списка. * **mselect** - Множество значений из списка. * **int** - Целое число. * **float** - Дробное число. * **bool** - Логическое. В зависимости от типа поля, используются разные элементы ввода в форме. Например для числовых и дробных значений - это будет два поля для указания диапазона, а для строк и текста - одно поле для поиска по фрагменту. === caption === Надпись для фильтра в форме. === value === Выбранное значение, используется для начальных значений элементов ввода. === options === Ассоциированный массив с ключами и значениями списка. Имеет место только для полей типа select и mselect. === min === Имеет место только для числовых типов. Если ведется поиск по диапазону, то содержит массив с ключом: * **value** - выбранное (начальное) значение для минимального элемента диапазона. === max === Имеет место только для числовых типов. Если ведется поиск по диапазону, то содержит массив с ключом: * **value** - выбранное (начальное) значение для максимального элемента диапазона. ==== $form ==== Этот массив содержит те же данные что и [[#filters|$filters]], но позволяет получить к ним доступ по ключу - идентификатору поля. ==== Пример шаблона ====
{section name=i loop=$filters} {if $filters[i].type=='string' || $filters[i].type=='text'}

{$filters[i].caption}

{elseif $filters[i].type=='select'}

{$filters[i].caption}

{elseif $filters[i].type=='mselect'}

{$filters[i].caption}
{html_checkboxes name=$filters[i].field options=$filters[i].options checked=$filters[i].value separator="
"} {elseif $filters[i].type=='int' || $filters[i].type=='float'}

{$filters[i].caption}
от    до

{elseif $filters[i].type=='bool'}

{/if} {/section}