Пример: чертежи страниц⚓︎
Чертежи страниц расширяются от страницы по умолчанию и дают вам возможность добавлять параметры. По сути, пользовательские страницы можно оживить, используя чертежи страниц. С помощью чертежа страницы вы можете на 100% настроить форму редактирования для страницы, как она отображается в админке.
Пример первый⚓︎
Если вы хотите использовать форму страницы по умолчанию и просто добавить, например, пару полей выбора, вы можете расширить страницу со страницы по умолчанию.
Это будет использовать форму страницы по умолчанию и добавить текстовое поле на вкладку Дополнительно в разделе Переопределения:
title: Gallery
'@extends':
type: default
context: blueprints://pages
form:
fields:
tabs:
type: tabs
active: 1
fields:
advanced:
fields:
overrides:
fields:
header.an_example_text_field:
type: text
label: Add a number
default: 5
validate:
required: true
type: int
Вместо этого будет добавлена новая вкладка Галерея с некоторыми полями.
title: Gallery
'@extends':
type: default
context: blueprints://pages
form:
fields:
tabs:
type: tabs
active: 1
fields:
gallery:
type: tab
title: Gallery
fields:
header.an_example_text_field:
type: text
label: Add a number
default: 5
validate:
required: true
type: int
header.an_example_select_box:
type: select
label: Select one of the following
default: one
options:
one: One
two: Two
three: Three
Типы полей, которые вы можете добавить, перечислены в главе Доступные поля формы для использования в админке
Как именовать поля⚓︎
Важно, чтобы поля использовали структуру header.*
, Поэтому содержимое поля при сохранении сохраняется в Заголовок страницы.
Создайте полностью настраиваемую форму страницы⚓︎
Вы можете избежать расширения формы по умолчанию и создать полностью уникальную форму страницы.
Например:
title: Gallery
form:
fields:
tabs:
type: tabs
active: 1
fields:
gallery:
type: tab
title: Gallery
fields:
header.an_example_text_field:
type: text
label: Add a number
default: 5
validate:
required: true
type: int
header.an_example_select_box:
type: select
label: Select one of the following
default: one
options:
one: One
two: Two
three: Three
route:
type: parents
label: PLUGIN_ADMIN.PARENT
classes: fancy
Поле route
изменилось в Grav 1.7. Пожалуйста, обновите существующие чертежи для использования нового type: parents
.
Примечание для экспертного режима⚓︎
При редактировании страниц в режиме Expert чертеж не читается, и форма страницы одинакова для всех страниц. Это связано с тем, что в экспертном режиме вы редактируете поля страницы непосредственно в поле Frontmatter, и нет необходимости в настраиваемой презентации.
Где разместить чертежи страницы⚓︎
Чтобы плагин админки собирал чертежи и, таким образом, отображал новые типы страниц, вам необходимо разместить чертежи в правильном месте.
В пользовательской папке Blueprints⚓︎
Поместите их в user/blueprints/pages/
. Это хорошее место для их размещения, когда вы просто хотите, чтобы ваши чертежи присутствовали на вашем сайте.
В теме⚓︎
Поместите их в user/themes/YOURTHEME/blueprints/
. Это лучше всего, если вы также собираетесь распространять свою тему: тема будет содержать чертежи страниц, и её будет проще использовать.
В папке Data⚓︎
Если вы используете тему на основе Gantry5, лучшее место - user/data/gantry5/themes/YOURTHEME/blueprints/
, иначе ваши файлы могут быть потеряны во время обновления темы.
В плагине⚓︎
Поместите их в user/plugins/YOURPLUGIN/blueprints/
. Это место, куда их можно поместить, если вы определяете и добавляете пользовательские страницы в плагин.
Затем подпишитесь на событие onGetPageBlueprints
и добавьте их в Grav. В следующем примере добавляются чертежи из папки blueprints/
.