темизация

Шаблоны для разных режимов отображения терминов таксономии в Drupal 8/9

27 февраля 2021 - 22:31
/**
 * Implements hook_theme_suggestions_taxonomy_term_alter().
 */

function THEMENAME_theme_suggestions_taxonomy_term_alter(array &$suggestions, array $variables) {
  /** @var \Drupal\taxonomy\TermInterface $term */
  $term = $variables['elements']['#taxonomy_term'];
  $sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_');
  // Add view mode theme suggestions.
  $suggestions[] = 'taxonomy_term__' . $sanitized_view_mode;
  $suggestions[] = 'taxonomy_term__' . $term->bundle() . '__' . $sanitized_view_mode;
  $suggestions[] = 'taxonomy_term__' . $term->id() . '__' . $sanitized_view_mode;
}

Подключение внешней JS-библиотеки в тему Drupal 8/9

18 февраля 2021 - 18:41
Код для файла THEMENAME.libraries.yml на примере Fancybox:
fancybox:
  remote: https://fancyapps.com/fancybox/3/
  version: 3.5.7
  license:
    name:  GNU GPLv3
    url: http://fancyapps.com/fancybox/3/#license
    gpl-compatible: true
  js:
    https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js: {type: external, minified: true}
  css:
    theme:
      https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css: {type: external, minified: true}

Переопределение шаблона формы в Друпал 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() в форму настроек темы добавить свои поля. Следующий код добавляет в настройки темы ссылки на социальные сети:

Страницы