FCK2.6配置与优化与EXT中使用FCK

来源:互联网 发布:python 面向对象 编辑:程序博客网 时间:2024/05/22 00:13
FCK2.6配置与优化:
 
 
我更新了这FCK了,里面有我自己简化和美化的FCK压缩包,我用是官方FCKeditor_2.6.4做的,想要的朋友可以参考一下!
如果不满意可以自己去下官方FCKeditor_2.6.4,来简化和美化。
下面是一个网上流行的FCKeditor的简化方法,我试过一部分,很不错,整理发给大家用吧:
默认情况下,fckeditor显示了全部的工具栏。在fckconfig.js中有两个工具栏的配置方案,一个是Default,一个是Basic。
---------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------

优化FCKeditor文件夹和文件:
下载FCKeditor并解压之后,会产生_samples和editor两个文件夹和几个文件,全部删除以_开头的文件夹和文件,因为这些都是 FCKeditor的一些例子而已,可以学习一下,但上传到网站服务器上就大可不必了,删除。在根目录下,还有几个 fckeditor.asp,fckeditor.php,fckeditor.js......等其它文件,这个就看你的网站服务器和网站需要什么程序语言,有PHP,ASP,PERL,.NET等,我选择的是脚本配置文件fckeditor.js,还有三个文件fckconfig.js、 fckstyles.xml、fcktemplates.xml是必需的文件,其它的可以全部删除。

打开editor文件夹,进入 lang文件夹,这里面是FCKeditor的语言包来的,一般国内选择en.js和zh.js和zh-cn.js文件就可以了,加上必需的文件 fcklanguagemanager.js(此文件是2.4版本以下必需的),其它的文件可以完全删除。

之后打开 editor/filemanager文件夹,如果不要求在上传图片或者文件的时候显示服务器上的内容,可以选择删除filemanager文件夹下的 brower文件夹。然后进入upload文件夹,里面是各种程序语言的上传文件,选择你需要的那个程序语言文件夹,其它的删除。
进入editor/Plugins文件夹,如果你不需要这些额外的FCKeditor插件的话,把里面的文件夹全部删除。
进入editor/skins文件夹,里面是编辑器的皮肤文件,default文件是默认的灰色面板的编辑器,Office2003和silver是另外加载的,看哪个好看就选择哪个,然后其它的删除。

另外,editor/dialog文件夹里是一些编辑器的对话框,如果选择基本的一些功能的话,可以相应的选择其文件,把其它的删除也是可以的。
到这里,编辑器的文件夹优化基本OK了,精简了许多,更加方便了服务器的上传和使用。
------------------------------------------------------------------------------
------------------------------------------------------------------------------

