Theming/Render Flashcards

1
Q

Что такое “тема”? Как используется?

A
  • Набор файлов, определяющий внешний вид сайта.
  • Устанавливается composer require THEMENAME
    Включаются drush en THEMENAME
    Drupal, по умолчанию, поддерживает две темы на выбор: административную — использующихся на всех административных страницах и по умолчанию - используемую на всех остальных страницах сайта.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

a. Чем она отличается от модуля?

A

Модуль отвечает за контент. Тема оформления определяет как HTML и CSS стили сайта обернут ваш контент.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

b. Какая базовая структура темы?

A

*.info.yml
Тема оформления должна содержать файл описывающий данную тему для Drupal. Это единственный обязательный файл для тем оформления.
*.libraries.yml
Файл .libraries.yml используется для объявления ассетов темы оформления, которые могут быть как JavaScript, так и CSS файлами. В теме объявляются библиотеки, необходимые для данной темы оформления.
*.breakpoints.yml
В данном файле вы можете описывать контрольные точки (breakpoints) для адаптивного дизайна.
*.theme
Файл .theme является PHP файлом, который может содержать различную логику. Например препроцессинг шаблонов, или расширять настройки темы оформления.
logo.svg
Логотип, который будет использоваться по умолчанию как логотип сайта.
templates/
Папка, содержащая в себе все необходимые темплейты с HTML разметкой. Темплейты должны находиться в этой папке, а папка может иметь неограниченное кол-во вложенных с любым другим названием.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Что такое регион? Как они используются?
A
  • Регион - область страницы, внутри которой располагаются блоки
  • Для того чтобы у вас появился новый регион, через который вы сможете выводить блоки, вам нужно:
    • Добавить данные о регионе в файл theme.info.yml
    • Отредактировать page.html.twig, добавив в него вывод нового региона
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Что такое twig? Каковы его возможности?
A
  • Шаблонизатор Twig - компилирующий обработчик шаблонов
    Все Twig шаблоны в Drupal 8 компилируются в php файлы и хранятся в каталоге sites/default/files/php/twig/. Файлы шаблонов при этом кешируются для повторного использования и хранятся в файловой системе для улучшения производительности, перекомпилируются только при очистке Twig кеша.
    Все шаблоны в модулях и темах должны находиться в каталоге /templates.
  • Поддерживает:
    Работу с массивами и переменными, циклы, условия, фильтры, экранирование, наследование шаблонов(Можем определять блоки внутри шаблона, а потом в наследуя от этого шаблона другой, переопределять эти блоки.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Как подключить JS или CSS?

Что такое assets library?

A

Создается файл *.libraries.yml(assets library)
в корне темы/модуля. Используется hook_page_attachments
($attachments[‘#attached’][‘library’][] = ‘helloworld/helloworld’;), либо для конкретной страницы render array из метода контроллера($output[‘#attached’][‘library’][] = ‘helloworld/helloworld’;)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

c. Theme-шаблоны

i. Как его можно переопределить? Какие есть стандарты именования шаблонов?

A

добавив в папку вашей темы шаблоны, которые соответствуют определенному соглашению об именах.
hook_theme_suggestions_HOOK(array $variables)
hook_theme_suggestions_alter(array &$suggestions, array $variables, $hook)
hook_theme_suggestions_HOOK_alter(array &$suggestions, array $variables)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

b. Как можно подключить другой шаблон внутри текущего?

A

{% include ‘sub_template.html.twig’ %}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

a. Как создать свой регион?

A

• Добавить данные о регионе в файл theme.info.yml
• Отредактировать page.html.twig, добавив в него вывод нового региона
Все регионы объединены ключем regions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly