Чтобы сделать выборку нод, на которые ссылается другая выборка нод надо...
Прислано: Dimm
пт, 06/06/2008 - 20:37
Например термин таксономии ---> ноды фирмы --node_reference--> ноды адреса фирм.
Нужно вывести список адресов (B) для всех фирм (A) текущего термина таксономии.
Чтобы сделать выборку нод (B), на которые ссылается другая выборка нод (A) надо:
1. Сделать views A
2. Установить модуль http://drupal.org/project/ReferencedByFilter + патч http://drupal.org/node/267655
3. Добавить в аргументы "Node Reference: Views on node reference" и выбрать в списке нужное поле node_reference
4. В "Argument Handling Code" c помощью views A сформировать строку $arg[0]="nid1+nid2+nid3+nid4"
$current_view->args[0]=11; $current_view->args[1]='firm'; $view1 = views_get_view('taxonomy_node'); $items=views_build_view('items', $view1, $current_view->args, false, false); $i=0; $str=''; foreach ($items[items] as $item) { $str=$str . $item->nid.'+'; $i=$i+1; } $args[0]=substr($str,0,-1); $view->is_cacheable = 0;
- Dimm's blog
- Для комментирования войдите или зарегистрируйтесь
Н-да, вот вредное влияние Views -- то, чт целесообразно сделать кастомным модулем, делают Viewsами с чудовищным оверхелдом и потом мучительно сие кэшируют.
- Для комментирования войдите или зарегистрируйтесь
Свой модуль надо писать, тестировать и отлаживать. Трудозатраты 30 часов.
А тут написал 12 строчек кода - и готово. Трудозатраты 3 часа.
Views - уже оттестировано. + Уже есть встроенное во Views кэширование.
- Для комментирования войдите или зарегистрируйтесь
3 часа = 180 минут
12 строчек
1 строка = 15 минут :)))
- Для комментирования войдите или зарегистрируйтесь
+ по кнопочкам мышкой потыкать - вьюесы сделать, поотлаживать...
- Для комментирования войдите или зарегистрируйтесь
тоже столкнулся с похожей задачей:
есть нод ПРОЕКТ, в нему можно добалять нод ЗАДАЧА (идет ссылка на родительскую задау или проект). К ЗАДАЧЕ тоже можно цеплять ЗАДАЧУ. В итоге получаем вложенное дерево, примерно такого вида:
проект1->задача1->задача2->задача3
проект1->задача4->задача5
задача4->задача6
Необходимо для страницы проекта вывести вид со всеми вложенными задачами для данного проекта. Можно ли решить предложенным методом эту проблему? или есть другие варианты?
- Для комментирования войдите или зарегистрируйтесь



Комментарии