Что такое “тема”? Как используется?
a. Чем она отличается от модуля?
Модуль отвечает за контент. Тема оформления определяет как HTML и CSS стили сайта обернут ваш контент.
b. Какая базовая структура темы?
*.info.yml
Тема оформления должна содержать файл описывающий данную тему для Drupal. Это единственный обязательный файл для тем оформления.
*.libraries.yml
Файл .libraries.yml используется для объявления ассетов темы оформления, которые могут быть как JavaScript, так и CSS файлами. В теме объявляются библиотеки, необходимые для данной темы оформления.
*.breakpoints.yml
В данном файле вы можете описывать контрольные точки (breakpoints) для адаптивного дизайна.
*.theme
Файл .theme является PHP файлом, который может содержать различную логику. Например препроцессинг шаблонов, или расширять настройки темы оформления.
logo.svg
Логотип, который будет использоваться по умолчанию как логотип сайта.
templates/
Папка, содержащая в себе все необходимые темплейты с HTML разметкой. Темплейты должны находиться в этой папке, а папка может иметь неограниченное кол-во вложенных с любым другим названием.
Что такое assets library?
Создается файл *.libraries.yml(assets library)
в корне темы/модуля. Используется hook_page_attachments
($attachments[‘#attached’][‘library’][] = ‘helloworld/helloworld’;), либо для конкретной страницы render array из метода контроллера($output[‘#attached’][‘library’][] = ‘helloworld/helloworld’;)
c. Theme-шаблоны
i. Как его можно переопределить? Какие есть стандарты именования шаблонов?
добавив в папку вашей темы шаблоны, которые соответствуют определенному соглашению об именах.
hook_theme_suggestions_HOOK(array $variables)
hook_theme_suggestions_alter(array &$suggestions, array $variables, $hook)
hook_theme_suggestions_HOOK_alter(array &$suggestions, array $variables)
b. Как можно подключить другой шаблон внутри текущего?
{% include ‘sub_template.html.twig’ %}
a. Как создать свой регион?
• Добавить данные о регионе в файл theme.info.yml
• Отредактировать page.html.twig, добавив в него вывод нового региона
Все регионы объединены ключем regions