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 相关文章推荐
常用表单验证类,有了这个,一般的验证就都齐了。
Dec 06 PHP
php在线生成ico文件的代码
Oct 09 PHP
实用函数10
Nov 08 PHP
php 中文处理函数集合
Aug 27 PHP
PHP中的integer类型使用分析
Jul 27 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
PHP中多维数组的foreach遍历示例
Jun 13 PHP
PHP的拦截器实例分析
Nov 03 PHP
PHP中文乱码解决方案
Mar 05 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
PHP简单系统查询模块代码打包下载
2008/06/07 PHP
PHP教程 基本语法
2009/10/23 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
php结合安卓客户端实现查询交互实例
2015/05/05 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
js调用css属性写法
2013/09/21 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
浅析JavaScript声明变量
2015/12/21 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
python 数据的清理行为实例详解
2017/07/12 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
Django 开发调试工具 Django-debug-toolbar使用详解
2019/07/23 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
关于Assembly命名空间的三个面试题
2015/07/23 面试题
高中自我鉴定范文
2013/11/03 职场文书
制药工程专业个人求职自荐信
2014/01/25 职场文书
工作鉴定评语
2014/05/04 职场文书
2015大学迎新标语
2015/07/16 职场文书