Чтобы сделать выборку нод, на которые ссылается другая выборка нод надо...

Прислано: 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;

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Гость (гостевой логин) в сб, 07/06/2008 - 14:59.

Н-да, вот вредное влияние Views -- то, чт целесообразно сделать кастомным модулем, делают Viewsами с чудовищным оверхелдом и потом мучительно сие кэшируют.


Опубликовано Dimm в сб, 07/06/2008 - 17:37.

Свой модуль надо писать, тестировать и отлаживать. Трудозатраты 30 часов.
А тут написал 12 строчек кода - и готово. Трудозатраты 3 часа.
Views - уже оттестировано. + Уже есть встроенное во Views кэширование.


Опубликовано Stalker-g2 в пн, 09/06/2008 - 09:40.

3 часа = 180 минут
12 строчек

1 строка = 15 минут :)))


Опубликовано Dimm в пн, 09/06/2008 - 14:48.

+ по кнопочкам мышкой потыкать - вьюесы сделать, поотлаживать...


Опубликовано talgar в ср, 09/07/2008 - 11:04.

тоже столкнулся с похожей задачей:
есть нод ПРОЕКТ, в нему можно добалять нод ЗАДАЧА (идет ссылка на родительскую задау или проект). К ЗАДАЧЕ тоже можно цеплять ЗАДАЧУ. В итоге получаем вложенное дерево, примерно такого вида:
проект1->задача1->задача2->задача3
проект1->задача4->задача5
задача4->задача6

Необходимо для страницы проекта вывести вид со всеми вложенными задачами для данного проекта. Можно ли решить предложенным методом эту проблему? или есть другие варианты?


Новое на сайте

Ссылки партнёров