темизация

Переопределение шаблона формы в Друпал 8

17 декабря 2016 - 23:22
/**
 * Implements hook_theme_suggestions_HOOK_alter().
 */

function THEME_theme_suggestions_form_alter(array &$suggestions, array $variables) {
  $suggestions[] = 'form__' . $variables['element']['#theme'][0]; // Machine name of form.
}

Добавление значений полей ноды в шаблон страницы в Drupal 8

06 ноября 2016 - 16:20

На примере полей Image и Body:

function THEME_preprocess_page(&$variables) {
  if ($node = \Drupal::routeMatch()->getParameter('node')) {
    if (isset($node->field_image->entity)) {
      $variables['field_image_url'] = file_create_url($node->field_image->entity->getFileUri());
    }
    $variables['body_text'] = $node->body->value;
  }
}

Шпаргалка по Drupal 8

27 февраля 2016 - 11:37

(статья периодически обновляется)

Кеширование

Отключение кеширования на время разработки - https://www.drupal.org/node/1903374 (при добавлении шаблонов в тему кеш все равно нужно сбрасывать, очистка кеша иногда занимает до минуты, поэтому сразу добавляйте по несколько шаблонов).

Удаление атрибута xml:lang в ссылках переключателя языков в Drupal

23 января 2016 - 12:14

Чтобы удалить атрибут xml:lang в ссылках переключателя языков в Drupal 7, используем хук hook_language_switch_links_alter().

Собственные настройки темы в Друпал 7

31 января 2015 - 23:53

Для создания дополнительных настроек темы оформления сайта в Drupal 7 необходимо в папке с темой создать файл theme-settings.php и в нем с помощью хука hook_form_FORM_ID_alter() в форму настроек темы добавить свои поля. Следующий код добавляет в настройки темы ссылки на социальные сети:

Убираем обертки и метки полей формы в Drupal

19 января 2015 - 23:38

Пример кода в template.php, убирающего div-обертки и метки полей ввода в форме входа на сайт и добавляющего атрибут placeholder полям:

Шаблон ноды в зависимости от режима отображения в Drupal

17 декабря 2014 - 23:57

В теме оформления сайта на Drupal 7 можно переопределять шаблоны нод конкретного типа материала (node--TYPE.tpl.php) или конкретных нод (node--NID.tpl.php), однако нередко возникает задача создания шаблона для конкретного режима отображения ноды, например анонса (teaser) или любого другого, который можно задать самостоятельно с помощью хука hook_entity_info_alter или с помощью различных модулей.

Страницы