logo
Русский
    Русский

      Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

      Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

      Демо EBT модули Скачать EBT модули

      ❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

      Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

      Демо EPT модули Скачать EPT модули

      Scroll

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

      22/02/2025, 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'];

       

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

       

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


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

      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, переопределите шаблон поля и распечатайте там переменные.