marqu3s / yii2-summernote
Yii2 Summernote widget. Super simple WYSIWYG editor on Bootstrap
Package info
github.com/marqu3s/yii2-summernote
Type:yii2-extension
pkg:composer/marqu3s/yii2-summernote
Requires
- yiisoft/yii2: ~2
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Yii2 Summernote widget. Super simple WYSIWYG editor on Bootstrap
Installation
Composer
The preferred way to install this extension is through Composer.
Either run
composer require marqu3s/yii2-summernote
or add
"marqu3s/yii2-summernote": "dev-master"
to the require section of your composer.json
Usage
<?= $form->field($model, 'content')->widget(Summernote::className(), [ 'clientOptions' => [ ... ] ]); ?>
or
<?= Summernote::widget([ 'name' => 'editor_id', 'clientOptions' => [ ... ] ]); ?>
Uploading directly to Amazon S3
To upload images inserted into the editor to S3, you have to configure a few options.
<?= Summernote::widget([ 'uploadToS3' => true, 'signEndpoint' => '/<controller>/sign-aws-request?v4=true', 'bucket' => 'S3-BUCKET-NAME', //'folder' => '', 'folder' => new \yii\web\JsExpression("function() { return $('#aFormFieldId').val() + '/'; }"), 'filenamePrefix' => "'{$model->id}-'", 'maxFileSize' => 1024000, 'expiration' => gmdate('Y-m-d\TH:i:s.000\Z', strtotime('+5 minutes')), 'clientOptions' => [ ... ] ]); ?>
Then, in your controller, configure an action as the signEndpoint to sign the POST request that will upload the image.
public function actions() { return [ 'sign-aws-request' => [ 'class' => 'common\actions\SignAwsRequestAction', 'clientPrivateKey' => 'AWS-KEY', 'clientPrivateSecret' => 'AWS-SECRET', 'expectedBucketName' => 'BUCKET-NAME', 'expectedHostName' => 'BUCKET-NAME', 'expectedMaxSize' => 'MAX-FILE-SIZE' ] ]; }
See clientOptions
Original Author
Aleksandr Zelenin, e-mail: aleksandr@zelenin.me
Updates by
João Marques, e-mail: joao@jjmf.com