Как спрятать поле из вывода ноды в зависимости от значения другого поля.
Я буду прятать поле field_image из вывода на странице пользователя в зависимости от поля field_slider_enable.
Вот такие настройки этих полей:
То есть field_slider_enable это просто чекбокс.
Если значения чекбокса у ноды = включен, то показываем галерею, если нет, то прячем field_image от вывода.
Вот так выглядят настройки отображения:
Ниже код, он лежит в теме в файле template.php.
Обязательно поменяйте название функции в зависимости от название темы.
function THEME_preprocess_node(&$vars, $hook) {
if($vars['view_mode'] == 'full' && $vars['node']->type == 'article') {
// Если поле пустое или значение == 0, то не отображаем слайдер.
$field_slider_enable = field_get_items('node', $vars['node'], 'field_slider_enable');
if (empty($field_slider_enable) || $field_slider_enable[0]['value'] == 0) {
$vars['content']['field_image']['#access'] = FALSE;
}
}
}
Сначала он проверяет, отображается ли полная нода типа article.
Ну и затем не дает доступ к этому полю, если чекбокс не включен.
Если есть вопросы по коду, то очень интересная статья: Функции предобработки переменных перед выводом в шаблон.
Просмотр комментариев