做者:白狼 出处:www.manks.top/article/yii2_umeditor php
本文版权归做者,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。css
实际工做中,不免不会遇到相似新闻呀,文章呀之类的开发工做,这就要求运营人员去发布啦,可是喃,有些个小伙伴为了省事呢,三下五除二,ok,上线了。人家运营的妹子一试用,哎呀呀,你这发布文章内容给我整了个大点的textarea
就算完事啦,发布一篇新闻你想整死老娘不成。咱们接下来就来聊聊Yii2
框架是如何整合百度编辑器umeditor
的。web
umeditor
是啥,我只听过ueditor
,你这umeditor
是否是盗版的东东喃?umeditor
呢,说白了就是mini版的ueditor
,按照百度官方说法,其实就是编辑器中的"短软小",可是功能俱全。咳咳,我们回归正题。yii2
首先勒,我们先去官网下载一份mini版的ueditor umeditor
,注意哦,是um editor
。框架
下载下来解压放到项目根目录下面的 /css
目录下 命名为umeditor
,具体位置各位随意,后面能引用的到就行。yii
第二步,咱们先去扩展下backend\assets\Appset
类,哎呀我擦,为啥要扩展这么个玩意,跟我们的umeditor
整合啥关系勒,半路杀出个程咬金出来。这里扩展下这个类文件的意图是为了接下来在文件中方便引入css
js
文件滴。编辑器
很简单,在Appset
方法中增长下面两个方法便可this
//定义按需加载JS方法,注意加载顺序在最后 public static function addScript($view, $jsfile) { $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'backend\assets\AppAsset']); } //定义按需加载css方法,注意加载顺序在最后 public static function addCss($view, $cssfile) { $view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'backend\assets\AppAsset']); }
接下来,按照下面的配置便可。code
先作说明,此处咱们假设有一个文章article
表,有一个内容content
字段须要显示为百度编辑器。orm
按照yii2
的表单模型来看,咱们修改article\_form.php
文件中的content
字段
<?= $form->field($model, 'content')->textarea(['style' => 'width:760px;height:500px;']) ?>
该文件引入Appset
类并引入相关的css
js
文件以下
use backend\assets\AppAsset; 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
代码便可实现
<?php $this->beginBlock('js-block') ?> $(function () { var um = UM.getEditor('article-content', { }); }); <?php $this->endBlock() ?> <?php $this->registerJs($this->blocks['js-block'], \yii\web\View::POS_END); ?>
关于article-content
怎么来滴喃,这个就是咱们要绑定的目标对象,即content
。
article-content
是当前该对象的id
标识。
ok,到此百度编辑器基本上整合完毕,如今赶快去添加一篇文章试试看吧,记得更新看看编辑器里面是否也有内容哦