Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

rss

Вы не зашли.

Объявление

#1 2019-01-28 04:30:39

rusiq
гуру
Зарегистрирован: 2014-07-16
Сообщений: 524
Рейтинг :   32 
Профиль  Вебсайт

x_filter - фильтр записей

## Фильтр записей для NG CMS

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

https://raw.githubusercontent.com/russsiq/ng-x_filter/master/preview.png

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

1. Скачайте по ссылке ниже или с github, распакуйте в папку *\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/).

Отредактированно rusiq (2019-01-29 07:47:16)


Прикрепленные файлы:
x_filter.zip, Размер: 346,098 байт, Скачано: 90

Активен

 

#2 2020-01-16 08:25:48

oldbim
Пойманные на слове роботы
Зарегистрирован: 2020-01-16
Сообщений: 10
Рейтинг :   
Профиль

Re: x_filter - фильтр записей

Привет! Использую еще старую вашу версию поиска. Новая по каким то причинам не заработала. Не стал пока разбираться.
Вопрос вот в чем.
Допилите вариант в выпадающем списке существующих значений - не выбрано.
Т.е. на текущий момент можно только выбрать какой то из вариантов, а если стоит "не выбрано" то поле не учитывается и показываются все варианты.

К примеру я выбираю запчасти BMW и должен в другом поле выбрать "запчасти подвески" или "кузовные запчасти" и т.д.
А посмотреть все запчасти на BMW не получится.

Неактивен

 

#3 2020-01-16 08:35:01

rusiq
гуру
Зарегистрирован: 2014-07-16
Сообщений: 524
Рейтинг :   32 
Профиль  Вебсайт

Re: x_filter - фильтр записей

oldbim, добавьте в вопрос структуру вложенностей, чтобы можно было воспроизвести вашу проблему (задачу).

Отредактированно rusiq (2020-01-16 08:35:53)

Активен

 

#4 2020-01-16 08:43:05

oldbim
Пойманные на слове роботы
Зарегистрирован: 2020-01-16
Сообщений: 10
Рейтинг :   
Профиль

Re: x_filter - фильтр записей

И нужно что бы в каждом выпадающем меню было бы по умолчанию "все виды"

например марка:
- все
- бмв
- мерседес
- ауди
- ...

материал :
- все
- пластик
- металл
- и т.д.

цвет:
- все
- красный
- белый

Это можно как то реализовать?

Неактивен

 

#5 2020-01-16 09:15:05

rusiq
гуру
Зарегистрирован: 2014-07-16
Сообщений: 524
Рейтинг :   32 
Профиль  Вебсайт

Re: x_filter - фильтр записей

В выпадающих меню добавляется пункт - все - только при условии, что дополнительное поле имеет значение нет в опции Обязательное

Отредактированно rusiq (2020-01-17 06:57:46)


Прикрепленные файлы:
Снимок.PNG, Размер: 33,250 байт, Скачано: 4

Активен

 

#6 2020-01-16 09:18:25

oldbim
Пойманные на слове роботы
Зарегистрирован: 2020-01-16
Сообщений: 10
Рейтинг :   
Профиль

Re: x_filter - фильтр записей

Блин! Вот я дуралей=) Спасибо за помощь!

Неактивен

 

#7 2020-01-16 09:22:30

rusiq
гуру
Зарегистрирован: 2014-07-16
Сообщений: 524
Рейтинг :   32 
Профиль  Вебсайт

Re: x_filter - фильтр записей

oldbim, ничего страшного, спрашивайте.

Активен

 

#8 2020-01-18 14:51:00

oldbim
Пойманные на слове роботы
Зарегистрирован: 2020-01-16
Сообщений: 10
Рейтинг :   
Профиль

Re: x_filter - фильтр записей

Еще вопрос.
Сейчас столкнулся при использовании фильтра, при нескольких страницах записей, при нажатии на ссылку следующая страница или 2, 3 и т.д. фильтр почему то сбивается http://site.ru/?catid=&xfields_stereliz1=&page=2

Неактивен

 

#9 2020-01-18 15:00:22

oldbim
Пойманные на слове роботы
Зарегистрирован: 2020-01-16
Сообщений: 10
Рейтинг :   
Профиль

Re: x_filter - фильтр записей

должна выглядеть - http://site.ru/?xfields_cvet=&xfields_pol=%CA%EE%F8%EA%E0&xfields_sherst=&page=2
а получается http://site.ru/?catid=&xfields_stereliz1=&page=2

Неактивен

 

#10 2020-01-18 15:04:45

