source: sandbox/filemanager/tp/fckeditor/fckeditor.asp @ 1575

Revision 1575, 6.4 KB checked in by amuller, 14 years ago (diff)

Ticket #597 - Implentação, melhorias do modulo gerenciador de arquivos

  • Property svn:executable set to *
Line 
1<!--
2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
3 * Copyright (C) 2003-2009 Frederico Caldeira Knabben
4 *
5 * == BEGIN LICENSE ==
6 *
7 * Licensed under the terms of any of the following licenses at your
8 * choice:
9 *
10 *  - GNU General Public License Version 2 or later (the "GPL")
11 *    http://www.gnu.org/licenses/gpl.html
12 *
13 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
14 *    http://www.gnu.org/licenses/lgpl.html
15 *
16 *  - Mozilla Public License Version 1.1 or later (the "MPL")
17 *    http://www.mozilla.org/MPL/MPL-1.1.html
18 *
19 * == END LICENSE ==
20 *
21 * This is the integration file for ASP.
22 *
23 * It defines the FCKeditor class that can be used to create editor
24 * instances in ASP pages on server side.
25-->
26<%
27Class FCKeditor
28
29        private sBasePath
30        private sInstanceName
31        private sWidth
32        private sHeight
33        private sToolbarSet
34        private sValue
35
36        private oConfig
37
38        Private Sub Class_Initialize()
39                sBasePath               = "/fckeditor/"
40                sWidth                  = "100%"
41                sHeight                 = "200"
42                sToolbarSet             = "Default"
43                sValue                  = ""
44
45                Set oConfig = CreateObject("Scripting.Dictionary")
46        End Sub
47
48        Public Property Let BasePath( basePathValue )
49                sBasePath = basePathValue
50        End Property
51
52        Public Property Let InstanceName( instanceNameValue )
53                sInstanceName = instanceNameValue
54        End Property
55
56        Public Property Let Width( widthValue )
57                sWidth = widthValue
58        End Property
59
60        Public Property Let Height( heightValue )
61                sHeight = heightValue
62        End Property
63
64        Public Property Let ToolbarSet( toolbarSetValue )
65                sToolbarSet = toolbarSetValue
66        End Property
67
68        Public Property Let Value( newValue )
69                If ( IsNull( newValue ) OR IsEmpty( newValue ) ) Then
70                        sValue = ""
71                Else
72                        sValue = newValue
73                End If
74        End Property
75
76        Public Property Let Config( configKey, configValue )
77                oConfig.Add configKey, configValue
78        End Property
79
80        ' Generates the instace of the editor in the HTML output of the page.
81        Public Sub Create( instanceName )
82                response.write CreateHtml( instanceName )
83        end Sub
84
85        ' Returns the html code that must be used to generate an instance of FCKeditor.
86        Public Function CreateHtml( instanceName )
87                dim html
88
89                If IsCompatible() Then
90
91                        Dim sFile, sLink
92                        If Request.QueryString( "fcksource" ) = "true" Then
93                                sFile = "fckeditor.original.html"
94                        Else
95                                sFile = "fckeditor.html"
96                        End If
97
98                        sLink = sBasePath & "editor/" & sFile & "?InstanceName=" + instanceName
99
100                        If (sToolbarSet & "") <> "" Then
101                                sLink = sLink + "&amp;Toolbar=" & sToolbarSet
102                        End If
103
104                        html = ""
105                        ' Render the linked hidden field.
106                        html = html & "<input type=""hidden"" id=""" & instanceName & """ name=""" & instanceName & """ value=""" & Server.HTMLEncode( sValue ) & """ style=""display:none"" />"
107
108                        ' Render the configurations hidden field.
109                        html = html & "<input type=""hidden"" id=""" & instanceName & "___Config"" value=""" & GetConfigFieldString() & """ style=""display:none"" />"
110
111                        ' Render the editor IFRAME.
112                        html = html & "<iframe id=""" & instanceName & "___Frame"" src=""" & sLink & """ width=""" & sWidth & """ height=""" & sHeight & """ frameborder=""0"" scrolling=""no""></iframe>"
113
114                Else
115
116                        Dim sWidthCSS, sHeightCSS
117
118                        If InStr( sWidth, "%" ) > 0  Then
119                                sWidthCSS = sWidth
120                        Else
121                                sWidthCSS = sWidth & "px"
122                        End If
123
124                        If InStr( sHeight, "%" ) > 0  Then
125                                sHeightCSS = sHeight
126                        Else
127                                sHeightCSS = sHeight & "px"
128                        End If
129
130                        html = "<textarea name=""" & instanceName & """ rows=""4"" cols=""40"" style=""width: " & sWidthCSS & "; height: " & sHeightCSS & """>" & Server.HTMLEncode( sValue ) & "</textarea>"
131
132                End If
133
134                CreateHtml = html
135
136        End Function
137
138        Private Function IsCompatible()
139
140                IsCompatible = FCKeditor_IsCompatibleBrowser()
141
142        End Function
143
144        Private Function GetConfigFieldString()
145
146                Dim sParams
147
148                Dim bFirst
149                bFirst = True
150
151                Dim sKey
152                For Each sKey in oConfig
153
154                        If bFirst = False Then
155                                sParams = sParams & "&amp;"
156                        Else
157                                bFirst = False
158                        End If
159
160                        sParams = sParams & EncodeConfig( sKey ) & "=" & EncodeConfig( oConfig(sKey) )
161
162                Next
163
164                GetConfigFieldString = sParams
165
166        End Function
167
168        Private Function EncodeConfig( valueToEncode )
169                ' The locale of the asp server makes the conversion of a boolean to string different to "true" or "false"
170                ' so we must do it manually
171    If vartype(valueToEncode) = vbBoolean then
172                        If valueToEncode=True Then
173                                EncodeConfig="True"
174                        Else
175                                EncodeConfig="False"
176                        End If
177                Else
178                        EncodeConfig = Replace( valueToEncode, "&", "%26" )
179                        EncodeConfig = Replace( EncodeConfig , "=", "%3D" )
180                        EncodeConfig = Replace( EncodeConfig , """", "%22" )
181                End if
182
183        End Function
184
185End Class
186
187
188' A function that can be used to check if the current browser is compatible with FCKeditor
189' without the need to create an instance of the class.
190Function FCKeditor_IsCompatibleBrowser()
191
192
193        Dim sAgent
194        sAgent = Request.ServerVariables("HTTP_USER_AGENT")
195
196        Dim iVersion
197        Dim re, Matches
198
199        If InStr(sAgent, "MSIE") > 0 AND InStr(sAgent, "mac") <= 0  AND InStr(sAgent, "Opera") <= 0 Then
200                iVersion = CInt( FCKeditor_ToNumericFormat( Mid(sAgent, InStr(sAgent, "MSIE") + 5, 3) ) )
201                FCKeditor_IsCompatibleBrowser = ( iVersion >= 5.5 )
202        ElseIf InStr(sAgent, "Gecko/") > 0 Then
203                iVersion = CLng( Mid( sAgent, InStr( sAgent, "Gecko/" ) + 6, 8 ) )
204                FCKeditor_IsCompatibleBrowser = ( iVersion >= 20030210 )
205        ElseIf InStr(sAgent, "Opera/") > 0 Then
206                iVersion = CSng( FCKeditor_ToNumericFormat( Mid( sAgent, InStr( sAgent, "Opera/" ) + 6, 4 ) ) )
207                FCKeditor_IsCompatibleBrowser = ( iVersion >= 9.5 )
208        ElseIf InStr(sAgent, "AppleWebKit/") > 0 Then
209                Set re = new RegExp
210                re.IgnoreCase = true
211                re.global = false
212                re.Pattern = "AppleWebKit/(\d+)"
213                Set Matches = re.Execute(sAgent)
214                FCKeditor_IsCompatibleBrowser = ( re.Replace(Matches.Item(0).Value, "$1") >= 522 )
215        Else
216                FCKeditor_IsCompatibleBrowser = False
217        End If
218
219End Function
220
221
222' By Agrotic
223' On ASP, when converting string to numbers, the number decimal separator is localized
224' so 5.5 will not work on systems were the separator is "," and vice versa.
225Private Function FCKeditor_ToNumericFormat( numberStr )
226
227        If IsNumeric( "5.5" ) Then
228                FCKeditor_ToNumericFormat = Replace( numberStr, ",", ".")
229        Else
230                FCKeditor_ToNumericFormat = Replace( numberStr, ".", ",")
231        End If
232
233End Function
234
235%>
Note: See TracBrowser for help on using the repository browser.