欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

网页编辑器FCKeditor 2.6.4精简配置方法

程序员文章站 2022-06-19 13:39:19
上传目录请在fckeditoreditorfilemanagerconnectorsaspconfig.asp中设置 dim configuserfilespathcon...

上传目录请在fckeditoreditorfilemanagerconnectorsaspconfig.asp中设置

dim configuserfilespath
configuserfilespath = "/userfiles/"

中文配置说明:
因为下载下来的压缩包里面有包含很多在我们使用时,用不到的,不删除也行。看个人喜好下面以php为例,进行程序瘦身

删除所有”_”开头的文件和文件夹
删除fckeditor的目录下:
fckeditor.afp
fckeditor.asp phpchina
fckeditor.cfc
fckeditor.cfm phpchina
fckeditor.lasso
fckeditor.pl phpchina
fckeditor.py
access.txt
license.txt
删除语言包editorlang中除中文和英文以外的语言
删除skin目录下除默认皮肤以外的文件夹
filemanager/browser/default/connectors/目录下除php以外的文件(最新2.6.4.1版本好像在\filemanager\connectors下)
filemanager/upload/目录下除php以外的文件
如果你不想要表情包 删除 editorimagessmiley下的msn文件夹及表情按钮
好了 精简完毕

我们通常把编辑器用以个文件夹存放、通常情况下我们可以明白为fckeditor或editor

找到里面两关键文件 fckeditor_php4.php fckeditor_php5.php 这两个文件的代码相差不了多少,很显然跟php版本有关

打开这两个文件

xml/html代码
function fckeditor( $instancename )
{
$this->instancename = $instancename ;
$this->basepath = './editor/' ; 默认编辑器所在的文件位置
$this->width = '100%' ; 默认编辑器宽
$this->height = '350' ; 默认编辑器高
$this->toolbarset = 'default' ; 默认编辑器skin
$this->value = '' ; 初始值

$this->config = array() ;
}
fckeditor设置文件 "fckconfig.js"


