Как я могу отобразить блок только тогда, когда узел соответствует определенному условию?


У меня есть блок, который позволяет посетителю сайта запрашивать внешний календарь, но он будет работать только для определенных узлов.

Как я могу настроить его так, чтобы я мог i) указать, есть ли у узла данные календаря, доступные для узла, и ii) если у него есть доступные данные календаря, отобразить блок, а если у него нет доступных данных календаря, блок не отображается?

Кто-то предложил мне использовать для этого рабочий процесс, но я не смог понять выясните, как рабочий процесс поможет мне это настроить.

Author: James, 2011-08-22

1 answers

Я бы использовал настройки видимости PHP для отображения блока на странице узла, если значение cck в этом узле имеет некоторое значение, предполагая, что значение этого поля cck указывает на этот узел, содержащий данные календаря. После того, как вы создали блок, который хотите отобразить (или не отображать), добавьте следующий код в "Настройки видимости для конкретной страницы" в меню конфигурации блока:

<?php 
$node = node_load( arg(1) );

if ($node && $node->type =="[your_content_type]" && $node->field_has_cal_data[0]['value'] =='Yes'){
return TRUE;
}

return FALSE;

?>

Это предполагает, что URL-адрес построен как "содержимое/имя или идентификатор узла".

 1
Author: , 2011-08-23 15:48:42