Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

8.2. Из чего состоит тема Drupal 8. Обзор темы Stark.

18/11/2019, by Ivan

В друпал 7 можно было быстро и легко сделать под тему на Zen и начать верстать свой сайт. На 8ом друпале тоже есть несколько тем-конструкторов для создания своих тем. Но прежде чем делать на них подтемы нужно будет немного разобраться, где что лежит.

Разработчики Drupal 8 предлагают нам рассмотреть тему-пример Stark. Эта тема добавлена в друпал, только для ознакомления как устроена тема. Давайте посмотрим что лежит внутри этой темы:

Скриншот

Файл stark.info.yml

Начнем рассмотрение с файлика stark.info.yml. Раньше в 7ом друпале данные о теме хранились в файлах .info, но 8ом друпале повсеместно используется YML, так что и .info файл, теперь info.yml в формате YML. В YML формате ключи и значения разделяются двоеточием:

Имя темы:

name: Stark

Тип проекта, может быть темой, модулем. У нас это тема.

type: theme

Описание, показывается на странице с темами:

description: 'An intentionally plain theme with no styling to demonstrate default Drupal’s HTML and CSS. Learn how to build a custom theme from Stark in the <a href="https://www.drupal.org/theme-guide">Theming Guide</a>.'

Группировка проектов друпала для удобства, например при включение модулей, они будут сгруппированны в табы:

package: Core

Версия для контрибных модулей проставляется автоматически, поэтому здесь стоит переменная VERSION, а сама строчка закомментированна. На самом деле версия проставлена ниже:

# version: VERSION

Версия ядра друпала, также закомментирована и вставлена дальше автоматически drupal.org:

# core: 8.x

Использует или нет какую-нибудь базовую тему, false означает что не использует:

base theme: false

Блок с версией темы и какое ядро, вставлено автоматически сайтом drupal.org:

# Information added by Drupal.org packaging script on 2016-02-03
version: '8.0.3'
core: '8.x'
project: 'drupal'
datestamp: 1454490380

Файл stark.libraries.yml

Здесь мы подключаем css и js файлы темы:

global-styling:
  version: VERSION
  css:
    base:      
      css/layout.css: {}

Также мы можем подключить javascript файлы

global-styling:
  version: VERSION
  css:
    base:      
      css/layout.css: {}
  js:
    js/custom.js: {}

Также стоит отметить, что jQuery теперь не обязательно для использования и может не выводиться, на странице. Если вы используете в своем кастомном скрипте jQuery, то нужно его добавить в тему:

global-styling:
  version: VERSION
  css:
    base:      
      css/layout.css: {}
  js:
    js/custom.js: {}
  dependencies:
    - core/jquery

Помимо этого можно еще задать для css файлов, какие файлы должны отображаться всегда, а какие только в версии для печати

global-styling:
  version: VERSION
  css:
    base:      
      css/layout.css: {}
      css/style.css: {}
      css/colors.css: {}
      css/print.css: { media: print }
  js:
    js/custom.js: {}
  dependencies:
    - core/jquery

 Файлы описания README.txt,  screenshot.png

Эти файлы показывают как выглядит тема и как ее устанавливать, если есть какие-нибудь особенности установки или использования.

Файл logo.svg

 Файл логотипа автоматически подтягивается в тему оформления, если лежит в корне сайта. Вы также можете через настройку темы оформления залить свой логотип.

Папка config и файл stark.schema.yml

Еще один файл YML темы, в котором храняться настройки темы. Для темы Stark здесь только заголовок для страницы настроек темы Stark.

Папки css, js

В этих папках хранятся пользовательские css, javascript файлы. Не забывайте, что недостаточно положить файл в папку, чтобы он подключился. Каждый файл нужно подключать отдельно через stark.libraries.yml.

Файл stark.breakpoints.yml

В этом файле определены размеры экранов для мобильных версий сайта. Это новая фича Drupal 8, мы разберем ее подробно в одной из следующих статей.

stark.mobile:
   label: mobile
   mediaQuery: '(min-width: 0px)'
   weight: 0
   multipliers:
    - 1x
stark.narrow:
   label: narrow
   mediaQuery: 'all and (min-width: 480px) and (max-width: 959px)'
   weight: 1
   multipliers:
     - 1x
stark.wide:
   label: wide
   mediaQuery: 'all and (min-width: 960px)'
   weight: 2
   multipliers:
     - 1x

Вот собственно и вся темя для ознакомления Stark. В следующей статье мы разберем как создавать свою тему офомления на основе темы Stable.