С помощью модуля Views можно создавать свои списки документов, выбирать отображаемые поля и производить фильтрацию по различным параметрам. Существует еще один модуль "Insert view" который работает как фильтр и позволяет вставлять созданные виды в любую ноду, использует формат тэгов [view:name].
Грабли в том, что эта вставка не работает для типов документов, созданных с помощью CCK.
После поиска по форумам drupal.org я пришел к выводу, что осуществить вставку вида в ноду CCK можно только используя PHP код, но конкретного решения я так и не нашел.
Пришлось код придумывать самому, вот решение:
<?php
print theme_view ($view_name, $limit=NULL, $use_pager=NULL, $type= 'embed', $view_args=array())
?>
$view_name - имя вставляемого вида
$limit - ограничение на количество документов
$use_pager - использовать или нет разбивку на страницы (true/false)
$view_args - массив аргументов, передаваемых виду
естественно формат ввода PHP code
Комментарии
Долго думал?
А я думал это стандартный код помещения вида на страницу.
Можно кстати короче:
<?php
print theme_view ('view name', NULL, NULL, 'embed', array());
?>
Ещё вариант:
<?php
$view = views_get_view('view name');
print views_build_view('embed', $view, array(), FALSE, 20);
?>
Не, над кодом думал не долго.
Долго думал, почему у меня вместо вида на странице впечатывается [view:name].
Да, такая же фигня была, тоже долго понять не мог - то ли лыжи не едут ....
UPD: Последняя версия модуля Insert Veiw прекрасно работает с полями CCK.
То, с чем я столкнулся был видимо временный баг.
Если вы не хотите давать всяким разным людям доступ к PHP вводу, а например текст до или после вставленного вида они могут менять, тогда лучше пользоваться фильтром Insert View.
А как вставить только картинку?
Я сделал представление с полями:
картинка+заголовок ноды в виде ссылки. Данные брать из каталога Ubercart, в котором помимо картинки и заголовка есть описание товара и кнопки "добавить в корзину".
С помощью Insert View делаю
[view:view_name=1]
и выводится вся нода без фильтрации: заголовок ноды, картинка, описание, кнопка "добавить в корзину".
Как прописать фильтр, используемый в представлении?
Где вы, уважаемый, нашли раритетный дистрибутив дру 4.7 в нашем 2009 году?
Лучше начни новую тему и укажи свою версию друпала и модулей.
Не знаю в чем причина у меня этот код не работает, представление не выходит
<?php
$view = views_get_view('rez_gol_node');
$current_view->args[0]=$node->nid;
print views_build_view('embed', $view,$current_view->args, false, false);
?>
Тип докумнтов создан с помощью CCK полей
Ну ещё бы! Прошло полтора года. Очевидно, что АПИ изменилось.
Подскажите пожалуйста.
Создаю ноду и вид с аргументом. По путям: taxonomy/term/11 и taxonomy/term/10 выдает то, что нужно.
Теперь, мне нужно в разные ноды вывести эти виды. В одну ноду вьюху taxonomy/term/11, а в другую соответсвенно
taxonomy/term/11.
Я делаю вот так:
<?php
$myvid = views_get_view('personality');
$ar = array('tid', 11);
$myvid->set_arguments($ar);
$myvid->set_items_per_page(0);
print $myvid->render('default');
?>
Пробовал вот так:
<?php
$myvid = views_get_view('personality');
$ar = array();
$ar[] = $term->tid;
$myvid->set_arguments($ar);
$myvid->set_items_per_page(0);
print $myvid->render('default');
?>
<?php
$view = views_get_view('personality');
print views_build_view('embed', $view, array('11'), FALSE, 20);
?>
Но не получается. Что я делаю не так?