FCKeditor 网页文本编辑器是一款专门使用在网页上属于开放源代码的所见即所得网页文本编辑器。它可以支持几乎所有的浏览器。简单介绍一下它的配置文件 fckconfig.js中文注释。这些中文注释主要是通过网上搜索、FCKeditor官方的开发文档和自己的理解得来的,如果有理解错误的地方请高手留言指正。
FCKConfig.CustomConfigurationsPath = '' ; //自定义配置文件路径和名称
FCKConfig.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 ; //是否开启调试窗口功能
FCKConfig.AllowQueryStringDebug = true ; //是否启用网页查询调试功能
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ; //FCKeditor皮肤路径
FCKConfig.SkinEditorCSS = '' ; //编辑器的皮肤CSS路径
FCKConfig.SkinDialogCSS = '' ; //对话窗口的皮肤CSS路径
FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'images/toolbar.start.gif', FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif' ] ; //预装入的图片
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; //插件路径
FCKConfig.AutoGrowMax = 400 ; //文本编辑区域允许自动增长的最大高度限制,设置此属性时应同时将// FCKConfig.Plugins.Add( 'autogrow' ) ;属性的注释去除,配合使用
FCKConfig.AutoDetectLanguage = true ; //是否自动检测语言
FCKConfig.DefaultLanguage = 'en' ; //默认语言
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.EMailProtection = 'none' ; //侦测电子邮件链接
FCKConfig.EMailProtectionFunction = 'mt(NAME,DOMAIN,SUBJECT,BODY)' ; //侦测电子邮件链接
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.TemplateReplaceCheckbox = true ; //是否将实际内容显示在模版窗口中
FCKConfig.ToolbarLocation = 'In' ; //工具栏位置
FCKConfig.ToolbarSets["Default"] //配置默认工具栏中各按钮,适合用于后台编辑
FCKConfig.ToolbarSets["Basic"] //配置基本工具栏按扭,适合前台编辑
FCKConfig.EnterMode = 'p' ; //编辑文本时按回车键自动生成<P></P>标签
FCKConfig.ShiftEnterMode = 'br' ; ////编辑文本时按Shift+回车键自动生成<br />标签
FCKConfig.Keystrokes //自定义键盘快捷键
FCKConfig.ContextMenu //定义右键菜单的内容
FCKConfig.BrowserContextMenuOnCtrl = false ; //是否允许在编辑区域中当按下Ctrl键时,点击鼠标右键显示浏览器的上下文菜单
FCKConfig.BrowserContextMenu = false ; //是否允许在编辑区域中点击鼠标右键显示浏览器的上下文菜单
FCKConfig.EnableMoreFontColors = true ; //是否禁止更多颜色选项
FCKConfig.FontColors //文字颜色列表
FCKConfig.FontFormats //文字格式列表
FCKConfig.FontNames //字体列表
FCKConfig.FontSizes //字号列表
FCKConfig.StylesXmlPath = FCKConfig.EditorPath + 'fckstyles.xml' ; //CSS样式列表的XML文件的位置
FCKConfig.TemplatesXmlPath = FCKConfig.EditorPath + 'fcktemplates.xml' ; //模版的XML文件位置
FCKConfig.SpellChecker = 'WSC' ; //拼写检查器
FCKConfig.IeSpellDownloadUrl = 'http://www.iespell.com/download.php' ; //下载拼写检查器的网址
FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ; //拼写检查器脚本路径
FCKConfig.FirefoxSpellChecker = false ; //Firefox浏览器拼写检查
FCKConfig.MaxUndoLevels = 15 ; //最大可以撤销的次数
FCKConfig.DisableObjectResizing = false ; //是否禁止用户调整图像和表格的大小
FCKConfig.DisableFFTableHandles = true ; //是否禁用表格工具
FCKConfig.LinkDlgHideTarget = false ; //是否隐藏Link窗口的target标签
FCKConfig.LinkDlgHideAdvanced = false ; //是否隐藏Link窗口的advanced标签
FCKConfig.ImageDlgHideLink = false ; //是否隐藏image窗口的link标签
FCKConfig.ImageDlgHideAdvanced = false ; //是否隐藏image窗口的advanced标签
FCKConfig.FlashDlgHideAdvanced = false ; //是否隐藏Flash窗口的advanced标签
FCKConfig.ProtectedTags = '' ; //添加HTML套用格式
FCKConfig.BodyId = '' ; //设置编辑器的id
FCKConfig.BodyClass = '' ; //设置编辑器的class
FCKConfig.DefaultStyleLabel = '' ; //设置文本编辑器的风格,默认为空白文档
FCKConfig.DefaultFontFormatLabel = '' ; //设置默认格式
FCKConfig.DefaultFontLabel = '' ; //设置默认字体
FCKConfig.DefaultFontSizeLabel = '' ; //设置默认字体大小
FCKConfig.DefaultLinkTarget = '' ; //设置默认链接目标为(_blank、_self _parent、_top)
FCKConfig.CleanWordKeepsStructure = false ; //是否设置直接粘贴为Word格式
FCKConfig.RemoveFormatTags //删除文字时是否删除相应的格式
FCKConfig.RemoveAttributes //删除文字时是否删除相应的样式
FCKConfig.CustomStyles //样式菜单
FCKConfig.CoreStyles //设置FCKeditor核心样式
FCKConfig.IndentLength = 40 ; //编辑器中缩进量的长度
FCKConfig.IndentUnit = 'px' ; //编辑器中缩进量的单位
FCKConfig.IndentClasses = [] ; //FCKeditor允许使用CSS缩进
FCKConfig.JustifyClasses = [] ; //FCKeditor允许使用CSS类文本
var _FileBrowserLanguage = 'php' ; //文件浏览器使用的语言
var _QuickUploadLanguage = 'php' ; //快速上传使用的语言
var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ; //文件浏览器扩展
var _QuickUploadExtension = _QuickUploadLanguage == 'perl' ? 'cgi' : _QuickUploadLanguage ; //快速上传扩展
FCKConfig.LinkBrowser = true ; //是否允许在插入链接时浏览服务器
FCKConfig.LinkBrowserURL //插入链接时浏览服务器的URL
FCKConfig.LinkBrowserWindowWidth //链接目标浏览器窗口宽度
FCKConfig.LinkBrowserWindowHeight //链接目标浏览器窗口高度
FCKConfig.ImageBrowser = true ; //是否关闭图片文件浏览服务器的功能
FCKConfig.ImageBrowserURL //图片文件浏览服务器的URL
FCKConfig.ImageBrowserWindowWidth //图像浏览器窗口宽度
FCKConfig.ImageBrowserWindowHeight //图像浏览器窗口高度
FCKConfig.FlashBrowser = true ; //是否关闭Flash浏览服务器的功能
FCKConfig.FlashBrowserURL //Flash浏览服务器的URL
FCKConfig.FlashBrowserWindowWidth //Flash浏览器窗口宽度
FCKConfig.FlashBrowserWindowHeight //Flash浏览器窗口高度
FCKConfig.LinkUpload = true ; //是否开启文件上传的功能
FCKConfig.LinkUploadURL //指定默认上传文件的地址
FCKConfig.LinkUploadAllowedExtensions //设置允许上传文件的扩展名
FCKConfig.LinkUploadDeniedExtensions = "" ; //设置允许上传脚本文件的扩展名
FCKConfig.ImageUpload = true ; //是否开启图片上传功能
FCKConfig.ImageUploadURL //指定默认上传图片文件的地址
FCKConfig.ImageUploadAllowedExtensions //设置允许上传图片文件的扩展名
FCKConfig.ImageUploadDeniedExtensions = "" ; //设置允许上传图片脚本文件的扩展名
FCKConfig.FlashUpload = true ; //是否开启Flash上传功能
FCKConfig.FlashUploadURL //Flash上传文件的地址
FCKConfig.FlashUploadAllowedExtensions //设置允许上传Flash文件的扩展名
FCKConfig.FlashUploadDeniedExtensions = "" ; //设置允许上传Flash脚本文件的扩展名
FCKConfig.SmileyPath //插入表情图标的路径
FCKConfig.SmileyImages //表情图标的文件名称
FCKConfig.SmileyColumns = 8 ; //表情窗口显示表情列数
FCKConfig.SmileyWindowWidth = 320 ; //表情窗口显示宽度,此窗口会因为表情文件的改变而作调整
FCKConfig.SmileyWindowHeight = 210 ; //表情窗口显示高度,此窗口会因为表情文件的改变而作调整
FCKConfig.BackgroundBlockerColor = '#ffffff' ; //编辑器弹出窗口时,背景遮照住的颜色
FCKConfig.BackgroundBlockerOpacity = 0.50 ; //编辑器弹出窗口时,背景遮照住的透明度
FCKConfig.MsWebBrowserControlCompat = false ;
FCKConfig.PreventSubmitHandler = false ;
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------

