Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно 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. Хранение данных в БД
Как видно, поля имеют записи соответственно заданным типам.
Теперь добавим поле cost и изменим тип поля "displayformat" c текстового на числовой.
При каждой смене типа производится полное перестроение всех публикаций, поэтому нет ничего необратимого.
Доступ в пользовательскую часть общедоступен и вы можете в живую его покрутить по адресу:
Демо
Доступ в админпанель могу выдать после краткого собеседования.
ICQ: 404-037-556
Skype: Sander8804
С уважением,
Олег Александрович a.k.a. Sander