-
Add this package to your composer.json:, (*1)
"require": {
"pingpong/generators": "2.0.*@dev",
"pingpong/modules": "2.0.x-dev",
"hazicms/generator": "1.0.x"
}
-
Run composer update, (*2)
composer update
-
Add the ServiceProviders to the providers array in config/app.php.
, (*3)
'Laracasts\Flash\FlashServiceProvider',
'Mitul\Generator\GeneratorServiceProvider',
'Pingpong\Modules\ModulesServiceProvider',
'Pingpong\Modules\Providers\BootstrapServiceProvider',
'HaziCms\Generator\Generator\GeneratorServiceProvider',
'Collective\Html\HtmlServiceProvider',
'Intervention\Image\ImageServiceProvider',
Also for convenience, add these facades in alias array in config/app.php., (*4)
'Module'=> 'Pingpong\Modules\Facades\Module',
'Form' => 'Collective\Html\FormFacade',
'Html' => 'Collective\Html\HtmlFacade',
'Flash' => 'Laracasts\Flash\Flash',
'Image' => 'Intervention\Image\Facades\Image'
-
Publish config files for generators, modules and images:, (*5)
php artisan vendor:publish --provider="HaziCms\Generator\Generator\GeneratorServiceProvider"
php artisan vendor:publish
php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"
-
Modify modules.php file to your needs.On Cms, change 'namespace' => 'HaziCms\Modules', and 'modules' => app_path('Modules')., (*6)
-
Modify generator.php file to your needs., (*7)
-
Add ADMIN-LTE dashboard template: cd public && bower update && cd .., (*8)
-
Add bower dependencies (at least CKEditor): cd vendor/hazicms/generator/ && bower update && cd .., (*9)
-
Fire artisan command to generate module with model., (*10)
php artisan hazicms:generator ModuleName ModelName
e.g., (*11)
php artisan hazicms:generator Network Project
php artisan hazicms:generator Blog Post
-
Enter the fields with options
, (*12)
fieldName:fieldType[,htmlAtribute1 ,htmlAtribute2]:[fieldData]:[defaultOption], (*13)
Examples:, (*14)
Select: group:select,'id' => 'mySelect', 'class' => 'red':['admin' => 'admin','user' => 'user']:user
Select (data from model): role_id:select,'id' => 'mySelect', 'class' => 'red' //to run well, need the fathers model created. Role for this example
Text: title:text,'size' => 255
Hidden: user_id:hidden,'id'=> 'user_id' // if the name ends with '_id', we suppose that the value is the model id. // Else value is null
Float: price:float,'min' => 1, 'max' => 10
Textarea: body:textarea,'placeholder' => 'Body content' (make ```bower install``` inside generator folder)
Radiobutton: sex:radio,'id' => 'sex', 'class' => 'red':['male' => 'ale','female' => 'fem']:fem
Checkbutton: data:check,'id' => 'data', 'class' => 'red':['clean_the_room' => 'clean','go_to_your_home' => 'home']:home (*)
Number: assistance:number,'id' => 'assistance', 'class' => 'red'
Date: birthday:date,'id' => 'date', 'class' => 'red' (make ```bower install``` inside generator folder)
There are some basic field examples on field_example_data file., (*15)
(*) Need to uncomment 3 lines on the modules controller to run. Laravelcollective/form has a bug with checkboxes. Until this been solved, this trick is needed! :-(
If you see "preg_replace(): Parameter mismatch, pattern is a string while replacement is an array" error, you need to read the last sentece. :-), (*16)