FCKEditor工具条定制
FCkEditor确实是一个非常优秀的HTML在线编辑器,它的功能确实很强大,而且也非常的灵活,具有很强的定制性。

FCKEditor默认的工具栏项目很多,我们完全可以对其进行自定制,以满足自己的需求。

网上也有很多介绍定制工具栏的方法。下面就是其中的一种:

在fckconfig.js中找到FCKConfig.ToolbarSets 段,默认有两个工具条样式,一个是Default,一个是Basic(我的版本是2.5)。

增加如下一段:

1FCKConfig.ToolbarSets["Custom"] = [
2 ['FontFormat','FontName','FontSize'],
3 ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
4 ['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
5 ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
6 ['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
7 ['Link','Unlink','Anchor'],
8 ['TextColor','BGColor'],'/'
9 ['Cut','Copy','Paste','PasteText','PasteWord'],
10 ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
11 ['FitWindow','ShowBlocks','-','Source','About'] // No comma for the last row.
12] ;


然后再调用代码中做如下更改

注意第7行是新增的,指定所要使用的工具栏


1<%
2 Dim oFCKeditor
3 Set oFCKeditor = New FCKeditor
4 oFCKeditor.BasePath = "edit/"
5 oFCKeditor.Value = ""
6 oFCKeditor.Config("SkinPath")="/website/manage/edit/editor/skins/silver/"
7 oFCKeditor.ToolbarSet = "Custom"
8 oFCKeditor.Create "txtcontent"
9%>
10


其定制语法很简单
[] 表示一个工具条,
[] 中的短横线'-'表示一个垂直分割线
'' 两个单引号中间加一个标识符表示一个工具栏按钮,具体的对应关系可以自己找。
'/' 作用类似于一个回车。使该符号后面的工具栏新起一行排列。

------------------------------------------------------------------------------
------------------------------------------------------------------------------
语言的配置

查找FCKConfig.DefaultLanguage将它设置为'zh-cn'.默认是en为英语,为'zh-cn'是中文。
------------------------------------------------------------------------------
------------------------------------------------------------------------------

脚本语言的设置

查找var _FileBrowserLanguage和var _QuickUploadLanguage将他们设置为'php', 默认是'asp',如果这里不设置的话,图片将不能上传,这点很重要。当时我在用FCKeditor由于没配置这个,不能上传图片,而我同寝室的用asp 能上传图片,让我烦恼了好多天,最后终于找到是这个原因。

---------------------------------------------------------------------------------
---------------------------------------------------------------------------------

注意这一步:图片上传不成功,需要修改一下这里的路径,请用自己的路径,而不是我设置好的路径:
图片上传的配置

打开文件FCKeditor/editor/filemanager/browser/default/connectors/php/config.php:
查找$Config['Enabled'],将它设置为'true';查找$Config['UserFilesPath'],将它设置图片的目录,这个目录是相对于主目录的。

打开文件FCKeditor/editor/filemanager/upload/php/config.php:
查找$Config['Enabled'],将它设置为'true';查找$Config['UseFileType'],将它设置上传文件的目录,最好与上面的图片目录相同。
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Ext中使用FCK
  Ext自己带了一个Html编辑器,但是这个编辑器中的功能有限,自己也给这个编辑器做了一下扩展,但是由于Ext自身的原因,始终存在一些小问题,所以在Ext中使用FCK编辑器也是一个不错的选择,结合自己的实践在这里总结一下Ext中使用FCK编辑器的方法,请高手们提提意见!

     首先在页面的前面导入js文件,这个就不用说了!

Js代码 复制代码
  1. <script type="text/javascript" src="/resource/fckeditor.js"></script>  

 然后用Ext代码建立一个FormPanel,这里就不写出全部代码,仅仅贴出需要加载FCK编辑器的地方,代码如下:

Java代码 复制代码
  1. {   
  2. xtype:"textarea",   
  3. name:"content",   
  4. value:"",   
  5. width:720,   
  6. height:600,   
  7. fieldLabel:"新闻内容",   
  8. listeners:{   
  9.      render":function(f){   
  10.                        fckEditor = new FCKeditor("content") ;//初始化FCK   
  11.                        fckEditor.Height=600;//设置FCK编辑器的高度   
  12.                        fckEditor.Width=720;//设置FCK编辑器的宽度   
  13.                        fckEditor.BasePath = "/resource/" ;//设定FCK的源文件路径,这里要注意相对和绝对路径   
  14.                        fckEditor.ReplaceTextarea() ;//用FCK编辑器替换Ext中的textarea   
  15.                      }   
  16.                    }       
  17. }  

 Ext的控件可以添加listeners,在listeners中渲染出一个FCK编辑器,个人认为这是最简单的也是最方便的方法,如上的代码,仅仅几行就给FCK编辑器添加到Ext中去了,使得EXT和FCK得到完美的结合!

 
 
另外参考:
var fck = new FCKeditor('demo');

var form = new Ext.form.FormPanel({
xtype: 'form',
items:[{
hideLabel: true,
html: fck.CreateHtml()
}]
});