laravel框架下使用ueditor富文本编辑器

2017-05-27  本文已影响0人  王乐城愚人云端

1.安装ueditor

在composer.json中添加

"stevenyangecho/laravel-u-editor": "~1.4"

并执行安装命令

composer update

2.注册服务

在config/app.php中的providers数组中添加服务

Stevenyangecho\UEditor\UEditorServiceProvider

3.生成ueditor相关文件

在config目录下生成配置文件,在public目录下生成ueditor文件,在view目录下生成ueditor的js,css链接模板

php artisan vendor:publish

4.使用ueditor

在视图文件中添加以下UEditor的头部js,css链接模板引入

在head标签内添加UEditor的js,css文件

@include('UEditor::head');

在body标签内添加UEditor的容器

<script id="container" name="content" type="text/plain">
    这里写你的初始化内容
</script>

在底部启动UEditor

<script type="text/javascript">
     var ue = UE.getEditor('container');
    ue.ready(function () {
        //此处为支持laravel5 csrf ,根据实际情况修改,目的就是设置 _token 值.
        ue.execCommand('serverparam', '_token', TOKEN);
    });
</script>

5.单独使用ueditor的图片上传,文件上传功能

ue.ready(function () {
    ue.getDialog("insertimage").open();
});

监听图片上传事件,获取图片上传的相对路径

ue.addListener('beforeInsertImage', function (t, arg) {
    alert(arg[0].src);
});
ue.ready(function () {
    ue.getDialog("attachment").open();
});

由于官方的ueditor.all.js中没有相关监听事件可以直接使用
所以在ueditor.all.js中添加该监听事件
定位到

me.execCommand('insertHtml', html);

在其下一行添加这句

me.fireEvent('afterUpfile', filelist);

监听文件上传事件,获取文件上传的相对路径

ue.addListener('afterUpfile', function (t, arg) {
    alert(arg[0].url);
});

6、添加自定义的按钮和功能到ueditor

'fullwidth'

在ueditor.all.js下搜索btnCmds数组,添加按钮

'fullwidth'

在ueditor.all.js下搜索UE.commands[找个合适的位置添加,给选中的图片添加class="fullwidth"来实现

UE.commands['fullwidth'] = {
    execCommand: function (cmdName, align) {
        var select = this.selection.getStart();
        if(select.nodeName == "IMG"){
            UE.dom.domUtils.addClass(select,"fullwidth");
        }
        return true ;
    }
};

在ueditor.css最后添加自选图标(对应的icon.png的背景偏移实现)

.edui-for-fullwidth .edui-icon{
    background-position:-240px -20px;
}
上一篇下一篇

猜你喜欢

热点阅读