Например термин таксономии ---> ноды фирмы --node_reference--> ноды адреса фирм.
Нужно вывести список адресов (B) для всех фирм текущего термина таксономии.
Чтобы сделать выборку нод (B), на которые ссылается другая выборка нод надо:
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[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;
Комментарии
Н-да, вот вредное влияние Views -- то, чт целесообразно сделать кастомным модулем, делают Viewsами с чудовищным оверхелдом и потом мучительно сие кэшируют.
Свой модуль надо писать, тестировать и отлаживать. Трудозатраты 30 часов.
А тут написал 12 строчек кода - и готово. Трудозатраты 3 часа.
Views - уже оттестировано. + Уже есть встроенное во Views кэширование.
3 часа = 180 минут
12 строчек
1 строка = 15 минут
+ по кнопочкам мышкой потыкать - вьюесы сделать, поотлаживать...
тоже столкнулся с похожей задачей:
есть нод ПРОЕКТ, в нему можно добалять нод ЗАДАЧА (идет ссылка на родительскую задау или проект). К ЗАДАЧЕ тоже можно цеплять ЗАДАЧУ. В итоге получаем вложенное дерево, примерно такого вида:
проект1->задача1->задача2->задача3
проект1->задача4->задача5
задача4->задача6
Необходимо для страницы проекта вывести вид со всеми вложенными задачами для данного проекта. Можно ли решить предложенным методом эту проблему? или есть другие варианты?