Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/06/2010, 02:38
baditxuk
 
Fecha de Ingreso: enero-2007
Mensajes: 284
Antigüedad: 17 años, 10 meses
Puntos: 1
compatibilidad datos editor

Hola.
Mi problema es el siguiente:

Tengo una web donde edito el texto mediante un editor. Este se carga al pinchar un botón. Hasta el dia de hoy me ha funcionado perfectamente. El problema viene cuando el hosting que tenemos nos lo actualizan de windows2003 a windows2008.

He encontrado donde esta el error pero no se como solucionarlo (todo esto lo realizo un compañero que ya no esta y me toca a mi solucionarlo). El error que me da es:

Microsoft VBScript runtime error '800a000d'
Type mismatch: 'Server.HTMLEncode'
/fckeditor/fckeditor.asp, line 106

El problema es que tengo los campos de tipo text y es ahi donde falla ya que si los pongo a varchar carga el editor perfectamente.

El editor que utilizo es el FCKEDITOR. Este es el codigo asp de donde da el error:

<%
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

' 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 + "&amp;Toolbar=" & sToolbarSet
End If

****error****
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 & "&amp;"
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

%>


Si alguien sabe de alguna manera de solucionarlo estaria muy agradecido. Si necesitais mas información o cualquier cosa me comentais.

Gracias y un saludo.