Embeded view

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

Аватар пользователя Arseniy Arseniy 27 ноября 2009 в 9:02

Пытаюсь в node вывести view. Попробовал несколько способов - не получается.

// Способ 1
$myview = views_get_view('photos');
$myview->set_arguments('');
$myview->set_display('page'); // или default - без разницы
$myview->execute_display();

Получаю вообще пустую страницу, без html. Комментирование set_display и execute_display приводят к появлению html, но без view естественно.

// способы 2-4
print $myview->preview();
print $myview->execute_display('default', '2276');
print $myview->preview('default', '2276'); // 2276 - аргумент view, его присутствие или отсутствие ничего не меняет

Результат всех трех вариантов - тоже пустая страница без html

// способ 5
$view_args = array('');
$func_args = array_merge(array('photos', 'default'), $view_args);
print call_user_func_array('views_embed_view', $func_args);

Страница выводится, на ней есть все, кроме view. Изменение display на page или page_1 и добавление аргументов ничего не дает.

Господа, где я не прав?

Комментарии

Аватар пользователя glu2006 glu2006 27 ноября 2009 в 9:18

Вьюс для вывода вставляется на любую страницу сайта следующим кодом

<?php
echo views_embed_view('views_name');
?>

И не надо больше ничего мудрить. если аргументы построены правильно, то все будет работать.

Аватар пользователя Arseniy Arseniy 27 ноября 2009 в 9:57

"glu2006" wrote:
И не надо больше ничего мудрить. если аргументы построены правильно, то все будет работать.

Вот и получаю пустую страницу я с этим кодом. Хотя сама view работает нормально.

Аватар пользователя glu2006 glu2006 27 ноября 2009 в 11:04

Arseniy wrote:
Вот и получаю пустую страницу я с этим кодом. Хотя сама view работает нормально.

Чем докажете что сама вьюха работает нормально?

Я как Станиславский - НЕ ВЕРЮ Smile Значит косяки у Вас уважаемый в аргументах, если вьюха возвращает пустоту (ищите где, мне с далека не видно).
Если все построено правильно и корректно, то все и отображается правильно и корректно.

Давайте начнем с того, где вы выводите вашу вьюху, какие аргументы хотите передать и какого они плана.
Что в настройках вьюса если аргумент отсутствует и т.д.

Аватар пользователя Arseniy Arseniy 27 ноября 2009 в 11:25

glu2006 wrote:
Arseniy wrote:
Вот и получаю пустую страницу я с этим кодом. Хотя сама view работает нормально.

Давайте начнем с того, где вы выводите вашу вьюху, какие аргументы хотите передать и какого они плана.
Что в настройках вьюса если аргумент отсутствует и т.д.

Таки да, косячек есть. Если смотрю вьюшку без аргументов, то получаю вот такую фигню:

warning: Invalid argument supplied for foreach() in /cck/content.module on line 1345.

Может тут собака порылась?

Аватар пользователя glu2006 glu2006 27 ноября 2009 в 12:40

Arseniy wrote:
Может тут собака порылась?

Ну где порылась собака Вам лучше знать :), у меня нет способностей видеть косяки телепатически.

Аватар пользователя gorr gorr 27 ноября 2009 в 10:24

<?php
$view = views_get_view('viewname');
print $view->execute_display('default', $args);
?>

вот эта строчка, что ниже - неверна, аргументы должны быть массивом:
$myview->set_arguments('');

Аватар пользователя Arseniy Arseniy 27 ноября 2009 в 10:35

"gorr" wrote:
вот эта строчка, что ниже - неверна, аргументы должны быть массивом:
$myview->set_arguments('');

А чем тогда выводить? preview и execute_display приводят к пустой странице

PS Масочка кстати антифогом набрызгана Smile

Аватар пользователя glu2006 glu2006 27 ноября 2009 в 14:04

Arseniy wrote:
Короче был какой-то глюк... Сделал экспорт-импорт view и все заработало.

Ну вот видите :), а вы тут про какие-то способы нам пишите.

Аватар пользователя stolz stolz 10 марта 2010 в 13:15

"glu2006" wrote:
Вьюс для вывода вставляется на любую страницу сайта следующим кодом

Уважаемый glu2006 спасибо огромное, перерыл за нескольк очасов стока информации, а вьюху так и не мог нормально отобразить. И как оказалось зря, все очень просто делается.