192 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			192 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| <!--
 | |
|  * FCKeditor - The text editor for internet
 | |
|  * Copyright (C) 2003-2006 Frederico Caldeira Knabben
 | |
|  * 
 | |
|  * Licensed under the terms of the GNU Lesser General Public License:
 | |
|  * 		http://www.opensource.org/licenses/lgpl-license.php
 | |
|  * 
 | |
|  * For further information visit:
 | |
|  * 		http://www.fckeditor.net/
 | |
|  * 
 | |
|  * "Support Open Source software. What about a donation today?"
 | |
|  * 
 | |
|  * File Name: fckeditor.asp
 | |
|  * 	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.
 | |
|  * 
 | |
|  * File Authors:
 | |
|  * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
 | |
| -->
 | |
| <%
 | |
| 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"
 | |
| 		sToolbarSet		= "Default"
 | |
| 		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
 | |
| 
 | |
| 	Public Function Create( instanceName )
 | |
| 
 | |
| 		Response.Write "<div>"
 | |
| 
 | |
| 		If IsCompatible() Then
 | |
| 
 | |
| 			Dim sFile
 | |
| 			If Request.QueryString( "fcksource" ) = "true" Then
 | |
| 				sFile = "fckeditor.original.html"
 | |
| 			Else
 | |
| 				sFile = "fckeditor.html"
 | |
| 			End If
 | |
| 
 | |
| 			Dim sLink
 | |
| 			sLink = sBasePath & "editor/" & sFile & "?InstanceName=" + instanceName
 | |
| 
 | |
| 			If (sToolbarSet & "") <> "" Then
 | |
| 				sLink = sLink + "&Toolbar=" & sToolbarSet
 | |
| 			End If
 | |
| 
 | |
| 			' Render the linked hidden field.
 | |
| 			Response.Write "<input type=""hidden"" id=""" & instanceName & """ name=""" & instanceName & """ value=""" & Server.HTMLEncode( sValue ) & """ style=""display:none"" />"
 | |
| 
 | |
| 			' Render the configurations hidden field.
 | |
| 			Response.Write "<input type=""hidden"" id=""" & instanceName & "___Config"" value=""" & GetConfigFieldString() & """ style=""display:none"" />"
 | |
| 
 | |
| 			' Render the editor IFRAME.
 | |
| 			Response.Write "<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
 | |
| 
 | |
| 			Response.Write "<textarea name=""" & instanceName & """ rows=""4"" cols=""40"" style=""width: " & sWidthCSS & "; height: " & sHeightCSS & """>" & Server.HTMLEncode( sValue ) & "</textarea>"
 | |
| 
 | |
| 		End If
 | |
| 
 | |
| 		Response.Write "</div>"
 | |
| 
 | |
| 	End Function
 | |
| 
 | |
| 	Private Function IsCompatible()
 | |
| 
 | |
| 		Dim sAgent
 | |
| 		sAgent = Request.ServerVariables("HTTP_USER_AGENT")
 | |
| 
 | |
| 		Dim iVersion
 | |
| 
 | |
| 		If InStr(sAgent, "MSIE") > 0 AND InStr(sAgent, "mac") <= 0  AND InStr(sAgent, "Opera") <= 0 Then
 | |
| 			iVersion = CInt( ToNumericFormat( Mid(sAgent, InStr(sAgent, "MSIE") + 5, 3) ) )
 | |
| 			IsCompatible = ( iVersion >= 5.5 )
 | |
| 		ElseIf InStr(sAgent, "Gecko/") > 0 Then
 | |
| 			iVersion = CLng( Mid( sAgent, InStr( sAgent, "Gecko/" ) + 6, 8 ) )
 | |
| 			IsCompatible = ( iVersion >= 20030210 )
 | |
| 		Else
 | |
| 			IsCompatible = 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 ToNumericFormat( numberStr )
 | |
| 
 | |
| 		If IsNumeric( "5.5" ) Then
 | |
| 			ToNumericFormat = Replace( numberStr, ",", ".")
 | |
| 		Else
 | |
| 			ToNumericFormat = Replace( numberStr, ".", ",")
 | |
| 		End If
 | |
| 
 | |
| 	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 )
 | |
| 		EncodeConfig = Replace( valueToEncode, "&", "%26" )
 | |
| 		EncodeConfig = Replace( EncodeConfig , "=", "%3D" )
 | |
| 		EncodeConfig = Replace( EncodeConfig , """", "%22" )
 | |
| 	End Function
 | |
| 
 | |
| End Class
 | |
| %> |