8.3. Создание своей Drupal 8 темы на основе темы Stable.
levmyshkin 8 июля 2019 в 16:04
Начиная с этой статьи мы будем делать свою тему на друпале. В этом разделе учебника мы разберем основы темы на друпале, где что лежит, как подключать и использовать CSS, JavaScript. Делать свою тему мы будем на основе темы-конструктора ядра Stable. Если вы хотите изучать друпал, то Stable отличное начало. Не стоит начинать с Bootstrap, у вас будут постоянно возникать вопросы и ошибки. В следующем разделе учебника мы уже с багажом умений созданий темы для Drupal 8, возьмемся и за Bootstrap.
Если у вас есть желание читать мануал на английском, то вот официальная документация, можете сравнивать с моим учебником и поправлять меня в комментариях или через Ctrl + Enter.
https://www.drupal.org/theme-guide/8
Создаем папку нашей темы
Все новые темы мы кладем в папку /themes. Вы можете класть папки по старинке в sites/all/themes, но лучше всего использовать новую структура файлов Drupal 8 и класть в папку /themes.
Я создам папку /themes/drupalbook, вы можете назвать вашу тему как вам угодно:
Создаем файл с основной информацией о теме drupalbook.info.yml
В папке нашей темы создаем файл имя_темы.info.yml:
Дальше стоит сделать небольшое отступление на то что такое формат YAML (здесь подробнее ссылка на статью).
https://ru.wikipedia.org/wiki/YAML
Обратите внимание на две вещи:
1) Не используйте табуляцию для отступов, только пробелы.
2) Отступы должны быть 1 или более пробелов. (то есть name: value, но не name:value).
Вставляем в файл drupalbook.info.yml:
name: Drupalbook
type: theme
base theme: stable
description: My first Drupal 8 theme.
core: 8.x
libraries:
— drupalbook/global-styling
regions:
header: Header
content: Content # Этот регион обязателен
sidebar_first: ‘Sidebar first’ # Не забываем добавить кавычки
footer: Footer
Давайте разберем, что каждая строчка значит.
name — название нашей темы. Машинное имя нашей темы это название папки и файла drupalbook.info.yml — drupalbook.
type — тип проекта друпал, у нас это тема.
base theme — мы наследуемся от темы stable, если тема с нуля, то пишем false.
description — описание темы, которое отображается в админке.
core — версия ядра друпала, для которого эта тема.
libraries — здесь мы поключаем библиотеки к нашему модулю. Делаем мы это через файлик, который мы создадим далее drupalbook.libraries.yml. Обратите внимание на global-styling, мы будем использовать его в drupalbook.libraries.yml.
regions — регионы нашей темы. Обязательный регион content, через него выводится содержимое друпала. Также если название региона в два или более слова, не забудьте обернуть его в кавычки. Машинные имена регионов пишутся через нижнее подчеркивание.
Раз мы заявили об библиотеке нашей темы, так давайте ее создадим.
Файл drupalbook.libraries.yml
Добавляем следующие строки в drupalbook.libraries.yml:
global-styling:
version: 1.x
css:
theme:
css/style.css: {}
css/print.css: { media: print }
js/custom.js: {}
dependencies:
— core/jquery
А теперь давайте разберем все построчно:
global-styling — именно такое имя мы задали в drupalbook.info.yml
css — здесь мы подключаем CSS файлы, заметьте, что для print версии сайта мы указали media: print.
js — здесь подключаем javascript файлы. jQuery не является обязательным для друпала, поэтому если хотим использовать jQuery в нашем пользовательском JavaScript дописываем зависимость от него
dependencies:
— core/jquery
Создаем папки css, js и кладем туда файлы:
css/style.css
css/print.css
js/custom.js
Так как мы наследуемся от темы stable, то и шаблоны наследуются от нее.
Теперь заходим на наш сайт в раздел Оформление:
/admin/appearance
чистим кеш и включаем нашу тему:
Теперь у нас на сайте наша новая тема Drupalbook:
Настройка AMP для Drupal 8 и 9
Для ускорения мобильных страниц Google предлагает использовать их технологию — AMP. Она позволяет генерировать облегченные страницы — они грузятся быстрее обычных из-за особой системы кэширования. Поисковая система Google охотнее продвигает такие страницы в поисковой выдаче (Яндекс с этой технологией пока не дружит).
В этой статье мы рассмотрим пошаговую настройку вывода AMP-страниц на Drupal.
Установка модуля
Для начала установим модуль AMP. Мы рекомендуем использовать composer. Для Drupal 8 и 9 (до 9.1+)
composer require 'drupal/amp’
На момент написания статьи, актуальная версия модуля AMP 3.5 не поддерживала Drupal версии 9.1+. По этой причине устанавливаем dev версию модуля, для Drupal 9.1+.
composer require 'drupal/amp:3.x-dev@dev'
Все требуемые для работы библиотеки по умолчанию устанавливаются с модулем.
Установка темы
Для вывода AMP-страниц потребуется тема оформления. Можно использовать любую тему совместимую с Drupal 8+ и удовлетворяющую требованиям AMP. С конвертацией и требованиями можно ознакомиться тут.
Мы будем использовать специальную и уже готовую тему AMPTheme. Заметим, что это тема готова к использованию с AMP, но она не содержит стилей. Их можно будет добавить самостоятельно. Установка чистой темы позволит избежать конфликтов и проблем с отображением, которые могут возникнуть, если использовать большую и сложную тему.
Установим тему:
composer require 'drupal/amptheme’
Теперь нам нужно сделать подтему из ampsubtheme_example. Вы можете создать её сами или использовать уже подготовленную нами подтему.
Название темы ampsubtheme можно изменить, оно должно содержать символы латиницы, цифры и символ нижнего подчеркивания “_”.
Переименуем папку с темой и все файлы, содержащие ampsubtheme в названии. В файле ampsubtheme.theme заменим вхождение ampsubtheme на ваше название.
На странице управления темами admin/appearance включим (установим) вашу тему и AMP Base. Отметим, что устанавливать по умолчанию не нужно, только включить.
Настройка
Перейдем к настройке модуля admin/config/services/amp. Выберем подтему для отображения.
Выбираем тип материала, который хотим отображать как AMP страницы и жмем “enable”.
Выбираем дисплей AMP и сохраняем тип материала.
Переходим к настройки дисплея “configure”.
Для текста формата полей выбираем AMP text, AMP Trimmed Text или AMP Summary or Trimmed в зависимости ваших нужд по выводу текста. Для изображениях выбираем AMP image и настраиваем.
Важно! для responsive значения ширины и высоты ОБЯЗАТЕЛЬНО. Можно указывать ratio, например: 16х9
Проверяем работу модуля перейдя на тестовую страницу: admin/amp/library/test.
Если видим “The Library is working”, значит вы все сделали правильно и все работает.
Для отображения дополнительных кнопок сохранения AMP можно активировать соответствующую галочку:
Дополнительные настройки, использование которых — на ваш риск:
- Advanced option — конвертирует все HTML в поле body в AMPhtml. Не рекомендуем, так как может удалить часть HTML, который не соответствует стандартам AMP.
- Experimental option — будет генерировать весь сайт в AMP формате. Также не рекомендуем — тоже может удалить часть HTML, который не соответствует стандартам AMP.
Настройка и добавление блоков
AMP-страницы, как и обычные, поддерживают вывод блоков admin/structure/block/list/ampsubtheme. Настройка происходит так же, как и обычно. Нужно только выбрать соответствующую тему.
В теме оформления можно добавить свои регионы. Это производится как и в обычной теме в файле my_amp_theme.info.yml.info.yml. Не забудьте сбросить кэш после внесения изменений в файл конфигураций темы.
Итог
Мы настроили модуль и тему для AMP.
Чтобы открыть доступ к страницам AMP, нужно запросить страницу с добавлением параметра ?amp в адресную строку, например: node/12345?amp.
Модуль поддерживает режим отладки. Чтобы открыть к нему доступ, в адресную строку добавляем параметр: ?amp&debug#development=1.
Дополнительные материалы
Документация технологии AMP с дополнительными тегами: https://amp.dev/
Документация по модулю: https://www.drupal.org/docs/8/modules/accelerated-mobile-pages-amp/amp-version-83
тематических сайтов Drupal | Drupalize.Me
Обзор
Тематик, также известный как разработчик внешнего интерфейса, находится между дизайнером и разработчиком проекта. Они отвечают за архитектуру и реализацию клиентских частей веб-сайта. Сюда входит работа с HTML, CSS, JavaScript и связанными с ними технологиями. Темы Drupal также используют PHP в файлах шаблонов, а в Drupal 8 они используют Twig.
Опытные разработчики внешнего интерфейса часто создают модули «связующего кода» или функции в PHP, которые предоставляют параметры конфигурации для создателей сайтов. Модули связующего кода также изменяют данные, хранящиеся в Drupal, до того, как они будут представлены посетителю сайта в браузере.
Как насчет Друпала 9?
Короче говоря: подавляющее большинство руководств по Drupal 8 будут работать на сайтах Drupal 9. Из-за того, как инновации теперь работают в Drupal, новые функции выпускаются в младших версиях. Основные выпуски, такие как выпуск Drupal 9, содержат все функции Drupal 8, но с удаленными устаревшими API и обновленными некоторыми сторонними библиотеками. Узнайте больше о Drupal 9 и о том, что это значит для вашего обучения, в нашем Руководстве по Drupal 9.
Обновление до Drupal 9
Дополнительная информация
Drupal 8/9
Исходные данные и необходимые условия
HTML и CSS
Дополнительная информация
JavaScript
Дополнительная информация
Введение в YAML
Основные уроки
Введение
Что такое тема?
Дополнительная информация
Загрузка, установка и удаление тем
Больше информации
Структура темы
Дополнительная информация
Опишите свою тему с помощью информационного файла
Дополнительная информация
Быстро по умолчанию
Дополнительная информация
Регионы
Дополнительная информация
Добавление регионов к теме
Дополнительная информация
Настройки темы
Обзор настроек темы
Больше информации
Изменить настройки темы
Дополнительная информация
Добавьте скриншот к своей теме
Дополнительная информация
Основные темы: Бартик
Дополнительная информация
Наследование тем
Наследование тем с базовыми темами
Дополнительная информация
Базовые темы Drupal: стабильные и стильные
Дополнительная информация
Использовать базовую тему
Дополнительная информация
Файлы шаблонов
Что такое файлы шаблонов?
Дополнительная информация
Переопределить файл шаблона
Дополнительная информация
Определение базового имени шаблона
Дополнительная информация
Дизайн шаблона с Twig
Дополнительная информация
Обзор: тематические представления
Дополнительная информация
Переопределение шаблона оболочки представления
Дополнительная информация
Разработка и отладка
Настройка среды для разработки темы
Дополнительная информация
Основные темы: Старк
Дополнительная информация
Очистить кэш Drupal
Дополнительная информация
Проверка переменных, доступных в шаблоне
Дополнительная информация
Предложения по крючкам тем
Откройте для себя существующие предложения по крючкам тем
Дополнительная информация
Добавление новых предложений темы
Дополнительная информация
Активы CSS и JavaScript
Что такое библиотеки ресурсов?
Дополнительная информация
Определение библиотеки активов
Дополнительная информация
Присоединение библиотеки активов
Дополнительная информация
JavaScript в Drupal
Обзор: JavaScript в Drupal
Дополнительная информация
Загрузка JavaScript в Drupal с Drupal.
behaviorsДополнительная информация
Оберните свой пользовательский код JavaScript в замыкание
Дополнительная информация
Использовать серверные настройки с drupalSettings
Дополнительная информация
Расширенные концепции
Render API
Render API: как выводить содержимое
Дополнительная информация
Разделенный Drupal
Начните использовать React и Drupal вместе
14 руководств
Загрузка…
Бесплатно % смотрели
Развязанный Drupal
11 уроков
Загрузка…
- Бесплатно % смотрели
Веб-сервисы в Drupal
24 руководства
Загрузка.
..
Бесплатно % смотрели
Работа с переменными и строками
Добавление логики с THEMENAME.theme
Дополнительная информация
Что такое функции предварительной обработки?
Дополнительная информация
Изменение переменных с функциями предварительной обработки
Больше информации
Добавление переменных в файл шаблона
Дополнительная информация
Работа со строками в JavaScript
Дополнительная информация
Библиотеки JavaScript в ядре
Modernizr.js в теме или модуле
Дополнительная информация
Underscore.
js в теме или модулеДополнительная информация
Backbone.js в теме или модуле
Больше информации
Передовой опыт: перевод Drupal
Сделайте вашу тему переводимой
Дополнительная информация
Сделать строки переводимыми
Дополнительная информация
Использование Drupal.t() для переводимых строк в JavaScript
Дополнительная информация
Использование Drupal.theme для разметки HTML в JavaScript
Дополнительная информация
Передовая практика: стандарты кодирования
Стандарты кодирования Drupal
Дополнительная информация
Стандартизируйте свой JavaScript с помощью ESLint
Дополнительная информация
Адаптивный дизайн и стили изображений
Точки останова и мультимедийные запросы
Дополнительная информация
Что такое файл YAML точки останова?
Дополнительная информация
Создание файла YAML точки останова
Дополнительная информация
Обзор модуля адаптивного изображения
Дополнительная информация
Примеры использования стиля адаптивного изображения
Дополнительная информация
Создание адаптивного стиля изображения для изменения размера области просмотра
Дополнительная информация
Связанные темы
Макеты
В Drupal компоновка сайта является общей обязанностью создателя сайта и темера.
Темам часто приходится выбирать между жестким кодированием макета в файле шаблона или использованием конфигурации для достижения результатов. Понимание того, какие инструменты доступны и на что они способны, помогает, когда приходит время принимать эти решения.
Макеты
Дополнительная информация
Навигация и списки
Drupal позволяет нам создавать статические меню и динамические списки содержимого с помощью представлений. Создание меню часто выполняется разработчиком сайта, но это имеет значение для вас как автора темы. Вы должны понимать, откуда берутся элементы в списке, как добавлять новые и как учесть тот факт, что количество элементов со временем может меняться.
Меню
Больше информации
Модуль представлений в Drupal
Дополнительная информация
Изображения и мультимедиа
Ядро Drupal может манипулировать изображениями (так называемые «стили изображений») и разрешать загрузку файлов, которые могут отображаться различными способами.
Вам, как темисту, может потребоваться настроить способ отображения этих изображений и других ресурсов на экране, поэтому вы можете ознакомиться с методами управления мультимедиа в Drupal.
Управление файлами, изображениями и другими носителями
Дополнительная информация
Изучение инструментов командной строки
Основы командной строки
15 руководств
Загрузка…
Бесплатно % смотрели
Git
Дополнительная информация
Драш
Дополнительная информация
Drupal 7
Исходные данные и необходимые условия
HTML и CSS
Дополнительная информация
JavaScript
Дополнительная информация
PHP для темеров
Основные уроки
Основы создания тем для Drupal 7
15 руководств
Загрузка.
..
Бесплатно % смотрели
PSD к теме Drupal
21 учебник
Загрузка…
Бесплатно % смотрели
Разметка в Drupal
33 урока
Загрузка…
Бесплатно % смотрели
Начало работы с адаптивным веб-дизайном в Drupal
14 уроков
Загрузка.
..
Бесплатно % смотрели
Расширенные концепции
Advanced Theming for Drupal 7
17 руководств
Загрузка…
Бесплатно % смотрели
PHP для начинающих, часть 1
11 руководств
Загрузка…
Бесплатно % смотрели
Связанные темы
Макеты
В Drupal компоновка сайта является общей обязанностью создателя сайта и темера.
Темам часто приходится выбирать между жестким кодированием макета в файле шаблона или использованием конфигурации для достижения результатов. Понимание того, какие инструменты доступны и на что они способны, помогает, когда приходит время принимать эти решения.
Макеты
Дополнительная информация
Навигация и списки
Drupal позволяет нам создавать статические меню и динамические списки содержимого с помощью представлений. Создание меню часто выполняется разработчиком сайта, но это имеет значение для вас как автора темы. Вы должны понимать, откуда берутся элементы в списке, как добавлять новые и как учесть тот факт, что количество элементов со временем может меняться.
Меню
Дополнительная информация
Модуль представлений в Drupal
Дополнительная информация
Изображения и мультимедиа
Ядро Drupal может манипулировать изображениями (так называемые «стили изображений») и разрешать загрузку файлов, которые могут отображаться различными способами.
Вам, как темисту, может потребоваться настроить способ отображения этих изображений и других ресурсов на экране, поэтому вы можете ознакомиться с методами управления мультимедиа в Drupal.
Управление файлами, изображениями и другими носителями
Дополнительная информация
Изучите инструменты командной строки
Основы командной строки
15 руководств
Загрузка…
Бесплатно % смотрели
Git
Дополнительная информация
Друш
Дополнительная информация
Советы по обучению
- Есть чему поучиться, и много полезной информации разбросано по Drupal.org и другим веб-сайтам, книгам и подкастам.
По мере того, как вы поднимаетесь по лестнице и становитесь более опытным в Drupal, вам нужно научиться различать знания, специфичные для создания тем Drupal, и знания, более общие для HTML/CSS/JavaScript. Знание различий поможет вам найти подходящие ресурсы. - Если вы заинтересованы в сдаче экзамена Acquia Certified Front-end Developer, вы также можете изучить наше руководство по экзамену.
- Существует множество модулей, которые позволяют настраивать разметку или добавлять классы CSS, включая модули для создания макетов, списков и других элементов управления отображением. Рекомендуется ознакомиться с тем, как можно настроить эти модули, чтобы вы могли либо настроить их самостоятельно по своему вкусу, либо эффективно общаться с членом команды по созданию сайта. Вы также можете изучить наше руководство для разработчиков сайтов, чтобы расширить свой набор навыков и получить более полное представление о том, как работает Drupal.
Расширьте свои навыки
Существует множество способов улучшить свои навыки и знания помимо учебных пособий.
Вот некоторые из наших любимых ресурсов для изучения тем Drupal.
Участие в проекте Drupal
Хотя это и не является обязательным требованием, многим разработчикам Drupal также нравится быть активными членами сообщества Drupal и делиться своими решениями с Drupal.org в виде созданной темы или помогая устранять ошибки в темы, которые они используют — даже в основных темах Drupal.
Участие в Drupal
Дополнительная информация
Сообщество Drupal
Дополнительная информация
Подкасты
Следующие выпуски бывшего подкаста Drupalize.Me также могут представлять интерес для тематоров:
- Что такое базовая тема и когда ее использовать?
- Разделение Drupal — для тех, кто стремится к фронтенд-разработке и выводит Drupal на новый уровень.
- Наглость с Крисом Эппштейном — Крис является создателем фреймворка Compass, который используется многими тематорами вместе с Sass.
Мероприятия сообщества
Сессии DrupalCon и другие местные/региональные мероприятия — отличный способ быть в курсе последних событий разработки Drupal.
Все сессии DrupalCon записываются и доступны бесплатно на канале Drupal Association на YouTube. Многие «лагеря» Drupal (местные или региональные мероприятия сообщества Drupal) также записывают сеансы. Для DrupalCon и многих других событий Drupal записанные сеансы встроены в страницы описания сеанса на веб-сайте мероприятия.
- DrupalCon — Найдите ссылки на прошлые и будущие DrupalCons и записи сессий.
- Drupal — Отфильтруйте и найдите лагеря Drupal, спринты, группы пользователей и обучающие мероприятия.
- Предстоящие события сообщества Drupal — Отфильтруйте и найдите события, связанные с Drupal.
Познакомьтесь с некоторыми темами
Познакомьтесь с людьми, которые ежедневно работают с интерфейсом и темами Drupal:
Бесплатная тема Drupal | Зимфонии
Поиск
Поиск
Бесплатный пакет тем $20 (файлы Drupal + база данных) Узнать больше
Поиск
Категория — Любое -Банки и финансыБизнес и услугиКомпьютеры и интернетРазвлечения, игры и ночная жизньЭлектроникаМедицинаСпорт, отдых и путешествияПраздники, подарки и цветыБлог и журналЖивотные и животныеИскусство и культураАвтомобили и мотоциклыДизайн и фотографияОбразование и книгиМода и красотаЕда и ресторанДом и семьяНедвижимостьОбщество и люди
Версия — Любой -Drupal 9Drupal 8Drupal 7
Особенности — Любой -МногоцелевойОтзывчивыйBootstrapPortfolioParallaxeCommerce
Тема Zymphonies Handicraft.
NowТетрадь Zymphony Theme
Version:
Drupal 9, Drupal 8
Price$20.00
Buy Now
Moon Zymphonies Theme
Version:
Drupal 9, Drupal 8
Price$20.00
Buy Now
Star Zymphonies Тема
Версия:
Drupal 9, Drupal 8
Цена $ 20,00
Купить сейчас
Alif Zymphonies Theme
Версия:
Drupal 9, Drupal 8
Версия:
9, Drupal 8
.0005
Цена $ 20,00
Купить сейчас
Графика Zymphonies Тема
Версия:
Drupal 9, Drupal 8
Цена $ 20.00
Buy Now
DECER DECER. Drupal 8
Цена20,00 $
Купить
Архитекторы Zymphonies Theme
Версия:
Drupal 9, Drupal 8
Цена 900,00 $0005
Explore Zymphonies Theme
Version:
Drupal 9, Drupal 8
Price$20.
00
Buy Now
Furniture Zymphonies Theme
Version:
Drupal 9, Drupal 8
Price$20.00
Купить
Construction Zymphonies Theme
Версия:
Drupal 9, Drupal 8
Цена$20.00
Купить
Fashion Zymphonies0019
Version:
Drupal 9, Drupal 8
Price$20.00
Buy Now
Ultra Zymphonies Theme
Version:
Drupal 9, Drupal 8
Price$20.00
Buy Now
Product Тема Zymphonies
Версия:
Drupal 9, Drupal 8
Цена$20.00
Купить
Тема Global Zymphonics
Версия
, Drupal 8
Цена $ 20,00
Buy Now
Advocate Zymphonies Тема
Версия:
Drupal 9, Drupal 8
$ 20.![]()

x-dev@dev'