[РЕШЕНО] Юзабилити каталога

Главные вкладки

Аватар пользователя okcity@drupal.org okcity@drupal.org 17 июня 2010 в 20:49

Неоднократно упоминалось о проблеме с множественным наследованием в каталоге. Многие советуют смотреть в сторону Category. Но Category имеет как преимущества, так и недостатки. Судя по комментариям – недостатков больше, да и материалов по Category не очень много.

Данное решение проблемы позволит отказаться от Category, так как практически заменяет его. Проблема с множественным наследованием решается использованием модуля Hierarchical Select с таксономией. Дело в том, что когда мы создаем материал (ноду), к которому подвязан select (пусть даже множественный) с иерархией терминов, не очень удобно выбирать родителей, а тем более, когда список очень большой. Очень сомневаюсь, что у кого-то бы хватило терпения наполнять каталог таким образом.

Настройка словаря для выбора терминов через Hierarchical Select решает данную проблему. Дело в том, что когда мы привязываем ноду, например, к четвертому уровню словаря, через Hierarchical Select мы последовательно выбираем термины, а они, в свою очередь, автоматически становятся родителями для данной ноды. Например, нода “Audi S5” будет принадлежать всем терминам, указанным в цепочке навигации: Автомобили – Легковые – Audi – S5. Естественно, чтобы все корректно работало, необходимо включение дополнительных модулей: Menu Breadcrumb, Taxonomy Breadcrumb и Taxonomy Menu. Для полноценной навигации по каталогу не хватает блока с дочерними терминами текущего термина (эквивалент wrapper’а в модуле Category). Т.е., например, находимся в разделе (текущем термине) “Audi”, то этот блок должен показывать модели (дочерние термины) данного бренда: A4, A5, A6, A8, S4, S5 и т.д. Данный блок улучшает юзабилити каталога. Запрос “SELECT th.tid FROM term_hierarchy AS th WHERE th.parent = ‘$current_term’” выводит ID дочерних терминов текущего термина, но как получить ID текущего термина – пока не нашел.

Подскажите, пожалуйста, как можно решить данную проблему?
Заранее благодарен

Комментарии

Аватар пользователя stddos stddos 17 июня 2010 в 22:36

А views вы не хотите воспользоваться?? Можно сделать блок при помощи него и там отображать все что вашей душе угодно, будь то дочерние термины или еще что-то.
А если не views то вот тут посмотрите [ru-api=taxonomy_get_children], а текущий термин получается из пути при помощи функции [ru-api=arg]

Аватар пользователя glu2006 glu2006 18 июня 2010 в 11:39

Вы только что такой пакаван модулей перечислили Smile что по моему модуль категори можно было вдоль и поперек исползать.
Я не говорю что он средство от всех болезней, но в плане организации многоуровневых каталогов оченама хорошо работает, а HSelect можно и туда прикрутить.

Аватар пользователя okcity@drupal.org okcity@drupal.org 18 июня 2010 в 13:39

Спасибо за советы. Проблему решил созданием views для термина, назначил аргумент для Таксономия: Родительский термин: Provide default argument → PHP Code:

<?php
$arg
=arg(2);
return 
$arg;
?>

добавил поле Таксономия: Term и через фильтр привязал к словарю