-
Notifications
You must be signed in to change notification settings - Fork 0
Fields
В данной секции перечисляются все поля которые будут использоваться.
name название поля в БД, оно же используется как ключ для поля.
type Тип поля
label Заголовок
desc описание поля
validate Валидация как в Laravel
field-save Куда сохраняем, если не указано, то корневую ячейку в таблице, если array
то в массив в специальной ячейке (удобно для хранения данных не участвующих в where).
col-classes Классы бутстрап или свои отвечающие за размерность поля, по умолчанию col-12 .
protected Дополнительно защищает поле от случайных изменений
show Опция отображения, привязывается к полю типа select. Пример использования
'show' => [
[ 'type' => '==', 'field' => 'template', 'value' => '' ],
[ 'operator' => '||', 'type' => '==', 'field' => 'template', 'value' => 'contacts' ]
]
Если используется более одного условия, во всех последующих надо указывать опцию operator.
'name' => [
'name' => 'name',
'type' => 'text',
'label' => 'Заголовок',
'validate' => 'required',
],
upload включает загрузку файлов
size Высота редактора, по умолчанию самый маленький, значения: normal
format количество элементов, по умолчанию минимум, значения: fool
'text' => [
'name' => 'text',
'type' => 'editor',
'label' => 'Текст',
'upload' => true,
],
options указываем массив опций
'template' => [
name' => 'template',
'type' => 'select',
'field-save' => 'array',
'label' => 'Шаблон',
'options' => [
[ 'value' => '', 'label' => 'По умолчанию' ],
[ 'value' => 'contacts', 'label' => 'Контакты' ],
[ 'value' => 'about', 'label' => 'О нас' ],
[ 'value' => 'clients', 'label' => 'Клиенты' ],
[ 'value' => 'main', 'label' => 'Главная' ],
],
],
max-files указывается максимальное количество файлов.
'gallery' => [
'name' => 'gallery',
'type' => 'gallery',
'label' => 'Галерея',
],
load-from указывает откуда подгрузить поля.
fields список полей.
'seo' => [
'name' => 'seo',
'type' => 'group',
'load-from' => 'seo-fields',
'field-save' => 'array'
],
add-label название кнопки добавить. По умолчанию "Добавить".
'plashki' => [
'name' => 'plashki',
'type' => 'repeated',
'label' => 'Вращающиеся элементы',
'add-label' => 'Добавить новый блок',
'fields' => [
'text' => [
'name' => 'text',
'type' => 'editor',
'size' => 'small',
'label' => 'Текст',
],
],
],
<?php
return [
'list' => [
[ 'name' => 'name', 'icon' => 'file', 'link' => 'edit', 'sortable' => true ],
[ 'name' => 'category', 'label' => 'Категория', 'attr' => [ 'width' => '20%' ], 'func' => 'indexCategoryField', 'link' => 'category' ],
[ 'name' => 'url', 'attr' => [ 'width' => '10%' ] ],
[ 'name' => 'updated_at', 'label' => 'Дата модификации', 'attr' => [ 'width' => '190px' ], 'sortable' => true ]
],
'fields' => [
'name' => [
'name' => 'name',
'type' => 'text',
'label' => 'Заголовок',
'validate' => 'required',
],
'text' => [
'name' => 'text',
'type' => 'editor',
'label' => 'Текст',
'format' => 'fool',
'size' => 'normal',
'upload' => true,
'show' => [
[ 'type' => '==', 'field' => 'template', 'value' => '' ],
[ 'operator' => '||', 'type' => '==', 'field' => 'template', 'value' => 'contacts' ]
]
],
'seo' => [
'name' => 'seo',
'type' => 'group',
'load-from' => 'seo-fields',
'field-save' => 'array'
],
'template' => [
'name' => 'template',
'type' => 'select',
'field-save' => 'array',
'label' => 'Шаблон',
'options' => [
[ 'value' => '', 'label' => 'По умолчанию' ],
[ 'value' => 'contacts', 'label' => 'Контакты' ],
[ 'value' => 'about', 'label' => 'О нас' ],
[ 'value' => 'clients', 'label' => 'Клиенты' ],
[ 'value' => 'main', 'label' => 'Главная' ],
],
],
'category_id' => [
'name' => 'category_id',
'type' => 'select',
'name' => 'category_id',
'label' => 'Категория',
],
'url' => [
'name' => 'url',
'type' => 'text',
'label' => 'URL',
'validate' => 'required|alpha_dash',
],
// unique:pages,url
'slider' => [
'name' => 'slider',
'type' => 'gallery',
'label' => 'Слайдер',
],
// clients
'clients' => [
'name' => 'clients',
'type' => 'group',
'field-save' => 'array',
'fields' => [
'map' => [
'name' => 'map',
'type' => 'gallery',
'label' => 'Карта',
'max-files' => 1,
],
'gallery4' => [
'name' => 'gallery4',
'type' => 'gallery',
'label' => 'Логотипы по 4 в ряд',
],
'gallery5' => [
'name' => 'gallery5',
'type' => 'gallery',
'label' => 'Логотипы по 5 в ряд',
],
],
'show' => [
[ 'type' => '==', 'field' => 'template', 'value' => 'clients' ],
]
],
// main page
'main' => [
'name' => 'main',
'type' => 'group',
'field-save' => 'array',
'fields' => [
'slider' => [
'name' => 'slider',
'type' => 'repeated',
'label' => 'Слайдер',
'field-save' => 'array',
'fields' => [
'title' => [
'name' => 'title',
'type' => 'text',
'label' => 'Заголовок',
'col-classes' => 'col-6',
],
'desc' => [
'name' => 'desc',
'type' => 'text',
'label' => 'Описание',
'col-classes' => 'col-6',
],
'url' => [
'name' => 'url',
'type' => 'text',
'label' => 'URL',
'col-classes' => 'col-6',
],
'gallery' => [
'name' => 'gallery',
'type' => 'gallery',
'label' => 'Слайд',
'col-classes' => 'col-6',
'max-files' => 1,
],
],
],
'plashki' => [
'name' => 'plashki',
'type' => 'repeated',
'label' => 'Вращающиеся элементы',
'field-save' => 'array',
'fields' => [
'text' => [
'name' => 'text',
'type' => 'editor',
'size' => 'small',
'label' => 'Текст',
],
],
],
'gallery' => [
'name' => 'gallery',
'type' => 'gallery',
'label' => 'Галерея',
'desc' => 'Если картинка вертикальная, то она отобразится в 2 ряда, если горизонтальная и ширина в 2 раза больше высоты, она отобразиться в 2 ячейки.'
],
],
'show' => [
[ 'type' => '==', 'field' => 'template', 'value' => 'main' ],
]
],
// about us
'about' => [
'name' => 'about',
'type' => 'repeated',
'label' => 'Страница',
'field-save' => 'array',
'fields' => [
'type' => [
'name' => 'type',
'type' => 'select',
'field-save' => 'array',
'label' => 'Тип',
'options' => [
[ 'value' => 'big', 'label' => 'Большой банер' ],
[ 'value' => 'big_title', 'label' => 'Заголовок' ],
[ 'value' => 'left', 'label' => 'Картинка слева' ],
[ 'value' => 'right', 'label' => 'Картинка справа' ],
],
'col-classes' => 'col-6'
],
'big_title' => [
'name' => 'big_title',
'type' => 'text',
'label' => 'Заголовок',
'show' => [
[ 'type' => '==', 'field' => 'type', 'value' => 'big_title' ],
],
'col-classes' => 'col-6'
],
'gallery' => [
'name' => 'gallery',
'type' => 'gallery',
'label' => 'Картинка',
'max-files' => 1,
'col-classes' => 'col-6',
'show' => [
[ 'type' => '!=', 'field' => 'type', 'value' => 'big_title' ],
],
],
'text' => [
'name' => 'text',
'type' => 'editor',
'size' => 'small',
'label' => 'Текст',
'show' => [
[ 'type' => '!=', 'field' => 'type', 'value' => 'big' ],
[ 'operator' => '&&', 'type' => '!=', 'field' => 'type', 'value' => 'big_title' ],
],
],
],
'show' => [
[ 'type' => '==', 'field' => 'template', 'value' => 'about' ],
]
],
'sitemap' => [
'name' => 'sitemap',
'type' => 'group',
'load-from' => 'Sitemap::page',
'field-save' => 'array',
'label' => 'Карта сайта'
],
],
'edit' => [
'default' => [
'label' => 'Основные',
'name' => 'default',
'fields' => [ 'name', 'text', 'clients', 'main', 'about' ],
],
'attr' => [
'label' => 'Атрибуты',
'name' => 'attr',
'fields' => [ 'category_id', 'template' ],
],
'seo' => [
'label' => 'SEO',
'name' => 'seo',
'fields' => [ 'url', 'seo' ],
],'sitemap' => [
'label' => 'Карта сайта',
'name' => 'sitemap',
'fields' => [ 'sitemap' ],
]
],
'search' => [
[
'name' => 'search',
'type' => 'text',
'attr' => [ 'placeholder' => 'Введите текст для поиска' ],
'fields' => [ 'name', 'text' ],
],[
'options-empty' => 'Все категории',
'name' => 'parent_cat',
'field-from' => 'category_id',
'label' => '',
'fields' => [ 'category_id'],
'search-type' => 'filter',
],
]
];