Drupal 7 - вывести значение поля ноды как класс к body

Категория: Drupal
Дата публикации: 1 июля, 2015 - 18:16
Последнее изменение: 20 июля, 2015 - 19:56

Задача: вывести значение поля как класс к тегу body.
Решение:

function THEMENAME_preprocess_html(&$vars) {

    $node = menu_get_object();
        if ($node && isset($node->nid)){
            $field_class = field_get_items('node', $node, 'FIELD_NAME');
   
        if (!empty($field_class)) {
            $vars['classes_array'][] = $field_class[0]['value'];
        };
    };
}

В каких случаях это может пригодиться: например, когда имеющиеся ноды нужно поделить на логические категории, по которым потом удобно будет задавать разные стили для разных категорий.
Термины таксономии использовать смысла нет, более этого их использование может породить дубли контента.

Шаг 1. В нужном типе материала создается новое поле типа "Список (текст)".
Шаг 2. "Список допустимых значений" заполняется так, чтобы ключ был написан латинскими буквами (именно он пойдет в класс к боди потом). Например, так:

malina|Малина
apelsin|Апельсин
grusha|Груша

Источник: http://www.drupalden.co.uk/printing-node-field-value-html.tpl.php-templa...

Добавить комментарий