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

Gameer

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

Поделиться сообщением


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

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

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

 

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

Поделиться сообщением


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

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

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

 

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

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

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

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

  • Нравится 3

Поделиться сообщением


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

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти