Есть блок который выводится на страницах нод, выведен не программно.
На некоторых страницах нет результата выполнения вьюса, а заголовок есть.
Не хочется создавать новые шаблоны и тп, хочется как то визилгом сделать,
программно я решение нашел http://www.drupal.ru/node/109993, но куча новых шаблонов и заглушек не радует
Комментарии
если вариантов не будет, то другой вопрос как такой код запихнуть в блок, передать параметры(id ноды)
$view = views_get_view('objects');
$view->set_display('block_2');
$view->set_arguments(array(2457, 398));
$view->pre_execute();
$view->execute();
if ( $view->result) {
print $view->render('block_2');
}
Тут никак без кодинга. Ну сами посудите, как блок будет узнавать есть ли что-то во вьюсе?
Вам надо во вьюсу передать id ноды как контекстный фильтр? то:
<?php
print views_embed_view('viewsa', 'block_2', 'nid');
?>
В вашем случае вроде как:
<?php
// NID
$view->set_arguments(array(NID));
?>
если во вьюсовом блоке не будет результатов, то он вообще не будет выводиться
я писал вариант для вывода в блоке кодом, а если блок создан вьюсом, то он ничего и не должен выводить
Спасибо.
Сейчас опробую, отпишусь.
Ну как вьюс наверняка по умному сделан(я надеюсь) сначала выполнение всяких запросов, а потом все данные в шаболон уходят.
И соответственно нам надо запихнуть проверку после выполнения запросов, есть ли результат, если нету, то не рендерить блок.
знать бы как)))
Это не так. Не будет выводится, если в него не поступает параметров.
Точно, точно, совсем про вьюсовый блок забыл.
Дак во вьюсе пропиши контекстный фильтр. Правда выйдет только в том случае, если ты подставляешь id ноды в блок в этой же ноде.
такое ощущение, что мы на разных языках разговариваем и про разные CMS, ну смотри сам - делай и считай как знаешь
Я вот так делаю. Это не правильно?
да какая разница какие фильтры и аргументы во вьюсе, если у вьюса не будет результатов, то он и не будет блок выводить
ну он выводится(((. Видимо пустой результат тоже результат.
А во если на левой странице где нет параметра в урле, то он не выводится.
покажи исходный код блока который получается, когда он выводится
Я ступил. Результат есть во вьюсе, но поля пустые.