Insert view + CCK

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

Аватар пользователя seaji seaji 16 декабря 2006 в 18:17

С помощью модуля Views можно создавать свои списки документов, выбирать отображаемые поля и производить фильтрацию по различным параметрам. Существует еще один модуль "Insert view" который работает как фильтр и позволяет вставлять созданные виды в любую ноду, использует формат тэгов [view:name].
Грабли в том, что эта вставка не работает для типов документов, созданных с помощью CCK. Sad
После поиска по форумам 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

Комментарии

Аватар пользователя Dan Dan 17 декабря 2006 в 19:30

Долго думал? Lol

А я думал это стандартный код помещения вида на страницу.
Можно кстати короче:
<?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);
?>

Аватар пользователя seaji seaji 18 декабря 2006 в 12:58

Не, над кодом думал не долго.
Долго думал, почему у меня вместо вида на странице впечатывается [view:name].

Аватар пользователя seaji seaji 26 мая 2008 в 16:16

UPD: Последняя версия модуля Insert Veiw прекрасно работает с полями CCK.
То, с чем я столкнулся был видимо временный баг.

Если вы не хотите давать всяким разным людям доступ к PHP вводу, а например текст до или после вставленного вида они могут менять, тогда лучше пользоваться фильтром Insert View.

Аватар пользователя vktRus vktRus 20 февраля 2009 в 11:54

А как вставить только картинку?
Я сделал представление с полями:
картинка+заголовок ноды в виде ссылки. Данные брать из каталога Ubercart, в котором помимо картинки и заголовка есть описание товара и кнопки "добавить в корзину".
С помощью Insert View делаю
[view:view_name=1]
и выводится вся нода без фильтрации: заголовок ноды, картинка, описание, кнопка "добавить в корзину".
Как прописать фильтр, используемый в представлении?

Аватар пользователя fasdalf@fasdalf.ru fasdalf@fasdalf.ru 20 февраля 2009 в 13:53

Где вы, уважаемый, нашли раритетный дистрибутив дру 4.7 в нашем 2009 году?
Лучше начни новую тему и укажи свою версию друпала и модулей.

Аватар пользователя cinderella cinderella 19 августа 2010 в 15:20

Не знаю в чем причина у меня этот код не работает, представление не выходит

<?php
$view 
views_get_view('rez_gol_node');
$current_view->args[0]=$node->nid;
print 
views_build_view('embed'$view,$current_view->argsfalsefalse);
?>

Тип докумнтов создан с помощью CCK полей

Аватар пользователя Mezolick2 Mezolick2 18 октября 2010 в 7:35

Подскажите пожалуйста.
Создаю ноду и вид с аргументом. По путям: 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'), FALSE20);
?>

Но не получается. Что я делаю не так?