Помогите с видимостью блоков

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

Аватар пользователя _devid_ _devid_ 24 марта 2010 в 9:53

У меня есть два блока. Каждый формируется viewом. Хотелось бы сделать так если view 1 блока не дал результатов (т.е. выборка пустая) -> блок показываться не будет значит надо показать 2й блок, если же выборка не пуста -> блок 1 будет виден -> блок 2 должен быть скрыт.

Подскажите плз как это можно сделать? Если через php, то что именно и где нужно написать.

Комментарии

Аватар пользователя wolfXXXL wolfXXXL 24 марта 2010 в 10:44

На странице Ваш_сайт/admin/build/block находите нужные блоки -> изменить
Ставите галочку "Показать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов)."
Пишите Ваш запрос.
Логика проста: Смотрите запрос который формирует view пишите его в двух блоках с условием один будет возвращать TRUE если он удался, другой наоборот.
Выводите оба блока в нужный регион.

Аватар пользователя _devid_ _devid_ 24 марта 2010 в 11:55

wolfXXXL wrote:
На странице Ваш_сайт/admin/build/block находите нужные блоки -> изменить
Ставите галочку "Показать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов)."
Пишите Ваш запрос.
Логика проста: Смотрите запрос который формирует view пишите его в двух блоках с условием один будет возвращать TRUE если он удался, другой наоборот.
Выводите оба блока в нужный регион.

Можете привести небольшой пример, я не знаю просто как проверить что результат работы view пуст.

Аватар пользователя wolfXXXL wolfXXXL 24 марта 2010 в 12:20

Взял первую попавшуюся view запрос чуть подправил (обернул таблицы в {} подправил алиасы)

$result = db_result(db_query("SELECT n.title
                              FROM {node} n
                              LEFT JOIN {node_revisions} nr ON n.vid = nr.vid
                              WHERE (n.status <> 0) AND (n.type in ('blog'))
                              ORDER BY n.title ASC"
));
if ($result) {
  return TRUE;
}
else {
  return FALSE;
}

Выведиться блок если есть хоть один результат.

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 24 марта 2010 в 17:51

Нежнее, вольф, ещё нежнее...

return (bool)db_result(db_query("SELECT n.title
                              FROM {node} n
                              LEFT JOIN {node_revisions} nr ON n.vid = nr.vid
                              WHERE (n.status <> 0) AND (n.type in ('blog'))
                              ORDER BY n.title ASC"
));
Аватар пользователя wolfXXXL wolfXXXL 24 марта 2010 в 18:03

"RxB" wrote:
Нежнее, вольф, ещё нежнее...

return (bool)db_result(db_query("SELECT n.title
FROM {node} n
LEFT JOIN {node_revisions} nr ON n.vid = nr.vid
WHERE (n.status <> 0) AND (n.type in ('blog'))
ORDER BY n.title ASC"));


А таки да, спасибо!