首先勒,咱们先去官网下载一份mini版的ueditor umeditor,注意哦,是um editor。
下载下来解压放到项目根目录下面的 /css目录下 命名为umeditor,具体位置各位随意,后面能引用的到就行。
第二步,我们先去扩展下backendassetsAppset类,哎呀我擦,为啥要扩展这么个玩意,跟咱们的umeditor整合啥关系勒,半路杀出个程咬金出来。这里扩展下这个类文件的意图是为了接下来在文件中方便引入css js文件滴。
很简单,在Appset方法中增加下面两个方法即可
1
2
3
4
5
6
7
8
|
//定义按需加载JS方法,注意加载顺序在最后 $view ->registerJsFile( $jsfile , [AppAsset::className(), 'depends' => 'backendassetsAppAsset' ]); } //定义按需加载css方法,注意加载顺序在最后 public static function addCss( $view , $cssfile ) { $view ->registerCssFile( $cssfile , [AppAsset::className(), 'depends' => 'backendassetsAppAsset' ]); } |
接下来,按照下面的配置即可。
先做说明,此处我们假设有一个文章article表,有一个内容content字段需要显示为百度编辑器。
按照yii2的表单模型来看,我们修改article_form.php文件中的content字段
1
|
<?= $form ->field( $model , 'content' )->textarea([ 'style' => 'width:760px;height:500px;' ]) ?> |
该文件引入Appset类并引入相关的css js文件如下
1
2
3
4
5
6
|
use backendassetsAppAsset; AppAsset::register( $this ); AppAsset::addCss( $this , '/css/umeditor/themes/default/css/umeditor.css' ); AppAsset::addScript( $this , '/css/umeditor/umeditor.config.js' ); AppAsset::addScript( $this , '/css/umeditor/umeditor.min.js' ); AppAsset::addScript( $this , '/css/umeditor/lang/zh-cn/zh-cn.js' ); |
然后只需要在当前页面底部注册下面的js代码即可实现
1
2
3
4
5
6
7
|
<?php $this ->beginBlock( 'js-block' ) ?> $( function () { var um = UM.getEditor( 'article-content' , { }); }); <?php $this ->endBlock() ?> <?php $this ->registerJs( $this ->blocks[ 'js-block' ], yiiwebView::POS_END); ?> |
关于article-content怎么来滴喃,这个就是我们要绑定的目标对象,即content。article-content是当前该对象的id标识。
ok,到此百度编辑器基本上整合完毕,现在赶快去添加一篇文章试试看吧,记得更新看看编辑器里面是否也有内容哦。
下面给大家介绍 yii2解决百度编辑器umeditor图片上传问题。
yii2框架整合了百度编辑器,因为文件上传采用的是yii2自带的UploadedFile,这就难免umeditor上传不成功问题,解决问题的只需要两个操作步骤,我们来看看具体实现
首先我们先把umeditor的配置搞好,这里只需要更改imageUrl配置项即可,我们修改其指向/tools/um-upload
那下一步自然是实现/tools/um-upload方法了,
按照ueditor的实现来看,这里我们上传成功后只需要返回成功信息即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
use backendmodelsUpload; use yiiwebUploadedFile; /** * 百度umeditor上传 */ public function actionUmUpload () { $model = new Upload(); if (Yii::$app->request->isPost) { $model->file = UploadedFile::getInstance($model, 'file' ); $dir = ‘文件保存目录 '; if (!is_dir($dir)) mkdir($dir); if ($model->validate()) { $fileName = $model->file->baseName . ' . ' . $model->file->extension; $dir = $dir.' / '. $fileName; $model->file->saveAs($dir); $info = [ "originalName" => $model->file->baseName, "name" => $model->file->baseName, "url" => $dir, "size" => $model->file->size, "type" => $model->file->type, "state" => ' SUCCESS', ]; exit(json_encode($info)); } } } |
特别提醒:上述返回的$info信息中state状态只能是SUCCESS,区分大小写
联系信息:邮箱aoxolcom@163.com或见网站底部。
请登录后发表评论
注册
社交帐号登录