simialbi/yii2-summernote

Yii2 Summernote小部件。基于Bootstrap的简单WYSIWYG编辑器

安装量2,072

依赖项: 9

建议者: 4

安全性: 0

星标: 3

关注者: 1

分支: 33

开放问题: 1

类型:yii2-extension

1.3.1 2016-01-15 00:00 UTC

This package is auto-updated.

Last update: 2024-08-25 11:11:33 UTC


README

Yii2 Summernote 小部件。基于Bootstrap的简单WYSIWYG编辑器

安装

Composer

安装此扩展的首选方式是通过 Composer

运行以下命令之一:

php composer.phar require marqu3s/yii2-summernote "dev-master"

或者

"marqu3s/yii2-summernote": "dev-master"

将以下内容添加到您的composer.json文件的要求部分

使用方法

<?php
use marqu3s\summernote\Summernote;

/** @var $form \yii\widgets\ActiveForm */
/** @var $model \yii\base\Model */

echo $form->field($model, 'content')->widget(Summernote::class, [
    'clientOptions' => [
        // ...
    ]
]);

或者

<?php
use marqu3s\summernote\Summernote;

echo Summernote::widget([
    'name' => 'editor_id',
    'clientOptions' => [
        // ...
    ]
]);

Bootstrap版本

默认情况下,\marqu3s\summernote\SummernoteAsset加载与Bootstrap 4兼容的Summernote版本。如果您需要与Bootstrap 3兼容的版本,请按照以下方式配置您的应用程序

'assetManager' => [
    'bundles' => [
        'marqu3s\summernote\SummernoteAsset'   => [
            'css' => [
                'summernote.css'
            ],
            'js' => [
                'summernote.js'
            ], 
            'depends' => [
                'yii\bootstrap\BootstrapPluginAsset',
            ]
        ]
    ]
]

如果您需要与Bootstrap 5兼容的版本,配置方式如下

'assetManager' => [
    'bundles' => [
        'marqu3s\summernote\SummernoteAsset'   => [
            'css' => [
                'summernote-bs5.css'
            ],
            'js' => [
                'summernote-bs5.js'
            ], 
            'depends' => [
                'yii\bootstrap\BootstrapPluginAsset',
            ]
        ]
    ]
]

直接上传到Amazon S3

要将插入编辑器的图片上传到S3,您需要配置一些选项。

<?php
use marqu3s\summernote\Summernote;

/** @var $model \yii\base\Model */

echo 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' => [
        ...
    ]
]);

然后,在您的控制器中,配置一个操作作为signEndpoint以对将要上传图片的POST请求进行签名。

<?php
public function actions()
{
   return [
      'sign-aws-request' => [
          'class' => 'marqu3s\summernote\actions\SignAwsRequestAction',
          'clientPrivateKey' => 'AWS-KEY',
          'clientPrivateSecret' => 'AWS-SECRET',
          'expectedBucketName' => 'BUCKET-NAME',
          'expectedHostName' => 'BUCKET-NAME',
          'expectedMaxSize' => 'MAX-FILE-SIZE'
      ]
   ];
}

请参阅客户端选项

原作者

Aleksandr Zelenin,电子邮件:aleksandr@zelenin.me

更新者

João Marques,电子邮件:joao@jjmf.com