xml/html代码
fckconfig.customconfigurationspath = '' ; // 自定义配置文件路径和名称
fckconfigfckconfig.editorareacss = fckconfig.basepath + 'css/fck_editorarea.css'; // 编辑区的样式表文件
fckconfig.editorareastyles = '' ; // 编辑区的样式表风格
fckconfig.toolbarcombopreviewcss =''; //工具栏预览css
fckconfig.doctype = '' ;//文档类型
fckconfig.basehref = ''; // 相对链接的基地址
fckconfig.fullpage = false ; //是否允许编辑整个html文件,还是仅允许编辑body间的内容
fckconfig.startupshowblocks = false ;//决定是否启用"显示模块"
fckconfig.debug = false ;//是否开启调试功能
fckconfigfckconfig.skinpath = fckconfig.basepath + 'skins/default/' ; //皮肤路径
fckconfig.preloadimages=... //预装入的图片
fckconfigfckconfig.pluginspath = fckconfig.basepath + 'plugins/' ; //插件路径
fckconfig.autodetectlanguage = true ; //是否自动检测语言
fckconfig.defaultlanguage = 'zh-cn' ; //默认语言
fckconfig.contentlangdirection = 'ltr' ; //默认的文字方向,可选"ltr/rtl",即从左到右或从右到左
fckconfig.processhtmlentities = true ; //处理html实体
fckconfig.includelatinentities = true ; //包括拉丁文
fckconfig.includegreekentities = true ;//包括希腊文
fckconfig.processnumericentities = false ;//处理数字实体
fckconfig.additionalnumericentities = '' ; //附加的数字实体
fckconfig.fillemptyblocks = true ; //是否填充空块
fckconfig.formatsource = true ; //在切换到代码视图时是否自动格式化代码
fckconfig.formatoutput = true ; //当输出内容时是否自动格式化代码
fckconfig.formatindentator = ' ' ; //当在源码格式下缩进代码使用的字符
fckconfig.startupfocus = false ; //开启时焦点是否到编辑器,即打开页面时光标是否停留在fckeditor上
fckconfig.forcepasteasplaintext = false ; //是否强制粘贴为纯文件内容
fckconfig.autodetectpastefromword = true ; //是否自动探测从word粘贴文件,仅支持ie
fckconfig.showdropdialog = true ;//是否显示下拉菜单
fckconfig.forcesimpleampersand = false ;//是否不把&符号转换为xml实体
fckconfig.tabspaces = 0 ;//按下tab键时光标跳格数,默认值为零为不跳格
fckconfig.showborders = true ;//合并边框
fckconfig.sourcepopup = false ;//弹出
fckconfig.toolbarstartexpanded = true ;//启动fckeditor工具栏默认是否展开
fckconfig.toolbarcancollapse = true ;//是否允许折叠或展开工具栏
fckconfig.ignoreemptyparagraphvalue = true ;//是否忽略空的段落值
fckconfig.floatingpanelszindex = 10000 ;//浮动面板索引
fckconfig.htmlencodeoutput = false ;//是否将html编码输出
fckconfig.templatereplaceall = true ;//是否替换所有模板
fckconfig.toolbarlocation = 'in' ;//工具栏位置,
fckconfig.customconfigurationspath = '' ; // 自定义配置文件路径和名称
fckconfigfckconfig.editorareacss = fckconfig.basepath + 'css/fck_editorarea.css'; // 编辑区的样式表文件
fckconfig.basehref = ''; // 相对链接的基地址
fckconfig.debug = true/false; // 是否开启调试功能,当调用fckdebug.output()时,会在调试窗中输出内容
fckconfigfckconfig.skinpath = fckconfig.basepath + 'skins/default/'; // 设置皮肤
fckconfig.autodetectlanguage = true/false ; // 是否自动检测语言
fckconfig.defaultlanguage = 'zh-cn' ; // 设置默认语言
fckconfig.contentlangdirection = 'ltr/rtr'; // 默认文字方向,ltr左,rtr右
fckconfig.fillemptyblocks = true/false ; // 使用这个功能,可以将空的块级元素用空格来替代
fckconfig.formatsource = true/false; // 切换到代码视图时,是否自动格式化代码
fckconfig.formatoutput = true/false; // 当输出内容时是否自动格式化代码
fckconfig.formatindentator = ""; // 当在“源码格式”下缩进代码使用的字符
fckconfig.geckousespan = true/false; // 是否允许span标记代替b,i,u标记
fckconfig.startupfocus = true/false; // 开启时是否focus到编辑器
fckconfig.forcepasteasplaintext = true/false;// 强制粘贴为纯文本
fckconfig.forcesimpleampersand = true/false; // 是否不把&符号转换为xml实体
fckconfig.tabspaces = 0/1; // tab是否有效
fckconfig.tabspaces = 4; // tab键产生的空格字符数
fckconfig.showborders = true/false; // 是否合并边框
fckconfig.toolbarstartexpanded = true/false; // 页面载入时,工具栏是否展开,点“展开工具栏”时才出现
fckconfig.toolbarcancollapse = true/false; // 是否允许展开折叠工具栏
fckconfig.toolbarsets = object ; // 编辑器的工具栏,可以自行定义,删减,可参考已存在工具栏
fckconfig.entermode = 'p'; // 编辑器中直接回车,在代码中生成,可选为p | div | br
fckconfig.shiftentermode = 'br'; // 编辑器中shift+回车,在代码中生成,可选为p | div | br
fckconfig.contextmenu = 字符串数组; // 右键菜单的内容
fckconfig.fontcolors = ""; // 文字颜色列表
fckconfig.fontnames = ""; // 字体列表
fckconfig.fontsizes = ""; // 字号列表
fckconfig.fontformats = ""; // 文字格式列表
fckconfig.stylesxmlpath = ""; // css样式列表的xml文件的位置
fckconfig.templatesxmlpath = ""; // 模版的xml文件位置
fckconfig.spellchecker = "iespell/spellerpages"; // 拼写检查器
fckconfig.iespelldownloadurl = ""; // 下载拼写检查器的网址
fckconfigfckconfig.smileypath = fckconfig.basepath + 'images/smiley/msn/'; // 表情文件存放路径
fckconfig.smileyimages = ''; // 表情文件名称列表,具体参考默认设置
fckconfig.smileycolumns = 8; // 表情窗口显示表情列数
fckconfig.smileywindowwidth = 320; // 表情窗口显示宽度,此窗口会因为表情文件的改变而作调整
fckconfig.smileywindowheight = 240; // 表情窗口显示高度,此窗口会因为表情文件的改变而作调整
fckconfig.fullpage = true/false; // 是否允许编辑整个html文件,还是仅允许编辑body间的内容


上传设置

var _filebrowserlanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
var _quickuploadlanguage = 'php' ; // asp | aspx | cfm | lasso | php[/code]
//第一个是文件浏览器使用的语言,第二个快速上传使用的语言,改成你需要的
fckconfig.linkuploadallowedextensions = "" ; // empty for all
fckconfig.linkuploaddeniedextensions =".(php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi)$"
//这是两个允许和拒绝上传的文件类型列表
fckconfig.imagebrowser = false ;是否在插入图片功能里面启用服务器文件浏览功能
fckconfigfckconfig.imagebrowserurl = fckconfig.basepath + 'filemanager/browser/default/browser.html?type=imageconnector=connectors/' + _filebrowserlanguage + '/connector.' + _filebrowserextension ;
type=image 表示文件类型是image这会使文件浏览器定位到文件上传路径/image/文件夹下面
fckconfig.flashbrowser = false ;是否在插入flash功能中启用服务器文件浏览功能
fckconfig.linkupload = false ;是否启用插入链接的快速上传功能
fckconfig.imageupload = false ;是否启用图片快速上传功能
fckconfig.flashupload = false ;是否启用flash上传功能


