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 相关文章推荐
php md5下16位和32位的实现代码
Apr 09 PHP
php Xdebug 调试扩展的安装与使用.
Mar 13 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
Jun 05 PHP
php 发送带附件邮件示例
Jan 23 PHP
php基于Snoopy解析网页html的方法
Jul 09 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
PHP页面输出搜索后跳转下一页的处理方法
Sep 30 PHP
php实现的简单数据库操作Model类
Nov 16 PHP
Laravel框架基于ajax实现二级联动功能示例
Jan 17 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
Laravel向公共模板赋值方法总结
Jun 25 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
js实现分割上传大文件
2016/03/09 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
Django日志模块logging的配置详解
2017/02/14 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
python 图像平移和旋转的实例
2019/01/10 Python
python3.6实现学生信息管理系统
2019/02/21 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
自主招生自荐信范文
2015/03/04 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
小学生节约用水倡议书
2019/08/12 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js