Вход Регистрация
Файл: public/fck/fckeditor.asp
Строк: 211
<?php

<!--
 * 
FCKeditor - The text editor for internet
 
* Copyright (C) 2003-2004 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/
 
* 
 * 
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.
 * 
 * 
Version:  2.0 RC3
 
* Modified: 2005-02-27 19:16:33
 
* 
 * 
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 )
        
sValue = newValue
    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 sLink
            sLink 
= sBasePath & "editor/fckeditor.html?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 ) & """>"

            ' 
Render the configurations hidden field.
            
Response.Write "<input type=""hidden"" id=""" & instanceName & "___Config"" value=""" & GetConfigFieldString() & """>"

            ' Render the editor IFRAME.
            Response.Write "<iframe id=""" & instanceName & "___Frame"" src=""" & sLink & """ width=""" & sWidth & """ height=""" & sHeight & """ frameborder=""no"" 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 & """ wrap=""virtual"">" & 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
%>
?>
Онлайн: 3
Реклама