CMS DataLife Engine - Система управления сайтами

Gameer

Easy Filter - простой фильтр для DataLife Engine

Recommended Posts

1526748702_screenshot_1.png

С помощью этого простого модуля вы сможете реализовать у себя фильтр по дополнительным полям. Модуль полностью работает на AJAX, никакой перезагрузки страницы. А так же имеет базовые настройки.

 

Требования к системе:

  • Версия DLE: 13.0 и выше
  • Поддерживаемая кодировка: UTF-8
  • Версия php: 5.4 и выше

 

Так как на форуме нельзя заливать ни скриншотов, ни файлов ниже прилагаю ссылки.

 

Скачать и посмотреть скриншоты - https://punpun.name/portfolio/56-easy-filter.html

Документация по модулю - https://punpun.name/doc/easy-filter.html

  • Like 2

Share this post


Link to post
Share on other sites

Поставил данный фильтр по инструкции, но вместо картинок со скриншотов, отображается:

 

BdFZf.jpg

 

Соответственно ничего не фильтруется. Как заставить его работать и вывести хотя бы ползунок сортировки по годам, как на скриншоте в первом сообщении?

Share this post


Link to post
Share on other sites
14 минут назад, Mek сказал:

Поставил данный фильтр по инструкции, но вместо картинок со скриншотов, отображается:

 

BdFZf.jpg

 

Соответственно ничего не фильтруется. Как заставить его работать и вывести хотя бы ползунок сортировки по годам, как на скриншоте в первом сообщении?

1. Стили вашего сайта могут конфликтовать со стилями модуля. В новой версии я полностью прикреплю стили к самому фильтру и тогда проблем не будет.

2. Для вывода данных у нас есть два tpl файла, первый это filter_block.tpl и filter_value.tpl. В первом мы задаем сам блок внутри которого будут наши данные. Например:

[janre]
	<div class="fb-sect-name">Выберите жанр</div>
	<div class="fb-sect fb-sel">
		<select name="janre" multiple data-placeholder="Выберите жанр">
			<option value=""> - </option>
			{janre-value}
		</select>
	</div>
[/janre]

[janre]любой текст внутри[/janre] - создает блок с оформление вашего дополнительного поля с названием janre. Вы можете подставлять любое дополнительное поле вместо janre.

{janre-value} - будет выводить оформление значений вашего дополнительного поля с названием janre. А оформление значений берется с filter_value.tpl

Внутри filter_value.tpl задаете

[janre]
	<option value="{value}" data-key='{key}-{value}' {disabled} [check]selected[/check]> {value} ({count})</option>
[/janre]

[janre]любой текст внутри[/janre] - нужен для того что бы прикрепить дизайн значений именно к дополнительному полю janre.

{value} - это уже не посредственно тег который выведет значение дополнительного поля.

data-key='{key}-{value}' - нужен для работы модуля. Его всегда нужно вставлять в ваше оформление значений.

{disabled} - это тег который отвечает за то что бы не давать пользователю выбирать значения у которых не осталось новостей для показа.

[check]selected[/check] - нужен для того что бы когда блок фильтра обновлялся ваши данные в select или input type=radio / checkbox не пропадали как выбранные. Для input type=radio / checkbox нужно прописать [check]checked[/check].

{count} - это количество новостей с этим значением дополнительного поля - в данном случае janre. А так же количество будет меняться по мере выбора других данных в фильтре.

 

Для того что бы задать слайдер.

Создайте в filter_block.tpl ваш блок дополнительного поля, потом в filter_value.tpl привяжите его оформление и внутри вставьте

[year]
	<input type="text" name="slider-{key}" data-ionRangeSlider='ionRangeSlider' data-key='{key}'>
[/year]

year просто как пример.

