在线编辑器fckeditor 2.0php环境下试用小记
一、简介
2004年11月30日推出了fckeditor 2.0 rc1版,据其官方网站称:这是fckeditor 2.0版的第一个稳定版本。大家现在可以考虑正式使用它了。目前支持的后台语言有asp、asp.net、php和coldfusion。
笔者在经过简单的试用发现,在线编辑器2.0版确实比1.6版有了许多的改进。首先是fckeditor的文件结构更加清晰,可以更方便地将其部署在自己的系统中。另外2.0版终于支持了firefox 1.0浏览器,这将为fckeditor赢得更多的使用者。废话不多说,让我们赶快来学习如何安装、配置fckeditor 2.0吧。
二、安装与范例
首先到http://sourceforge.net/projects/fckeditor/ 下载fckeditor 2.0 rc1(554k),并将其解压缩到你的网站目录里面,并将文件夹名改为fckeditor。举例来说,如果你的网站放在shaof这个目录下面,则在这个目录中建立3个子目录:
n fckeditor:存放从网站上下载的fckeditor在线编辑器
n upimages:用于存放上传的图片
n admin:里面存放测试页面
网站的结构如下:
/fckeditor //fckeditor目录
/userfiles //上传文件目录
/admin
test.php //提交数据页面
testsubmit.php //显示数据页面
进入到fckeditor目录下,打开_samples目录,里面含有各种编程语言调用fckeditor的范例程序页面,其中php目录中包含着一些使用php来调用fckeditor的范例,大家可以看一下,了解fckeditord的调用方法,下面是我简写了一个test.php程序,放在网站根目录下的admin目录中:
if($_post["add"]){
$content=$_post['editordefault'];
echo $content;
//变量$content就是我们在fckeditord里面编辑的内容,这里可以将其保存到数据库,代码省略。
}
/userfiles //上传文件目录
/admin
test.php //提交数据页面
testsubmit.php //显示数据页面
进入到fckeditor目录下,打开_samples目录,里面含有各种编程语言调用fckeditor的范例程序页面,其中php目录中包含着一些使用php来调用fckeditor的范例,大家可以看一下,了解fckeditord的调用方法,下面是我简写了一个test.php程序,放在网站根目录下的admin目录中:
if($_post["add"]){
$content=$_post['editordefault'];
echo $content;
//变量$content就是我们在fckeditord里面编辑的内容,这里可以将其保存到数据库,代码省略。
}
//引入在线编辑器
include("../fckeditor/fckeditor.php") ;
这里我们先看一下调用fckeditor的函数,2.0版的调用方式与1.6版变化不大,如果你以前安装过fckeditor 1.6,那么只需要修改很少的代码升级到2.0。
这里我们先看一下调用fckeditor的函数,2.0版的调用方式与1.6版变化不大,如果你以前安装过fckeditor 1.6,那么只需要修改很少的代码升级到2.0。
fckeditor( instancename[, width, height, toolbarset, value]
引用值 | 含义 |
instancename | 实例化编辑器所需的唯一名称 |
width | 编辑器的宽度,单位为象素或者百分比(可选择的,默认为:100%) |
height | 编辑器的高度,单位为象素或者百分比(可选择的,默认为:200) |
toolbarset | 工具栏的名称(可选择的,默认为:default) |
value | 编辑器的内容(html)初始值(可选择的) |
好啦,下面就让我们利用这个函数来定制fckeditor吧。
$ofckeditor = new fckeditor('fckeditor1') ;
$ofckeditor->basepath = '../fckeditor/' ;
$ofckeditor->toolbarset = 'default' ;
$ofckeditor->instancename = 'editordefault' ;
$ofckeditor->width = '100%' ;
$ofckeditor->height = '400' ;
$ofckeditor->create() ;
$ofckeditor->basepath = '../fckeditor/' ;
$ofckeditor->toolbarset = 'default' ;
$ofckeditor->instancename = 'editordefault' ;
$ofckeditor->width = '100%' ;
$ofckeditor->height = '400' ;
$ofckeditor->create() ;
三、配置在线编辑器
fckeditor 2.0的配置文件为fckeditor/fckconfig.js,其中几个重要的配置项目如下:
1、工具栏的设置
默认情况下,fckeditor会调用如下的工具栏按钮,大家可以根据自己的需要进行增减。需要注意的是,2.0版与1.6版的按钮并不完全相同,有些按钮以及删除或者改名了。
//##
//## toolbar buttons sets
//##
fckconfig.toolbarsets["default"] = [
['source','-','save','newpage','preview'],
['cut','copy','paste','pastetext','pasteword','-','print'],
['undo','redo','-','find','replace','-','selectall','removeformat'],
['bold','italic','underline','strikethrough','-','subscript','superscript'],
['orderedlist','unorderedlist','-','outdent','indent'],
['justifyleft','justifycenter','justifyright','justifyfull'],
['link','unlink'],
['image','table','rule','specialchar','smiley'],
['style','fontformat','fontname','fontsize'],
['textcolor','bgcolor'],
['about']
] ;
//## toolbar buttons sets
//##
fckconfig.toolbarsets["default"] = [
['source','-','save','newpage','preview'],
['cut','copy','paste','pastetext','pasteword','-','print'],
['undo','redo','-','find','replace','-','selectall','removeformat'],
['bold','italic','underline','strikethrough','-','subscript','superscript'],
['orderedlist','unorderedlist','-','outdent','indent'],
['justifyleft','justifycenter','justifyright','justifyfull'],
['link','unlink'],
['image','table','rule','specialchar','smiley'],
['style','fontformat','fontname','fontsize'],
['textcolor','bgcolor'],
['about']
] ;
2、简体中文设置
编辑edit/lang/fcklanguagemanager.js
将下面语句
fcklanguagemanager.availablelanguages =
{
'ar' : 'arabic',
'bs' : 'bosnian',
'ca' : 'catalan',
'en' : 'english',
'es' : 'spanish',
'et' : 'estonian',
'fi' : 'finnish',
'fr' : 'french',
'gr' : 'greek',
'he' : 'hebrew',
'hr' : 'croatian',
'it' : 'italian',
'ko' : 'korean',
'lt' : 'lithuanian',
'no' : 'norwegian',
'pl' : 'polish',
'sr' : 'serbian (cyrillic)',
'sr-latn' : 'serbian (latin)',
'sv' : 'swedish'
}
{
'ar' : 'arabic',
'bs' : 'bosnian',
'ca' : 'catalan',
'en' : 'english',
'es' : 'spanish',
'et' : 'estonian',
'fi' : 'finnish',
'fr' : 'french',
'gr' : 'greek',
'he' : 'hebrew',
'hr' : 'croatian',
'it' : 'italian',
'ko' : 'korean',
'lt' : 'lithuanian',
'no' : 'norwegian',
'pl' : 'polish',
'sr' : 'serbian (cyrillic)',
'sr-latn' : 'serbian (latin)',
'sv' : 'swedish'
}
添加一行 'zh-cn' : 'chinese' 从而变成
fcklanguagemanager.availablelanguages =
{
'ar' : 'arabic',
'bs' : 'bosnian',
'ca' : 'catalan',
'en' : 'english',
'es' : 'spanish',
'et' : 'estonian',
'fi' : 'finnish',
'fr' : 'french',
'gr' : 'greek',
'he' : 'hebrew',
'hr' : 'croatian',
'it' : 'italian',
'ko' : 'korean',
'lt' : 'lithuanian',
'no' : 'norwegian',
'pl' : 'polish',
'sr' : 'serbian (cyrillic)',
'sr-latn' : 'serbian (latin)',
'sv' : 'swedish',
'zh-cn' : 'chinese'
}
{
'ar' : 'arabic',
'bs' : 'bosnian',
'ca' : 'catalan',
'en' : 'english',
'es' : 'spanish',
'et' : 'estonian',
'fi' : 'finnish',
'fr' : 'french',
'gr' : 'greek',
'he' : 'hebrew',
'hr' : 'croatian',
'it' : 'italian',
'ko' : 'korean',
'lt' : 'lithuanian',
'no' : 'norwegian',
'pl' : 'polish',
'sr' : 'serbian (cyrillic)',
'sr-latn' : 'serbian (latin)',
'sv' : 'swedish',
'zh-cn' : 'chinese'
}
然后到这里http://www.shaof.com/download/zh-cn.js下载汉化好的zh-cn.js保存到editor/lang目录下即可。
四、设置文件上传
fckeditor 2.0在线编辑器采用了一种名为“connector”(连接器)的技术来实现对文件的浏览以及上传。下图显示了文件浏览的工作流程图。
1、 修改配置文件fckeditor/fckconfig.js中的两段内容
userfiles为文件上传的路径,与本文开头所给的例子相对应,大家可以自行修改。
从图中可以看出,当客户端向服务器发出一个文件操作请求后,connector就会对此请求进行响应,在服务器的文件系统中进行执行操作,如:文件和文件夹的浏览以及创建操作。最后将结果以xml的格式回应给客户端。具体的技术细节大家可以阅读fckeditor自带的说明指南。
落实到应用,首先我们要选择一个后台语言用来实现这个功能,这里我们以php为例进行说明。
1、 修改配置文件fckeditor/fckconfig.js中的两段内容
//link browsing
fckconfig.linkbrowser = true ;
fckconfig.linkbrowserurl = fckconfig.basepath + "filemanager/browser/default/browser.html?connector=connectors/php/connector.php" ;
fckconfig.linkbrowserwindowwidth = screen.width * 0.7 ; // 70%
fckconfig.linkbrowserwindowheight = screen.height * 0.7 ; // 70%
//image browsing
fckconfig.imagebrowser = true ;
fckconfig.imagebrowserurl = fckconfig.basepath + "filemanager/browser/default/browser.html?type=image&connector=connectors/php/connector.php" ;
fckconfig.imagebrowserwindowwidth = screen.width * 0.7 ; // 70% ;
fckconfig.imagebrowserwindowheight = screen.height * 0.7 ; // 70% ;
fckconfig.linkbrowser = true ;
fckconfig.linkbrowserurl = fckconfig.basepath + "filemanager/browser/default/browser.html?connector=connectors/php/connector.php" ;
fckconfig.linkbrowserwindowwidth = screen.width * 0.7 ; // 70%
fckconfig.linkbrowserwindowheight = screen.height * 0.7 ; // 70%
//image browsing
fckconfig.imagebrowser = true ;
fckconfig.imagebrowserurl = fckconfig.basepath + "filemanager/browser/default/browser.html?type=image&connector=connectors/php/connector.php" ;
fckconfig.imagebrowserwindowwidth = screen.width * 0.7 ; // 70% ;
fckconfig.imagebrowserwindowheight = screen.height * 0.7 ; // 70% ;
2、 修改配置文件
fckeditor/editor/filemanager/browser/default/connectors/php/connector.php // get the "userfiles" path. $globals["userfilespath"] = '/userfiles/' ; |
userfiles为文件上传的路径,与本文开头所给的例子相对应,大家可以自行修改。
好啦,只需要两步就完成了文件上传的配置工作,真是简单呀。以后我们通过fckeditor上传的文件都会保存在网站的userfiles目录下。
五、结束
最后大家可以把fckeditor目录下的_docs和_samples两个目录删除以节省空间。本文是笔者以前写过的一篇名为《在线编辑器fckeditor在php中的使用方法》(1.6版)文章的升级版本,文章如有不妥之处,还请大家指正。
另,遇到的问题
另,遇到的问题
1、图片文件上传路径问题
安装我文章里面的设置,上传路径设置为userfiles/,但是上传图片文件时,fckeditor都自动把文件上传到userfiles/image目录下面,自做主张的建立了一个image目录,很是不爽。原因不明。
安装我文章里面的设置,上传路径设置为userfiles/,但是上传图片文件时,fckeditor都自动把文件上传到userfiles/image目录下面,自做主张的建立了一个image目录,很是不爽。原因不明。