织梦后台编辑器更换ueditor

织梦默认的编辑器是 ckeditor 的精简版,功能较弱,对代码高亮、表格、图片批量上传支持都不理想。百度 UEditor(简称 ueditor)曾是国内 CMS 最流行的编辑器,功能完善、可定制性强。本文讲解织梦后台编辑器更换ueditor 的完整流程,让发布文章的体验大幅提升。

一、为什么换 UEditor

  • 支持多图上传、拖拽上传、图片管理器
  • 内置代码高亮、表格、分页符插入
  • 可自定义工具栏按钮,按角色分配编辑权限
  • 对 HTML5 标签、视频嵌入支持更友好

二、下载与目录放置

1. 获取 UEditor 织梦专用版

UEditor 官方已停止维护,但社区有织梦适配版,搜索"ueditor for dedecms"获取完整包。包内通常包含:

ueditor/                编辑器主目录
  ├─ php/               PHP 后端
  ├─ dialogs/           弹窗组件
  ├─ lang/zh-cn/        中文语言包
  └─ ueditor.config.js  配置文件

2. 上传到织梦目录

把 ueditor 目录上传到 /include/ueditor/,确保可访问 /include/ueditor/ueditor.all.min.js

三、修改织梦调用编辑器的方法

织梦编辑器统一由 /include/inc/inc_fun_funAdmin.php 中的 SpGetEditor 函数输出。找到该函数,在 switch 中加入 ueditor 分支:

function SpGetEditor($fname, $fvalue, $nheight='350', $etype='Basic', $gtype='print'){
    global $cfg_ckeditor;
    switch($etype){
        case 'ueditor':
            $code='<script src="/include/ueditor/ueditor.config.js"></script>';
            $code .='<script src="/include/ueditor/ueditor.all.min.js"></script>';
            $code .='<textarea name="'.$fname.'" id="'.$fname.'">'.$fvalue.'</textarea>';
            $code .='<script>UE.getEditor("'.$fname.'",{initialFrameHeight:'.$nheight.'});</script>';
            break;
        // 原 ckeditor 分支保留
    }
    return $gtype=='print' ? $code : '';
}

然后在"系统 - 系统基本参数 - 核心设置"中将"默认编辑器"改为 ueditor

四、图片上传路径配置

UEditor 默认上传到 ueditor/php/upload/,建议改为织梦的附件目录 /uploads/allimg/,便于统一管理。编辑 ueditor/php/config.json

"imagePathFormat": "/uploads/allimg/{yyyy}{mm}/{time}{rand:6}",
"imageManagerListPath": "/uploads/allimg/"

修改后 UEditor 上传的图片会出现在织梦附件管理中,采集、水印、缩略图等功能都能正常工作。

五、注意事项

UEditor 老版本存在 XSS 漏洞,务必下载社区修复版或自行打补丁。
织梦 V5.7 SP3 之后默认编辑器接口有调整,需匹配对应版本的 SpGetEditor 写法。
切换编辑器后旧文章内的 ckeditor 特殊标签可能不显示,需手动调整 HTML。
移动端编辑器建议保留简化版工具栏,避免按钮过多撑出屏幕。

六、后续优化方向

更换为 UEditor 后,建议按角色配置不同工具栏:编辑只用基础排版工具,主编开放 HTML 源码与分页符,运营开放图片批量上传。同时把编辑器与图片水印、采集本地化、关键词提取等模块打通,让编辑器成为内容生产的中枢。对于重视内容质量的站点,可在编辑器中接入原创度检测、敏感词提示,把内容质量把控前置到发布环节,从源头提升站点内容竞争力。