Перейти к публикации

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


Рекомендованные сообщения

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

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

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

 

BdFZf.jpg

 

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

Ссылка на сообщение
Поделиться на других сайтах
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
        });
    });
}

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

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Gameer сказал:

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

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

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

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

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

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

 

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

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

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

 

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

BdIwa.jpg

 

Изменено пользователем Mek
Ссылка на сообщение
Поделиться на других сайтах
44 минуты назад, Mek сказал:

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

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

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

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

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

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

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

Ок.

Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Spyhog сказал:

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

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

 

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
24 минуты назад, Mek сказал:

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...
  • 4 месяца спустя...

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

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, ntrtv сказал:

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

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

Ссылка на сообщение
Поделиться на других сайтах
  • 4 месяца спустя...
В 17.11.2018 в 20:52, Gameer сказал:

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

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

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...
В 19.05.2018 в 22:14, Gameer сказал:

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

Здравствуй. Установил, разобрался, но есть баг. Если доп поле содержит пробел то выдает ошибку синтакиса (ниже скрин). Ни кто не знает как это исправить?123.jpg

Ссылка на сообщение
Поделиться на других сайтах

Может кому полезно будет, проблему удалось решить использованием связки 

Сервировочный&nbsp;столик|Сервировочный столик

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

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...