FCKeditor添加自定义按钮


Posted in PHP onMarch 27, 2008

在FCKeditor目录里的fckconfig.js打开,找到FCKConfig.ToolbarSets["Default"] 这里的设置是配置功能按钮的,你需要的留下,不需要的可以删掉,也可以注释掉。

如需要多种配置,可以设置多个FCKConfig.ToolbarSets["你自己命个名name"] 后面跟配置详情。在引用编辑器的时候,以PHP为例:把fckeditor.php复制一个命名fckeditor1.php,在这里可以改配置。($this->ToolbarSet= '你自己命的名name' ;)

<?php 
include("editor/fckeditor1.php") ;//这里调用 
$oFCKeditor = new FCKeditor('FormContent') ;//实例化 
$oFCKeditor->BasePath = 'editor/';//这个路径一定要和上面那个引入路径一致,否则会报错:找不到fckeditor.html页面 
//$oFCKeditor->Value = '' ;  
$oFCKeditor->Width = '100%' ; 
$oFCKeditor->Height = '300' ; 
$oFCKeditor->Create() ; 
?>

下面是其他网友的补充,很详细,也可以参考下:
FCKeditor是一款非常流行的WEB可视化编辑器,其程序的的成熟度也非常高、功能丰富,但是再丰富也无法完全满足我们的实际要求,有时我们还是需要增加一些自己的功能。但FCKeditor的程序结构还是比较复杂的,对JS不是很了解的人很难对其灵活定制,本文就如何为FCKeditor的工具条增加一个打开我的像册的自定义按钮做一介绍。

先看看效果:

增加按钮有以下几步:

1、为按钮增加图片:

FCK的所有按钮图片是存放在一个图片文件里的,这一点比较独特,文件存放在相应皮肤目录下,如:/FCK/skins/silever/fck_strip.gif。通过Fireworks或Phtoshop打开该文件可以发现一个很长的图片,里面包含所有按钮的图片,现在您可以在该图片的最下面增加您自定义的按钮,注意,每个按钮的尺寸是16*16px。

2、为按钮增加功能代码:

增加按钮需要对FCK/editor/js目录中的两个核心文件进行修改:fckeditorcode_gecko.js和fckeditorcode_ie.js,前者是使用于gecko核心的浏览器如Firefox等,而后者应用于以IE为核心的浏览器如MyIE(傲游)等,这两个文件大体是相似的,仅有微小差别,在此我们基本无须担心。

修改的方法非常简单,基本是一个照葫芦画瓢的过程,首先我们找一个与我们将要添加的按钮功能相似的一个按钮,这里我们选择了Newpage,这是一个清空编辑器以备新建一个文件的按钮。首先我们修改fckeditorcode_ie.js,fckeditorcode_gecko.js直接复制更改的代码就可以了。

打开fckeditorcode_ie.js,这里需要说明的是,fckeditorcode_ie.js是多个文件合并经过代码优化的(即去掉了大部分换行、空格、注释等)不是很容易阅读,而且这样一百多K的JS文件用Dreamweaver、ZDE等工具打开后CPU立刻升至100%,相信计算机就变成痴呆一样了,经过一翻比较,发现曾被我认为一文不值的Golive竟然可以轻松打开该文件并快速编辑!不管你用什么软件反正能打开并编辑就行了。以关键词Newpage进行查找,你会发现一个按钮的功能定义分三大部分:

A、功能原型

// 按钮功能原型

var FCKNewPageCommand=function(){this.Name='NewPage';};

FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};

FCKNewPageCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};

var FCKMyAlbumCommand=function(){this.Name='DISPLAY: none';};

FCKMyAlbumCommand.prototype.Execute=function(){if(typeof(parent.showMyAlbum)=="function"){parent.showMyAlbum(FCK);}else{alert(FCKLang.NoAlbum);}};

FCKMyAlbumCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};

B、功能的实例化

case 'NewPage':B=new FCKNewPageCommand();break;

case 'MyAlbum':B=new FCKMyAlbumCommand();break;

C、按钮的显示

case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;

case 'MyAlbum':B=new FCKToolbarButton('MyAlbum',FCKLang.MyAlbum,null,null,true,null,67);break;

上面代码中第一部分是Newpage的原代码,后一部分是我们自定义的代码,您一看应该明白怎么回事了吧?仅红色部分和名称不同而已!而红色部分就是我们的自定义功能。

FCKLang是语言包对象,您只要打开FCK/editor/lang/下面的相应语言包添加相应的名称属性就可以了,比如:MyAlbum打开我的像册。注意大小写!至此我们的添加工作已完成。

PHP 相关文章推荐
xajax写的留言本
Nov 25 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
php实现的zip文件内容比较类
Sep 24 PHP
php内存缓存实现方法
Jan 24 PHP
Cygwin中安装PHP方法步骤
Jul 04 PHP
php生成带logo二维码方法小结
Apr 08 PHP
php 解析xml 的四种方法详细介绍
Oct 26 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
PHP封装的分页类与简单用法示例
Feb 25 PHP
PHP中关于php.ini参数优化详解
Feb 28 PHP
php,ajax实现分页
Mar 27 #PHP
PHP 5.0对象模型深度探索之类的静态成员
Mar 27 #PHP
PHP 5.0对象模型深度探索之对象复制
Mar 27 #PHP
PHP 5.0对象模型深度探索之属性和方法
Mar 27 #PHP
php简单静态页生成过程
Mar 27 #PHP
优化PHP代码的53条建议
Mar 27 #PHP
PHP连接access数据库
Mar 27 #PHP
You might like
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
php 获取百度的热词数据的代码
2012/02/18 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
python装饰器的特性原理详解
2019/12/25 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
详解python tcp编程
2020/08/24 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
上班早退检讨书
2014/01/09 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
初中运动会前导词
2015/07/20 职场文书
MySQL 覆盖索引的优点
2021/05/19 MySQL
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle