thecodeholic / yii2-grapesjs
Grapesjs AssetBundle and widgets
Installs: 343
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 4
Forks: 4
Open Issues: 2
Language:JavaScript
Type:yii2-extension
Requires
- npm-asset/grapesjs: ^0.15.3
- npm-asset/grapesjs-preset-webpage: ^0.1.11
- yiisoft/yii2: ~2.0.0
README
Grapesjs AssetBundle, widgets and module
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist thecodeholic/yii2-grapesjs "^v0.1.0"
or add
"thecodeholic/yii2-grapesjs": "^v0.1.0"
to the require section of your composer.json
file.
Configuration
Once the module is installed, you need to run migrations:
php yii migrate --migrationPath=@vendor/thecodeholic/yii2-grapesjs/migrations
And add module in your config modules
'modules' => [ 'grapesjs' => [ 'class' => \thecodeholic\yii2grapesjs\Module::class, // custom placeholder variables which will be added into richtext // default is empty array 'grapesJsVariables' => [ '{first_name}' => 'First Name', '{last_name}' => 'Last Name', '{age}' => 'Age', ] ], ... ]
Configuring AssetManager
The package uses Yii::$app->fs
so you need to configure fs
component to be one of the available
targets of creocoder\flysystem
Checkout its documentation if you want to specify different targets https://github.com/creocoder/yii2-flysystem
And you need to install your desired target.
For example
composer require creocoder/yii2-flysystem
Using the widget in your own controller
If you do not want to use the module and integrate in your controller, you should add JsonParser
in request parser's.
'request' => [ 'parsers' => [ 'application/json' => 'yii\web\JsonParser', ] ]
Display the widget in your view file.
<?php echo \thecodeholic\yii2grapesjs\widgets\GrapesjsWidget::widget([ 'clientOptions' => [ 'storageManager' => [ 'id' => '', 'type' => 'remote', 'stepsBeforeSave' => 1, 'urlStore' => "save?id=$model->id", 'urlLoad' => "get?id=$model->id", ], 'assetManager' => [ 'upload' => "upload" ], 'deviceManager' => [ 'defaultDevice' => 'Resolution 2', 'devices' => [ [ 'name' => 'Resolution 1', 'width' => '850px', 'widthMedia' => '992px' ], [ 'name' => 'Resolution 2', 'width' => '750px', ], [ 'name' => 'Resolution 3', 'width' => '650px' ], [ 'name' => 'Resolution 4', 'width' => '450px', ], [ 'name' => 'Resolution 5', 'width' => '375px', ] ] ] ], // custom placeholder variables which will be added into richtext // default is empty array 'variables' => [ '{first_name}' => 'First Name', '{last_name}' => 'Last Name', '{age}' => 'Age', ] ]) ?>
Add the following actions to your controller.
public function actions() { return array_merge(parent::actions(), [ 'get' => [ 'class' => \thecodeholic\yii2grapesjs\actions\GetAction::class, // If includeFields is presented `excludeFields` are not considered // 'includeFields' => ['css', 'html'], // Exclude assets column from returned fields of the Content model 'excludeFields' => ['assets'] ], 'save' => \thecodeholic\yii2grapesjs\actions\SaveAction::class, 'upload' => \thecodeholic\yii2grapesjs\actions\UploadAction::class ]); }