Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Разный цвет заголовка

Разный цвет заголовка
, by

Нужно подставлять хекс код цвета, который находится в поле филды field_color в нужный кусок HTML кода.

 

Подготовил такое в шаблоне сайта:

<?php print render($title_prefix); ?>
                <?php if ($title): ?>
                    <h1 style="color: #<?php echo $Set_color; ?>;" id="page-title"><?php print $title; ?></h1>
                <?php endif; ?>
                <?php print render($title_suffix); ?>

 

В общем не могу понять как подставить в $Set_color содержимое поля field_colorну и естественно потом загонять в подготовленный заранее  <h1 style="color: #<?php echo $Set_color; ?>;" id="page-title"><?php print $title; ?></h1>.


Сделал в начале код

  // Загрузка ноды
  $node = node_load($nid);
  // Достаем значения поля
  $Set_color = $node->field_color[$node->language]['0']['value'];


Но нифига не выводит нинчего.


Как мне вывести значение?

1 answer
votes: 1141
Answer

Можете попробовать переопределить шаблон поля:

https://drupal.org/node/1089656

 

Можете также попробовать вот этот модуль commerce fancy attributes:

https://drupal.org/project/commerce_fancy_attributes


Решил таким способом:

 

В начало шаблона страницы указал

 

<?php
 if (isset($node)) {
    $Title_Color = !empty($node->field_color) ? "style=\"color: " . $node->field_color['und']['0']['rgb'] . ";\"" : "";
}
?>

 

И потом просто вывожу это <?php echo $Title_Color;  ?> там где надо.

 

Обработчик в template.php пока не получилось написать. Если кто скажет где ошибка, и как правильно - буду признателен:

 

function ИМЯ_ТЕМЫ_preprocess_page(&$variables) {
 if (isset($variables['node'])) {
    $Set_color = !empty($variables['node']->field_color) ? "style=\"color: " . $variables['node']->field_color['und']['0']['rgb'] . ";\"" : "";
    }
}

 

Что тут не так?

 


не $Set_color,  а $Title_Color (забыл переписать, но и перепсав не работает)


  // Загрузка ноды
  $node = node_load($nid);
  // Достаем значения поля
  $Set_color = $node->field_color[$node->language]['0']['value'];

Не уверен что в шаблоне есть переменная $nid. Используйте лучше просто 'und' вместо $node->language, скорее всего у вас один язык на сайте. Поставьте модуль devel, распечатайте с помощью dsm() массивы  $node, переменную $nid, переопределите шаблон поля и распечатайте там переменные.