Друпал 8

Шаблоны для разных режимов отображения терминов таксономии в 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}

Перевод сайта на Drupal 8 на управление с помощью Composer

03 февраля 2019 - 17:48
  1. Все контрибные модули (установленные с drupal.org) помещаем в папку /modules/contrib, кастомные - в папку /modules/custom
  2. Контрибные темы переносим в /themes/contrib, кастомные темы - в /themes/custom
  3. Очищаем кеш командой drush cr или обращением к срипту /core/rebuild.php (при включенной настройке $settings['rebuild_access'] = TRUE в settings.php)
  4. Устанавливаем плагин для Composer Composerize Drupal

Модуль Easy Breadcrumb для создания хлебных крошек в Drupal 8

19 апреля 2018 - 18:38

Как оказалось, под Drupal 8 до сих пор нет модуля для хлебных крошек, сопоставимого по функционалу с Custom Breadcrumbs, и на сегодняшний день модуль Easy Breadcrumb - лучшее решение для Drupal 8 (есть версия и для семерки).

Переопределение шаблона формы в Друпал 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;
  }
}

Страницы