fckeditor.asp
上传用户:dbstep
上传日期:2022-08-06
资源大小:2803k
文件大小:6k
- <!--
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2009 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * This is the integration file for ASP.
- *
- * It defines the FCKeditor class that can be used to create editor
- * instances in ASP pages on server side.
- -->
- <%
- Class FCKeditor
- private sBasePath
- private sInstanceName
- private sWidth
- private sHeight
- private sToolbarSet
- private sValue
- private oConfig
- Private Sub Class_Initialize()
- sBasePath = "/fckeditor/"
- sWidth = "100%"
- sHeight = "200"
- sValue = ""
- Set oConfig = CreateObject("Scripting.Dictionary")
- End Sub
- Public Property Let BasePath( basePathValue )
- sBasePath = basePathValue
- End Property
- Public Property Let InstanceName( instanceNameValue )
- sInstanceName = instanceNameValue
- End Property
- Public Property Let Width( widthValue )
- sWidth = widthValue
- End Property
- Public Property Let Height( heightValue )
- sHeight = heightValue
- End Property
- Public Property Let ToolbarSet( toolbarSetValue )
- sToolbarSet = toolbarSetValue
- End Property
- Public Property Let Value( newValue )
- If ( IsNull( newValue ) OR IsEmpty( newValue ) ) Then
- sValue = ""
- Else
- sValue = newValue
- End If
- End Property
- Public Property Let Config( configKey, configValue )
- oConfig.Add configKey, configValue
- End Property
- ' Generates the instace of the editor in the HTML output of the page.
- Public Sub Create( instanceName )
- response.write CreateHtml( instanceName )
- end Sub
- ' Returns the html code that must be used to generate an instance of FCKeditor.
- Public Function CreateHtml( instanceName )
- dim html
- If IsCompatible() Then
- Dim sFile, sLink
- If Request.QueryString( "fcksource" ) = "true" Then
- sFile = "fckeditor.original.html"
- Else
- sFile = "fckeditor.html"
- End If
- sLink = sBasePath & "editor/" & sFile & "?InstanceName=" + instanceName
- If (sToolbarSet & "") <> "" Then
- sLink = sLink + "&Toolbar=" & sToolbarSet
- End If
- html = ""
- ' Render the linked hidden field.
- html = html & "<input type=""hidden"" id=""" & instanceName & """ name=""" & instanceName & """ value=""" & Server.HTMLEncode( sValue ) & """ style=""display:none"" />"
- ' Render the configurations hidden field.
- html = html & "<input type=""hidden"" id=""" & instanceName & "___Config"" value=""" & GetConfigFieldString() & """ style=""display:none"" />"
- ' Render the editor IFRAME.
- html = html & "<iframe id=""" & instanceName & "___Frame"" src=""" & sLink & """ width=""" & sWidth & """ height=""" & sHeight & """ frameborder=""0"" scrolling=""no""></iframe>"
- Else
- Dim sWidthCSS, sHeightCSS
- If InStr( sWidth, "%" ) > 0 Then
- sWidthCSS = sWidth
- Else
- sWidthCSS = sWidth & "px"
- End If
- If InStr( sHeight, "%" ) > 0 Then
- sHeightCSS = sHeight
- Else
- sHeightCSS = sHeight & "px"
- End If
- html = "<textarea name=""" & instanceName & """ rows=""4"" cols=""40"" style=""width: " & sWidthCSS & "; height: " & sHeightCSS & """>" & Server.HTMLEncode( sValue ) & "</textarea>"
- End If
- CreateHtml = html
- End Function
- Private Function IsCompatible()
- IsCompatible = FCKeditor_IsCompatibleBrowser()
- End Function
- Private Function GetConfigFieldString()
- Dim sParams
- Dim bFirst
- bFirst = True
- Dim sKey
- For Each sKey in oConfig
- If bFirst = False Then
- sParams = sParams & "&"
- Else
- bFirst = False
- End If
- sParams = sParams & EncodeConfig( sKey ) & "=" & EncodeConfig( oConfig(sKey) )
- Next
- GetConfigFieldString = sParams
- End Function
- Private Function EncodeConfig( valueToEncode )
- ' The locale of the asp server makes the conversion of a boolean to string different to "true" or "false"
- ' so we must do it manually
- If vartype(valueToEncode) = vbBoolean then
- If valueToEncode=True Then
- EncodeConfig="True"
- Else
- EncodeConfig="False"
- End If
- Else
- EncodeConfig = Replace( valueToEncode, "&", "%26" )
- EncodeConfig = Replace( EncodeConfig , "=", "%3D" )
- EncodeConfig = Replace( EncodeConfig , """", "%22" )
- End if
- End Function
- End Class
- ' A function that can be used to check if the current browser is compatible with FCKeditor
- ' without the need to create an instance of the class.
- Function FCKeditor_IsCompatibleBrowser()
- Dim sAgent
- sAgent = Request.ServerVariables("HTTP_USER_AGENT")
- Dim iVersion
- Dim re, Matches
- If InStr(sAgent, "MSIE") > 0 AND InStr(sAgent, "mac") <= 0 AND InStr(sAgent, "Opera") <= 0 Then
- iVersion = CInt( FCKeditor_ToNumericFormat( Mid(sAgent, InStr(sAgent, "MSIE") + 5, 3) ) )
- FCKeditor_IsCompatibleBrowser = ( iVersion >= 5.5 )
- ElseIf InStr(sAgent, "Gecko/") > 0 Then
- iVersion = CLng( Mid( sAgent, InStr( sAgent, "Gecko/" ) + 6, 8 ) )
- FCKeditor_IsCompatibleBrowser = ( iVersion >= 20030210 )
- ElseIf InStr(sAgent, "Opera/") > 0 Then
- iVersion = CSng( FCKeditor_ToNumericFormat( Mid( sAgent, InStr( sAgent, "Opera/" ) + 6, 4 ) ) )
- FCKeditor_IsCompatibleBrowser = ( iVersion >= 9.5 )
- ElseIf InStr(sAgent, "AppleWebKit/") > 0 Then
- Set re = new RegExp
- re.IgnoreCase = true
- re.global = false
- re.Pattern = "AppleWebKit/(d+)"
- Set Matches = re.Execute(sAgent)
- FCKeditor_IsCompatibleBrowser = ( re.Replace(Matches.Item(0).Value, "$1") >= 522 )
- Else
- FCKeditor_IsCompatibleBrowser = False
- End If
- End Function
- ' By Agrotic
- ' On ASP, when converting string to numbers, the number decimal separator is localized
- ' so 5.5 will not work on systems were the separator is "," and vice versa.
- Private Function FCKeditor_ToNumericFormat( numberStr )
- If IsNumeric( "5.5" ) Then
- FCKeditor_ToNumericFormat = Replace( numberStr, ",", ".")
- Else
- FCKeditor_ToNumericFormat = Replace( numberStr, ".", ",")
- End If
- End Function
- %>