fck編輯器下載及配置使用說明

fck編輯器下載及配置使用說明
fck編輯器從2.0版開始,編輯器按以下步驟裝載資源:
.基本頁(就是編輯器所在頁)以及裝入編輯器的JS腳本
.用來建立編輯器的腳本
.編輯器的語言和皮膚.
.建立編輯器.
.載入預置的編輯文檔內容.
.從現在開始,用戶可以閱讀和編輯文檔了,不過,拖拽支持以及工具欄都是不可用的
.載入編輯器引擎腳本
.建立工具欄,並且可用
.從現在開始,編輯器的所有功能都已經完整
.載入工具欄圖標

腳本壓縮
在打包任何新版本時,編輯器的JS腳本將會進行預處理.預處理步驟如下:
.移除所有代碼註釋
.移除所有無用的空白字符.
.將腳本合併成幾個文件
使用上面的方法,我們可以將腳本文件的大小壓縮到原來的50%.
壓縮後,原始的代碼仍然存在於一個名爲_Source的文件夾中

如何打包?
編輯器已經自帶了打包程序,它位於FCKEDITOR的根文件夾中_PACKAGER文件夾中,名爲Fckeditor.Packager.exe,將其複製到FCKEDITOR根文件夾中並運行,即可自動將JS腳本打包並壓縮
需要注意的是該程序是一個.NET程序,必須安裝.NET FRAMEWORK才能使用

如何安裝?
1.下載最新版的FCKEDITOR
2.解壓縮到你的站點根文件夾中名爲FCKEDITOR的文件夾中(名稱必須爲FCKEDITOR,因爲配置文件中已經使用此名稱來標示出FCKEDITOR的位置)
3.現在,編輯器就可以使用了,如果想要查看演示,可以按下面方法訪問:
http://<your-site>/FCKeditor/_samples/default.html
注意:你可以將FCKEDITOR放置到任何文件夾,默認情況下,將其放入到FCKEDITOR文件夾是最爲簡單的方法.如果你放入的文件夾使用別的名稱,請修改配置文件夾中編輯器BasePath參數,如下所示:
oFckeditor.BasePath="/Components/fckeditor/";
另外,FCKEDITOR文件夾中所有以下劃線開頭的文件夾及文件,都是可選的,可以安全的從你的發佈中刪除.它們並不是編輯器運行時必需的

如何將FCKEDITOR整合進我的頁面?
由於目前的版本提供的FCKEDITOR僅提供了JAVASCRIPT式的整合,因此,這裏僅講述如何應用JAVASCRIPT來整合FCKEDITOR到站點中,當然,其他各種語言的整合,你可以參考_samples文件夾中的例子來完成
1,假如編輯器已經安裝在你的站點的/FCKEDITOR/文件夾下.那麼,第一步我們需要做的就是在頁面的HEAD段中放入SCRIPT標記以引入JAVASCRIPT整合模塊.例如:
<script type="text/javascript" src="/fckeditor/fckeditor.js"></script>
其中路徑是可更改的
2,現在,FCKEDITOR類已經可以使用了.有兩個方法在頁面中建立一個FCKEDITOR編輯器:
方法1:內聯方式(建議使用):在頁面的FORM標記內需要插入編輯器的地方置入以下代碼:
<script type="text/javascript">
var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
oFCKeditor.Create() ;
</script>
方法2:TEXTAREA標記替換法(不建議使用):在頁面的ONLOAD事件中,添加以下代碼以替換一個已經存在的TEXTAREA標記
<html>
<head>
<script type="text/javascript">
window.onload = function()
{
var oFCKeditor = new FCKeditor( 'MyTextarea' ) ;
oFCKeditor.ReplaceTextarea() ;
}
</script>
</head>
<body>
<textarea id="MyTextarea" name="MyTextarea">This is <b>the</b> initial value.</textarea>
</body>
</html>
3.現在,編輯器可以使用了
取得fck編輯器內容
request.form("FCKeditor1")
文章進行編輯時怎麼得到fck的內容
  // 獲取編輯器中HTML內容
  function getEditorHTMLContents(EditorName) {
  var oEditor = FCKeditorAPI.GetInstance(EditorName);
  return(oEditor.GetXHTML(true));
  }
  // 獲取編輯器中文字內容
  function getEditorTextContents(EditorName) {
  var oEditor = FCKeditorAPI.GetInstance(EditorName);
  return(oEditor.EditorDocument.body.innerText);
  }
  // 設置編輯器中內容
  function SetEditorContents(EditorName, ContentStr) {
  var oEditor = FCKeditorAPI.GetInstance(EditorName) ;
  oEditor.SetHTML(ContentStr) ;
  }
 
fckEditor提交內容前的js驗證
<script language="javascript">
    var oEditer;
    function check(){
        var content = oEditer.GetXHTML(true); //content就是編輯器的內容的html源碼了
        if( content.length<100){
            alert("請輸入信息內容,100個字符以上...");
            return false;
        }
    }
    function FCKeditor_OnComplete( editorInstance ){ 
        oEditer = editorInstance;
    }
