• 223
  • 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

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

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

Ваше мнение

Как вам наш дизайн сайта?
Результаты

Облако тегов

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