Свій дизайн на друпал 8, tlito
Друпал 8 - інтелектуальна система, в руках розробника предсталяет набір функціональних можливостей. Освоєння системи починається з редагування дизайну сайту.
Структура документа:
Як працювати над дизайном сайту
Після установки Drupal 8 потрібно завантажити будь-яку контрібную тему з Огляду шаблонів для Drupal 8 і в ній верстати потрібний вам макет. Цього не можна робити в стандартних темах bartik, stark, так як є правила доопрацювання Друпала.
Всі файли шаблонів в 8 друпалі написані на Твіг, хоча в 7ке все було на простому пхп.
У коді шаблону можна користуватися різними змінними, викликати функції Друпал, довантажувати дані з бази даних. Також змінні можна визначити у файлі mytheme.theme, який зазвичай підвантажує змінні, що задаються через адмінку, глобальні змінні, а також змінює деякі стандартні функції Друпал при необхідності, тобто, містить хукі.
Завжди, коли ви редагуєте шаблон і завантажуєте на сервер, потрібно очищати кеш сайту так: Конфігурація - Продуктивність - Очищення кеша / admin / config / development / performance. Щоб не чистити кеш і швидше редагувати дизайн, потрібно відключити кешування Твіг. Нерідко при помилках в шаблоні друпал показує білий екран і системну помилку, тоді треба виправити файл шаблону або видалити цей файл, або змінити тему в адмінці / admin / appearance.
Іменування файлів шаблонів в Drupal 8
Файли шаблонів є в ядрі Drupal 8 (в папці / core / modules / system / templates) - їх не можна редагувати згідно правил доопрацювання Drupal 8. Також деякі файли шаблонів присутні в контрібних темах (в папці templates теми) і служать для перевизначення виведення і створення потрібної розробнику логіки, структури шаблону.
Друпал завантажує шаблони, виходячи з точних правил формування імен. Друпал шукає тільки строго певні імена файлів всередині теми і підключає їх, якщо знаходить. Інакше він користується стандартними файлами шаблонів ядра.
Ви можете переписати шаблони, додаючи або редагуючи файли з певними іменами в вашій темі.
Після завантаження файлу шаблону на сервер чистите кеш сайту через адмінку Друпала.
Тут запропоновані правила формування шаблонів структури html-документів, зовнішнього вигляду сторінок, регіонів, блоків, матеріалів, полів та інших компонентів.
HTML, шаблон заголовка
Шаблон HTML-документа містить базову розмітку і задає параметри тегів ,
Базовий файл: html.html.twig. він розташований тут core / modules / system / templates / html.html.twig
Ось деякі приклади використання цього файлу в власних шаблонах:
- html - internalviewpath.html.twig
- html - node - id.html.twig
- html.html.twig
Досліджуючи будь-яку тему, наприклад, Bartik, можна виявити, що файл html.html.twig розташований в папці теми templates. У вашій темі ви так можете додати тег адаптивності або позначити класи головних елементів html-документів, дописати будь-html-код. Друпал формуватиме сторінки сайту, користуючись цим файлом шаблону.
Офіційна документація про html.html.twig.
Шаблон сторінки page.html.twig
Шаблон імені: page - [front | internal / path] .html.twig
Базовий файл: page.html.twig (розташування: core / modules / system / templates / page.html.twig)
Містить багато рядків. Шаблон головної сторінки також задається файлом page - front.html.twig, він є пріоритетним. Якщо потрібно змінити висновок головною, можна користуватися адмінкой: Управляти - Конфігурація - Про сайт - Головна сторінка / admin / config / system / site-information.
Використовувані файли шаблонів завантажуються в порядку специфікації, заснованої на внутрішніх шляхах. Так наприклад для сторінки / node / 1 / edit будуть використані такі імена файлів шаблонів:
- page - node - edit.html.twig
- page - node - 1.html.twig
- page - node.html.twig
- page.html.twig
Шаблон імені: region - [region] .html.twig
Базовий файл: region.html.twig (розташування: core / modules / system / templates / region.html.twig)
Файл шаблону регіону використовується при відображенні кожного регіону, що має вміст. Він викликається модулем ядра Block або будь-якою функцією типу hook_page_build (). Імена регіонів можуть задаватися у файлі теми mytheme.info.yml.
Шаблон імені: block - [module | -delta]]. Html.twig
Базовий файл: block.html.twig (розташування: core / modules / block / templates / block.html.twig)
У запропонованих іменах "module" - системне ім'я модуля, "delta" - системне назву, присвоєне блоку цим модулем.
приклад:
block - block - 1.html.twig - цей файл шаблону буде використовуватися для відображення блоку з номером 1 з Бібліотеки користувальницьких блоків, тобто створеного тут admin / structure / block / block-content.
Імена шаблонів блоків, що використовують нумерацію в межах регіону, не підтримуються в Друпал 8.
Якщо потрібно задати шаблон відображення блоку, створеного деякими модулем, наприклад mymodule, і припустимо, модуль присвоїв блоку внутрішнє ім'я (delta): my-block, тоді потрібно використовувати ім'я: block - mymodule - my-block .html.twig.
Приклад для блоків Views.
Якщо ви створили Подання з системним ім'ям front_news і задали висновок в блок з системним ім'ям block_1, тоді ім'я шаблону має сформуватися так: block - front-news - block-1 .html.twig. Зверніть увагу
в іменах файлів шаблонів нижнє підкреслення "_" замінюється на дефіс "-"
Також майте на увазі, імена модулів чутливі до регістру в цьому випадку. Так що для модуля з системним ім'ям MyModule шаблон HTML матиме ім'я MyModule .html.twig, шаблон блоку - block - MyModule - delta .html.twig
Шаблон імені: node - [type | nodeid] - [viewmode] .html.twig
Базовий файл: node.html.twig (розташування: core / modules / node / templates / node.html.twig)
Наявні в темі файли шаблонів матеріалів будуть використовуватися за пріоритетами, згідно внутрішніх шляхах: більш точне ім'я файлу має пріоритет над більш загальним. Тобто так:
- node - nodeid - viewmode.html.twig
- node - nodeid.html.twig
- node - type - viewmode.html.twig
- node - type.html.twig
- node - viewmode.html.twig
- node.html.twig
Якщо є шаблон для конкретного id матеріалу і конкретного режиму відображення - саме він буде використовуватися при відображенні цього матеріалу в цьому режимі. Якщо немає жодного із запропонованих файлів шаблонів в папці теми, Друпал буде використовувати файл шаблону матеріалу з ядра.
Відзначимо, нижні підкреслення завжди замінюються дефісами в іменах файлів шаблонів.
терміни таксономії
Шаблон імені: taxonomy-term - [vocabulary-machine-name | tid] .html.twig
Базовий файл: taxonomy-term.html.twig (розташування: core / modules / taxonomy / templates / taxonomy-term.html.twig)
Як і всі інші шаблони, файли мають порядок вибору - більше спеціальне ім'я файлу буде пріоритетним.
- taxonomy-term - tid.html.twig
- taxonomy-term - vocabulary-machine-name.html.twig
- taxonomy-term.html.twig
Не забудьте міняти нижню підкреслення на дефіс в імені файлу.
Шаблон імені: field - [type | name [- content-type] | content-type] .html.twig
Базовий файл: field.html.twig (розташування: core / modules / system / templates / field.html.twig)
Поля теж мають шаблони відображення. У цих шаблонах можна скоротити обгортки, перегрупувати елементи або обмежити їх кількість, додати класи. Підключаючи скрипт слайдера, вам напевно знадобиться використовувати шаблон потрібного поля (поля "картинка слайда" в матеріалі типу "Слайд").
Шаблони використовуються за пріоритетами в наступному порядку:
- field - field-name - content-type.html.twig
- field - content-type.html.twig
- field - field-name.html.twig
- field - field-type.html.twig
- field.html.twig
Міняйте нижню підкреслення на дефіс і додавайте "field-" до імені поля, наприклад, fiield - field-slide.html.twig.
Шаблон імені: comment-wrapper - node- [type] .html.twig
Базовий файл: comment-wrapper.html.twig
Шаблон імені: forums - [[container | topic] - forumID] .html.twig
Базовий файл: forums.html.twig (розташування: core / modules / forum / templates / forums.html.twig)
Розділи форуму управляються шаблонами:
- forums - containers - forumID.html.twig
- forums - forumID.html.twig
- forums - containers.html.twig
- forums.html.twig
Сторінки топіків управляються шаблонами:
- forums - topics - forumID.html.twig
- forums - forumID.html.twig
- forums - topics.html.twig
- forums.html.twig
Офіційна документація по forums.html.twig.
Сторінка повідомлення про технічне обслуговування
Шаблон імені: maintenance-page - [offline] .html.twig
Базовий файл: maintenance-page.html.twig (розташування: core / modules / system / templates / maintenance-page.html.twig)
Ця сторінка з'являється, коли не працює база даних. Корисно використовувати для відображення Новомосковскбельной сторінки без повідомлень про помилки. Налаштування цієї сторінки описана тут Theming the maintenance page
Сторінка результатів пошуку
Шаблон імені: search-result - [searchType] .html.twig
Базовий файл: search-result.html.twig (розташування: core / modules / search / templates / search-result.html.twig)
Файл search-result.html.twig можна скопіювати в тему і використовувати для настройки загальної сторінки пошуку і індивідуальних. Залежно від типу пошуку можуть використовуватися різні розмітки. Наприклад, для сторінки example.com/search/node/Search+Term Друпал буде шукати файл search-result - node.html.twig або, якщо такого немає, використовує стандартний файл шаблону пошуку. Для сторінки пошуку типу example.com/search/user/bob файл шаблону повинен називатися search-result - user.html.twig. Є можливість розширити з допомогу модулів (розширень) типи пошуку і додати більше шаблонів.
Додавання від тлить
Сторінка користувача user.html.twig
Базовий файл: user.html.twig (розташування: core / modules / user / templates / user.html.twig)
Відповіді на запитання
1 Як мені налаштувати власний зовнішній вигляд для конкретної сторінки на друпалі 8?
2 Що робити, якщо зміни в файлі шаблону не дають результат?
3 Чи будуть ще переклади статей про дизайн, Твіг і доопрацювання Друпала?
Так. Щоб вплинути на вибір статей для перекладу, залишайте питання або теми на форумі.
4 Який шаблон на Друпал 8 більш менш підходящий для блогу, магазину, сайту компанії?
Paxton, BusinessGroup Zymphonies Theme, Drupal8 Zymphonies Theme, Professional Responsive Theme. Огляд шаблонів для 8 Друпала є на тлить ру. Використовуйте пошук тем по друпал.орг.
Якщо у вас немає досвіду використання коду і функцій Друпал, ви не знаєте як шукати відповіді на питання, але вам знадобляться складні функції, типу слайдер, зв'язку матеріалів, тоді Друпал 7 буде більш правильним рішенням, тому що для нього є багато модулів. Для Друпал 8 мало розширень, тому на ньому можна робити тільки невеликі сайти компаній, типу блог і п'ять сторінок меню.
6 Як почати вивчення коду Друпал 8?