Пользовательские поля
Contents
Вступление
Настраиваемые поля позволяют пользователю добавлять поля в базу данных страницы. Настраиваемые поля появляются в интерфейсе панели администратора при создании или редактировании страниц.
Простой пример
Добавим поле Подзаголовок
Админ Панель > Боковая панель > Настройки > Основные > Настраиваемые поля
Добавим JSON код и нажмем кнопку "Сохранить".
{
"subtitle": {
"type": "string",
"placeholder": "Подзаголовок страницы",
"position": "bottom"
}
}
Теперь давайте создадим страницу:
Админ Панель > Управление > Новая запись
Как вы можете видеть, в нижней части редактора появилось новое поле, запрашивающее "подзаголовок для страницы". Заполните поля "заголовок", "содержание" и новое поле "субтитры для страницы"и нажмите на кнопку "Сохранить".
Теперь на любой странице есть переменная, которая хранит текст с поля "подзаголовок". Но обычные пользователи его не будут видеть, т.к. следует добавить эту переменную в настройки темы, чтобы она отображалась.
<?php
echo "The title of the page is " . $page->title();
echo "The subtitle of the page is " . $page->custom('subtitle');
?>
Структура поля в JSON.
Поле создается в формате JSON со следующими ключами
- (required)
type
: Тип поля (string
,bool
). - (optional)
label
: Метка поля. - (optional)
tip
: Описание поля. - (optional)
default
: Первоначальное значение поля. - (optional)
placeholder
: Текст внутри поля. - (optional)
position
: Расположение поля в редакторе, например (top
,bottom
).
Добавление пользовательского поля
Чтобы добавить пользовательское поле, перейдите:
Админ Панель > Боковая панель > Настройки > Основные > Настраиваемые поля
Чтобы создать поле, мы должны определить его в системе через JSON стурктуру. Пример:
Пользовательское поле string
с именем youtube
:
{
"youtube": {
"type": "string",
"label": "YouTube",
"tip": "Write the YouTube URL."
}
}
Пользовательское поле boolean
с именем inStock
:
{
"inStock": {
"type": "bool",
"label": "In Stock",
"tip": "Select this field if you have stock."
}
}
Два пользовательских поля с разными типа
{
"product": {
"type": "string",
"label": "Product",
"tip": "Write the product name."
},
"inStock": {
"type": "bool",
"label": "In Stock",
"tip": "Select this field if you have stock."
}
}
Три пользовательских поля с разными типами и разным положением в редакторе.
{
"product": {
"type": "string",
"placeholder": "Product name",
"position": "top"
},
"inStock": {
"type": "bool",
"tip": "Select this field if you have stock.",
"position": "top"
},
"imageURL": {
"type": "string",
"placeholder": "Image URL",
"position": "bottom"
}
}
Вызов пользовательского поля
Существует класс, который возвращает значения вызываемых полей - custom()
.
В следующем примере выводится значение поля youtube
из приведенного ниже примера.
<?php
echo $page->custom('youtube');
?>
Проверка boolean значения в поле inStock
из приведенного ниже примера.
<?php
if ($page->custom('inStock')) {
echo "There is stock!";
} else {
echo "No more products";
}
?>
Удаление пользовательских полей
Чтобы удалить пользовательское поле, вам достаточно убрать его JSON структуру в:
Админ Панель > Боковая панель > Настройки > Основные > Настраиваемые поля
Однако, это не удалит полностью поле из базы данных Bludit на вашем сайте, а лишь сделает его неактивным.
{}