Всемогущий, Google, найди мне чего-нибудь!

вторник, 9 февраля 2010 г.

Фильтрация материалов (Hotline)

На просторах нашего необъятного интернета существует довольно удобный справочник по компьютерной и бытовой технике: Hotline.ua. При переходе на какой-то из типов товаров можно производить фильтр по огромному множеству параметров, которые относятся к выбранной категории товаров. Например, жесткие диски можно динамически фильтровать по проивоздителю, цене, емкости и т.д.

Теперь я покажу как это можно сделать в CMS Drupal с помощью модуля Taxonomy Filter. Скачайте его, разархивируйте и скопируйте в папку 'sites/all/modules/' или 'modules/' (без разницы; CMS Drupal сканирует обе папки на наличие модулей).

Для начала подключим модуль Taxonomy (admin/build/modules), который входит в ядро CMS Drupal. После этого подключим модуль Taxonomy Filter и все его подмодули (рис. 1).

Рис. 1. Подключение модуля Taxonomy filter

Теперь необходимо создать несколько типов контента (admin/content/types) (которые будут олицетворять товар в интернет-магазине). Создадим, например, тип Жесткий диск (harddrive), Оперативная память(ram), Материнская плата(motherboard) и Видеокарта(videoadapter) (рис. 2).

Рис. 2. Создание новых типов материала

Переходим в раздел таксономии (admin/content/taxonomy) и создаём необходимые категории, по которым, собственно, и будет происходить фильтрация. Создадим 7 словарей (со вложенными терминами):
  • производители(Acer, Hitachi, HP, A-Data, Transcend) будет использовать все типы товаров;
  • емкость(менее 100, 100-200, 201-400, 500, более 500) будет использовать тип "Жесткий диск";
  • чипсет (AMD 960x, AMD 785G, Intel 965, Intel P45) будет использовать тип "Материнская плата";
  • интерфейс (внутренний, внешний) будет использовать тип "Жесткий диск";
  • цена (менее 50$, $50-100, $101-200, $201-400, более 400$) будет исользовать все типы товаров;
  • товары (материнские платы, жесткие диски, оперативная память, видеокарты) будет также использовать все типы товаров.
Если вам необходимо, то создайте дальше необходимые словари. Для тестового пример хватит и 7.

Теперь неоходимо настроить фильтрацию. Переходим в настройки модуля Taxonomy Filter (admin/settings/taxonomy_filter). Добавляем два меню. Первое (назовем его "Текущий фильтр") будет содержать текущие фильтры, Второе (назовем его "Доступные фильтры") - оставшиеся фильтры. Переходим в закладку "Mapping". В таблице в столбце "Refine Criteria" связываем наши два созданных меню, а в столбце "Vocabularies" при нажатии на кнопку edit указываем какими словарями какой словарь будет фильтроваться (рис. 3).


Рис. 3. Настройка связей между словарями.

После настроек необходимо показать блоки доступной и текущей фильрации. Для этого переходим в раздел блоков CMS Drupal (admin/build/block). В списке ищем "Taxonomy filter - refine criteria" и "Taxonomy filter - current criteria" и выводим в нужные вам блоки.

Теперь необходимо вывести Весь список товаров в отдельное меню. Делается это с помощью модулю Taxonomy menu. Опять же скачиваем, разархивируем и копируем в одну из папок, указанных в начале статьи. Подключаем этот модуль. Идем в раздел меню CMS Drupal (admin/build/menu). Нажимаем "Add menu" и создаем новое меню (назовем его, например, "Каталог товаров"). Никаких пунктов в него добавлять не надо. Далее в разделе словарей (admin/content/taxonomy) нажимаем редактировать словарь "Товары". На появившейся странице стали доступными дополнительные настройки только что подключенного модуля. Из списка "Menu:" выбираем только что созданное меню. В разделе блоков выводим его (admin/build/block).

Теперь самое интересное. Создайте товаров 20-30 разного типа. Далее нажмите на один из пунктов меню "Каталог товаров", например "Материнские платы". На странице выведутся все материнские платы. В одном из блоков должны были появиться доступные фильры (рис. 4).


Рис. 4. Получившийся результат

Надеюсь, я помог ищущим статьи по данным модулям.

1 комментарий:

Oleg Prylypko комментирует...

спасибо!