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.


Информация для покупки

Стоимость модуля 20wmz
Лицензия выдается под 2 сайта.
Стоимость дополнительной лицензии: 5wmz
Для работы модуля - требуется ionCube Loader. (Как проверить наличие ionCube)


[Версия PHP]
5.3 - 5.5

[Версии DLE]
9.5 - 10.4

[Контакты]
ICQ: 404-037-556
Skype: Sander8804
E-Mail: olalod@mail.ru

С уважением,
Олег Александрович a.k.a. Sander
Комментарии: (16)
  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
Добавить комментарий
  • Логин
  • E-mail
Повторите рисунок:
antibot
© Sander-Development. 2009-2018.
При копировании, ссылка на источник обязательна.