Sort-Fields v3 by Sander для DLE

Sort-Fields v3 by Sander

Sort-Fields v3 by Sander

Рад наконец-то представить вашему вниманию модуль, позволяющий фильтровать и сортировать новости по значениям доп. полей.
Первые 2 версии так и не получили массового распространения в основном из-за сложности их настройки и использования.
Данную версию в чем-то можно назвать облегченным вариантом предыдущих. Убраны некоторые опции и возможности, не столь гибок в вариантах применения, однако свою основную задачу он выполняет на твердую пятёрочку.

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


Демо

1. d101.sandev.pro/mobilephone - каталог мобильных телефонов с несколькими основными критериями фильтрации. Цена, бренд, тип телефона, размер дисплея и т.д.

2. d101.sandev.pro/films - раздел с фильмами. Тут уже есть возможность просмотра нескольких категорий, подробнее на алгоритме поиска по категориям я остановлюсь чуть позже. Так же есть возможность фильтрации по году выпуска, рейтингу IMDb и т.д.

3. d101.sandev.pro/estate - раздел недвижимости. К сожалению база довольно таки мала, но основная цель - показать возможность использования множества фильтров.

4. d103.sandev.pro - сайт посвященный фильмам, наиболее приближенный к естественной среде эксплуатации. Для демонстрации работы модуля база фильмов с данными полей взята с сайта kinogo.net.

5. d102.sandev.pro/tires - приемр работы модуля с относительно большой базой, в данном разделе 11676 новостей. На всех демо сайтах внизу предоставлена информация о количестве найденных новостях и время выполнения запроса. Обратите внимание, что чем больше используется полей для фильтрации, тем больше нагрузка.

6. d102.sandev.pro/rims - на данной странице стоит обратить внимание на вид формы выбора количества болтов.


Типы полей

В модуле предусмотрено только 2 типа полей: текствовое и числовое.

Числовой тип можно устанавливать только для тех полей, где в поле указывается именно число в одном из следующих форматов:
12345 - 12345
123,45 - 123.45
123.45 - 123.45
12345 usd - 12345
123.45 $ - 123.45
123,45 руб. - 123.45
12 мин - 12

где через дефис указано число как его будет видеть модуль.
Если в числе будет стоять пробел (для "читаемого" вида) или перед числом будет идти какой-либо текст, то это число будет определяться не правильно:
$12345 - NULL
12 345 руб. - 12
12:34 - 12


Текстовый тип - основной тип подходящий практически для всех данных. Его можно использовать вообще без ограничений для всех полей, но в некоторых случаях это не разумно. Например если поле - "цена" и в базе 100 товаров, то будет до 100 значений поля. В случае цены и многих других видов данных предпочтительнее использовать тип "число". Исключением могут являться частные случаи, например в демо №6 количество болтов у диска.
Поле принимает всего 3 значения: 3, 4 и 5. Это числа, но в данном случае нет смысла использовать числовой тип поля ради 3х значений. К тому же следует выставлять тип ориентируясь на удобство пользователя. В данном случае, при поиске человека будет интересовать диски с четко определенным количеством болтов. То же самое касается PCD (расстояние между болтами) и радиус. Это фиксированные данные которые у пользователя четко определены, в отличие от того же "вынос ET", когда он может колебаться например в пределах 35-45.

Отдельно стоит отметить, что при поиске в числовом типе в адресной строке указывается само число, а при текстовом - каждому значению поля присваивается индивидуальный индекс и уже по нему производится поиск. Т.е. можно делать фильтрацию, например по году:
d103.sandev.pro/sf/year=2013
Но по аналогии с текстовым полем подобный адрес работать не будет:
[url=http://]d103.sandev.pro/sf/strana=США[/url]
Для значения поля "США" присвоен индекс 34, поэтому адрес должен быть
d103.sandev.pro/sf/strana=34


Админка

Самих настроек в модуле особо и нету. Можно только включить или выключить поля. На скрине ниже предоставлены поля с демо №1-№3, рамками отделены категории.
Sort-Fields v3 by Sander

И вот демо №5 и №6
Sort-Fields v3 by Sander

Если у вас будут вопросы, почему в той или иной ситуации я выбрал тот или иной тип поля - с радостью отвечу в комментариях.
Больше настроек в модуле нету. Для данного функционала их пока и не требуется.


Виды поисковых форм

Отличительной особенностью этой версии является автоматическое создание и формирование списка поисковых полей.
1. Список чекбоксов:
Sort-Fields v3 by Sander

Этот вид позволяет делать фильтрацию одновременно по нескольким полям. Поиск производится по алгоритму "ИЛИ", например:
d101.sandev.pro/mobilephone/sf/brand=11,16
На этой странице выводятся все телефоны бренда HTC и Nokia.
Код шаблона:
	<div class="sf-div">
		<a href="{include file="engine/modules/sfields/skip.php?field=brand"}" class="sf-div-all">Все</a>
		<div class="sf-div-title">Производитель:</div>
		<ul class="sf-list">{include file="engine/modules/sfields/list.php?field=brand"}</ul>
	</div>


2. Select выпадающий список:
Sort-Fields v3 by Sander

Данный вид имеет смысл применять, когда для пользователя будет достаточно фильтрации только по одному из значений поля.
Код шаблона:
	<div class="sf-div">
		<div class="sf-div-title">PCD:</div>
		<select onchange="window.location = this.value;">{include file="engine/modules/sfields/select.php?field=pcd2"}</select>
	</div>


3. Диапазон значений:
Sort-Fields v3 by Sander

Этот вид следует использовать для всех полей числового типа.
Код шаблона:
	<div class="sf-div">
		<a href="{include file="engine/modules/sfields/skip.php?field=cost"}" class="sf-div-all">Все</a>
		<div class="sf-div-title">Цена:</div>
		{include file="engine/modules/sfields/range.php?field=cost&val=грн."}
	</div>


4. Список полей с выбором одного значения:
Sort-Fields v3 by Sander

Прежде всего хочу отметить, что шаблон предоставленный на скрине - это лишь один из вариантов, как его можно сделать. Вы так же можете настроить шаблона с видом простого списка показанного на первом скриншоте.
Код шаблона:
	<div class="sf-div">
		<div class="sf-div-title">Количество болтов:</div>
		<ul class="sf-list-single">{include file="engine/modules/sfields/list.php?field=pcd1&single=1&nobox=1&nocount=1"}</ul>
	</div>


5. Направление сортировки:
Sort-Fields v3 by Sander

Сортировать можно только по числовым значениям полей. По умолчанию сортировка идет по дате (как установлено в настройках движка).
Код шаблона:
	<div class="sf-div">
		<div class="sf-div-title">Сортировать по:</div>
		<select onchange="window.location = this.value;">{include file="engine/modules/sfields/sort.php?fields=price_rims|По цене||et|По ET||dia|По диаметру ступицы"}</select>
		<select onchange="window.location = this.value;">{include file="engine/modules/sfields/sort.php"}</select>
	</div>



Работа с категориями

Список категорий строится автоматически. При выводе указывается лишь ID родительской категории и все подкатегории будут отображены автоматически.
Sort-Fields v3 by Sander

Код шаблона:
	<div class="sf-div">
		<a href="{include file="engine/modules/sfields/skip.php?field=x_cat"}" class="sf-div-all">Все</a>
		<div class="sf-div-title">Жанр:</div>
		<ul class="sf-list">{include file="engine/modules/sfields/cats.php?id=9"}</ul>
	</div>

По умолчанию берутся все подкатегории всех уровней. Дополнительно есть возможность либо ограничить выбор до 1го уровня вложенности или вообще вручную указать желаемые ID, пример:
<ul class="sf-list">{include file="engine/modules/sf_light/cats.php?ids=3,5,7,11,13"}</ul>

Алгоритм поиска такой же как у обычного списка чекбоксов, по алгоритму "ИЛИ". Т.е. если отметить 2 или более категории, то будут показаны все новости, где встречается хотя бы одна из отмеченных, например:
d101.sandev.pro/films/sf/x_cat=22,24,21
На этой странице выводятся все фильмы жанра: "музыка", "спорт" или "комедия".
Sort-Fields v3 by Sander

Т.е. фильм может быть:
Музыка и Комедия
Комедия и Боевик
Спорт и Мелодрама
Музыка и Триллер
Спорт и Фантастика


Но помимо этого так же есть возможность фильтрации по алгоритму "И".
Для этого достаточно зайти в желаемую категорию и там отметить вторую категорию:
d101.sandev.pro/films/voennyy/sf/x_cat=16,18
На это странице выводятся все фильмы жанра "военный", которые так же отмечены в категории "документальный" или "комедия".
Sort-Fields v3 by Sander

Т.е. фильм может быть:
Военный и Комедия
Военный и Документальный
Военный и Документальный и Комедийный
Военный и Комедия и Драма
Военный и Документальный и Боевик



Особенности

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

— Крайне не рекомендуется использовать одно поле для разных категорий. Например если использовать поле brand для модели телефона и марки авто, то список будет формироваться один, в нем будут и Nokia и Mercedes.

— Нельзя использовать поля с одинаковым окончанием.
Sort-Fields v3 by Sander

В данном случае как на скриншоте можно ничего не делать, т.к. поля используются в разных категориях и одновременный поиск по этим категориям не возможен. А вот если вы используете поля например cost и usd_cost в одной новости, то при поиске по полю cost товаров с ценой 10-50руб, то так же будут выводиться все другие новости, где в полей usd_cost указана цена 10-50 USD.
В таких случаях следует переименовать поле usd_cost в cost_usd.


Информация для покупки
Снят с продажи

С уважением,
Олег Александрович a.k.a. Sander
Комментарии: (23)
  1. foto
    VIP 17 февраля 2015 16:27 #
    а хак или модуль, может работать с выпадающем списком? ну на примере недвижимости, например выбираем квартира или дом - если выбрали квартиру то появляется ещё выпадение например количество комнат, то есть выпадающий список согласно выборному. если у этого выборного поля есть следующее значение, не знаю понятно описал суть))) но думаю если посмотреть доску объявлений например, понятно станет, также кто то делал хаки, но все сырые и малофункциональны((

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

    Блин так много написал)) самое главное чтобы поняли! ))
    0
    1. foto
      Администратор 18 февраля 2015 13:05 #
      Думаю это вполне реально.
      Вы же обратили внимание, что страница перезагружается при каждом выборе/клике.

      Т.е. нельзя сделать так: выбрал одно, открылся список, выбрал другое, нажал кнопку поиск.
      Будет так: выбрал одно, страница обновилась с отображенным списком, выбрал другое, страница обновилась.
      +2
      1. foto
        VIP 18 февраля 2015 13:08 #
        спасибо за ответ, теперь буду иметь ввиду, хорошо, то что от Вас данный хак-модуль есть, а то когда нужно было 3 раза причём, нормального примеры не было(( пришлось без него делать, теперь буду иметь ввиду, спасибо за ответ...
        0
      2. foto
        VIP 7 апреля 2015 23:33 #
        купившим версию 2 обновление будет?
        0
  2. foto
    Посетитель 18 февраля 2015 15:05 #
    Sander
    А как купить модуль то? я чет не разобрался.
    0
  3. foto
    Посетитель 16 марта 2015 18:34 #
    Если в поле слова через запятую, например телефон производства США и Китай (США, Китай), то такому значению присваивается так же свой уникальный идентификатор. Хотелось бы что бы в таком случае идентификатор присваивался отдельно и США и Китаю.
    0
  4. foto
    Посетитель 30 марта 2015 08:29 #
    И еще хотелось бы, что бы при выборе какого либо параметра, к примеру по цене ниже оставшиеся фильтры пересщитывались, а то на данный момент получается что фильтр работает не корректно, выбираем какой либо параметр и ниже цифры показывают то же самое к примеру как тут http://ocstore15511.orcart.ru/desktops
    и еще неплохо было бы сделать без перезагрузки страницы.
    0
  5. foto
    Посетитель 18 апреля 2015 19:04 #
    В будущем планируется сделать дополнительный раздел или даже модуль, для управления метатегами и seo-текстами, а так же сделать возможность включать/выключать индексацию для каждой выбранной страницы.

    Классное планируется обновление!
    0
  6. foto
    Посетитель 5 июня 2015 22:43 #
    На 10.5 работает отлично.
    Возможно невнимательно читал, но не найду как поставить кнопку, которая сбрасывает все сортировки?
    0
  7. foto
    Клиент 21 июня 2015 19:34 #
    Такой вот вопрос, если я выбираю жанры, допустим "боевик и триллер", то почему у меня отображаются и те, что имеют категорию боевик без триллера и наоборот?

    и ещё, можно ли сделать на аяксе, без перезагрузки страницы?
    0
  8. foto
    Клиент 21 июня 2015 20:36 #
    И ещё, если в поле вписано несколько значений, то они потом и выводятся через запятую
    0
  9. foto
    Клиент 21 июня 2015 21:33 #
    Плохо, что редактировать нельзя...

    и, возможно создать форму на отдельной странице?
    0
  10. foto
    Посетитель 23 декабря 2015 17:47 #
    Индексация страниц модуля в ближайшем будущем планируется?
    0
  11. foto
    Посетитель 8 октября 2016 01:16 #
    Не работает с v.11?
    0
    1. foto
      Администратор 8 октября 2016 03:40 #
      Не проверял.

      PS. Модуль снят с продажи.
      0
      1. foto
        Посетитель 8 октября 2016 16:40 #
        Ох, а что так?
        И не планируется больше?
        0
  12. foto
    Клиент 29 апреля 2019 08:13 #
    Здравствуйте, версия DLE 13.2 поддерживается?
    0
    1. foto
      Администратор 29 апреля 2019 15:20 #
      Модуль снят с продажи более 3х лет назад.
      0
      1. foto
        Гость 9 сентября 2020 21:39 #
        Может стоит модуль продолжить развивать? С возможностью делать посадочные страницы, так как модуль lazydev за 4 года разработок, а то и 5 лет по прежнему хламный и с кучей косяков в плане СЕО оптимизации, и других косяков хватает...
        0
        1. foto
          Администратор 10 сентября 2020 10:53 #
          Может и стоит. У меня даже есть наработки по этому направлению.
          Но вся сложность подобных модулей - это универсальность.

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

          PS. В актуальной версии DLE, посадочные страницы, в принципе, можно создавать с помощью утилиты "Заголовки, описания, метатеги".
          0
          1. foto
            Гость 10 сентября 2020 14:12 #
            Думаю стоит, главное отталкиваться от того, что это не просто фильтр, а на основе его можно было свободно сделать к примеру ту же доску объявлений)))

            Согласен по поводу того, чтобы сотни людей могли пользоваться - большая часть времени уйдет на то, чтобы сделать модуль из коробки, но также тут главное начать. По поводу актуальной версии DLE, действительно можно, еще бы к примеру в фильтре https://сайт.ру/sf/strana=34/dostav=free
            Можно было помимо сео, указать и красивый адрес, что-то типа https://сайт.ру/free-rossia/ Это я так, к примеру)

            Так что делать надо, мне лично третья версия модуля очень зашла, жалко, что сейчас ее нельзя использовать... Да и устарела порядком в плане кода, так что если время есть, надо начинать)
            0
            1. foto
              Администратор 10 сентября 2020 14:31 #
              главное отталкиваться от того, что это не просто фильтр

              Как раз таки наоборот. Это должен быть только фильтр и ничего более чем просто фильтр. Если вам нужна полноценная доска объявлений, то вам следует заказать индивидуальную разработку именно доски. А не пытаться переложить на фильтр весь сторонний функционал.

              но также тут главное начать

              Опять же очень ошибочное мнение. У меня много таких "мертвых" начинаний.

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

              И тут я с вами не согласен. Более 90% пользователей не смотрят на uri адрес и не знают вообще что это такое. А на телефоне так вообще его практически не видно.

              Да и устарела порядком в плане кода

              Зато вот тут я с вами целиком и полностью согласен.
              0
              1. foto
                Гость 10 сентября 2020 14:37 #
                Как раз таки наоборот. Это должен быть только фильтр и ничего более чем просто фильтр. Если вам нужна полноценная доска объявлений, то вам следует заказать индивидуальную разработку именно доски. А не пытаться переложить на фильтр весь сторонний функционал.


                Понятное дело, полноценную доску не сделаешь, для этого в обще лучше специальные CMS покупать, которые заточены под миллионы новостей)

                Опять же очень ошибочное мнение. У меня много таких "мертвых" начинаний.


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

                И тут я с вами не согласен. Более 90% пользователей не смотрят на uri адрес и не знают вообще что это такое. А на телефоне так вообще его практически не видно.


                Понятно, что пользователи не смотрят, но вроде бы как чем меньше вложенность страницы, тем поисковики типа лояльней относятся.
                0
Информация
Посетители, находящиеся в группе {group}, не могут оставлять комментарии к данной публикации.
© Sander-Development. 2009-2024.
При копировании, ссылка на источник обязательна.