• 303
  • 0
  • Адаптировал: rusiq
  • Уровень сложности исполнения: Справочник

Вот еще одна реализация фильтра по дополнительным полям от Русика.
Плагин позволяет установить на сайте фильтр записей по категориям и дополнительным полям xfields с поддержкой полнотекстового поиска. Плагин поддерживает дополнительные поля типа *input* и *select*. Для полей типа input создается выборка (доп. SQL-запрос) всех возможных значений и отображается в виде выпадающего списка. Данный запрос можно кешировать, установив время в настройках плагина.

### Подключение

1. Скачайте плагин , распакуйте в папку *\engine\plugins\x_filter* вашей cms.
2. Перед включением:
- Установите и включите плагин *xfields*, создайте дополнительные поля.
- При создании доп. поля выбирайте Режим сохранения данных: **Персональное поле в БД**.
3. Для отображения формы фильтра на сайте разместите переменную `{{ x_filter_form }}` в шаблоне **main.tpl**.
4. Для отображения формы поиска на сайте разместите переменную `{{ x_filter_search_form }}` в шаблоне **news.table.tpl**.

### Доступные переменные в шаблонах

#### Шаблон плагина `x_filter\filter_form.tpl`:

- `{{ form_action }}` ссылка для для атрибута action формы фильтра
- `{{ plugin_link }}` ссылка на главную страницу плагина
- `{{ catid }}` id текущей категории
- `{{ search }}` поисковое слово, если было заполнено пользователем
- `{{ catlist }}` выпадающий список категорий сайта
- `{{ order }}` порядок сортировки результатов фильтрации
- `{{ x_имя_доп_поля }}` выводит выпадающий список существующих значений данного поля

#### Шаблон плагина `x_filter\search_form.tpl`:

- `{{ form_action }}` ссылка для для атрибута action формы фильтра
- `{{ plugin_link }}` ссылка на главную страницу плагина
- `{{ catid }}` id текущей категории
- `{{ search }}` поисковое слово, если было заполнено пользователем
- `{{ count }}` количество отфильтрованных записей

#### Шаблон сайта `news.table.tpl`:

- `{{ form_action }}` ссылка для для атрибута action формы фильтра
- `{{ plugin_link }}` ссылка на главную страницу плагина
- `{{ catid }}` id текущей категории
- `{{ search }}` поисковое слово, если было заполнено пользователем
- `{{ catlist }}` выпадающий список категорий сайта
- `{{ count }}` количество отфильтрованных записей
- `{{ data }}` массив отфильтрованных записей
- `{{ pages }}` информация о страницах:
- `{{ pages.current }}` номер текущей страницы
- `{{ pages.total }}` количество страниц
- `{{ pages.output }}` html код постраничной навигации; тоже что и `{{pagination}}`
- `{{ pagination }}` html код постраничной навигации
- `{{ x_filter_search_form }}` форма поиска

### Дополнительно можно настроить:

- категории, которые следует скрывать из выпадающего списка категорий, формируемом переменной `{{ catlist }}`
- возможность выбора из всех категорий (в списке категорий будет установленное по умолчанию значение "- все -")
- порядок вывода новостей и их количество на странице
- расположение шаблона (шаблон сайта / шаблон плагина)
- опциональное встраивание на страницу файла таблицы стилей из шаблона
- опциональное встраивание на страницу файла javascript из шаблона
- возможность задания страницам фильтра канонической ссылки
- возможность запрета индексации страниц фильтра поисковыми роботами

### Лицензия

`x_filter` - программное обеспечение с открытым исходным кодом, распространяющееся по лицензии [MIT](https://choosealicense.com/licenses/mit/).

Можешь почитать и вот эту статейку "Выводим Нужный блок только на главной "

mistakes

Это тоже интересно

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

Ваше мнение

Ваше отношение к TWIG
Результаты

Облако тегов

Anything in here will be replaced on browsers that support the canvas element