Theming Flashcards
Что такое “тема”? Как используется?
a. Чем она отличается от модуля?
b. Какая базовая структура темы?
i. Компонентный подход
c. Как можно отнаследовать тему?
оформление
….
base_theme в инфо файле
Что такое регион? Как они используются?
a. Как создать свой?
Регион - область страницы, внутри которой располагаются блоки
в инфо файле
region:
header: Header
+ вывод в шаблоне
Что делает hook_theme?
…
Каким образом можно затемить данные (3 способа)?
a. ViewBuilder для сущностей
b. Theme-функции
c. Theme-шаблоны
i. Как его можно переопределить? Какие есть стандарты
именования шаблонов?
…
Что такое RendereableArray (RenderArray)? Как он используется? Зачем он
нужен?
Rendarrable Array - структурированное представление данных для темизации (рендера)
Нужен чтобы была возможность отредактировать представление перед рендером.
Передается в качестве параметра в функцию рендера
Что такое Markup? Как он используется? Зачем он нужен?
определяет объект, который передает безопасные строки через систему рендеринга.
Что такое twig? Каковы его возможности?
a. Как передать в него переменную?
b. Как можно подключить другой шаблон внутри текущего?
c. Twig namespaces, что это такое и как их использовать?
Шаблонный движок
Поддерживает:
работу с массивными и переменными, циклы, условия, фильтры, наследование шаблонов
передать переменную: через hook_theme или в препроцессе
подключить дургой шаблон:
{% include ‘sub_template.html.twig’ %}
твиг неймспейс:
{% include ‘@my_module/parts/my_template.html.twig’ %}
или, например,
{% extends “@bartik/node.html.twig” %}
Каким образом можно отобразить путь? А ссылку?
класс Link?
Какие хуки можно использовать для изменения данных перед преобразованием
их в html?
a. Препроцессы
b. Hook_page_build
…
Hook_page_build в Д7, если хочешь добавить элементы на уровне страницы
Как подключить JS или CSS? Что такое assets library?
a. Как подключить их глобально, на конкретной странице, для конкретного
элемента?
b. Как подключить библиотеку в шаблоне?
c. Как переопределить существующую assets library?
через либрари ямл
Ассет либрари - библиотека js и css файлов, встраиваемая в страницу
Глобально: в файле *.libraries.yml global-styling: version: 1.x css: theme: css/layout.css: {} css/style.css: {} css/colors.css: {} global-scripts: version: 1.x js: js/navmenu.js: {}
на странице: в препроцессе через аттач
В случае если речь о форме:
$form[‘#attached’][‘library’][]
в шаблоне
{{ attach_library(‘fluffiness/cuddly-slider’) }}
переопределить
libraries-override: