Skip to content

Commit

Permalink
classes moved, example config added
Browse files Browse the repository at this point in the history
  • Loading branch information
dobrik committed Jun 12, 2019
1 parent b09f40b commit 32dedb9
Show file tree
Hide file tree
Showing 3 changed files with 120 additions and 17 deletions.
3 changes: 2 additions & 1 deletion src/Forms/Creator.php → src/Creator.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
<?php

namespace Dobrik\LaravelEasyForm\Forms;
namespace Dobrik\LaravelEasyForm;

use Dobrik\LaravelEasyForm\Forms\HtmlAbstract;
use Dobrik\LaravelEasyForm\Models\TranslatableModelAbstract;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
Expand Down
28 changes: 14 additions & 14 deletions src/Forms/Factory.php → src/Factory.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Dobrik\LaravelEasyForm\Forms;
namespace Dobrik\LaravelEasyForm;

use Dobrik\LaravelEasyForm\Exceptions\InvalidAliasException;
use Illuminate\Support\Arr;
Expand All @@ -15,23 +15,23 @@ class Factory
{
private $aliases = [
'plugins' => [
'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,
],
];

Expand Down
106 changes: 104 additions & 2 deletions src/resources/config/forms.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,107 @@
<?php

/**
* Формы генерируются и проверяются на основе данных в масивах, можно передать ключ из текущего конфига
*
* Поля simple НЕ мультиязычные, translatable мультиязычные.
*
* Типы полей:
*
* "Input:text" - то это создаст input с атрибутом type = "text"
*
* Допустимые параметры конфига для поля:
* name - имя инпута, помещяется в аттрибут "name"
* title - заголовок, он же "label"
* type - тип поля, класс Input'а с неймспейса \App\Forms\Inputs, допустимые значения:
* - Button
* - Image
* - Input - через ":" передается тип "text|checkbox|file"
* - Select - можно получить значения с БД указав через "::" (pages_templates|id,template) - где (таблица|поле_ключа,поле_значения)
* или указать заготовленые значения передаем их в виде массива [0 => 'Нет', 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
],
]
],
];

0 comments on commit 32dedb9

Please sign in to comment.