У меня есть два блока. Каждый формируется viewом. Хотелось бы сделать так если view 1 блока не дал результатов (т.е. выборка пустая) -> блок показываться не будет значит надо показать 2й блок, если же выборка не пуста -> блок 1 будет виден -> блок 2 должен быть скрыт.
Подскажите плз как это можно сделать? Если через php, то что именно и где нужно написать.
Комментарии
На странице Ваш_сайт/admin/build/block находите нужные блоки -> изменить
Ставите галочку "Показать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов)."
Пишите Ваш запрос.
Логика проста: Смотрите запрос который формирует view пишите его в двух блоках с условием один будет возвращать TRUE если он удался, другой наоборот.
Выводите оба блока в нужный регион.
Можете привести небольшой пример, я не знаю просто как проверить что результат работы view пуст.
Взял первую попавшуюся view запрос чуть подправил (обернул таблицы в {} подправил алиасы)
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;
}
Выведиться блок если есть хоть один результат.
Нежнее, вольф, ещё нежнее...
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"));
А таки да, спасибо!
Неужели нельзя просто проверить видимость другого блока?
Самый простой вариант вам дали.
Видимость другого блока проверить можно, вот только ВИДИМОСТЬ вас не спасёт, так как вы чуть ранее говорили про контент