因为最近在做一个项目,其中需要用到FCK编辑器,当然现在这个产品已经不叫这个名了,去掉了F,叫CKEditor,其实整合CK编辑器不难,难的是带上传图片和视频及附件上传,因为在默认的CK编辑器就不带上传功能,虽说它的拓展性很好,可我们并没有太多时间去研究怎么写一个上传插件. 不要失望,它们还有一款产品CKfinder,就是专门的一款附件管理产品,可以完美整合CKEditor,从而实现图片上传,视频上传,更强大的还带附件管理器,像本地管理文件一样方便.下面我就来分享整个整合过程,此方法适用于所有的PHP嵌入文本编辑器的需要.
第一步: 下载CKEditor和CKfinder
当然,如果你仅仅只需要编辑文本,不需要上传就可以忽略下面所有和CKfinder相关的代码.
CKEditor下载: ckeditor_3.6.2.zip
CKfinder下载: ckfinder_php_2.1.1.zip
为了保证不出错,请尽量从上面的链接下载或者去官网下载同版本的文件,因为不同版本的配置方法略有不同.
第二步: 解压文件
解压 ckeditor_3.6.2.zip后,将ckeditor目录复制到你项目的public目录下(用Brophp开发的项目根目录的public),同样把 ckfinder_php_2.1.1.zip解压后ckfinder的目录复制到你项目的public目录.
保证它们在同一层.如图:
第三步:复制类文件
将 ckeditor/ckeditor_php5.php复制到项目根目录的classes目录下改名为ckeditor.class.php,同样把 ckfinder/core/ckfinder_php5.php复制到项目根目录的classes目录下改名为ckfinder.class.php
第四步: 配置CKfinder(无需上传功能则跳过)
1,权限配置
打开ckfinder/config.php, 首先设置第一个函数CheckAuthentication(),这个函数需要按照自己的规则写,只要 return true的情况才能允许上传文件到服务器的,不建议直接写return true,这将导致安全问题。可以采用session来处理比较方便,当然你如果你允许访问编辑器所在页面的所有用户都有上传权限的话也可以直接在函数体内return true。
上面函数体默认的内容如下:
2,上传路径配置
也在ckfinder/config.php, 找到$baseUrl,这里就是上传文件的路径,这里如果你站点上传的东西都在一个位置,则直接这样 $baseUrl='/uploads/';注意这里的路径填写相对于项目站点根目录,不是项目根目录,比如你在本地开发的时候站点根目录 为localhost 可是你www下面有很多项目,那么这里的路径此时是相对于www目录.
默认为:
3,上传的文件名
对于上传文件名,ckfinder会按照原有的名字命名,中文的情况下可能会乱码,所以建议使用日期重命名。打开/ckfinder/core/connector/php/php5/CommandHandler/FileUpload.php 找到
第一步: 下载CKEditor和CKfinder
当然,如果你仅仅只需要编辑文本,不需要上传就可以忽略下面所有和CKfinder相关的代码.
CKEditor下载: ckeditor_3.6.2.zip
CKfinder下载: ckfinder_php_2.1.1.zip
为了保证不出错,请尽量从上面的链接下载或者去官网下载同版本的文件,因为不同版本的配置方法略有不同.
第二步: 解压文件
解压 ckeditor_3.6.2.zip后,将ckeditor目录复制到你项目的public目录下(用Brophp开发的项目根目录的public),同样把 ckfinder_php_2.1.1.zip解压后ckfinder的目录复制到你项目的public目录.
保证它们在同一层.如图:
第三步:复制类文件
将 ckeditor/ckeditor_php5.php复制到项目根目录的classes目录下改名为ckeditor.class.php,同样把 ckfinder/core/ckfinder_php5.php复制到项目根目录的classes目录下改名为ckfinder.class.php
第四步: 配置CKfinder(无需上传功能则跳过)
1,权限配置
打开ckfinder/config.php, 首先设置第一个函数CheckAuthentication(),这个函数需要按照自己的规则写,只要 return true的情况才能允许上传文件到服务器的,不建议直接写return true,这将导致安全问题。可以采用session来处理比较方便,当然你如果你允许访问编辑器所在页面的所有用户都有上传权限的话也可以直接在函数体内return true。
session_start();function CheckAuthentication(){if(isset($_SESSION['UseEidtor']))return true;elsereturn false;}
上面函数体默认的内容如下:
2,上传路径配置
也在ckfinder/config.php, 找到$baseUrl,这里就是上传文件的路径,这里如果你站点上传的东西都在一个位置,则直接这样 $baseUrl='/uploads/';注意这里的路径填写相对于项目站点根目录,不是项目根目录,比如你在本地开发的时候站点根目录 为localhost 可是你www下面有很多项目,那么这里的路径此时是相对于www目录.
$baseUrl = '/uploads/'; //这样配置则上传文件会上传到www/uploads下
默认为:
$baseUrl = '/ckfinder/userfiles/';
3,上传的文件名
对于上传文件名,ckfinder会按照原有的名字命名,中文的情况下可能会乱码,所以建议使用日期重命名。打开/ckfinder/core/connector/php/php5/CommandHandler/FileUpload.php 找到
$sUnsafeFileName