Пытаюсь в 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 и добавление аргументов ничего не дает.
Господа, где я не прав?
Комментарии
Вьюс для вывода вставляется на любую страницу сайта следующим кодом
<?php
echo views_embed_view('views_name');
?>
И не надо больше ничего мудрить. если аргументы построены правильно, то все будет работать.
Вот и получаю пустую страницу я с этим кодом. Хотя сама view работает нормально.
Чем докажете что сама вьюха работает нормально?
Я как Станиславский - НЕ ВЕРЮ Значит косяки у Вас уважаемый в аргументах, если вьюха возвращает пустоту (ищите где, мне с далека не видно).
Если все построено правильно и корректно, то все и отображается правильно и корректно.
Давайте начнем с того, где вы выводите вашу вьюху, какие аргументы хотите передать и какого они плана.
Что в настройках вьюса если аргумент отсутствует и т.д.
Таки да, косячек есть. Если смотрю вьюшку без аргументов, то получаю вот такую фигню:
warning: Invalid argument supplied for foreach() in /cck/content.module on line 1345.
Может тут собака порылась?
Ну где порылась собака Вам лучше знать :), у меня нет способностей видеть косяки телепатически.
И как в таком случае передать во View аргументы?
Может маска запотела, вот и не видно??))
<?php
$view = views_get_view('viewname');
print $view->execute_display('default', $args);
?>
вот эта строчка, что ниже - неверна, аргументы должны быть массивом:
$myview->set_arguments('');
А чем тогда выводить? preview и execute_display приводят к пустой странице
PS Масочка кстати антифогом набрызгана
Короче был какой-то глюк... Сделал экспорт-импорт view и все заработало.
Ну вот видите :), а вы тут про какие-то способы нам пишите.
Ну это же не есть правильно
Уважаемый glu2006 спасибо огромное, перерыл за нескольк очасов стока информации, а вьюху так и не мог нормально отобразить. И как оказалось зря, все очень просто делается.