服务器文件设置

文件浏览器的设置:
fckeditoreditorfilemanagerconnectorsaspconfig.asp

configisenabled = true 决定是否启用文件浏览器。这个是在服务器上执行的
configuserfilespath = "/test/upload/" 上传文件的路径(相对的)
configallowedextensions.add "file", ""
configdeniedextensions.add "file", "php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi"
configallowedextensions.add "image", "jpg|gif|jpeg|png|bmp"
configdeniedextensions.add "image", ""
configallowedextensions.add "flash", "swf|fla"
configdeniedextensions.add "flash", ""
configallowedextensions.add "media", "swf|fla|jpg|gif|jpeg|png|avi|mpg|mpeg|mp(1-4)|wma|wmv|wav|mid|midi|rmi|rm|ram|rmvb|mov|qt"
configdeniedextensions.add "media", ""
这是4个不同的filetype类型 分别对应了前台编辑器的 插入链接 插入图片 插入flash 插入媒体 4个功能


这里的文件类型与上面提到的两处文件类型是一致的要改必须许全改
快速上传:

xml/html代码
configisenabled = false //是否启用快速上传
configuserfilespath = "/userfiles/"

//如果想上传到 /test/upload/yyymmdd/的文件夹下面
则修改为 configuserfilespath = "/test/upload/" & year(now())& right("0"& month(now()),2)&right("0" & day(now()),2)


fckeditor设置多个工具栏样式

fckeditor中自带了两种工具栏样式,default 和base。可是我现在想再加一种工具栏样式。我试了一下。将default样式的设置复制了一下改为fckconfig.toolbarsets["blogedit"],里面个体的工具栏项我就不写了。可是当我在调用这个工具栏时,却提示我说工具栏blogedit设置没有找到,这是怎么回事啊?难道fckeditor只能使用def ault 和base这两种样式吗? 找到 fckconfig.js 里面设置这里我添加了 ddd 工具栏样式 要用的时候只需要 在

引用的时候 $this->toolbarset = 'ddd' ; 就ok 了


