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

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

rss

Вы не зашли.

Объявление

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

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

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 (2020-02-18 13:27:38)


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

Неактивен

 

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

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

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

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

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

Неактивен

 

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

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

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

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

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

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

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

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

Неактивен

 

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

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

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

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

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


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

Неактивен

 

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

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

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

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

Неактивен

 

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

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

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

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

Неактивен

 

#7 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

Неактивен

 

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

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

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

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

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

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

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

Неактивен

 

#9 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"

Неактивен

 

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

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

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 }}

Неактивен

 

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

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

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

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

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

Неактивен

 

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

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

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

sidebar-l и sidebar-r

Неактивен

 

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

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

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

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

Код:

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

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

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

Неактивен

 

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

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

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

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

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

Неактивен

 

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

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

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

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

Неактивен

 

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

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

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

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

Неактивен

 

#17 2020-02-18 13:31:36

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

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

Плагин обновлен. Корректное получение настроек.

Отредактированно rusiq (2020-02-18 13:31:55)

Неактивен

 

#18 2020-02-18 17:49:09

irbees2008
Продвинутый чайник😁
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2648
Рейтинг :   111 
Профиль  Вебсайт

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

Я что не понял, файл https://github.com/russsiq/ng-x_filter/ … r_form.tpl, там 2 формы для категорий и для дополнительных полей , как эти формы объединить?

Неактивен

 

#19 2020-02-18 18:16:18

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

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

Берете переменную {{ catlist }} и вставляете во вторую форму, а первую форму удаляете. Берете файл JS и удаляете строки:

Код:

document
    .getElementById('catmenu')
    .addEventListener('change', function(event) {
        this.form.submit()
        event.preventDefault()
    });

Неактивен

 

#20 2020-02-19 11:05:04

irbees2008
Продвинутый чайник😁
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2648
Рейтинг :   111 
Профиль  Вебсайт

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

А можно скомпоновать с xnews? Или задать условие для блока xnews вывод новостей только с определенным доп.полем ?

Неактивен

 

#21 2020-02-19 23:02:43

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

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

Не понятно какая конечная цель, но возможно этим получится обойтись:

Код:

{% if not isHandler('x_filter') %}
<div id="widget"></div>
<script type="text/javascript">
    $.get('http://localhost/ng/plugin/x_filter/', {
            x_price: 90000,
            catid: 1,
            order: 'id_desc'
        })
        .done(function(data, textStatus, jqXHR) {
            $('#widget').html(
                $(data).find('.news_list')
            );
        })
        .fail(function(jqXHR, textStatus) {
            console.error(`Request failed: ${textStatus}`);
        });
</script>
{% endif %}

Если это не то, что нужно, то только за платно могу допилить плагин текущий плагин, чтобы было как минимум так:

Код:

{% if pluginIsActive('x_filter') %}
    {{ callPlugin('x_filter.widget', {
        'order': 'id_desc',
        'showNumber': 8,
        'page': 3,
        'search': 'Какой-нибудь поисковый запрос',
        'catid': 3,
        'skipcat': '1,4',
        'x_price': 128000,
        'cache': true,
        'cacheExpire': 60
    }) }}
{% endif %}

Неактивен

 

#22 Вчера 13:51:28

irbees2008
Продвинутый чайник😁
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2648
Рейтинг :   111 
Профиль  Вебсайт

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

500p?

Неактивен

 

#23 Вчера 14:34:13

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

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

1000 р. https://primorye.mts.ru/personal/mobilnaya-svyaz/uslugi/mobilnaya-svyaz/internet-maxi

Неактивен

 

Board footer

Powered by FluxBB

[ Generated in 0.015 seconds, 33 queries executed ]