程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> FCKeditor添加自定義按鈕

FCKeditor添加自定義按鈕

編輯:關於PHP編程

在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打開我的像冊。注意大小寫!至此我們的添加工作已完成。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved