Вывод views только когда есть результат во views

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

Аватар пользователя Evil0o Evil0o 1 октября 2014 в 0:24

Есть блок который выводится на страницах нод, выведен не программно.
На некоторых страницах нет результата выполнения вьюса, а заголовок есть.
Не хочется создавать новые шаблоны и тп, хочется как то визилгом сделать,
программно я решение нашел http://www.drupal.ru/node/109993, но куча новых шаблонов и заглушек не радует

Комментарии

Аватар пользователя Evil0o Evil0o 1 октября 2014 в 0:30

если вариантов не будет, то другой вопрос как такой код запихнуть в блок, передать параметры(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');
}

Аватар пользователя whiesam whiesam 1 октября 2014 в 0:35

"Evil0o" wrote:
хочется как то визилгом сделать,

Тут никак без кодинга. Ну сами посудите, как блок будет узнавать есть ли что-то во вьюсе?

Вам надо во вьюсу передать id ноды как контекстный фильтр? то:


<?php
print views_embed_view('viewsa''block_2''nid');
?>

В вашем случае вроде как:

<?php
// NID
$view->set_arguments(array(NID));
?>
Аватар пользователя drupby drupby 1 октября 2014 в 0:42

если во вьюсовом блоке не будет результатов, то он вообще не будет выводиться
я писал вариант для вывода в блоке кодом, а если блок создан вьюсом, то он ничего и не должен выводить

Аватар пользователя Evil0o Evil0o 1 октября 2014 в 0:44

Спасибо.
Сейчас опробую, отпишусь.

"whiesam" wrote:
Тут никак без кодинга. Ну сами посудите, как блок будет узнавать есть ли что-то во вьюсе?

Ну как вьюс наверняка по умному сделан(я надеюсь) сначала выполнение всяких запросов, а потом все данные в шаболон уходят.
И соответственно нам надо запихнуть проверку после выполнения запросов, есть ли результат, если нету, то не рендерить блок.
знать бы как)))

Аватар пользователя Evil0o Evil0o 1 октября 2014 в 0:49

"drupby" wrote:
если во вьюсовом блоке не будет результатов, то он вообще не будет выводиться

Это не так. Не будет выводится, если в него не поступает параметров.

Аватар пользователя whiesam whiesam 1 октября 2014 в 0:57

"drupby" wrote:
если во вьюсовом блоке не будет результатов, то он вообще не будет выводиться

Точно, точно, совсем про вьюсовый блок забыл.
"Evil0o" wrote:
Это не так. Не будет выводится, если в него не поступает параметров.

Дак во вьюсе пропиши контекстный фильтр. Правда выйдет только в том случае, если ты подставляешь id ноды в блок в этой же ноде.

Аватар пользователя drupby drupby 1 октября 2014 в 1:00

"Evil0o" wrote:
Это не так. Не будет выводится, если в него не поступает параметров.

такое ощущение, что мы на разных языках разговариваем и про разные CMS, ну смотри сам - делай и считай как знаешь

Аватар пользователя Evil0o Evil0o 10 ноября 2015 в 11:49

"drupby" wrote:
такое ощущение, что мы на разных языках разговариваем и про разные CMS

Я вот так делаю. Это не правильно?

Аватар пользователя drupby drupby 1 октября 2014 в 1:17

"Evil0o" wrote:
Я вот так делаю

да какая разница какие фильтры и аргументы во вьюсе, если у вьюса не будет результатов, то он и не будет блок выводить

Аватар пользователя Evil0o Evil0o 1 октября 2014 в 1:22

"drupby" wrote:
то он и не будет блок выводить

ну он выводится(((. Видимо пустой результат тоже результат.
А во если на левой странице где нет параметра в урле, то он не выводится.