1. 概述
在 Yii2 中使用 UEditor 百度编辑器需要安装 handsoncode/yii2-ueditor 扩展。
UEditor 是一个开源可自定义配置富文本编辑器,包含配置项均可使用默认值。它具有轻量、易拓展、多语言、兼容性好等特点,被广泛应用于主流web开发环境中。
2. 扩展安装
安装扩展可以使用 Composer 自动安装,命令如下:
composer require "mihaildev/yii2-ckeditor:^5.0.0"
安装完成后,需要在配置文件中添加以下内容:
'modules'=>[
'editor' => [
'class' => 'mihaildev\ckeditor\Module',
'editorOptions' => [
'preset' => 'full',
'inline' => false,
]
],
],
'components'=>[
'view' => [
'class' => 'yii\web\View',
'on beforeRender' => function ($event) {
$event->sender->registerJs('CKEDITOR_BASEPATH = \'/ckeditor/\';');
},
],
],
在以上代码中,'mihaildev\ckeditor\Module' 表示具体安装的扩展名称,而 'CKEDITOR_BASEPATH' 则是为了 CKEditor 能正确引用资源文件而设置的。
3. 视图文件
在视图文件中加入以下内容:
use mihaildev\ckeditor\CKEditor;
use mihaildev\ckeditor\CKEditorAsset;
use mihaildev\elfinder\ElFinder;
use yii\helpers\Html;
$ckeditorOptions = ElFinder::ckeditorOptions('elfinder', [
'preset' => 'full',
'inline' => false
]);
echo $form->field($model, 'content')->widget(CKEditor::className(), [
'editorOptions' => $ckeditorOptions
]);
在以上代码中,'ElFinder' 指使用扩展 handsoncode/yii2-ckeditor 中的 elFinder 扩展,'elfinder' 是在使用 elFinder 扩展时指定的他的别名,'full' 是 CKEditor 的默认配置。
4. 控制器代码
在控制器代码中,需要使用以下代码在 action 中接收表单提交的内容。
$content = Yii::$app->request->post('content');
以上代码将获取 name 为 content 的表单提交数据。
注意事项
要想所有功能都正常,需要确保以下文件的可写、可执行权限(鉴于安全原因请仅对以下文件夹进行相应权限设置,如果您的应用程序是以 Apache 或 Nginx 的用户运行的话):
- /web/uploads/
- /vendor/mihaildev/yii2-ckeditor/src/assets
同时,要确保在使用嵌入式编辑器时(即 'inline' 选项为 true),前端页面的 '
' 标签中必须包含以下代码:
其中 '/path/to/ckeditor/' 为 ckeditor.php 路径,该路径在使用 ElFinder 扩展时是指向 elFinderConnector.php 的。