S
shalex290485
Участник
- Регистрация
- 3 Окт 2021
- Сообщения
- 99
- Реакции
- 216
Замена стандартной сортировки новостей с возможностью сортировать по доп.полям, а так же небольшой фильтр.
Модуль выводится в main.tpl тегом {include file="..."} и выглядит следующим образом:
Демо: film.sandev.pro
Информация
Для работы модуля - требуется ionCube Loader.
Версия DLE: 9.6 - 15.3 (16.0 не поддерживает)
Версия PHP: 5.6 - 7.4, 8.1
Автор модуля: - @sandev
Комплект: Модуль+KeyGen
Активация лицензии:
Для активации, сгенерируйте ключ в KeyGen, прописать ваш домен вместо "ЗДЕСЬ ВАШ ДОМЕН" кинуть файл в корень сайта и запустить файл сайт.ру/key_xsort.php
Откройте файл /engine/mods/xsort/config.php найдите там $activation_key = 'сюда-ключ'; и впишите вместо сюда-ключ.
Модуль выводится в main.tpl тегом {include file="..."} и выглядит следующим образом:
О сортировке.
Изначальное состояние окна выбора сортировки:
При выборе какого-либо пункта перезагрузка контента выполняется на ajax (без перезагрузки страницы). Изначально контент сортируется от большего к меньшему. Выбрав "год", в самом начале будут отображаться новости 2016 года.
После выбора, у кнопка появляется подсветка:
И развернутый вид:
При повторном клике на ту же сортировку, результат выдачи инвертируется, т.е. идет сортировка уже от меньшего к большему.
Примечание: При сортировке по алфавиту, от большего к меньшему сортировка будет развернутая. Т.к. буква "Я" - больше чем буква "А". Для таких случаев в настройках есть параметр реверса с помощью которого можно развернуть изначальную выдачу.
Все пункты сортировки легко можно поменять, удалить или добавить.
О фильтре.
Пользователь может выбрать только по одному пункту в каждом блоке. Вот к примеру боевик 2015 года отсортированный по рейтингу кинопоиска:
Выбрать одновременно 2 пункта в одном блоке - невозможно. Чтобы можно было выбрать, скажем "боевик и вестерн" - необходимо будет создать 2 блока с перечнем жанров. В одном блоке можно выбрать только один пункт. Изменить или "доработать" это нельзя.
Рассмотрим вариант разделения пунктов выборки значений одного поля по разным блокам.
У меня в поле "жанр" помимо жанров, так же указывается тип мультфильма: "мультфильм" или "аниме".
Например в фильме "Зверополис" в поле жанр указано: "боевик, комедия, мультфильм, приключения, семейный"
Таким образом можно выбрать 2 значения жанра: мультфильм и боевик:
Фильтр и сортировка работают в пределах просматриваемой страницы. Т.е. в категории "Сериалы" будет выполняться фильтр только среди сериалов.
Например - русский сериал мелодрама 2016 года:
Так же фильтр и сортировка могут работать на страницах поиска по доп. полям (не путать со стандартным поиском, там не работает).
Например мы хотим посмотреть фильм где снимались одновременно Шварценеггер и Сталлоне. Для этого открываем страницу /xfsearch/Арнольд+Шварценеггер/ и в фильтре выбираем Сталлоне, в результате получим:
Особенности
- Модуль предназначен только для пользователей. Поисковики индексировать такие страницы не будут. "Доработать" это невозможно.
- Выбор фильтра запоминается только для выбранной страницы. Выбрав фильтры в категории "фильмы" и перейдя в категорию "сериалы" все фильтры будут сброшены на значения "по умолчанию". Но при этом вернувшись обратно в категорию "фильмы" все фильтры будут отмечены. Но если выбрать фильтр в категории сериалов и вернуться в фильмы, то будет наоборот - в категории "фильмы" все будет по нулям, а в категории "сериалы" запомнятся выбранные значения.
- Модуль никак не влияет на содержимое и заполнение новостей. Он только сортирует и фильтрует новости на основании тех данных, что указаны в новости.
- Для каждой категории/раздела можно настроить свои блоки. Например в категориях "фильмы" и "сериалы" блок "тип м/ф" совершенно не нужен, поэтому для каждой группы категорий можно настроить свои поля. Это делается через строку подключения:
+Bonus
Т.к. админки нету, я решил сделать небольшую "лентяйку". Она формирует список всех значений доп.полей в формате конфиг файла.
Изначальное состояние окна выбора сортировки:
При выборе какого-либо пункта перезагрузка контента выполняется на ajax (без перезагрузки страницы). Изначально контент сортируется от большего к меньшему. Выбрав "год", в самом начале будут отображаться новости 2016 года.
После выбора, у кнопка появляется подсветка:
И развернутый вид:
При повторном клике на ту же сортировку, результат выдачи инвертируется, т.е. идет сортировка уже от меньшего к большему.
Примечание: При сортировке по алфавиту, от большего к меньшему сортировка будет развернутая. Т.к. буква "Я" - больше чем буква "А". Для таких случаев в настройках есть параметр реверса с помощью которого можно развернуть изначальную выдачу.
Все пункты сортировки легко можно поменять, удалить или добавить.
О фильтре.
Пользователь может выбрать только по одному пункту в каждом блоке. Вот к примеру боевик 2015 года отсортированный по рейтингу кинопоиска:
Выбрать одновременно 2 пункта в одном блоке - невозможно. Чтобы можно было выбрать, скажем "боевик и вестерн" - необходимо будет создать 2 блока с перечнем жанров. В одном блоке можно выбрать только один пункт. Изменить или "доработать" это нельзя.
Рассмотрим вариант разделения пунктов выборки значений одного поля по разным блокам.
У меня в поле "жанр" помимо жанров, так же указывается тип мультфильма: "мультфильм" или "аниме".
Например в фильме "Зверополис" в поле жанр указано: "боевик, комедия, мультфильм, приключения, семейный"
Таким образом можно выбрать 2 значения жанра: мультфильм и боевик:
Фильтр и сортировка работают в пределах просматриваемой страницы. Т.е. в категории "Сериалы" будет выполняться фильтр только среди сериалов.
Например - русский сериал мелодрама 2016 года:
Так же фильтр и сортировка могут работать на страницах поиска по доп. полям (не путать со стандартным поиском, там не работает).
Например мы хотим посмотреть фильм где снимались одновременно Шварценеггер и Сталлоне. Для этого открываем страницу /xfsearch/Арнольд+Шварценеггер/ и в фильтре выбираем Сталлоне, в результате получим:
Особенности
- Модуль предназначен только для пользователей. Поисковики индексировать такие страницы не будут. "Доработать" это невозможно.
- Выбор фильтра запоминается только для выбранной страницы. Выбрав фильтры в категории "фильмы" и перейдя в категорию "сериалы" все фильтры будут сброшены на значения "по умолчанию". Но при этом вернувшись обратно в категорию "фильмы" все фильтры будут отмечены. Но если выбрать фильтр в категории сериалов и вернуться в фильмы, то будет наоборот - в категории "фильмы" все будет по нулям, а в категории "сериалы" запомнятся выбранные значения.
- Модуль никак не влияет на содержимое и заполнение новостей. Он только сортирует и фильтрует новости на основании тех данных, что указаны в новости.
- Для каждой категории/раздела можно настроить свои блоки. Например в категориях "фильмы" и "сериалы" блок "тип м/ф" совершенно не нужен, поэтому для каждой группы категорий можно настроить свои поля. Это делается через строку подключения:
Код:
[category=1,2]{include file="....php?fields=year,genre,actors,director,strana,oscar,hd,ru"}[/category]
[not-category=3,4,5]{include file="...."}[/not-category]
+Bonus
Т.к. админки нету, я решил сделать небольшую "лентяйку". Она формирует список всех значений доп.полей в формате конфиг файла.
Демо: film.sandev.pro
Информация
Для работы модуля - требуется ionCube Loader.
Версия DLE: 9.6 - 15.3 (16.0 не поддерживает)
Версия PHP: 5.6 - 7.4, 8.1
Автор модуля: - @sandev
Комплект: Модуль+KeyGen
Активация лицензии:
Для активации, сгенерируйте ключ в KeyGen, прописать ваш домен вместо "ЗДЕСЬ ВАШ ДОМЕН" кинуть файл в корень сайта и запустить файл сайт.ру/key_xsort.php
Откройте файл /engine/mods/xsort/config.php найдите там $activation_key = 'сюда-ключ'; и впишите вместо сюда-ключ.
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
Вложения
Последнее редактирование: