marqu3s / yii2-summernote
Yii2 Summernote widget. Super simple WYSIWYG editor on Bootstrap
Installs: 74 616
Dependents: 9
Suggesters: 0
Security: 0
Stars: 17
Watchers: 5
Forks: 34
Type:yii2-extension
Requires
- yiisoft/yii2: ~2
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