xml/html代码
fckconfig.toolbarsets["default"] = [
['source','docprops','-','save','newpage','preview','-','templates'],
['cut','copy','paste','pastetext','pasteword','-','print','spellcheck'],
['undo','redo','-','find','replace','-','selectall','removeformat'],
['form','checkbox','radio','textfield','textarea','select','button','imagebutton','hiddenfield'],
'/',
['bold','italic','underline','strikethrough','-','subscrīpt','superscrīpt'],
['orderedlist','unorderedlist','-','outdent','indent','blockquote'],
['justifyleft','justifycenter','justifyright','justifyfull'],
['link','unlink','anchor'],
['image','flash','table','rule','smiley','specialchar','pagebreak'],
'/',
['style','fontformat','fontname','fontsize'],
['textcolor','bgcolor'],
['fitwindow','showblocks','-','about'] // no comma for the last row.
] ;
fckconfig.toolbarsets["basic"] = [
['bold','italic','-','orderedlist','unorderedlist','-','link','unlink','-','about']
] ;
fckconfig.toolbarsets["ddd"] = [
['orderedlist','unorderedlist','-','link','unlink','-','about','bold','italic','underline','strikethroug
h','-','subscrīpt','superscrīpt']
] ;
有时间我在吧! adodb+smarty中应用板块写上去
将fckeditor整合进我的页面

由于目前的版本提供的fckeditor仅提供了javascrīpt式的整合,因此,这里仅讲述如何应用javascrīpt来整合fckeditor到站点中,当然,其他各种语言的整合,你可以
参考_samples文件夹中的例子来完成
1,假如编辑器已经安装在你的站点的/fckeditor/文件夹下.那么,第一步我们需要做的就是在页面的head段中放入scrīpt标记以引入javascrīpt整合模块.例如:
<scrīpt type="text/javascrīpt" src="/fckeditor/fckeditor.js"></scrīpt>

其中路径是可更改的

2,现在,fckeditor类已经可以使用了.有两个方法在页面中建立一个fckeditor编辑器:
方法1:内联方式(建议使用):在页面的form标记内需要插入编辑器的地方置入以下代码:
<scrīpt type="text/javascrīpt">
var ofckeditor = new fckeditor( 'fckeditor1' ) ;
ofckeditor.create() ;
</scrīpt>

方法2:textarea标记替换法(不建议使用):在页面的onload事件中,添加以下代码以替换一个已经存在的textarea标记

<html>
<head>
<scrīpt type="text/javascrīpt">
window.onload = function()
{
var ofckeditor = new fckeditor( 'mytextarea' ) ;
ofckeditor.replacetextarea() ;
}
</scrīpt>
</head>
<body>
<textarea id="mytextarea" name="mytextarea">this is <b>the</b> initial value.</textarea>
</body>
</html>

现在,编辑器可以使用了


fckeditor类参考:
下面是用来在页面中建立编辑器的fckeditor类的说明

构造器:
fckeditor( instancename[, width, height, toolbarset, value] )
instancename:编辑器的唯一名称(相当于id)
width:宽度
height:高度
toolbarset:工具条集合的名称
value:编辑器初始化内容

属性:
instancename:编辑器实例名
width:宽度,默认值为100%
height:高度,默认值是200
toolbarset:工具集名称,参考fckconfig.js,默认值是default
value:初始化编辑器的html代码,默认值为空
basepath:编辑器的基路径,默认为/fckeditor/文件夹,注意,尽量不要使用相对路径.最好能用相对于站点根路径的表示方法,要以/结尾
checkbrowser:是否在显示编辑器前检查浏览器兼容性,默认为true
displayerrors:是否显示提示错误,默为true;
集合:
config[key]=value;
这个集合用于更改配置中某一项的值,如
ofckeditor.config["defaultlanguage"]="pt-br";

方法:
create()
建立并输出编辑器

repacetextarea(textareaname)
用编辑器来替换对应的文本框

如何配置fckeditor?
fckeditor提供了一套用于定制其外观,特性及行为的设置集.主配置文件名为fckconfig.js
你既可以编辑主配置文件,也可以自己定义单独的配置文件.配置文件使用javascrīpt语法.

修改后,在建立编辑器时,可以使用以下语法:
var ōfckeditor = new fckeditor( 'fckeditor1' ) ;
ofckeditor.config['customconfigurationspath'] = '/myconfig.js' ;
ofckeditor.create() ;

提醒:当你修改配置后,请清空浏览器缓存以查看效果

自定义样式列表
fckeditor的样式工具栏中提供了预定义的样式,样式是通过xml文件定义的,默认的xml样式文件存在于fckeditor根文件夹下的fckstyls.xml文件中
这个xml文件的结构分析如下:
<?xml version="1.0" encoding="utf-8" ?>
<styles >
<style name="my image" element="img">
<attribute name="style" value="padding: 5px" />
<attribute name="border" value="2" />
</style >
<style name="italic" element="em" />
<style name="title" element="span">
<attribute name="class" value="title" />
</style >
<style name="title h3" element="h3" />
</styles>


每一个style标记定义一种样式,name是显示在下拉列表中的样式名,element属性指定此样式所适用的对象,因为fckeditor中的样式是上下文敏感的,也就是说,选择不同的对象,仅会显示针对这类对象定义的样式


拼写检查


fckeditor带了两种拼写检查工具,一种是iespell,默认情况下使用这种,使用这种方式的拼写检查,要求客户下载并安装iespell这个小软件,另外,也提供spellpager的方式来进行拼写检查,不过,由于spellpager是由php编写的服务器端脚本,因此,要求你的web服务器必须支持php脚本语言方可
k m d(r-l0更改拼写检查器的方式请参见有关配置文件的详细说明


压缩脚本


为了提供脚本载入的效率,fckeditor采用以下方法对脚本尽量压缩以减少脚本尺寸:
1,移除掉脚本中的注释
2.移除掉脚本中所有无意义的空白
另外,fckeditor还提供了一个专门用于压缩脚本的工具以便你在发布时能减小文件尺寸,
你可以将_packager文件夹中的fckeditor.packager.exe复制到fckeditor根文件夹来运行并压缩脚本

本地化fckeditor
如果fckeditor没有提供您所需要的语言(实际上全有了),你也可以自行制作新的语言
,你只需要复制出en.js,然后在其基础上进行翻译.另外,语言名称与对应的脚本文件名必须遵循rfc 3066标准,但是,需要小写,例如:portuguess language对应的脚本
文件名必须为pt.js
如果需要针对某个国家的某种语系,则可以在语系缩写后加上横线及国家缩写即可
在使用时,系统会自动侦测客户端语系及国别而运用适当的界面语言.
当建立一种新的语言后,你必须在"edit/lang/fcklanguagemanager.js"中为其建立一个条目,如下所示:
fcklanguagemanager.availablelanguages =
{

en : 'english',
pt : 'portuguese'
}

需要提醒的是,文件必须保存为utf-8格式