Конфигурация темы⚓︎
В Grav можно легко получить доступ к настройке тем и информации о чертежах из ваших файлов Twig и PHP.
Доступ к информации о чертеже темы⚓︎
Информацию из файла blueprints.yaml
текущей активной темы можно получить из объекта theme
. В качестве примера возьмем следующий файл blueprints.yaml
:
name: Antimatter
slug: antimatter
type: theme
version: 1.7.0
description: 'Antimatter is the default theme included with **Grav**'
icon: empire
author:
name: Team Grav
email: devs@getgrav.org
url: https://getgrav.org
homepage: https://github.com/getgrav/grav-theme-antimatter
demo: http://demo.getgrav.org/blog-skeleton
keywords: antimatter, theme, core, modern, fast, responsive, html5, css3
bugs: https://github.com/getgrav/grav-theme-antimatter/issues
license: MIT
Вы можете получить доступ к любому из этих элементов через grav.theme
, используя стандартный dot-синтаксис:
Вы также можете получить эти же значения из плагина Grav с синтаксисом PHP:
<?php
$theme_author_email = $this->grav['theme']['author']['email'];
$theme_license = $this->grav['theme']['license'];
Доступ к конфигурации темы⚓︎
У темы тоже есть файлы конфигурации. Файл конфигурации темы называется <themename>.yaml
. Файл по умолчанию находится в корневой папке темы (user/themes/<themename>
).
Настоятельно рекомендуется не изменять файл YAML по умолчанию для темы, а переопределить настройки в папке user/config
. Это гарантирует, что исходные настройки темы останутся нетронутыми, что позволит вам быстро получить доступ к изменениям и/или вернуться к ним при необходимости.
Например, давайте рассмотрим тему антиматерии. По умолчанию в корневой папке темы есть файл под названием antimatter.yaml
. Содержимое этого файла конфигурации выглядит следующим образом:
Это простой файл, но он дает вам представление о том, что вы можете делать с настройками конфигурации темы. Давайте переопределим эти настройки и добавим новые.
Итак, создайте файл в следующем месте: user/config/themes/antimatter.yaml
. В этот файл поместите следующее содержимое:
Заметьте, что enabled
здесь не повторяется. Если файлы конфигурации объединены, а не просто заменены, это следует указать явно.
Затем в шаблонах вашей темы вы можете получить доступ к этим переменным с помощью объекта grav.theme.config
:
Это должно отображаться как:
Grav - это круто!
В PHP вы можете получить доступ к конфигурации текущей темы с помощью:
<?php
$color = $this->grav['theme']->config()['color'];
$info = $this->grav['theme']->config()['info'];
Просто! Нет предела конфигурации ваших тем. Вы можете использовать их для чего угодно! :)
Альтернативная нотация⚓︎
Также работают следующие псевдонимы:
twig {{ config.theme.color_option }}
twig {{ theme_var(color_option) }}
twig {{ grav.themes.antimatter.color_option }} [ИЗБЕГАЙТЕ!]
Несмотря на то, что grav.themes.<themename>
поддерживается, избегайте этого, потому что такой способ делает невозможным правильное наследование темы.