Подробное содержание постаSort-Fields Press Reliz

Голосов: 7
Данный модуль позволяет сортировать и фильтровать новости на DLE по заданным поисковым параметрам.

Для примера создана небольшая база товаров на 599 позиций и заполнены некоторые из ключевых поисковых параметров. Как наиболее общеизвестную тематику - выбрал категорию "Мобильные телефоны".

1. Основное поисковое окно
Sort-Fields Press Reliz


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

2. Пример использования поисковых полей
Sort-Fields Press Reliz

Заданы только 2 поисковых параметра. А именно, выбраны два производителя: ASUS и HUAWEI. В базу добавлено только 3 телефона ASUS и один HUAWEI.
Sort-Fields Press Reliz

Для примера заданы почти все поисковые параметры.
Подробнее объяснять, я полагаю, нет необходимости. Все кто-либо встречался с подобными поисковыми формами вполне знаком с их управлением.


3. Категория поиска
Изначально форма может быть доступна только при входе в категорию, как я это сделал у себя на демо-сайте. Таким образом мы получаем полноценно индексируемый контент (стандартный вывод новостей) и возможность на этой же странице задать поисковые параметры для фильтрации товаров. При поиске обратите внимание, что адрес страницы меняется на /index.php?do=sort&category=8. Так же отдельно стоит заметить, что в адресной строке заданы только заполненные параметры.

4. Добавление и редактирование новостей
Sort-Fields Press Reliz

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

5. Управление дополнительными полями xfields
Sort-Fields Press Reliz

Отдельно рассмотрим типы используемых дополнительных полей.
  • Поле brand - бренд/производитель, в поле заполняются только текстовые данные. В данном случае можно было бы использовать так же и тип "список", для модуля разницы нет, тут играет роль только удобство заполнения. Поиск производится по текстовому совпадению
  • Поле bodytype - тип корпуса, используется тип "одна строка", хотя можно было бы смело использовать тип "список", поскольку поле хранит только 4 значения. Поиск производится по текстовому совпадению
  • Поле phonetype - тип устройства, аналогично bodytype , только хранит 2 значения.
  • Поле displaysize - размер экрана, заполняются целые и дробные числа. В модуль сохраняется дробное число, что в последствии позволяет выполнять поиск по диапазону.
  • Поле displayformat - разрешение экрана, аналогично полю brand . В форме поиска не делал, хотя его можно легко задействовать, достаточно включить в админке (см. ниже) и оформить шаблон в поисковой форме (п.1)
  • Поле cost - стоимость товара, модуль обрабатывает как целое число. Позволяет организовать точный поиск и поиск по заданному диапазону.
  • Поле displaymatrix - тип матрицы, сделан в виде списка, состоит из 3х пунктов: "пустое поле", IPS и TN. Т.к. поле типа список является обязательным к заполнению, используя пустую строку мы делаем его не обязательным, ведь не у всех телефонов задан тип матрицы.
  • Поле sensoric - сенсорный экран, заполняется так же как displaymatrix , имеет 3 поля: "пусто", Да и Нет. В модуле данное поле имеет тип "чекбокс".


6. Админка Sort-Fields
Sort-Fields Press Reliz

Основное окно управления "связями" дополнительных полей и модуля.
Как видно поле "Изображение" не имеет связи, поскольку ему она собственно и не нужна, не по адресу картинки же фильтровать...
Так же без связи поле "Разрешение экрана", пока без связи.
У остальных связанных полей, тип поля выбран соответственно хранимым данным в поле xfields.
Sort-Fields Press Reliz

При нажатии кнопку "добавить" или "удалить" модуль предлагает выбрать тип создаваемого поля. Удаление связи выбранного поля будет произведено только после нажатия на кнопку "Сохранить изменения".
В любой момент тип поля можно будет сменить на другой и обратно.
Sort-Fields Press Reliz

Для примера удалил поле "стоимость" и добавил "разрешение экрана".
Обратите внимание на кнопку "Выполнить перестроение публикаций" и рядом с ней чекбокс "удалить поля sf_* ". Если вы удалите поле из xfields, но при это не удалите связку поля в модуле, то в таблице останется висеть неиспользуемая колонка. Вот для подобных случаев и нужна данная кнопка. Хотя при каждом редактировании полей и при редактировании новости, данные в новостях перестраиваются, на всякий случай сделал опцию полного перестроения всех публикаций.

7. Хранение данных в БД
Sort-Fields Press Reliz

Как видно, поля имеют записи соответственно заданным типам.
Теперь добавим поле cost и изменим тип поля "displayformat" c текстового на числовой.
Sort-Fields Press Reliz

При каждой смене типа производится полное перестроение всех публикаций, поэтому нет ничего необратимого.

ICQ: 404-037-556
Skype: Sander8804

С уважением,
Олег Александрович a.k.a. Sander
  • Название: Sort-Fields Press Reliz
  • Версия CMS: dle 10.1, dle 10
  • Демонстрация: - Доступ в пользовательскую часть общедоступен и вы можете в живую его покрутить. Доступ в админпанель могу выдать после краткого собеседования.
  • Автор: Sander
  • Сайт поддержки:

Информация о статье

Облоко тегов

поиск, новость, фильтр

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

Имя:*
E-Mail:
Полужирный Наклонный текст Подчёркнутый текст Зачёркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Вставка ссылкиВставка защищённой ссылки Картинка Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите код: *
Sander (Гости) 22 ноября 2013 16:58
Вероятнее всего цена модуля будет в районе 30 wmz.

Для наглядности области применения скрипта - добавил категорию фильмов.