Далее откройте /templates/Ваш шаблон/mod_punpun/easy_filter/js/easy_filter.js и внутри функции SliderInit внутри $(function() { вставьте

$("[name=slider-year]").ionRangeSlider({
    min: 1990,
    max: 2019,
    from: 1990,
    to: 2019,
    type: 'double',
    prefix: "Год ",
    grid: true,
    grid_num: 10
});

Выйдет что-то вроде этого

function SliderInit() {
    $(function() {
        $("[name=slider-year]").ionRangeSlider({
            min: 2010,
            max: 2019,
            from: 2010,
            to: 2019,
            type: 'double',
            prefix: "Год ",
            grid: true,
            grid_num: 10
        });
    });
}

Я планирую полностью переписать фильтр, может есть у вас какие-то предложения. Сообщите их тут.

Share this post


Link to post
Share on other sites
2 часа назад, Gameer сказал:

может есть у вас какие-то предложения. Сообщите их тут.

С выпуском DLE13 версии решили свести до минимума правки движка при установке сторонних модулей, но при установки этого модуля опять приходится править код. Правда уже самого модуля.

Сделайте чтоб модуль автоматически подтягивал (хотя бы) все доп поля с сайта. И чтоб на 100% всё настраивалось через админку.

Вместо пункта "Исключить категории", лучше сделать пункт "Категории для фильтрации" в котором нужно выбрать все категории по которым будет работать фильтр.

Далее сделать выбор доп полей для фильтрации и у каждого возможность выбора: 1- Множественный выбор. 2-Чекбокс. 3-Список.

Для доп поля "год" автоматически делать слайдер.

 

Вот в принципе и всё! Выбрал категории, задал разброс по годам, поставил чекбокс на против нужных авторов и всё.

Не нужно усложнять и нагружать модуль, всё должно быть просто и интуитивно понятно.

Настройку "Сортировать по умолчанию" можно сделать доступно пользователю, чтоб он сам выбирал какую сортировку он хочет получить.

 

Примерно вот так:

BdIwa.jpg

 

Edited by Mek

Share this post


Link to post
Share on other sites
44 минуты назад, Mek сказал:

С выпуском DLE13 версии решили свести до минимума правки движка при установке сторонних модулей, но при установки этого модуля опять приходится править код. Правда уже самого модуля.

Это не правки кода движка и даже не правки кода модуля, это его настройка.

1 час назад, Mek сказал:

Сделайте чтоб модуль автоматически подтягивал (хотя бы) все доп поля с сайта. И чтоб на 100% всё настраивалось через админку.

Вместо пункта "Исключить категории", лучше сделать пункт "Категории для фильтрации" в котором нужно выбрать все категории по которым будет работать фильтр.

Далее сделать выбор доп полей для фильтрации и у каждого возможность выбора: 1- Множественный выбор. 2-Чекбокс. 3-Список.

Для доп поля "год" автоматически делать слайдер.

Ок.

  • Like 1

Share this post


Link to post
Share on other sites

Есть предложение. Например, у нас две категории - Фильмы и Сериалы.

И есть одно дополнительное поле - Язык.

 

И вот если выбрать, например, Русский, то фильтр выведет и фильмы и сериалы на русском. А хотелось бы, чтобы в категории Фильмы он выводил только фильмы, а в Сериалах сериалы. То есть используется одно дополнительное поле, но фильтрация происходит в пределах категории.

Share this post


Link to post
Share on other sites
1 час назад, Spyhog сказал:

Есть предложение. Например, у нас две категории - Фильмы и Сериалы.

И есть одно дополнительное поле - Язык.

 

И вот если выбрать, например, Русский, то фильтр выведет и фильмы и сериалы на русском. А хотелось бы, чтобы в категории Фильмы он выводил только фильмы, а в Сериалах сериалы. То есть используется одно дополнительное поле, но фильтрация происходит в пределах категории.

Ну так так оно и есть. Выбираете категорию "Фильмы" и ставите галочку на против языка "Русский".

И выводятся все фильмы на русском языке. Добавляете в фильтр две категории, и он начинает искать фильмы и сериалы на русском.

Share this post


Link to post
Share on other sites
24 минуты назад, Mek сказал:

Ну так так оно и есть. Выбираете категорию "Фильмы" и ставите галочку на против языка "Русский".

И выводятся все фильмы на русском языке. Добавляете в фильтр две категории, и он начинает искать фильмы и сериалы на русском.

Мне не надо выбирать категории вручную. Мне нужна лишь сортировка по языку в пределах категории. Чтоб не было лишних функций, а была только надпись Выберите язык и всё.

Share this post


Link to post
Share on other sites

Вышла версия 2.0.0 для бета тестирования.

Share this post


Link to post
Share on other sites

Gameer, да сделайте вы наконец демо версию своего модуля!!! Чтоб было наглядно видно как он работает.

  • Like 3
  • Upvote 1

Share this post


Link to post
Share on other sites
1 час назад, ntrtv сказал:

А почему не работает страница документации https://punpun.name/doc/easy-filter.html и перекидывает на сайт lazydev.pro где об этом модуле ни слова нет?

Потому что модуль еще не выложен на основном сайте.

Share this post


Link to post
Share on other sites
В 17.11.2018 в 20:52, Gameer сказал:

Потому что модуль еще не выложен на основном сайте.

видимо его не собираются выкладывать на основной сайт 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now