Вы не зашли.
Страницы 1
Страница плагина: https://github.com/russsiq/ng-x_filter
Версия плагина 0.3.0 включает критические обновления
В текущей версии плагина 0.4.0 реализованы "ползунки": возможность выбора в интервале значений для доп. полей (от и до).
Такие поля должны быть созданы с опцией Тип поля в БД: int - только цифры
[hr /]
[hr /]
## Фильтр записей для NG CMS
Плагин позволяет установить на сайте фильтр записей по категориям и дополнительным полям `xfields` с поддержкой полнотекстового поиска.
Плагин поддерживает дополнительные поля типа **Текстовый** (`input`) и **Выбор значения** (`select`).
Для полей типа `input` создается выборка (дополнительный SQL-запрос) всех возможных значений и отображается в виде выпадающего списка. Данный запрос можно кешировать, установив время в настройках плагина.
### Подготовка к подключению
Перед включением плагина `x_filter`:
1. Установите и включите плагин `xfields`.
2. Создайте необходимые дополнительные поля.
3. При создании дополнительных полей выбирайте опцию:
- *Режим сохранения данных:* **Персональное поле в БД**.
### Подключение
1. Скачайте архив с плагином и распакуйте содержимое в папку *\engine\plugins\x_filter* вашей CMS.
2. Установите и включите плагин в панели управления.
Для отображения формы фильтра на сайте разместите переменную `{{ x_filter_form }}` в шаблоне **main.tpl**, например в боковой панели:
```html
<aside id="sidebar">
{% if pluginIsActive('x_filter') %}
<div class="block">
{{ x_filter_form }}
</div>
{% endif %}
</aside>
```
Для отображения виджета на сайте используйте функцию вызова `{{ callPlugin('x_filter.widget', {...}) }}` в шаблоне **main.tpl**, например в боковой панели:
```html
<aside id="sidebar">
{% if pluginIsActive('x_filter') %}
<div class="block">
{{ callPlugin('x_filter.widget', {
'page': 1,
'showNumber': 8,
'order': 'id_desc',
'search': 'Какой-нибудь поисковый запрос',
'catid': 6,
'skipcat': '2,4',
'x_price': 179000,
'x_color': 'красный',
'cache': true,
'cacheExpire': 60,
'template': 'default',
'extractEmbeddedItems': true
}) }}
</div>
{% endif %}
</aside>
```
### Доступные переменные в шаблонах
#### Шаблон плагина `filter_form.tpl`
- `{{ plugin_link }}` - ссылка на главную страницу плагина
- `{{ catid }}` - `id` текущей категории
- `{{ search }}` - поисковое слово, если было заполнено пользователем
- `{{ catlist }}` - выпадающий список категорий сайта
- `{{ order }}` - порядок сортировки результатов фильтрации
- `{{ x_имя_доп_поля }}` - выводит выпадающий список существующих значений дополнительного поля текущей категории
#### Шаблон сайта `news.table.tpl`
- `{{ count }}` - количество отфильтрованных записей
- `{{ data }}` - массив отфильтрованных записей
- `{{ pages }}` - информация о страницах:
- `{{ pages.current }}` - номер текущей страницы
- `{{ pages.total }}` - количество страниц
- `{{ pagination }}` - HTML-код постраничной навигации
Примерная структура шаблона `news.table.tpl` с выводом количества отфильтрованных новостей:
```html
{% if (pluginIsActive('x_filter') and isHandler('x_filter')) %}
<h2>{{ lang['x_filter:page_title'] }} <small class="float-right text-muted">{{ count }}</small></h2>
<hr>
{% endif %}
{% for entry in data %}
{{ entry }}
{% else %}
<div class="alert alert-info">{{ lang['msgi_no_news'] }}</div>
{% endfor %}
{{ pagination }}
```
#### Шаблон виджета `widget.tpl`
- `{{ count }}` - количество отфильтрованных записей
- `{{ entries }}` - массив отфильтрованных записей
Примерная структура шаблона `widget.tpl` с выводом количества отфильтрованных новостей:
```html
{% for entry in entries %}
{{ entry }}
{% endfor %}
```
#### Шаблон виджета `entries.tpl`
- `{{ count }}` - количество отфильтрованных записей
- `{{ entries }}` - массив отфильтрованных записей
Примерная структура шаблона `entries.tpl` с извлеченным изображением:
```html
<article>
<a href="{{ news.url.full }}">{{ news.title|truncateHTML(70,'...') }}</a>
<span>{{ news.author.name }}, {{ news.categories.masterText }}</span>
<span>{{ p.xfields.price.value }}</span>
<div class="article-img" style="overflow: hidden;">
{% if (news.embed.imgCount > 0) %}
<img src="{{ news.embed.images[0] }}" width="315" height="161"/>
{% else %}
<img src="{{ tpl_url }}/img/img-none.png" width="315" height="161"/>
{% endif %}
</div>
</article>
```
### Дополнительно можно настроить:
- категории, которые следует скрывать из выпадающего списка категорий, формируемом переменной `{{ catlist }}`
- возможность выбора из всех категорий (в списке категорий будет установленное по умолчанию значение "- все -")
- порядок вывода новостей и их количество на странице
- расположение шаблона (шаблон сайта / шаблон плагина)
- опциональное встраивание на страницу файла CSS из шаблона
- опциональное встраивание на страницу файла JavaScript из шаблона
- возможность задания страницам фильтра канонической ссылки
- возможность запрета индексации страниц фильтра поисковыми роботами
### Лицензия
`ng-x_filter` - программное обеспечение с открытым исходным кодом, распространяющееся по лицензии [MIT](LICENSE).
Изменено rusiq (2020-03-05 23:51:57)
Не в сети
Привет! Использую еще старую вашу версию поиска. Новая по каким то причинам не заработала. Не стал пока разбираться.
Вопрос вот в чем.
Допилите вариант в выпадающем списке существующих значений - не выбрано.
Т.е. на текущий момент можно только выбрать какой то из вариантов, а если стоит "не выбрано" то поле не учитывается и показываются все варианты.
К примеру я выбираю запчасти BMW и должен в другом поле выбрать "запчасти подвески" или "кузовные запчасти" и т.д.
А посмотреть все запчасти на BMW не получится.
Не в сети
И нужно что бы в каждом выпадающем меню было бы по умолчанию "все виды"
например марка:
- все
- бмв
- мерседес
- ауди
- ...
материал :
- все
- пластик
- металл
- и т.д.
цвет:
- все
- красный
- белый
Это можно как то реализовать?
Не в сети
Еще вопрос.
Сейчас столкнулся при использовании фильтра, при нескольких страницах записей, при нажатии на ссылку следующая страница или 2, 3 и т.д. фильтр почему то сбивается http://site.ru/?catid=&xfields_stereliz1=&page=2
Не в сети
oldbim, а ну теперь ясно про какую старую версию вы упоминали. Это вам на страницу абсолютно другого плагина, сомневаюсь, но может кто ответит там.
В этой версии плагина должно отображаться так plugin/x_filter/?x_price=125000&catid=4&order=id_desc&page=2
У вас какая версия движка и почему не пошла версия текущего плагина?
Изменено rusiq (2020-01-18 16:11:41)
Не в сети
Прошу прощения, думал модули одинаковые.
Версия 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"
Не в сети
Вот фрагмент из шаблона плагина:
{% 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 }}
Не в сети
Я что не понял, файл https://github.com/russsiq/ng-x_filter/ … r_form.tpl, там 2 формы для категорий и для дополнительных полей , как эти формы объединить?
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
Берете переменную {{ catlist }} и вставляете во вторую форму, а первую форму удаляете. Берете файл JS и удаляете строки:
document
.getElementById('catmenu')
.addEventListener('change', function(event) {
this.form.submit()
event.preventDefault()
});
Не в сети
А можно скомпоновать с xnews? Или задать условие для блока xnews вывод новостей только с определенным доп.полем ?
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
Не понятно какая конечная цель, но возможно этим получится обойтись:
{% 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 %}
Не в сети
Версия плагина 0.3.0 включает критические обновления
Набросал дополнения к плагину.
Теперь необходимо определиться, какие дополнительные настройки и функциональность необходимо перенять из плагина xnews.
Изменено rusiq (2020-03-05 23:53:48)
Не в сети
Все сделано отлично,благодарю
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
Страницы 1