禁用ckeditor+ckfinder的“浏览服务器”按钮

ckeditor是个NB的开发网站用的文本编辑器,但是它的编辑器中的图片文件上传功能并没有直接写在ckeditor中,需要安装一个 ckfinder的网站文件管理系统来实现文本编辑器的上传功能。关于ckeditor+ckfinder的配置网上一堆就不赘述了。在配置好之后,文件 上传功能实现,但是就为了实现一个上传功能就安装一个并不怎么需要的ckfinder似乎有些代价惨重,所以网上有人写出了轻量级的单纯上传功能的组件配 合ckeditor来使用。我这里出于上传文件的安全考虑(毕竟ckfinder是官方开发的,在安全方面绝对没的说),还是选择了比较臃肿的 ckfinder。
而我的需求是仅仅需要ckfinder的上传功能,我并不想要ckfinder的文件管理功能。当然,官方提供了禁用此功能的办法,它的实现原理是通过配 置ckfinder的config文件,以PHP为例,可以在config.php中加入SESSION认证来分配AccessControl的权限。这 里很简单就不说了,总之从服务器端可以很好的控制文件上传的权限与安全。但是这里问题就出现了,如此修改之后,点击ckeditor上传图片或者上传文件 或者上传FLASH时,那个“浏览服务器”的按钮还会存在,点击后还会进入文件管理网页,在权限配好的情况下只不过你什么都看不见了。这证明服务器端已经 从功能上成功的禁用了浏览服务器功能。
但是,一个完美的网站怎么能有一个这么屎的没用的而且容易让用户产生“网站开发人员技术很面”的按钮呢?!
于是我开始了弄掉这些个“浏览服务器”按钮的想法。经过一下午,终于有一种方案成功了。。

实现原理:
经过对ckeditor源代码的分析,因为我看的是压缩后的,所以看的比较吐血。所以产生按钮节点的语句我没找到,所以不能阻止按钮的生成,不过它的 STYLE被我找到了,加了若干个DISPLAY:NONE;后,问题得以解决!

实现方法:
由于ckeditor中的”上传图片””上传文件””上传FLASH” 三个功能中都有“浏览服务器”按钮,所以我们要修改3个JS文件,先打开ckeditor文件夹中的ckeditorpluginsimage dialogsimage.js文件,CTRL+F,搜索”browseServer”,找到该词第一次出现的位置,在后面添加双引号内的内 容”,style:’display:none;'”。如下图:

再搜索”filebrowser”,找到该词第二次出现的位置,如下图填入



CTRL+S保存该JS文件,出去刷新下自己的ckeditor,点击图片上传按钮后,你会发现浏览服务器按钮不见了。

下面去弄掉文件上传中的“浏览服务器”按钮。
打开ckeditorpluginslinkdialogslink.js文件,还是搜索”browseServer”第一次出现的地方,如下图 插入
双引号内的内容”,style:’display:none;'”。

CTRL+S保存该JS文件,出去刷新下自己的ckeditor,点击“链接”按钮后,你 会发现“文件上传选项”中的浏览服务器按钮不见了。

最后弄掉上传FLASH中的浏览服务器按钮,打开ckeditorpluginsflashdialogsflash.js文件,还是搜 索”browseServer”第一次出现的地方,如上图位置处插入双引号内的内容”,style:’display:none;'”。(这个和上面的几 乎一样,就不截图了)。CTRL+S保存该JS文件,出去刷新下自己的ckeditor,点击“上传FLASH”按钮后,你会发 现浏览服务器按钮不见了。

至此,一个从前端到后台,浏览服务器被全面禁用了的 ckeditor诞生了!



发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据