Theming/Render Flashcards
Что такое “тема”? Как используется?
- Набор файлов, определяющий внешний вид сайта.
- Устанавливается composer require THEMENAME
Включаются drush en THEMENAME
Drupal, по умолчанию, поддерживает две темы на выбор: административную — использующихся на всех административных страницах и по умолчанию - используемую на всех остальных страницах сайта.
a. Чем она отличается от модуля?
Модуль отвечает за контент. Тема оформления определяет как HTML и CSS стили сайта обернут ваш контент.
b. Какая базовая структура темы?
*.info.yml
Тема оформления должна содержать файл описывающий данную тему для Drupal. Это единственный обязательный файл для тем оформления.
*.libraries.yml
Файл .libraries.yml используется для объявления ассетов темы оформления, которые могут быть как JavaScript, так и CSS файлами. В теме объявляются библиотеки, необходимые для данной темы оформления.
*.breakpoints.yml
В данном файле вы можете описывать контрольные точки (breakpoints) для адаптивного дизайна.
*.theme
Файл .theme является PHP файлом, который может содержать различную логику. Например препроцессинг шаблонов, или расширять настройки темы оформления.
logo.svg
Логотип, который будет использоваться по умолчанию как логотип сайта.
templates/
Папка, содержащая в себе все необходимые темплейты с HTML разметкой. Темплейты должны находиться в этой папке, а папка может иметь неограниченное кол-во вложенных с любым другим названием.
- Что такое регион? Как они используются?
- Регион - область страницы, внутри которой располагаются блоки
- Для того чтобы у вас появился новый регион, через который вы сможете выводить блоки, вам нужно:
• Добавить данные о регионе в файл theme.info.yml
• Отредактировать page.html.twig, добавив в него вывод нового региона
- Что такое twig? Каковы его возможности?
- Шаблонизатор Twig - компилирующий обработчик шаблонов
Все Twig шаблоны в Drupal 8 компилируются в php файлы и хранятся в каталоге sites/default/files/php/twig/. Файлы шаблонов при этом кешируются для повторного использования и хранятся в файловой системе для улучшения производительности, перекомпилируются только при очистке Twig кеша.
Все шаблоны в модулях и темах должны находиться в каталоге /templates. - Поддерживает:
Работу с массивами и переменными, циклы, условия, фильтры, экранирование, наследование шаблонов(Можем определять блоки внутри шаблона, а потом в наследуя от этого шаблона другой, переопределять эти блоки.)
- Как подключить JS или CSS?
Что такое 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