Нужно вывести в панели несколько views с разными аргументами.
При вставке views в панель есть несколько способов передать аргумент:
Send arguments
(Select this to send all arguments from the panel directly to the view. If checked, the panel arguments will come after any context arguments above and precede any additional arguments passed in through the Arguments field below.)
Arguments:
(Additional arguments to send to the view as if they were part of the URL in the form of arg1/arg2/arg3. You may use %0, %1, ..., %N to grab arguments from the URL. Or use 0, 1, 2, ..., N to use arguments passed into the panel.)
Override URL:
(If this is set, override the View URL; this can sometimes be useful to set to the panel URL)
Но ни один из них не работает.
Пришлось вставлять в панель "Custom PHP content" и выводить views программно:
$arg[0]='story';//node_type
$arg[1]='1'; //term_id
$block->content= $myview->execute_display('page_1',$arg);
Скажите может всетаки возможно передать аргументы из Panel2 во Views2 стандартными средствами?
Комментарии
Оказалось удобнее выводить через блок:
<?php
$args[0]=arg(1);
$args[1]=arg(2);
$myview = views_get_view('taxonomy_type');
$viewblock=$myview->execute_display('block_1',$args);
$block->content=$viewblock['content'];
?>
http://sirkitree.net/panels2-context-screencast
Столкнулся с аналогичной проблемой. Вид насторен нормально, а панели не передают в вид аргумент как константу, а только при захвате с url.
Опишите пожалуйста, что означают строки
taxonomy_type
block_1
content
Это просто программный вызов views.
taxonomy_type - имя views.
block_1, block_2, block_3, - идентификатор dislay views.
content - так надо: $block->content=$viewblock['content'];.
Спасибо! буду учиться
************************************
часом позже...
А вот не получается ничего
Название views: news_view
Два вида вывода: "по умолчанию" и "лента"
Тип аргумента: ID термина (вывожу все ноды связанные с термином). Нет аргумента или арг некорректен- показать все (для отладки), проверка по словарю, тип арга - id термина
Поля: заголовок и тизер
Фильтров, сортировки и отношений нету
Предпросмотр работает идеально.
Пишу свой блок "новости для страницы поиска"
Заголовок - "Новости"
Формат вывода - php
текст блока
$args[0]=1;
$myview = views_get_view('news_view');
$viewblock=$myview->execute_display('block_1',$args);
$block->content=$viewblock['content'];
print 'КВАКВА!!!'; //для проверки выводимости блока
?>
размещаю для проверки в правой колонке. После сохранения в правой колонке выводится заголовок "новости" и моё "кваква". Где собака зарыта?
Если вывод по умолчанию то
$viewblock=$myview->execute_display('default',$args);
или
$viewblock=$myview->execute_display('defaults',$args);
не помню
неа... все равно аргумент не принимается...
Пробовал сделать новый тип view - pane, в нем предусмотрена передача аргументов. Тоже не получилось...
максимум что удалось добиться - вывод символа <. К чему бы это?
print $block->content;
после многочасовой пляски с бубном Ваш код у меня заработал...
Тип материала - новости. Привязан к словарю "Разделы".
Создал View под названием "news_view" с одним видом - По умолчанию.
Аргумент - ID термина, ограниченный словарем "разделы".
Поля - заголовок и анонс. Заголовок ссылкой на ноду новости. Впоследствие прикручу поле CCK imagefield слева, если получится
Фильтр - тип материала "новости" (в принципе необязателен, но на перспективу пусть будет)
Страница панелей стоит по адресу www.site.ru/<Раздел> (всего 4 раздела).
В нужномй панельке создал Custom PHP Content, в него вписал код
$arg[0]='1'; //номер терма, соответствующий номеру раздела.
$block->content= $myview->execute_display('default',$arg);
После этого часа два игрался с параметрами view, кодом php, в конце вернул все на место, именно в тот вид,что описан выше, и все заработало.
Огромное спасибо за поддержку!
P.S. аргументы из панели в view передаются только через @. У меня пока получается работать только с 1 аргументрм - id терма по адресу taxonomy/term/% Что делать:
0) сделать view с аргументом - ID таксономии. Определить, по каким словарям проверять. Указать поля (Я юзал заголовок материала) и фильтры.
1) Создать panel page. определить в url панели символом % что из строки адреса считать аргументом
2) определить тип аргумнта в разделе context
3) в разделе содержания вставлять в блок нужный view, ставить галку "Send arguments" и в поле ввода без кавычек вписать "0"
4) сохраниться и сходить по адресу, на котором лежит страничка. Всё должно быть
Есть более простая конструкция для выполнения views
<?php
print views_embed_view("taxonomy_term", "page", 123 );
?>
параметры такие: имя view, display, остальные - дополнительные параметры