diff --git a/src/Forms/Creator.php b/src/Creator.php similarity index 98% rename from src/Forms/Creator.php rename to src/Creator.php index 4c5d823..278a8e0 100644 --- a/src/Forms/Creator.php +++ b/src/Creator.php @@ -1,7 +1,8 @@ [ - 'ckeditor' => Plugins\Ckeditor::class, - 'color_picker' => Plugins\ColorPicker::class, - 'datetimepicker' => Plugins\Datetimepicker::class, - 'select2' => Plugins\Select2::class, + 'ckeditor' => Forms\Plugins\Ckeditor::class, + 'color_picker' => Forms\Plugins\ColorPicker::class, + 'datetimepicker' => Forms\Plugins\Datetimepicker::class, + 'select2' => Forms\Plugins\Select2::class, ], 'html' => [ - 'div' => Html\Div::class, - 'tab' => Html\Tab::class, - 'tabs' => Html\Tabs::class, + 'div' => Forms\Html\Div::class, + 'tab' => Forms\Html\Tab::class, + 'tabs' => Forms\Html\Tabs::class, ], 'inputs' => [ - 'button' => Inputs\Button::class, - 'form' => Inputs\Form::class, - 'image' => Inputs\Image::class, - 'input' => Inputs\Input::class, - 'select' => Inputs\Select::class, - 'textarea' => Inputs\Textarea::class, + 'button' => Forms\Inputs\Button::class, + 'form' => Forms\Inputs\Form::class, + 'image' => Forms\Inputs\Image::class, + 'input' => Forms\Inputs\Input::class, + 'select' => Forms\Inputs\Select::class, + 'textarea' => Forms\Inputs\Textarea::class, ], ]; diff --git a/src/resources/config/forms.php b/src/resources/config/forms.php index 25058db..5273a36 100644 --- a/src/resources/config/forms.php +++ b/src/resources/config/forms.php @@ -1,5 +1,107 @@ 'Нет', 1 => 'Да'] + * - Textarea + * - 'translatable' => true|false признак мультиязычности + * tab_id - id таба в который нужно поместить поле, если не передать поле попадет в таб 1 + * callback - функция замыкания, которая будет вызвана перед помещением поля в форму принимает 2 аргумента ($field, $model|null) + * default - стандартное значение, будет установлено если нет значения в модели или не установлено вручную + * plugins - массив плагинов, классов неймспейса \App\Forms\Plugins, добавляет контент плагина после поля + * дополнительно передает в плагин ID и name инпута. + * + */ return [ - + 'blog' => [ + 'model' => null, + 'tabs' => + [ + [ + 'title' => 'Main', + 'id' => 1 + ], + [ + 'title' => 'Content', + 'id' => 2 + ], + [ + 'title' => 'Meta', + 'id' => 3 + ] + ], + 'fields' => [ + [ + 'name' => 'image', + 'title' => 'Image', + 'type' => 'Image', + ], + [ + 'name' => 'image_preview', + 'title' => 'Image preview', + 'type' => 'Image', + ], + [ + 'name' => 'background_color', + 'title' => 'Background color', + 'type' => 'Input', + 'plugins' => ['color_picker'] + ], + [ + 'name' => 'published', + 'title' => 'Published', + 'type' => 'Input:checkbox' + ], + [ + 'name' => 'title', + 'title' => 'Title', + 'type' => 'Input:text', + 'tab_id' => 1, + 'translatable' => true + ], + [ + 'name' => 'description', + 'title' => 'Description', + 'type' => 'Textarea', + 'plugins' => ['ckeditor'], + 'tab_id' => 2, + 'translatable' => true + ], + [ + 'name' => 'meta_title', + 'title' => 'Meta title', + 'type' => 'Input:text', + 'tab_id' => 3, + 'translatable' => true + ], + [ + 'name' => 'meta_keywords', + 'title' => 'Meta keywords', + 'type' => 'Input:text', + 'tab_id' => 3, + 'translatable' => true + ], + [ + 'name' => 'meta_description', + 'title' => 'Meta description', + 'type' => 'Input:text', + 'tab_id' => 3, + 'translatable' => true + ], + ] + ], ]; \ No newline at end of file