rusiq
гуру
Зарегистрирован: 2014-07-16
Сообщений: 524
Рейтинг :   32 
Профиль  Вебсайт

Re: x_filter - фильтр записей

oldbim, а ну теперь ясно про какую старую версию вы упоминали. Это вам на страницу абсолютно другого плагина, сомневаюсь, но может кто ответит там.

В этой версии плагина должно отображаться так plugin/x_filter/?x_price=125000&catid=4&order=id_desc&page=2

У вас какая версия движка и почему не пошла версия текущего плагина?

Отредактированно rusiq (2020-01-18 15:11:41)

Активен

 

#11 2020-01-18 15:31:55

oldbim
Пойманные на слове роботы
Зарегистрирован: 2020-01-16
Сообщений: 10
Рейтинг :   
Профиль

Re: x_filter - фильтр записей

Прошу прощения, думал модули одинаковые.

Версия 0.9.4 Release + GIT 20161231

На вашем модуле не получается выпадающее меню сделать.

- `{{ x_имя_доп_поля }}` выводит выпадающий список существующих значений данного поля


<form action="{{ plugin_link }}" method="post">
    <div class="mt-3 form-group">
        <div class="input-group">
            {{ x_cvet }}
            <div class="input-group-append">
                <button type="submit" class="xf_btn">✔</button>
            </div>
        </div>
    </div>
</form>

Но вместо выпадающего меню "Array"

Неактивен

 

#12 2020-01-18 15:43:33

rusiq
гуру
Зарегистрирован: 2014-07-16
Сообщений: 524
Рейтинг :   32 
Профиль  Вебсайт

Re: x_filter - фильтр записей

Вот фрагмент из шаблона плагина:

Код:

{% if x_price %}
  <div class="xf__item {{ x_price.active ? 'active' : '' }}">
    <label class="xf__title">{{ x_price.title }}</label>
    <div class="xf__body">{{ x_price.input }}</div>
  </div>
{% endif %}

То есть в вашем случае {{ x_cvet.input }}

Активен

 

#13 2020-01-18 15:53:40

oldbim
Пойманные на слове роботы
Зарегистрирован: 2020-01-16
Сообщений: 10
Рейтинг :   
Профиль

Re: x_filter - фильтр записей

Отлично, все заработало!

Скажите как подключить в результатах поиска левую или правую колонку?

Неактивен

 

#14 2020-01-18 16:08:03

rusiq
гуру
Зарегистрирован: 2014-07-16
Сообщений: 524
Рейтинг :   32 
Профиль  Вебсайт

Re: x_filter - фильтр записей

О каких колонках речь?

Активен

 

#15 2020-01-18 16:10:28

oldbim
Пойманные на слове роботы
Зарегистрирован: 2020-01-16
Сообщений: 10
Рейтинг :   
Профиль

Re: x_filter - фильтр записей

sidebar-l и sidebar-r

Неактивен

 

#16 2020-01-18 16:31:36

rusiq
гуру
Зарегистрирован: 2014-07-16
Сообщений: 524
Рейтинг :   32 
Профиль  Вебсайт

Re: x_filter - фильтр записей

Ну можно так попробовать:

Код:

{% if isHandler('x_filter') %}
  Страница фильтра
{% endif %}

Но это вопрос скорее по шаблонизатору, чем по плагину.

Отредактированно rusiq (2020-01-18 16:32:49)

Активен

 

#17 2020-01-18 16:43:13

oldbim
Пойманные на слове роботы
Зарегистрирован: 2020-01-16
Сообщений: 10
Рейтинг :   
Профиль

Re: x_filter - фильтр записей

Может я не правильно объяснился, когда нажимаю "применить фильтр" открывается страница фильтра /plugin/x_filter/?catid=2&order=id_desc

И вот там не подключены колонки.

Неактивен

 

#18 2020-01-18 16:51:49

rusiq
гуру
Зарегистрирован: 2014-07-16
Сообщений: 524
Рейтинг :   32 
Профиль  Вебсайт

Re: x_filter - фильтр записей

Если не ошибаюсь, то нужно смотреть шаблоны main.tpl и news.table.tpl вашего шаблона сайта, то есть при каких условиях задан вывод этих колонок.

Активен

 

#19 2020-01-18 17:05:17

oldbim
Пойманные на слове роботы
Зарегистрирован: 2020-01-16
Сообщений: 10
Рейтинг :   
Профиль

Re: x_filter - фильтр записей

Спасибо! Буду разбираться. Фильтр работает отлично!

Неактивен

 

Board footer

Powered by FluxBB

[ Generated in 0.009 seconds, 29 queries executed ]