FieldTypes plugin for CakePHP
Note: This is a non-stable plugin for CakePHP 3.x at this time. It is currently under development and should be
considered experimental., (*1)
Installation
You can install this plugin into your CakePHP application using composer., (*2)
The recommended way to install composer packages is:, (*3)
composer require jeffersonsimaogoncalves/cakephp-fieldtypes
Now load the plugin with the command:, (*4)
bin/cake plugin load -r -b FieldTypes
Usage
You can use the FieldTypes extending core FormHelper with BootstrapUI.Form
then setting the widgets you want to use., (*5)
$this->loadHelper('Form', [
'className' => 'BootstrapUI.Form',
'widgets' => [
//Date
'flatpickr' => ['FieldTypes\View\Widget\FlatpickrWidget', '_view'],
'bootstrap-datepicker' => ['FieldTypes\View\Widget\BootstrapDatepickerWidget', '_view'],
'bootstrap-datetimepicker' => ['FieldTypes\View\Widget\BootstrapDatetimepickerWidget', '_view'],
//Color
'bootstrap-colorpicker' => ['FieldTypes\View\Widget\BootstrapColorpickerWidget', '_view'],
//Number
'bootstrap-touchspin' => ['FieldTypes\View\Widget\BootstrapTouchspinWidget', '_view'],
//Boolean
'bootstrap-switch' => ['FieldTypes\View\Widget\BootstrapSwitchWidget', '_view'],
//Content
'summernote' => ['FieldTypes\View\Widget\SummernoteWidget', '_view'],
'wysiwygjs' => ['FieldTypes\View\Widget\WysiwygjsWidget', '_view'],
//Select
'bootstrap-select' => ['FieldTypes\View\Widget\BootstrapSelectWidget', '_view'],
'select2' => ['FieldTypes\View\Widget\Select2Widget', '_view'],
//Other
'stringtoslug' => ['FieldTypes\View\Widget\StringToSlugWidget', '_view'],
'textcount' => ['FieldTypes\View\Widget\TextCounterWidget', '_view'],
]
]);
You can override default widgets too., (*6)
$this->loadHelper('Form', [
'className' => 'BootstrapUI.Form',
'widgets' => [
'date' => ['FieldTypes\View\Widget\FlatpickrWidget', '_view'],
'select' => ['FieldTypes\View\Widget\Select2Widget', '_view']
]
]);
And then, using it:, (*7)
$this->Form->input('some_field', ['type' => 'summernote']);
It also works nice with CakeAdmin formFields., (*8)
public function postType() {
return [
'formFields' => [
'some_field' => [
'type' => 'summernote',
],
]
];
};
Types
'type' => 'select2'
, (*9)
'type' => 'select2', 'multiple' => true
, (*10)
'type' => 'summernote'
, (*11)
'type' => 'datepicker'
, (*12)
'type' => 'colorpicker'
, (*13)
'type' => 'touchspin'
, (*14)
'type' => 'toggle'
, (*15)
Credits
This work is based on the code by Leonardo Ruhland., (*16)