hazicms / generator
Generator for HaziCms.
Requires
- php: >=5.4.0
- intervention/image: ~2.2
- laravelcollective/html: ~5.0
- mitulgolakiya/laravel-api-generator: 1.3.*
- pingpong/modules: 2.0.*@dev
This package is not auto-updated.
Last update: 2025-02-15 18:59:53 UTC
README
-
Add this package to your composer.json:
"require": { "pingpong/generators": "2.0.*@dev", "pingpong/modules": "2.0.x-dev", "hazicms/generator": "1.0.x" }
-
Run composer update
composer update
-
Add the ServiceProviders to the providers array in
config/app.php
.'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
.'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:
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'). -
Modify
generator.php
file to your needs. -
Add ADMIN-LTE dashboard template: cd public && bower update && cd ..
-
Add bower dependencies (at least CKEditor): cd vendor/hazicms/generator/ && bower update && cd ..
-
Fire artisan command to generate module with model.
php artisan hazicms:generator ModuleName ModelName
e.g.
php artisan hazicms:generator Network Project php artisan hazicms:generator Blog Post
-
Enter the fields with options
fieldName:fieldType[,htmlAtribute1 ,htmlAtribute2]:[fieldData]:[defaultOption]
Examples:
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.
(*) 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. :-)
-
(optional) If you want, you can add auth middleware to module routes. Route::group(['prefix' => 'admin', 'middleware' => 'auth') ...
-
Go to http://domain.com/admin/[Plural's ModelName] :)
Use ROXY fileman[0] as a filebrowser for CKEditor
-
Download fileman for PHP, unzip on public folder and give permissions.
-
Add on: /public/theme/ckeditor/config.js
var roxyFileman = '/fileman/index.html'; config.filebrowserBrowseUrl = roxyFileman; config.filebrowserImageBrowseUrl = roxyFileman+'?type=image'; config.removeDialogTabs = 'link:upload;image:upload';
-
On public/fileman/conf.json change INTEGRATION to "ckeditor".
[0] http://www.roxyfileman.com/CKEditor-file-browser
Use outsite of HaziCms namespace
-
php artisan app:name
your_namespace
. -
Set on
config/generator.php
file,namespace
variable toyour_namespace
.
Credits
This module generator is created by Aitor Ibañez.
This package is based on laravel-api-generator.
Bugs & Forks are welcomed :)