Добавление условия во views при помощи hook_views_query_alter()
Если для выбора сущностей во вьюс требуется какое-то хитрое условие, которое не возможно задать через админку, то можно в модуле использовать hook_views_query_alter , например так:
Если для выбора сущностей во вьюс требуется какое-то хитрое условие, которое не возможно задать через админку, то можно в модуле использовать hook_views_query_alter , например так:
В d8 jquery once можно использовать следующим образом:
$(".my-selector").once("comment_info").each(function() {
alert(1);
});
или
$(".my-selector").once("test_fields").append("<div>hello world");
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 может появиться ошибка Fatal error: Allowed memory size of 1610612736 bytes exhausted...
Это значит, что для выполнения команды не хватает памяти.
Решение - запуск композера без ограничения на память, например:
php -d memory_limit=-1 /usr/local/bin/composer update drupal/core --with-dependencies
В друпале 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
Правим файл /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).
Находим опции устанавливаем следующие значения
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
Подключение отдельного шаблона
{% 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>
Вывод title в шаблоне ноды