Sort-Fields Press Reliz

Sort-Fields Press RelizДанный модуль позволяет сортировать и фильтровать новости на DLE по заданным поисковым параметрам.

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

1. Основное поисковое окно

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

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

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

Для примера заданы почти все поисковые параметры.

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

3. Категория поиска

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

4. Добавление и редактирование новостей

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

5. Управление дополнительными полями xfields

Отдельно рассмотрим типы используемых дополнительных полей.

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

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

    Основное окно управления «связями» дополнительных полей и модуля.

    Как видно поле «Изображение» не имеет связи, поскольку ему она собственно и не нужна, не по адресу картинки же фильтровать.

    Так же без связи поле «Разрешение экрана», пока без связи.

    У остальных связанных полей, тип поля выбран соответственно хранимым данным в поле xfields.

    При нажатии кнопку «добавить» или «удалить» модуль предлагает выбрать тип создаваемого поля. Удаление связи выбранного поля будет произведено только после нажатия на кнопку «Сохранить изменения».

    В любой момент тип поля можно будет сменить на другой и обратно.

    Для примера удалил поле «стоимость» и добавил «разрешение экрана».

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

    7. Хранение данных в БД

    Как видно, поля имеют записи соответственно заданным типам.

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

  • This entry was posted in DLE релизы and tagged , , . Bookmark the <a href="http://dlehaki.ru/dle-relizy/sort-fields-press-reliz.html" title="Permalink to Sort-Fields Press Reliz" rel="bookmark">permalink</a>.

    Comments are closed.