</script>
<form action='' method='post' onSubmit="return check();">
另,如果想給編輯器賦初值,往往會因爲一些特殊字符而導致腳本錯誤,從而出現問題,解決方法是先轉換一下,如果用的是smarty,只要加上escape:"javascript"這個modifier就可以,它的實現代碼是:
return strtr($string, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n','</'=>'<\/'));
fck上傳圖片配置(以asp爲例)
1. 程序瘦身
 
根目錄下:editor目錄 、fckconfig.js、 fckeditor.asp fckeditor.js fckstyles.xml fcktemplates.xml 這幾個保留,其餘的全部去除
子目錄下:editor\filemanager\connectors目錄中 把asp目錄留下(上傳用什麼方法就留下什麼),其餘的方法目錄[php、aspx 等待 目錄] 刪除(注意留下test.html 和 uploadtest.html)
editor\lang 語言目 把 en.js 、 zh.js 、 zh-cn.js 留下,其餘全部刪除
2. 圖片上傳配置
1.fckconfig.js 中修改
FCKConfig.DefaultLanguage = 'zh-cn' ; //原來是en
FCKConfig.TabSpaces = 1 ; //在編輯器中是否可以是否TAB鍵 0 不可用 1 爲可用
var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py 需要什麼改成什麼
var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
2. fckeditor.asp 中修改
this.BasePath= "/fckeditor/" '表示 當前這個文件 fckeditor.asp相對於站點根目錄的路徑設置
3 . FCKeditor\editor\filemanager\connectors\asp\config.asp 中修改
ConfigIsEnabled = true '啓用上傳功能 把 false 改成 true
ConfigUserFilesPath = "/upFile/" '設置你的上傳目錄 這裏 "/upFile/" 表示站點根目錄下的 upFile目錄 ,這個目錄是需要自己創建的 ,這樣上傳的文件將會存放到這個目錄中。FckEditor會根據您上傳的類別自動在upFIle目錄中創建如 p_w_picpath 、 flash 等目錄
FCKEDITOR類參考:
下面是用來在頁面中建立編輯器的FCKEDITOR類的說明

構造器:
FCKeditor( instanceName[, width, height, toolbarSet, value] )
instanceName:編輯器的唯一名稱(相當於ID)
WIDTH:寬度
HEIGHT:高度
toolbarSet:工具條集合的名稱
value:編輯器初始化內容

屬性:
instanceName:編輯器實例名
width:寬度,默認值爲100%
height:高度,默認值是200
ToolbarSet:工具集名稱,參考FCKCONFIG.JS,默認值是Default
value:初始化編輯器的HTML代碼,默認值爲空
BasePath:編輯器的基路徑,默認爲/Fckeditor/文件夾,注意,儘量不要使用相對路徑.最好能用相對於站點根路徑的表示方法,要以/結尾
CheckBrowser:是否在顯示編輯器前檢查瀏覽器兼容性,默認爲true
DisplayErrors:是否顯示提示錯誤,默爲true;

集合:
Config[Key]=value;
這個集合用於更改配置中某一項的值,如
oFckeditor.Config["DefaultLanguage"]="pt-br";

方法:
Create()
建立並輸出編輯器

RepaceTextArea(TextAreaName)
用編輯器來替換對應的文本框

如何配置FCKEDITOR?
FCKEDITOR提供了一套用於定製其外觀,特性及行爲的設置集.主配置文件名爲Fckconfig.js
你既可以編輯主配置文件,也可以自己定義單獨的配置文件.配置文件使用JAVASCRIPT語法.

修改後,在建立編輯器時,可以使用以下語法:
var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
oFCKeditor.Config['CustomConfigurationsPath'] = '/myconfig.js' ;
oFCKeditor.Create() ;

提醒:當你修改配置後,請清空瀏覽器緩存以查看效果

配置選項:
AutoDetectLanguage=true/false 自動檢測語言
BaseHref="" _fcksavedurl="""" 相對鏈接的基地址
ContentLangDirection="ltr/rtl" 默認文字方向
ContextMenu=字符串數組,右鍵菜單的內容
CustomConfigurationsPath="" 自定義配置文件路徑和名稱
Debug=true/false 是否開啓調試功能,這樣,當調用FCKDebug.Output()時,會在調試窗中輸出內容
DefaultLanguage="" 缺省語言
EditorAreaCss="" 編輯區的樣式表文件
EnableSourceXHTML=true/false 爲TRUE時,當由可視化界面切換到代碼頁時,把HTML處理成XHTML
EnableXHTML=true/false 是否允許使用XHTML取代HTML
FillEmptyBlocks=true/false 使用這個功能,可以將空的塊級元素用空格來替代
FontColors="" 設置顯示顏色拾取器時文字顏色列表
FontFormats="" 設置顯示在文字格式列表中的命名
FontNames="" 字體列表中的字體名
FontSizes="" 字體大小中的字號列表
ForcePasteAsPlainText=true/false 強制粘貼爲純文本
ForceSimpleAmpersand=true/false 是否不把&符號轉換爲XML實體
FormatIndentator="" 當在源碼格式下縮進代碼使用的字符
FormatOutput=true/false 當輸出內容時是否自動格式化代碼
FormatSource=true/false 在切換到代碼視圖時是否自動格式化代碼
FullPage=true/false 是否允許編輯整個HTML文件,還是僅允許編輯BODY間的內容
GeckoUseSPAN=true/false 是否允許SPAN標記代替B,I,U標記
IeSpellDownloadUrl=""下載拼寫檢查器的網址
ImageBrowser=true/false 是否允許瀏覽服務器功能
ImageBrowserURL="" 瀏覽服務器時運行的URL
ImageBrowserWindowHeight="" 圖像瀏覽器窗口高度
ImageBrowserWindowWidth="" 圖像瀏覽器窗口寬度
LinkBrowser=true/false 是否允許在插入鏈接時瀏覽服務器
LinkBrowserURL="" 插入鏈接時瀏覽服務器的URL
LinkBrowserWindowHeight=""鏈接目標瀏覽器窗口高度
LinkBrowserWindowWidth=""鏈接目標瀏覽器窗口寬度
Plugins=object 註冊插件
PluginsPath="" 插件文件夾
ShowBorders=true/false 合併邊框
SkinPath="" 皮膚文件夾位置
SmileyColumns=12 圖符窗列數
SmileyImages=字符數組 圖符窗中圖片文件名數組
SmileyPath="" 圖符文件夾路徑
SmileyWindowHeight 圖符窗口高度
SmileyWindowWidth 圖符窗口寬度
SpellChecker="ieSpell/Spellerpages" 設置拼寫檢查器
StartupFocus=true/false 開啓時FOCUS到編輯器
StylesXmlPath="" 設置定義CSS樣式列表的XML文件的位置
TabSpaces=4 TAB鍵產生的空格字符數
ToolBarCanCollapse=true/false 是否允許展開/摺疊工具欄
ToolbarSets=object 允許使用TOOLBAR集合
ToolbarStartExpanded=true/false 開啓是TOOLBAR是否展開
UseBROnCarriageReturn=true/false 當回車時是產生BR標記還是P或者DIV標記

如何自定義樣式列表呢?
FCKEDITOR的樣式工具欄中提供了預定義的樣式,樣式是通過XML文件定義的,默認的XML樣式文件存在於FCkEditor根文件夾下的FckStyls.xml文件中
這個XML文件的結構分析如下:
<?xml version="1.0" encoding="utf-8" ?>
<Styles >
<Style name="My Image" element="img">
<Attribute name="style" value="padding: 5px" />
<Attribute name="border" value="2" />
</Style >
<Style name="Italic" element="em" />
<Style name="Title" element="span">
<Attribute name="class" value="Title" />
</Style >
<Style name="Title H3" element="h3" />
</Styles>

每一個STYLE標記定義一種樣式,NAME是顯示在下拉列表中的樣式名,ELEMENT屬性指定此樣式所適用的對象,因爲FCKEDITOR中的樣式是上下文敏感的,也就是說,選擇不同的對象,僅會顯示針對這類對象定義的樣式

拼寫檢查
FCKEDITOR帶了兩種拼寫檢查工具,一種是ieSpell,默認情況下使用這種,使用這種方式的拼寫檢查,要求客戶下載並安裝iespell這個小軟件,另外,也提供SpellPager的方式來進行拼寫檢查,不過,由於SPELLPAGER是由PHP編寫的服務器端腳本,因此,要求你的WEB服務器必須支持PHP腳本語言方可
更改拼寫檢查器的方式請參見有關配置文件的詳細說明

壓縮腳本
爲了提供腳本載入的效率,FCKEDITOR採用以下方法對腳本儘量壓縮以減少腳本尺寸:
1,移除掉腳本中的註釋
2.移除掉腳本中所有無意義的空白
另外,FCKEDITOR還提供了一個專門用於壓縮腳本的工具以便 你在發佈時能減小文件尺寸,
你可以將_Packager文件夾中的Fckeditor.Packager.exe複製到FCKEDITOR根文件夾來運行並壓縮腳本

本地化FCKEDITOR
如果FCKEDITOR沒有提供您所需要的語言(實際上全有了),你也可以自行製作新的語言
,你只需要複製出EN.JS,然後在其基礎上進行翻譯.另外,語言名稱與對應的腳本文件名必須遵循RFC 3066標準,但是,需要小寫,例如:Portuguess Language對應的腳本文件名必須爲pt.js
如果需要針對某個國家的某種語系,則可以在語系縮寫後加上橫線及國家縮寫即可

在使用時,系統會自動偵測客戶端語系及國別而運用適當的界面語言.

當建立一種新的語言後,你必須在"Edit/lang/fcklanguagemanager.js"中爲其建立一個條目,如下所示:
FCKLanguageManager.AvailableLanguages =
{

en : 'English',
pt : 'Portuguese'
}

需要提醒的是,文件必須保存爲UTF-8格式

如何與服務器端腳本進行交互?
請查看例子以得到相關內容

ASP.NET中fck配置

1.把FCKEDITOR添中到工具箱
2.託拽FCKEDITOR控件到頁面
3.爲其指定名稱
4.FCKEDITOR類的所有屬性不光可以在代碼中使用,而且可以作爲FCKEDITOR控件的屬性直接使用,例如,要改變皮膚,可以在UI頁面中指定SkinPath="/fckeditor/editor/skins/office2003"即可,其實FCKEDITOR的ASP.NET版本可以做得更好,你可以找到FCKEDITOR ASP.NET 2.1的源文件,然後修改該控件的設計,爲其暴露更多有用的屬性,重新編譯即可
5,POSTBACK後的數據,使用FCKEDITOR控件的value屬性獲得
6.由於默認狀態下,ASP.NET不允許提交含有HTML及JAVASCRIPT的內容,因此,你必須將使用FCKEDITOR的頁面的ValidateRequest設爲false.(<%@page validteRequest="false" %>即可)

附:
一、如何設置上傳文件語言

把FCKeditor根目錄下面的fckconfig.js文件裏

var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | php

這兩行中改成您所需要調用的編輯器語言,如用asp.net則改爲aspx;

二、解決中文的問題:
在web.config中加入:
<globalization requestEncoding="GB2312" responseEncoding="GB2312"/>
這樣設置後可以顯示中文的文件,但URL地址也是中文的;
如果服務器對中文地址的解析不好,可能導致圖片無法瀏覽;
所以修改:editor\filemanager\browser\default\frmresourceslist.html
中的OpenFile函數,把
window.top.opener.SetUrl( fileUrl ) ;
修改爲:
window.top.opener.SetUrl( escape(fileUrl) ) ;

三.設置上傳的目錄:
1:在web.config中設置:
<appSettings>
<add key="FCKeditor:UserFilesPath" value="/fck/UpLoad/" />
</appSettings>

2:在Session中設置:
在editor\filemanager\browser\default\connectors\aspx\connector.aspx中加入以下代碼:
<script runat="server" language="C#">
protected override void OnInit(EventArgs e)
{
Session["FCKeditor:UserFilesPath"] = "/fck/UpLoad1/";
}
</script>

如何在asp.net中動態設置上傳圖片的路徑?

1.在javascript中修改FCKConfig.ImageBrowserURL的值,修改方式如下:
FCKConfig.ImageBrowserURL += "?Path=要上傳的文件路徑";
如:要把文件上傳到站點根目錄的UploadFile文件夾中,則設置爲:
FCKConfig.ImageBrowserURL += "?Path=/UploadFile";
2.在"editor\filemanager\browser\default\connectors\aspx\connector.aspx"文件最後中增加以下程序:
<script runat="server" language="C#">
protected override void OnInit(EventArgs e)
{
if( Request.QueryString["Path"]==null ){
Session["FCKeditor:UserFilesPath"] = "/UpLoadFiles/"; //設置默認值
}else{
Session["FCKeditor:UserFilesPath"] = Request.QueryString["Path"];
}
}
</script>

--------------------------------------------------------------------------------
多環境下的配置和使用技巧
--------------------------------------------------------------------------------

在fckeditor中添加右鍵菜單
現在網上介紹FCKEditor如何配置,如何精簡的例子非常之多,如有需要可以google一下,此處不必贅述。現在介紹一下,如何自定義此編輯器,暫包括如何添加工具條上的item,產生響應,添加右鍵菜單。IT SEEMS VERY EASY!

  閒言少敘,書歸正傳。
  一、自定義右鍵菜單:
  1、 首先,在editor/lang/zh-cn.js裏添加你所要添加的工具條item的名字,此文件定義了一個FCKLang變量,仿照裏邊的格式寫哦,如:First: "第一",注意,如果是不在倒數第二行(倒數第一行是“}”),後邊的這個逗號是一定要有的,不然網頁中不會出現編輯器,筆者曾經犯過如此低級的錯誤,待醒悟後,找一僻靜之所大嘴巴子招呼;呵呵,我們是中國人,自然在冒號後對應漢語,這也是將來在網頁中顯示的內容。
  2、 之後,在editor/_source/internals/fckcommands.js 裏新建一個command:case 'First': oCommand = new FCKFirstCommand ( 'First', FCKLang.First); break注意那個紅色字體的FCKFirstCommand了麼?這個是一個自定義的command,稍候將討論它。
  3、 然後,在editor/_source/internals/fckcontextmenu.js 添加一個context menu 。 在case 'Generic' : 下面添加如下: oGroup.Add( new FCKContextMenuItem( this, 'First', FCKLang.First, true ) ) ; 其中第四個布爾類型的參數,如果指定爲true,說明菜單有圖標,反之則無。在此,我指明瞭我所自定義的菜單是有圖標的,那麼我就應該把圖標放在editor\skins\xxx\toolbar目錄下,其中xxx就是你在你的配置文件裏選擇的編輯器的皮膚,但是我們的圖標命名可是有學問的,必須是如FCKContextMenuItem構造函數(且這麼叫它)第二個字符串參數的小寫字母形式,如,這裏我的圖標被命名爲first.gif了。 Ok,如此右鍵菜單就被添加上去了,運行你的網頁,看看FCKEditor是否奏效?如果不奏效的話就要重新參考此文嘍^_^。
  4、然後,還有最關鍵的一步:用editor下的fckeditor.original.html網頁的內容代替fckeditor.html的內容,同時不要忘記備份fckeditor.html文件!
  5、現在開始討論步驟2中的FCKFirstCommand。菜單添加上其了,你總得讓丫擁有什麼功能吧?好,在editor/_source/commandclasses/fck_othercommands.js裏新建這個類:
四大 FCKeditor 實戰應用技巧

一般建立好類後,還要建立兩個靜態函數:xxx .prototype.Execute,xxx .prototype.GetState。前者是事件處理函數,即點擊了該右鍵菜單所要執行的功能全部寫在這個函數,後者返回菜單的狀態(可用?不可用?)。在此爲了演示,我們實現一個最簡單的功能: FCKPageCommand.prototype.Execute = function(){ window.alert("It works!");}夠簡單吧,只是不疼不癢的彈出一個提示框。 當然,這裏我們也可以不用自定義的FCKFirstCommand,而直接用FCKEditor定義好的command,比如FCKDialogCommand,它也定義在fck_othercommands.js裏,當然如果這樣的話,彈出的會是一個dialog。 再次運行網頁,右擊,點擊你的自定義菜單,是否彈出提示框呢?

FCKeditor至今已經到了2.3.1版本了,對於國內的WEB開發者來說,也基本上都已經“聞風知多少”了,很多人將其融放到自己的項目中,更有很多大型的網站從中吃到了甜頭。今天開始,我將一點點的介紹自己在使用FCKeditor過程中總結的一些技巧,當然這些其實是FCK本來就有的,只是很多人用FCK的時候沒發現而已 :P

  1、適時打開編輯器

  很多時候,我們在打開頁面的時候不需要直接打開編輯器,而在用到的時候纔打開,這樣一來有很好的用戶體驗,另一方面可以消除FCK在加載時對頁面打開速度的影響,如圖所示

  點擊“Open Editor"按鈕後纔打開編輯器界面

  實現原理:使用JAVASCRIPT版的FCK,在頁面加載時(未打開FCK),創建一個隱藏的TextArea域,這個TextArea的name和ID要和創建的FCK實例名稱一致,然後點擊"Open Editor"按鈕時,通過調用一段函數,使用FCK的ReplaceTextarea()方法來創建FCKeditor,代碼如下

<script type="text/javascript">
<!--
function showFCK(){
var oFCKeditor = new FCKeditor( 'fbContent' ) ;
oFCKeditor.BasePath = '/FCKeditor/' ;
oFCKeditor.ToolbarSet = 'Basic' ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '200' ;
oFCKeditor.ReplaceTextarea() ;
}
//-->
</script>
<textarea name="fbContent" id="fbContent"><textarea>

2、使用FCKeditor 的 API

  FCKeditor編輯器,提供了非常豐富的API,用於給End User實現很多想要定製的功能,比如最基本的數據驗證,如何在提交的時候用JS判斷當前編輯器區域內是否有內容,FCK的API提供了GetLength()方法;

  再比如如何通過腳本向FCK裏插入內容,使用InsertHTML()等;

  還有,在用戶定製功能時,中間步驟可能要執行FCK的一些內嵌操作,那就用ExecuteCommand()方法。

  詳細的API列表,請查看FCKeditor的Wiki。而常用的API,請查看FCK壓縮包裏的_samples/html/sample08.html。此處就不貼代碼了。

3、外聯編輯條(多個編輯域共用一個編輯條)

  這個功能是2.3版本纔開始提供的,以前版本的FCKeditor要在同一個頁面裏用多個編輯器的話,得一個個創建,現在有了這個外聯功能,就不用那麼麻煩了,只需要把工具條放在一個適當的位置,後面就可以無限制的創建編輯域了,如圖:

  要實現這種功能呢,需要先在頁面中定義一個工具條的容器:<divid="xToolbar"></div>,然後再根據這個容器的id屬性進行設置。

  ASP實現代碼:   <div id="fckToolBar"></div>
<%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
with oFCKeditor
.BasePath = fckPath
.Config("ToolbarLocation") = "Out:fckToolBar"

.ToolbarSet = "Basic"
.Width = "100%"
.Height = "200"

.Value = ""
.Create "jcontent"

.Height = "150"
.Value = ""
.Create "jreach"
end with
%>

  JAVASCRIPT實現代碼: <div id="xToolbar"></div>
FCKeditor 1:
<script type="text/javascript">
<!--
// Automatically calculates the editor base path based on the _samples directory.
// This is usefull only for these samples. A real application should use something like this:
// oFCKeditor.BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value.
var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;

var oFCKeditor = new FCKeditor( 'FCKeditor_1' ) ;
oFCKeditor.BasePath = sBasePath ;
oFCKeditor.Height = 100 ;
oFCKeditor.Config[ 'ToolbarLocation' ] = 'Out:parent(xToolbar)' ;
oFCKeditor.Value = 'This is some <strong>sample text</strong>. You are using FCKeditor.' ;
oFCKeditor.Create() ;
//-->
</script>
<br />
FCKeditor 2:
<script type="text/javascript">
<!--
oFCKeditor = new FCKeditor( 'FCKeditor_2' ) ;
oFCKeditor.BasePath = sBasePath ;
oFCKeditor.Height = 100 ;
oFCKeditor.Config[ 'ToolbarLocation' ] = 'Out:parent(xToolbar)' ;
oFCKeditor.Value = 'This is some <strong>sample text</strong>. You are using FCKeditor.' ;
oFCKeditor.Create() ;
//-->
</script>

  此部分的詳細DEMO請參照:
_samples/html/sample11.html
_samples/html/sample11_frame.html

4、文件管理功能、文件上傳的權限問題

  一直以後FCKeditor的文件管理部分的安全是個值得注意,但很多人沒注意到的地方,雖然FCKeditor在各個Release版本中一直存在的一個功能就是對上傳文件類型進行過濾,但是她沒考慮過另一個問題:到底允許誰能上傳?到底誰能瀏覽服務器文件?

  之前剛開始用FCKeditor時,我就出現過這個問題,還好NetRube(FCKeditor中文化以及FCKeditor ASP版上傳程序的作者)及時提醒了我,做法是去修改FCK上傳程序,在裏面進行權限判斷,並且再在fckconfig.js裏把相應的一些功能去掉。但隨之FCK版本的不斷升級,每升一次都要去改一次配置程序fckconfig.js,我發覺厭煩了,就沒什麼辦法能更好的控制這種配置麼?事實上,是有的。

  在fckconfig.js裏面,有關於是否打開上傳和瀏覽服務器的設置,在創建FCKeditor時,通過程序來判斷是否創建有上傳瀏覽功能的編輯器。首先,我先在fckconfig.js裏面把所有的上傳和瀏覽設置全設爲false,接着我使用的代碼如下:

  ASP版本: <%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
with oFCKeditor
.BasePath = fckPath
.Config("ToolbarLocation") = "Out:fckToolBar"
if request.cookies(site_sn)("issuper")="yes" then
.Config("LinkBrowser") = "true"
.Config("ImageBrowser") = "true"
.Config("FlashBrowser") = "true"
.Config("LinkUpload") = "true"
.Config("ImageUpload") = "true"
.Config("FlashUpload") = "true"
end if
.ToolbarSet = "Basic"
.Width = "100%"
.Height = "200"
.Value = ""
.Create "jcontent"
%>

  JAVASCRIPT版本: var oFCKeditor = new FCKeditor( 'fbContent' ) ;
<%if power = powercode then%>
oFCKeditor.Config['LinkBrowser'] = true ;
oFCKeditor.Config['ImageBrowser'] = true ;
oFCKeditor.Config['FlashBrowser'] = true ;
oFCKeditor.Config['LinkUpload'] = true ;
oFCKeditor.Config['ImageUpload'] = true ;
oFCKeditor.Config['FlashUpload'] = true ;
<%end if%>
oFCKeditor.ToolbarSet = 'Basic' ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '200' ;
oFCKeditor.Value = '' ;
oFCKeditor.Create() ;

FCKPageCommand.prototype.Execute = function()
{
window.alert("It works!");
}

FCKeditor在ASP環境中配置使用

先說一下我的測試環境:XPSP2,IIS5.1,FCKeditor2.0

在IIS上建立一個新的站點,我直接取名爲FCKeditor
在DW裏建立一個相對應的站點,測試服務器爲本機,支持VBScript
下載FCKeditor2.0,這個東西是開源的,網上能下到的地方很多,自己找去……

下載下來的應該是壓縮包,解壓到FCKeditor站點根目錄,什麼都不需要更改,直接就可以開始調用了。等你會了的時候,會發現簡單得要死去!

在站點根目錄下,新建一個index.asp頁面,<body>段內加如下代碼(調用編輯器):

<%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = "/FCKeditor/" //設置編輯器的路徑,我站點根目錄下的一個目錄
oFCKeditor.ToolbarSet = "Default"
oFCKeditor.Width = "100%"
oFCKeditor.Height = "600"

oFCKeditor.Value = "" //這個是給編輯器初始值
oFCKeditor.Create "logbody" //以後編輯器裏的內容都是由這個logbody取得,命名由你定

%>

加了這一段別忘了在index.asp前面第二行加上

<!--#include file="FCKeditor/fckeditor.asp" -->

把fckeditor.asp包含進來。切記切記!

就這麼簡單!

現在你只要把這個編輯器當成一個控件來使用,提取它的數據時用:request("logbody")

現在鬆口氣吧。測試成功了。裏面有些設置,去網上找些高級的使用說明來看吧。

FCKeditor使用初步

  FCKeditor 2.0版終於出來了,之所以用“終於”這個詞,是因爲在這一版本上加上了衆望所歸的FLASH插入功能。可以說在所有的在線編輯器中,FCKeditor是目前互聯網上最好的編輯器,功能強大,支持多種瀏覽器,無平臺限制,可以和多種WEB語言融合,多語言支持,開源等~~

  對於一個全新的網站,FCKeditor就可以直接拿過來用了,不需要進行什麼修改。但是對於絕大多數的已有網站而言,FCKeditor的一些設置並不適合自己的使用,這篇文章旨在告訴你簡單的修改FCKeditor以方便您的網站的使用。

  第一項工作就是對這個功能宏大的編輯器進行精簡,當然是文件精簡而非功能精簡化。在這裏我以asp版的FCKeditor爲例進行,進入到FCKeditor 2.0文件夾下,先把以“_”爲開頭的文件夾統統刪除,這些文件夾裏放的是範例或是一些其它工具。其實也就是隻保留editor文件夾、fckconfig.js、fckeditor.asp、fckeditor.js、fckstyles.xml、fcktemplates.xml就可以了,最外層的精簡化完畢,進入到editor文件夾內,先把“_source”文件夾刪除,這裏是一些源文件,對於使用來說沒什麼用處。

  進入p_w_picpaths文件夾,刪除smiley文件夾,些文件是放表情圖標的,由於接下來我會用我自己的表情圖標,先把他們的刪除,當然,如果你想用這裏的表情圖標那就不要刪掉了。退出 p_w_picpaths再進入lang文件夾內,這裏的東西可以來個大清洗了,只保留fcklanguagemanager.js、zh-cn.js、en.js、zh.js這四個文件,第一個文件是語言配置文件,有了它才能和fckconfig.js裏的設置成對對應上相應的語言文件,zh-cn.js是簡體中文語言包,en.js就不用說了吧,zh.js是繁體中文的。怎麼樣?一下子少了幾百K,爽吧~

  再退出lang文件夾,進入skin文件夾,如果你想使用fckeditor默認的這種奶黃色,那就把除了default文件夾外的另兩個文件夾直接刪除,如果想用別的,那就自己考慮了,不過我給你個建議,如果不想用默認的,那就選那個silver,因爲銀色也就是灰色和任何顏色配起來都不會難看,而那個office2003的皮膚,反正我是非常不喜歡的,並且圖片相對也比較大,又增加了下載時間,不要!

  精簡的最後一步,退出skin文件夾,再進入filemanager,如果你用的不是最新版的fckeditor的話,那這裏就一個文件夾browser,新版的還有一個upload文件夾。一個個來,先進入到filemanager/browser/default/connectors/下,因爲我是用的asp的,所以除asp文件夾外,全部刪除。然後再進入filemanager/upload/下,同樣,只留asp文件夾,至此,編輯器的精簡化已經結束了,接下來,我們對編輯器進行設置修改。

  第一個修改的文件,也就是fckeditor總配置文件,位於根目錄下的fckconfig.js文件。請根據下面的列表進行(以fckeditor 2.0版的爲準):

找到第20行 FCKConfig.DefaultLanguage = 'en' ;改爲 FCKConfig.DefaultLanguage = 'zh-cn' ;設置默認語言爲簡體中文
找到第40行 FCKConfig.TabSpaces = 0 ; 改爲FCKConfig.TabSpaces = 1 ; 即在編輯器域內可以使用Tab鍵。

如果你的編輯器還用在網站前臺的話,比如說用於留言本或是日記回覆時,那就不得不考慮安全了,在前臺千萬不要使用Default的toolbar,要麼自定義一下功能,要麼就用系統已經定義好的Basic,也就是基本的toolbar,
找到第64行 FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link',*/'Unlink','-','Style','FontSize','TextColor','BGColor','-','Smiley','SpecialChar','Replace','Preview']
] ;
這是我改過的Basic,把圖像功能去掉,把添加鏈接功能去掉,因爲圖像和鏈接和flash和圖像按鈕添加功能都能讓前臺頁直接訪問和上傳文件,要是這兒不改直接給你上傳個***還不馬上玩完?但是光這樣還不行,fckeditor還支持編輯域內的鼠標右鍵功能。
找到第73行
FCKConfig.ContextMenu = ['Generic',/*'Link',*/'Anchor',/*'Image',*/'Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField',/*'ImageButton',*/'Button','BulletedList','NumberedList','TableCell','Table','Form'] ;

這也是我改過的把鼠標右鍵的“鏈接、圖像,FLASH,圖像按鈕”功能都去掉。

找到 第77行 FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
加上幾種我們常用的字體 FCKConfig.FontNames = '宋體;黑體;隸書;楷體_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;

  接下來就設置上傳功能了,還是以ASP爲例,其實fck默認的就是asp的,把100行以下的所有被註釋掉的代碼全部刪掉就行,然後再把下面所有有關於browser.html和upload.asp的後面的?Type=XX都改成Type=YY,其中YY爲你想保存文件的文件夾名稱。

  而如果你還想用自己的表情圖標的話,那跳到131行,改掉那個表情圖標的文件夾地址,以及下面的表情圖標的文件名,再下面那三個數字是每行顯示錶情數及彈出窗口的寬和高了,這個的大小要根據您的表情圖標排列的窗口的大小而定了。OK,總配置文件修改結束。

  接下來是編輯器位置的設置,我的習慣是把editor放在根目錄下,最開始所述的五個文件也放在根目錄下(Tips:建議放在根目錄下,並且建議使用時設置路徑也採用絕對路徑,如"/fckeditor/",而我的習慣的設置是"/"),這樣有利於fckeditor的更新升級,並且網站下所有文件夾都可以任意調用,不存在其它文件夾名變了而其它地方就無法使用編輯器的問題。

  打開fckeditor.asp文件,找到 sBasePath = "/fckeditor/"改爲 sBasePath = "/"
  打開fckeditor.js文件,找到 this.BasePath = '/fckeditor/' ;改爲 this.BasePath = '/' ;

  編輯器域內默認的顯示字體爲12px,而我的主頁默認字體爲14px,所以看着就很不舒服,想要修改可以通過修改樣式表來達到要求,打開/editor/css/fck_editorarea.css,把第4行改爲 font-size: 14px;即可。

  接下來就是上傳文件的設置了,這個比較麻煩,請仔細操作。

  打開\editor\filemanager\browser\default\frmresourcetype.html,找到第15行,插入“ ['uploadfile','uploadfile'],”配合上剛纔在fckconfig.js裏的設置,那麼我的上傳文件路徑就是/uploadfile,當然你也可以改成你想要的文件夾,但這裏的名稱一定要和fckconfig.js裏的那個“Type=YY”裏的YY一致才行。

  還沒完,繼續進入到editor\filemanager\browser\default\connectors\asp,打開config.asp,先把ConfigIsEnabled = False改成爲ConfigIsEnabled = True,要不是沒法上傳文件的,再把ConfigUserFilesPath = "/UserFile"改成我想要的ConfigUserFilesPath = "/"。
  接着在“Set ConfigDeniedExtensions = CreateObject( "Scripting.Dictionary" )”後面加入ConfigAllowedExtensions.Add "uploadfile", ""
ConfigDeniedExtensions.Add "uploadfile", ""
同理,這裏的設置也是要和上面以及fckconfig.js裏面對應的。

  還有一個上傳,就是快速上傳,這個功能是在fckeditor 2.0裏纔有的,以前的版本沒這個功能。進入\editor\filemanager\upload\asp,同樣打開config.asp,也同樣的把ConfigIsEnabled = False 設置成 ConfigIsEnabled = True,我這裏把ConfigUserFilesPath = "/UserFiles/"改成我想要的 ConfigUserFilesPath = "/uploadfile/"& Year(Date()) &"-"& Month(Date()) &"/",因爲我的上傳文件是放在uploadfile文件夾下,並且是按月分開放置的。快速上傳,不會讓你選擇文件夾,而是通過這裏的設置直接上傳的,這兒設置如果和前面的設置配合不好的話,你的文件就會被上傳得亂七八糟,很不方便管理。接前重複前一個config.asp裏的操作,在後面加上
ConfigAllowedExtensions.Add "uploadfile", ""
ConfigDeniedExtensions.Add "uploadfile", ""

  接下來呢,就講一下如何創建自己的在線編輯器,這裏以ASP和JS版的爲例,ASP版示例代碼,一般用於後臺操作:

<%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = "/"

oFCKeditor.ToolbarSet = "Default"
oFCKeditor.Width = "100%"
oFCKeditor.Height = "400"

oFCKeditor.Value = rs("logbody")
oFCKeditor.Create "logbody"
%>

  ASP版的,當然只能用在以.asp爲擴展名的頁面中,如果你在前在fckedito.asp裏設置過BasePath爲"/"的話,這裏就可以省掉第三行,ASP版的只有一個Create函數。建議在修改一篇內容時用ASP版的。

接下來看JS版的:

<script type="text/javascript">
var oFCKeditor = new FCKeditor( 'logbody' ) ;
oFCKeditor.BasePath = '/' ;
oFCKeditor.ToolbarSet = 'Basic' ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '400' ;
oFCKeditor.Value = '' ;
oFCKeditor.Create() ;
</script>

  BasePath的設置同上所述,JS版的可用於任何網頁中,甚至用於html頁面,因爲其是客戶端生成的,這樣的好處就是一可以減小網絡流量,因爲編輯器文件只需下載一次,二是可以由客戶端定義什麼時候顯示,由於fckeditor初始化需要一定時間,在這一點上JS就很有作用了。

另外,JS版的還有一個功能函數就是ReplaceTextarea()函數,可以替換指定的TextArea,拿我的網站的日誌的回覆部分示例:

<script type="text/javascript">
<!--
function showFCK(){
var oFCKeditor = new FCKeditor( 'fbContent' ) ;
oFCKeditor.BasePath = '/' ;
oFCKeditor.ToolbarSet = 'Basic' ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '200' ;
oFCKeditor.Value = '' ;
//oFCKeditor.Create() ;
oFCKeditor.ReplaceTextarea() ;
//document.blog_feedback.blogsubmit.disabled = '';
document.blog_feedback.blogsubmit.style.display = '';
document.blog_feedback.openFCK.disabled = 'true';
document.blog_feedback.openFCK.style.display = 'none';
}
//-->
</script>

把其寫成一個簡單的函數,當用戶顯示打開編輯器時才生成這個fckeditor,不用每次刷新頁面都去初始化一個編輯器,頁面的速度就會快多了。

補遺:前面講到了,說是在編輯已有數據內容時不要用JS版的,那是因爲單引號(')的問題造成的,在數據內容裏難免會有單引號存在而用JS版生成編輯器時可能就會因爲單引號問題,而使編輯器無法正常生成,而採用asp則不同,用ASP版本的是因爲數據被當成是一個變量了,然後直接賦值給編輯器域。還有就是除非你要用ReplaceTextArea()方法來生成編輯器,否則你不需先寫一個<textarea>這樣的標籤,一切都會由fckeditor自動生成的,你所需做的只是給fckeditor指定一個實例名。同時你也不用擔心如何提交,在表單提交的時候,fckeditor會自動提交,提交的變量名是以你指定的fckeditor實例命名的。

FCKEditor在Asp.net環境下的配置安裝
不知道大家留意到沒有了:

FreeTextbox 不開源了,雖然我還有它以前的開源版本。
CSDN用的這個在線編輯器很優秀。
它的名字叫做FCKEditor
它是開源的
與平臺無關,最起碼能支持 Asp, Asp.net , PHP
  以前我一直用FreeTextBox(主要是從Community Server那裏知道的)。但是發現它並不是想象中好用,主要是上傳圖片沒有弄好。好了好了,言歸正傳,說說我們今天的主角,FCKEditor,怎麼在Asp.net中部署吧。

  首先,他的網站下載吧。這裏要注意,你要下載兩個ZIP文件,一個是Core,即核心文件,裏面是整個FCKEditor的核心。第二個是For .net的組件。爲了描述方便,我將真實文件名附上,以後要自己靈活修改啊。

  下載的核心文件叫FCKeditor_2.3.1.zip

  For .net 的文件叫FCKeditor.Net_2.2.zip

  部署步驟:

  解壓FCKeditor_2.3.1.zip,將裏面的FCKEditor複製到你的IIS主目錄裏面,其實要的效果是能夠這樣訪問到就可以了 http://localhost/Fckeditor/ ,將http://localhost/Fckeditor/fckconfig.js的變量:

  _FileBrowserLanguage,_QuickUploadLanguage 的值改爲 aspx,不難做吧。

  (可選)將複製好的FCKEditor裏的以 '_' 開頭的文件及文件夾刪除,當然如果你是在開發也可以不刪除,裏面都是示例及調試頁面。

  解壓縮FCKeditor.Net_2.2.zip,然後在VS.net 2003中添加新的控件那樣添加,bin\Release\FredCK.FCKeditorV2.dll 這個文件,呵呵,以後你就可以隨便拖放這個控件了。

  (重要)將上面的DLL文件複製到 http://localhost/FCKeditor/editor/filemanager/upload/aspx/bin/

  然後在IIS設置中讓 http://localhost/FCKeditor/editor/filemanager/upload/aspx/ 這個目錄可以運行Aspx。同樣,http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/ 也要重複上面的過程。

  另外一種更加簡單的方法是將FredCK.FCKeditorV2.dll 複製 http://localhost/FCKeditor/bin/ 目錄下,然後在IIS中創建應用程序。

  這一步的目的是讓:

  http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx

  http://localhost/FCKeditor/editor/filemanager/upload/aspx/upload.aspx

  這兩個文件能夠工作。

  好了,到此爲止,你在aspx也裏面拖入FCKEditor,將BasePath 設置爲 /FCKEditor/就可以用了。

如果:

  http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx 工作不正常

  你在瀏覽服務器時,就會有XML Request Error:XXXXXXXXXXXXXX(500)錯誤。

  http://localhost/FCKeditor/editor/filemanager/upload/aspx/upload.aspx

  你在上傳圖片時,按鈕怎麼按都沒有反應的。

在jsp環境中配置使用FCKEditor

FCKeditor是sourceforge.net上面的一個開源項目,主要是實現在線網頁編輯器的功能,可以讓web程序擁有如MS Word這樣強大的編輯功能。官方網站爲http://www.fckeditor.net ,在服務器端支持ASP.Net、ASP、ClodFusion、PHP、Java等語言,並且支持IE 5+、Mozilla 、Netscape等主流瀏覽器。

  首先在官方網站下載fckeditor,注意有兩個包,一個是主文件,一個是jsp整合包的。

  1、解壓FCKeditor_2.2.zip,(FCKeditor主文件),將FCKeditor目錄複製到網站根目錄下,

  2、解壓FCKeditor-2.3.zip,(jsp,FCKeditor整合包),作用:This is the JSP Integration Pack for using FCKeditor inside a java server page without the complexity of using a Java scriptlets or the javascript api.

  3、將FCKeditor-2.3/web/WEB-INF/web.xml中的兩個servlet,servlet-mapping定義複製到自已項目的web.xml文件中
修改

<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>/editor/filemanager/upload/simpleuploader</url-pattern>
</servlet-mapping>

  爲

<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader</url-pattern>
</servlet-mapping>

  4、將FCKeditor-2.3/web/WEB-INF/lib目錄下文件複製到自已項目的lib文件夾中

  5、在需使用FCKeditor的jsp界面中加入:

// 文件開頭處加入
<%@ taglib uri="http://fckeditor.net/tags-fckeditor" prefix="FCK" %>
//要使用的地方加入
<FCK:editor id="content" basePath="/FCKeditor/"
p_w_picpathBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector"
linkBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/jsp/connector"
flashBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector"
p_w_picpathUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Image"
linkUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=File"
flashUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Flash">
this is default content0 && p_w_picpath.height>0){if(p_w_picpath.width>=700){this.width=700;this.height=p_w_picpath.height*700/p_w_picpath.width;}}" _counted="undefined">
</FCK:editor>

  啓動服務器測試。。。。成功後,來給FCKeditor瘦瘦身.

  1、將FCKeditor目錄下及子目錄下所有以”_”下劃線開頭的文件夾刪除
  2.FCKeditor根目錄下只保留fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml其餘全部刪除
  3.將editor/filemanager/upload目錄下文件及文件夾清空.
  4.還可以將editor/skins目錄下的皮膚文件刪除,只留下default一套皮膚(如果你不需要換皮膚的話)
  5.還可以將editor/lang目錄下文件刪除,只保留en.js, fcklanguagemanager.js, zh-cn.js, zh.js文件(英文,簡體中文,繁體中文一般應該夠用了:) )

  完成,現在看是不是清爽了很多?

  其它問題:
  在struts+spring+hibernate中使用,上傳圖像功能中可能會出現報:
  The output format must have a '{http://xml.apache.org/xalan}content-handler’ property!
  錯的情況,將WEB-INF/lib目錄下xalan*.jar刪除試試

  安全問題:
  假如在前臺讓普通用戶也能使用FCKEditor,要注意相關安全問題,在前臺使用時,不要使用默認的ToolBar,
  要將添加圖像,flash,圖像域按鈕去掉
在fckconfig.js中大約78行配置 那些數組中的值就像當於界面上的一個功能,你可以強行把每組值試出來代表什麼。:P

  到此安裝FCKeditor就完成了,相關詳細配置你可以看FCKeditor-2.3.zip,(jsp,FCKeditor整合包)文件夾中web/_samples目錄下的例子。

PHP環境下配置在線編輯器FCKeditor
在線編輯器FCKeditor 2.0PHP環境下試用小記

  一、簡介
  2004年11月30日推出了FCKeditor 2.0 RC1版,據其官方網站稱:這是FCKeditor 2.0版的第一個穩定版本。大家現在可以考慮正式使用它了。目前支持的後臺語言有ASP、ASP.Net、PHP和ColdFusion。

  筆者在經過簡單的試用發現,在線編輯器2.0版確實比1.6版有了許多的改進。首先是FCKeditor的文件結構更加清晰,可以更方便地將其部署在自己的系統中。另外2.0版終於支持了Firefox 1.0瀏覽器,這將爲FCKeditor贏得更多的使用者。廢話不多說,讓我們趕快來學習如何安裝、配置FCKeditor 2.0吧。

  二、安裝與範例

  首先到http://sourceforge.net/projects/fckeditor/ 下載FCKeditor 2.0 RC1(554K),並將其解壓縮到你的網站目錄裏面,並將文件夾名改爲FCKeditor。舉例來說,如果你的網站放在shaof這個目錄下面,則在這個目錄中建立3個子目錄:
n FCKeditor:存放從網站上下載的FCKeditor在線編輯器
n upp_w_picpaths:用於存放上傳的圖片
n admin:裏面存放測試頁面

  網站的結構如下:

/FCKeditor //FCKeditor目錄
/UserFiles //上傳文件目錄
/admin
test.php //提交數據頁面
testsubmit.php //顯示數據頁面


  進入到FCKeditor目錄下,打開_samples目錄,裏面含有各種編程語言調用FCKeditor的範例程序頁面,其中php目錄中包含着一些使用PHP來調用FCKeditor的範例,大家可以看一下,瞭解FCKeditord的調用方法,下面是我簡寫了一個test.php程序,放在網站根目錄下的admin目錄中:


if($_POST["ADD"]){
$Content=$_POST['EditorDefault'];
echo $Content;
//變量$Content就是我們在FCKeditord裏面編輯的內容,這裏可以將其保存到數據庫,代碼省略。
}
 
  三、配置在線編輯器

  FCKeditor 2.0的配置文件爲FCKeditor\fckconfig.js,其中幾個重要的配置項目如下:

  1、工具欄的設置

默認情況下,FCKeditor會調用如下的工具欄按鈕,大家可以根據自己的需要進行增減。需要注意的是,2.0版與1.6版的按鈕並不完全相同,有些按鈕以及刪除或者改名了。

//##
//## Toolbar Buttons Sets
//##
FCKConfig.ToolbarSets["Default"] = [
['Source','-','Save','NewPage','Preview'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink'],
['Image','Table','Rule','SpecialChar','Smiley'],
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['About']
] ;

  2、簡體中文設置

  編輯edit/lang/fcklanguagemanager.js

  將下面語句

FCKLanguageManager.AvailableLanguages =
{
'ar' : 'Arabic',
'bs' : 'Bosnian',
'ca' : 'Catalan',
'en' : 'English',
'es' : 'Spanish',
'et' : 'Estonian',
'fi' : 'Finnish',
'fr' : 'French',
'gr' : 'Greek',
'he' : 'Hebrew',
'hr' : 'Croatian',
'it' : 'Italian',
'ko' : 'Korean',
'lt' : 'Lithuanian',
'no' : 'Norwegian',
'pl' : 'Polish',
'sr' : 'Serbian (Cyrillic)',
'sr-latn' : 'Serbian (Latin)',
'sv' : 'Swedish'
}

  添加一行 'zh-cn' : 'Chinese' 從而變成

FCKLanguageManager.AvailableLanguages =
{
'ar' : 'Arabic',
'bs' : 'Bosnian',
'ca' : 'Catalan',
'en' : 'English',
'es' : 'Spanish',
'et' : 'Estonian',
'fi' : 'Finnish',
'fr' : 'French',
'gr' : 'Greek',
'he' : 'Hebrew',
'hr' : 'Croatian',
'it' : 'Italian',
'ko' : 'Korean',
'lt' : 'Lithuanian',
'no' : 'Norwegian',
'pl' : 'Polish',
'sr' : 'Serbian (Cyrillic)',
'sr-latn' : 'Serbian (Latin)',
'sv' : 'Swedish',
'zh-cn' : 'Chinese'
}

  然後到這裏http://www.shaof.com/download/zh-cn.js下載漢化好的zh-cn.js保存到editor/lang目錄下即可。

  四、設置文件上傳

  FCKeditor 2.0在線編輯器採用了一種名爲“Connector”(連接器)的技術來實現對文件的瀏覽以及上傳。下圖顯示了文件瀏覽的工作流程圖。

  從圖中可以看出,當客戶端向服務器發出一個文件操作請求後,Connector就會對此請求進行響應,在服務器的文件系統中進行執行操作,如:文件和文件夾的瀏覽以及創建操作。最後將結果以XML的格式迴應給客戶端。具體的技術細節大家可以閱讀FCKeditor自帶的說明指南。
  落實到應用,首先我們要選擇一個後臺語言用來實現這個功能,這裏我們以PHP爲例進行說明。

  1、 修改配置文件FCKeditor\fckconfig.js中的兩段內容

//Link Browsing
FCKConfig.LinkBrowser = true ;
FCKConfig.LinkBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Connector=connectors/php/connector.php" ;
FCKConfig.LinkBrowserWindowWidth = screen.width * 0.7 ; // 70%
FCKConfig.LinkBrowserWindowHeight = screen.height * 0.7 ; // 70%
//Image Browsing
FCKConfig.ImageBrowser = true ;
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Image&Connector=connectors/php/connector.php" ;
FCKConfig.ImageBrowserWindowWidth = screen.width * 0.7 ; // 70% ;
FCKConfig.ImageBrowserWindowHeight = screen.height * 0.7 ; // 70% ;


  2、 修改配置文件

FCKeditor\editor\filemanager\browser\default\connectors\php\connector.php
// Get the "UserFiles" path.
$GLOBALS["UserFilesPath"] = '/UserFiles/' ;


  UserFiles爲文件上傳的路徑,與本文開頭所給的例子相對應,大家可以自行修改。

  好啦,只需要兩步就完成了文件上傳的配置工作,真是簡單呀。以後我們通過FCKeditor上傳的文件都會保存在網站的UserFiles目錄下。

  五、結束

  最後大家可以把FCKeditor目錄下的_docs和_samples兩個目錄刪除以節省空間。本文是筆者以前寫過的一篇名爲《在線編輯器FCKeditor在PHP中的使用方法》(1.6版)文章的升級版本,文章如有不妥之處,還請大家指正。

  另,遇到的問題
  1、圖片文件上傳路徑問題

  安裝我文章裏面的設置,上傳路徑設置爲UserFiles/,但是上傳圖片文件時,FCKeditor都自動把文件上傳到UserFiles/p_w_picpath目錄下面,自做主張的建立了一個p_w_picpath目錄,很是不爽。原因不明。

配置FCKeditor(FCKeditor for java)
1.下載
FCKeditor.java 2.3 (FCKeditot for java)
FCKeditor 2.2 (FCKeditor基本文件)

  2.建立項目:tomcat/webapps/TestFCKeditor.

  3.將FCKeditor2.2解壓縮,將整個目錄FCKeditor複製到項目的根目錄下,
目錄結構爲:tomcat/webapps/TestFCKeditor/FCKeditor
然後將FCKeditor-2.3.zip(java)壓縮包中\web\WEB-INF\lib\目錄下的兩個jar文件拷到項目的\WEB-INF\lib\目錄下。把其中的src目錄下的FCKeditor.tld文件copy到TestFCKedit/FCKeitor/WEB-INF/下

  4.將FCKeditor-2.3.zip壓縮包中\web\WEB-INF\目錄下的web.xml文件合併到項目的\WEB-INF\目錄下的web.xml文件中。

  5. 修改合併後的web.xml文件,將名爲SimpleUploader的Servlet的enabled參數值改爲true,
以允許上傳功能,Connector Servlet的baseDir參數值用於設置上傳文件存放的位置。
添加標籤定義:
<taglib>
<taglib-uri>/TestFCKeditor</taglib-uri>
<taglib-location>/WEB-INF/FCKeditor.tld</taglib-location>
</taglib>


  6. 上面文件中兩個servlet的映射分別爲:/editor/filemanager/browser/default/connectors/jsp/connector
和/editor/filemanager/upload/simpleuploader,需要在兩個映射前面加上/FCKeditor,
即改爲/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector和
/FCKeditor/editor/filemanager/upload/simpleuploader。

  7.進入skin文件夾,如果你想使用fckeditor默認的這種奶黃色,
那就把除了default文件夾外的另兩個文件夾直接刪除.

  8.刪除/FCKeditor/目錄下除fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml四個文件以外的所有文件
刪除目錄/editor/_source,
刪除/editor/filemanager/browser/default/connectors/下的所有文件
刪除/editor/filemanager/upload/下的所有文件
刪除/editor/lang/下的除了fcklanguagemanager.js, en.js, zh.js, zh-cn.js四個文件的所有文件

  9.打開/FCKeditor/fckconfig.js
修改 FCKConfig.DefaultLanguage = 'zh-cn' ;
把FCKConfig.LinkBrowserURL等的值替換成以下內容:
FCKConfig.LinkBrowserURL
= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Connector=connectors/jsp/connector" ;

FCKConfig.ImageBrowserURL
= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector" ;

FCKConfig.FlashBrowserURL
= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector" ;

FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=File' ;
FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Flash' ;
FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Image' ;


  10.其它
fckconfig.js總配置文件,可用記錄本打開,修改後將文件存爲utf-8 編碼格式。找到:

  FCKConfig.TabSpaces = 0 ; 改爲FCKConfig.TabSpaces = 1 ; 即在編輯器域內可以使用Tab鍵。

  如果你的編輯器還用在網站前臺的話,比如說用於留言本或是日記回覆時,那就不得不考慮安全了,
在前臺千萬不要使用Default的toolbar,要麼自定義一下功能,要麼就用系統已經定義好的Basic,
也就是基本的toolbar,找到:
FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link',*/'Unlink','-','Style','FontSize','TextColor','BGColor','-',
'Smiley','SpecialChar','Replace','Preview'] ] ;
這是改過的Basic,把圖像功能去掉,把添加鏈接功能去掉,因爲圖像和鏈接和flash和圖像按鈕添加功能都能讓前臺
頁直接訪問和上傳文件, fckeditor還支持編輯域內的鼠標右鍵功能。

FCKConfig.ContextMenu = ['Generic',/*'Link',*/'Anchor',/*'Image',*/'Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField',
/*'ImageButton',*/'Button','BulletedList','NumberedList','TableCell','Table','Form'] ;

這也是改過的把鼠標右鍵的“鏈接、圖像,FLASH,圖像按鈕”功能都去掉。

  找到: FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
加上幾種我們常用的字體
FCKConfig.FontNames
= '宋體;黑體;隸書;楷體_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;

7、添加頁面

<%@ page language="java" import="com.fredck.FCKeditor.*" %>
<%@ taglib uri="/WEB-INF/tlds/FCKeditor.tld" prefix="FCK" %>
<script type="text/javascript" src="FCKeditor/fckeditor.js"></script>
<form action="show.jsp" method="post" target="_blank">
<table border="0" width="700"><tr><td>
<textarea id="content" name="content" style="WIDTH: 100%; HEIGHT: 400px">input</textarea>
<script type="text/javascript">
var oFCKeditor = new FCKeditor('content') ;
oFCKeditor.BasePath = "FCKeditor/" ;
oFCKeditor.Height = 400;
oFCKeditor.ToolbarSet = "Default" ;
oFCKeditor.ReplaceTextarea();
</script>
<input type="submit" value="Submit">
</td></tr></table>
</form>
編輯web.xml 文集 添加 如下片斷

<servlet>
<servlet-name>SimpleUploader</servlet-name>
<servlet-class>com.fredck.FCKeditor.uploader.SimpleUploaderServlet</servlet-class>
<init-param>
<param-name>baseDir</param-name>
<param-value>/UserFiles/</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>enabled</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsFile</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsFile</param-name>
<param-value>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsImage</param-name>
<param-value>jpg|gif|jpeg|png|bmp</param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsImage</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsFlash</param-name>
<param-value>swf|fla</param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsFlash</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader</url-pattern>
</servlet-mapping>

<taglib>
<taglib-uri>/WEB-INF/FCKeditor.tld</taglib-uri>
<taglib-location>/WEB-INF/tlds/FCKeditor.tld</taglib-location>
</taglib>

  //引入在線編輯器
  include("../FCKeditor/fckeditor.php") ;
  這裏我們先看一下調用FCKeditor的函數,2.0版的調用方式與1.6版變化不大,如果你以前安裝過FCKeditor 1.6,那麼只需要修改很少的代碼升級到2.0。
  FCKeditor( instanceName[, width, height, toolbarSet, value]
引用值 含義
  InstanceName 實例化編輯器所需的唯一名稱
  Width 編輯器的寬度,單位爲象素或者百分比(可選擇的,默認爲:100%)
  Height 編輯器的高度,單位爲象素或者百分比(可選擇的,默認爲:200)
  ToolbarSet 工具欄的名稱(可選擇的,默認爲:Default)
  Value 編輯器的內容(HTML)初始值(可選擇的)

  好啦,下面就讓我們利用這個函數來定製FCKeditor吧。

$oFCKeditor = new FCKeditor('FCKeditor1') ;
$oFCKeditor->BasePath = '../FCKeditor/' ;
$oFCKeditor->ToolbarSet = 'Default' ;
$oFCKeditor->InstanceName = 'EditorDefault' ;
$oFCKeditor->Width = '100%' ;
$oFCKeditor->Height = '400' ;
$oFCKeditor->Create() ;
本站提供三種fck編輯器下載,分別是最新的2.64版本,精簡版以及可以保存遠程圖片的版本(asp),大家可以按照需求下載
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章