Перейти к основному содержанию

drupal 8

Добавление условия во views при помощи hook_views_query_alter()

Отправлено said от вс, 11/25/2018 - 23:24

Если для выбора сущностей во вьюс требуется какое-то хитрое условие, которое не возможно задать через админку, то можно в модуле использовать hook_views_query_alter , например так:

Теги

Памятка для начинающих по получению значений в drupal 8

Отправлено said от чт, 08/30/2018 - 23:20

1. Получение типа ноды в template_preprocess_node

$node_type = $node->bundle();

2. Получение типа ноды в template_preprocess_page

$node_type = $variables['node']->getType();

3. Получение вебформы

$webform = \Drupal::entityTypeManager()->getStorage('webform')->load('my_form');
$webform = $webform->getSubmissionForm();

4. Проверка получение текущего пользователя и проверка его прав

Теги

Запуск composer без ограничения на выделяемую память

Отправлено said от ср, 08/22/2018 - 23:20

При обновлении друпала через composer может появиться ошибка Fatal error: Allowed memory size of 1610612736 bytes exhausted...
Это значит, что для выполнения команды не хватает памяти.

Решение - запуск композера без ограничения на память, например:

php -d memory_limit=-1 /usr/local/bin/composer update drupal/core --with-dependencies

 

Теги

Именование шаблонов views в drupal 8

Отправлено said от вт, 07/10/2018 - 21:56

В друпале 8, в административном интерфейсе модуля views, выпилил функционал просмотра информации о шаблонах. Поэтому правила наименования придется теперь выучить наизусть:

[base template name]--[view machine name]--[view display id].html.twig
[base template name]--[view machine name]--[view display type].html.twig
[base template name]--[view display type].html.twig
[base template name]--[view machine name].html.twig
[base template name].html.twig

 

Теги

Отключение кэша и отладка шаблонов в twig

Отправлено said от чт, 02/15/2018 - 00:26

Правим файл /sites/default/settings.php

$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';

Если не помогло...
Правим файл sites/default/services.yml (если его нет, то копируем default.services.yml и переименовываем в services.yml).
Находим опции устанавливаем следующие значения

Установка drupal 8 и модулей через composer

Отправлено said от ср, 02/14/2018 - 15:24

1. Копируем ядро друпала drupal и все его зависимости

composer create-project drupal-composer/drupal-project:8.x-dev some-dir --no-interaction

Друпал установится в директорию web в корень сайта. Меняю в настройках веб-сервера корневую директорию сайта на директорию web

2. Захожу на сайт для запуска процесса установки

Для установки модуля:

1. Переходим в корень друпала, где лежит файл composer.json
2. Устанавливаем его, пример для модуля devel

composer require drupal/devel

 

Теги

Работа с шаблонизатором Twig

Отправлено said от вт, 08/08/2017 - 11:25

Подключение отдельного шаблона

{% include directory ~ '/path_to_template_from_theme/header.html.twig' %}

Вывод текущей даты

{{ 'now'|date('Y') }}

Вывод даты создания ноды с использованием формата даты заданного в админке

{{ node.getCreatedTime()|format_date('medium') }}

Вывод урла ноды

<a href="{{ path('entity.node.canonical', {'node': node.nid}) }}">link</a>

В шаблоне node.twig.html

Вывод title в шаблоне ноды

Теги