PHP code example of inkvizytor / fluentform
1. Go to this page and download the library: Download inkvizytor/fluentform library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
inkvizytor / fluentform example snippets
'providers' => [
/*
* Laravel Framework Service Providers...
*/
Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
Illuminate\Auth\AuthServiceProvider::class,
Illuminate\Broadcasting\BroadcastServiceProvider::class,
...
inkvizytor\FluentForm\FluentServiceProvider::class,
],
'aliases' => [
'App' => Illuminate\Support\Facades\App::class,
'Artisan' => Illuminate\Support\Facades\Artisan::class,
...
'Form' => inkvizytor\FluentForm\Facades\FluentForm::class,
'Fluent' => inkvizytor\FluentForm\Facades\FluentHtml::class,
],
public function edit(User $user)
{
return view('admin.users.edit')
->with('user', $user)
->with('rules', $this->rules())
->with('timezones', config('timezones'));
}
private function rules()
{
return [
'username' => '
@section('content')
<h5>Edit user</h5>
<br>
{!! Form::horizontal($user)->rules($rules)->errors($errors) !!}
{!! Form::password('dummy')->css('hide') !!}
<div class="row">
<div class="col-lg-4 col-md-6">
{!! Form::group()->text('username')->label('User name') !!}
{!! Form::group()->text('email')->label('Email address')->prepend('@') !!}
{!! Form::group()->content('<a href="#change-password" data-toggle="collapse">Change password</a>') !!}
<div id="change-password" class="{!! $errors->getBag('default')->has('password') ? '' : 'collapse' !!}">
{!! Form::group()->password('password')->label('Password') !!}
{!! Form::group()->password('password_confirmation')->label('Password confirmation') !!}
</div>
{!! Form::group()->checkbox('is_active')->label('Account active')->disabled($user->is_owner) !!}
{!! Form::group()->select('timezone', $timezones)->label('Timezone')->placeholder('Default timezone') !!}
<br>
{!! Form::group()
->add(Form::submit('save', 'Save changes')->icon(Fluent::FA_DOWNLOAD)->css('btn-primary'))
->add(Fluent::link(action('Admin\UsersController@index'), 'Back')->icon(Fluent::FA_ARROW_LEFT))
!!}
</div>
</div>
{!! Form::close() !!}
@endsection
public function preview()
{
return Form::preview();
}
Form::standard($model = null, $formName = 'default');
Form::horizontal($model = null, $formName = 'default');
Form::inline($model = null, $formName = 'default');
Form::open($model = null, $formName = 'default', $layout = 'standard')
Form::standard($model)->url('users/edit', ['id' => 1]);
Form::standard($model)->route('edit_user_route_name', ['id' => 1]);
Form::standard($model)->action('UsersController@edit', ['id' => 1]);
Form:: or Form::group()->
Form::group()->input($type, $name, $value = null);
Form::group()->text($name, $value = null);
Form::group()->password($name);
Form::group()->file($name);
Form::group()->email($name, $value = null)
Form::group()->url($name, $value = null)
Form::group()->number($name, $value = null)->min(1)->max(10)
Form::group()->range($name, $value = null)->min(0)->max(100)->step(5)
Form::group()->color($name, $value = null)
Form::group()->textarea($name, $value = null);
Form::group()->select($name, array $items, $selected = null);
Form::group()->checkbox($name, $value = true, $checked = null);
Form::group()->checkboxes($name, array $items, array $checked = []);
Form::group()->radios($name, array $items, $checked = null);
Form::group()->content($html);
Form::button($name, $label, $value = null);
Form::submit($name, $label, $value = null);
Form::reset($name, $label, $value = null);
Fluent::link($url, $label);
/* Buttons group */
Fluent::buttons([
Fluent::iconlink(Fluent::FA_PENCIL, action('Admin\UsersController@edit', $user->id), 'Edit')
->css('btn-sm btn-primary'),
Fluent::iconlink(Fluent::FA_REMOVE, action('Admin\UsersController@delete', $user->id), 'Delete')
->css('btn-sm btn-danger')
->data('confirm', 'Are you sure?')
])
@section('content')
{!! Fluent::tabs()
->add('details', 'User details')
->add('security', 'Account security')
->add('permissions', 'Roles and permissions')
->active('security')
->open()
!!}
{!! Fluent::tabs()->panel('details') !!}
...
{!! Fluent::tabs()->end() !!}
{!! Fluent::tabs()->panel('security') !!}
...
{!! Fluent::tabs()->end() !!}
{!! Fluent::tabs()->panel('permissions') !!}
...
{!! Fluent::tabs()->end() !!}
{!! Fluent::tabs()->close() !!}
@endsection
@section('content')
{!! Fluent::panel()->open('Panel title')->css(['panel-primary']) !!}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Suspendisse cursus diam nec auctor lacinia. Nam hendrerit
risus at condimentum egestas.
{!! Fluent::panel()->close([
Form::submit('change', 'Change'),
Form::button('back', 'Back')->disabled(),
]) !!}
@endsection
Fluent::FA_*
Fluent::GI_*
{!! Fluent::icon(Fluent::FA_SPINNER, Fluent::FA_SPIN, Fluent::FA_5X) !!}
Form::hidden($name, $value = null)
Form::radio($name, $value = true, $checked = null)
/* Form control group */
Form::group();
/* Form footer */
Form::footer([
Fluent::link(action('Admin\UsersController@create'), 'Add user')
->icon(Fluent::FA_PLUS)
->css('btn-success')
]);
'cdn' => [
'enabled' => [
'jquery' => true,
'jquery-validate' => true,
'jquery-validate-unobtrusive' => true,
'moment' => true,
'bootstrap' => true,
'bootstrap-filestyle' => true,
'bootstrap-datetimepicker' => true,
'font-awesome' => true,
'tinymce' => true,
],
'styles' => [
'bootstrap' => '//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css',
'bootstrap-datetimepicker' => '//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.min.css',
'font-awesome' => '//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css',
],
'scripts' => [
'jquery' => '//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js',
'jquery-validate' => '//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/jquery.validate.min.js',
'jquery-validate-unobtrusive' => '//ajax.aspnetcdn.com/ajax/mvc/5.2.3/jquery.validate.unobtrusive.min.js',
'moment' => '//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment-with-locales.min.js',
'bootstrap' => '//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js',
'bootstrap-filestyle' => '//cdn.jsdelivr.net/bootstrap.filestyle/1.1.0/js/bootstrap-filestyle.min.js',
'bootstrap-datetimepicker' => '//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js',
'tinymce' => '//tinymce.cachefly.net/4.2/tinymce.min.js',
]
],
<!DOCTYPE html>
<html>
<head>
<title>Fluent Form</title>
{!! Fluent::styles() !!}
</head>
<body>
<div class="container">
...
</div>
{!! Fluent::scripts() !!}
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Fluent Form</title>
...
</head>
<body>
<div class="container">
...
</div>
{!! Fluent::scripts(false) !!}
</body>
</html>
Form::group()->datetime($name, $value = null);
// Bootstrap DateTimePicker configuration
'datetimepicker' => [
'showClear' => true,
'showClose' => true,
]
Form::group()->datetimerange($name, $value = null);
// Bootstrap DateRangePicker configuration
'datetimerange' => [
'format' => [
'date' => 'YYYY-MM-DD',
'datetime' => 'YYYY-MM-DD HH:mm:ss'
],
'separator' => ' | ',
'firstDay' => 1,
'timePicker24Hour' => true,
'opens' => 'center',
]
Form::group()->editor($name, $value = null);
// TinyMCE configuration
'tinymce' => [
'plugins' => [
'advlist autolink lists link image charmap hr anchor pagebreak autoresize',
'searchreplace wordcount visualblocks visualchars code',
'insertdatetime media nonbreaking save table contextmenu directionality',
'emoticons template paste textcolor colorpicker textpattern autosave'
],
'toolbar1' => 'undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
'relative_urls' => false,
'paste_data_images' => false,
'browser_spellcheck' => true,
'entity_encoding' => "raw",
'autoresize_bottom_margin' => 0,
'nowrap' => false,
'resize'=> false,
],
$label = 'fluentform::preview.timezones.label';
Form::group()->text(...)->label($label, array $parameters = [], $locale = null);
Form::group()->text(...)->placeholder($label, array $parameters = [], $locale = null);
Form::group()->textarea(...)->help($label, array $parameters = [], $locale = null);
Form::group()->icon(...)->title($label, array $parameters = [], $locale = null);
// Validation
'validation' => 'nag',
'validators' => [
'jquery' => inkvizytor\FluentForm\Validation\JQuery::class,
'nag' => inkvizytor\FluentForm\Validation\Nag::class
],
namespace inkvizytor\FluentForm\Controls\Custom;
use inkvizytor\FluentForm\Base\Handler;
use inkvizytor\FluentForm\Controls\Select;
/**
* Class TimeZones
*
* Example of custom control. Control registered in config file in section 'controls'.
*
* @package inkvizytor\FluentForm
*/
class TimeZones extends Select
{
protected $items = [
...
];
/**
* @param \inkvizytor\FluentForm\Base\Handler $handler
* @param string $name
* @param string $selected
*/
public function __construct(Handler $handler, $name, $selected = null)
{
parent::__construct($handler);
$this->name($name);
$this->selected($selected);
}
/**
* @param array $items
* @return $this
*/
public function items(array $items)
{
// Do nothing. Just override select behavior.
return $this;
}
}
// Custom controls registration
'controls' => [
'timezones' => inkvizytor\FluentForm\Controls\Custom\TimeZones::class
],
{!! Form::group()->timezones('timezones')->placeholder('Choose your timezone') !!}
// or
{!! Form::timezones('timezones')->placeholder('Choose your timezone') !!}
php artisan vendor:publish --provider="inkvizytor\FluentForm\FluentServiceProvider"