Меню Закрыть

Сортировка по доп полям dle

Все сбилось. Потом исправлю.

Всем привет. Постараюсь здесь написать понятную инструкцию по настройке модуля фильтра от Gameer.

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

Также важно: не надо сразу методом копипаста пихать все в поиск, а потом менять. Лучше аккуратно добавляйте по одной настройке — так не запутаетесь и больше поймете, что к чему.

А теперь подробно по настройке значений поиска.

Значения задаются через различные input, select. Каждое значение имеет 2 обязательных параметра: name и value.
Name – это место поиска или настройка.
Value – это само значение поиска или значение настройки.

Далее я буду приводить примеры на — это отмечаемая галочка, и — это селект или выпадающий список с многими значениями

Например, мы хотим искать по доп полю genre значение боевик, тогда

добавлю еще комедию

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

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

итак, мы задаем каждую настройку посредством разных input, select — кому как больше нравится, как надо или как удобнее. И задаем им value, name – вот и все.

Всем привет. На этот раз мой хак связан с дополнительными полями. Так уж сложилось, что работаю я именно над сайтами с их непосредственным участием. И люди пользуются ими и остаются довольно. Но у них есть один минус, для одних сайтов значительный, для других не очень. Сделать сортировку по данным из дополнительных полей крайне сложно. Пару лет назад видел на каком-то форуме, как разработчики пытались этого достичь, но нагрузка от этого дела была не малой. Теперь я и сам в силах сотворить нечто подобное, прибегнув к регулярным выражениям, но этот метод мне показался слишком расточительным.

Читайте также:  Digital microscope 500x driver инструкция на русском

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

1. Создание поля в таблице, подключения его в скрипт и интеграции в компоненты, реализующие сортировку новостей.

2. Фильтр по данным из этого поля. Это практически такой же фильтр, как и появился в дополнительных полях с версии вроди 9.5, но с более лёгким запросом (Оператор LIKE не используется), и работающий более корректно.

3. Конвертор информации из дополнительного поля в поле в таблице базы данных.

Область применения такого хака довольно широка. От простых сайтов с фильмами, до например каталогов автомобилей. Он универсален и с его помощью можно к примеру отсортировать записи по любым другим полям с числовыми данными (Немного изменив сценарии и продублировав процесс инсталляции).

Совместимость: Линейка 9.X (Возможно и более старые версии).
Стоимость: 150 рублей.
Демо: Здесь (Сайт может виснуть, это из-за сервера)

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

Модуль выводится в main.tpl тегом и выглядит следующим образом:

О сортировке.
Изначальное состояние окна выбора сортировки:
xSort by Sander

При выборе какого-либо пункта перезагрузка контента выполняется на ajax (без перезагрузки страницы). Изначально контент сортируется от большего к меньшему. Выбрав "год", в самом начале будут отображаться новости 2016 года.
После выбора, у кнопка появляется подсветка:

И развернутый вид:

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

Примечание: При сортировке по алфавиту, от большего к меньшему сортировка будет развернутая. Т.к. буква "Я" — больше чем буква "А". Для таких случаев в настройках есть параметр реверса с помощью которого можно развернуть изначальную выдачу.
Все пункты сортировки легко можно поменять, удалить или добавить.
Список сортировок в конфиге

Читайте также:  Разделить слово маленькие на слоги

О фильтре.
Пользователь может выбрать только по одному пункту в каждом блоке. Вот к примеру боевик 2015 года отсортированный по рейтингу кинопоиска:

Выбрать одновременно 2 пункта в одном блоке — невозможно. Чтобы можно было выбрать, скажем "боевик и вестерн" — необходимо будет создать 2 блока с перечнем жанров. В одном блоке можно выбрать только один пункт. Изменить или "доработать" это нельзя.

Рассмотрим вариант разделения пунктов выборки значений одного поля по разным блокам.
У меня в поле "жанр" помимо жанров, так же указывается тип мультфильма: "мультфильм" или "аниме".
Например в фильме "Зверополис" в поле жанр указано: "боевик, комедия, мультфильм, приключения, семейный"
Таким образом можно выбрать 2 значения жанра: мультфильм и боевик:
xSort by Sander

Фильтр и сортировка работают в пределах просматриваемой страницы. Т.е. в категории "Сериалы" будет выполняться фильтр только среди сериалов.
Например — русский сериал мелодрама 2016 года:

Так же фильтр и сортировка могут работать на страницах поиска по доп. полям (не путать со стандартным поиском, там не работает).
Например мы хотим посмотреть фильм где снимались одновременно Шварценеггер и Сталлоне. Для этого открываем страницу /xfsearch/Арнольд+Шварценеггер/ и в фильтре выбираем Сталлоне, в результате получим:

Особенности
— Модуль предназначен только для пользователей. Поисковики индексировать такие страницы не будут. "Доработать" это невозможно.
— Выбор фильтра запоминается только для выбранной страницы. Выбрав фильтры в категории "фильмы" и перейдя в категорию "сериалы" все фильтры будут сброшены на значения "по умолчанию". Но при этом вернувшись обратно в категорию "фильмы" все фильтры будут отмечены. Но если выбрать фильтр в категории сериалов и вернуться в фильмы, то будет наоборот — в категории "фильмы" все будет по нулям, а в категории "сериалы" запомнятся выбранные значения.
— Модуль никак не влияет на содержимое и заполнение новостей. Он только сортирует и фильтрует новости на основании тех данных, что указаны в новости.
— Для каждой категории/раздела можно настроить свои блоки. Например в категориях "фильмы" и "сериалы" блок "тип м/ф" совершенно не нужен, поэтому для каждой группы категорий можно настроить свои поля.

Читайте также:  Что лучше гранд витара или хонда срв

Для работы модуля — требуется ionCube Loader.
Версия DLE: 9.6 и старше.
Версия PHP: 5.3 — 5.6

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.