fckeditor.afp 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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 Active FoxPro Pages.
  22. *
  23. DEFINE CLASS goFckeditor AS CONTAINER OLEPUBLIC
  24. cInstanceName =""
  25. BasePath =""
  26. cWIDTH =""
  27. cHEIGHT =""
  28. ToolbarSet =""
  29. cValue=""
  30. DIMENSION aConfig(10,2)
  31. && -----------------------------------------------------------------------
  32. FUNCTION fckeditor( tcInstanceName )
  33. LOCAL lnLoop,lnLoop2
  34. THIS.cInstanceName = tcInstanceName
  35. THIS.BasePath = '/fckeditor/'
  36. THIS.cWIDTH = '100%'
  37. THIS.cHEIGHT = '200'
  38. THIS.ToolbarSet = 'Default'
  39. THIS.cValue = ''
  40. FOR lnLoop=1 TO 10
  41. FOR lnLoop2=1 TO 2
  42. THIS.aConfig(lnLoop,lnLoop2) = ""
  43. NEXT
  44. NEXT
  45. RETURN
  46. ENDFUNC
  47. && -----------------------------------------------------------------------
  48. FUNCTION CREATE()
  49. ? THIS.CreateHtml()
  50. RETURN
  51. ENDFUNC
  52. && -----------------------------------------------------------------------
  53. FUNCTION CreateHtml()
  54. LOCAL html
  55. LOCAL lcLink
  56. HtmlValue = THIS.cValue && HTMLSPECIALCHARS()
  57. html = []
  58. IF THIS.IsCompatible()
  59. lcLink = THIS.BasePath+[editor/fckeditor.html?InstanceName=]+THIS.cInstanceName
  60. IF ( !THIS.ToolbarSet == '' )
  61. lcLink = lcLink + [&Toolbar=]+THIS.ToolbarSet
  62. ENDIF
  63. && Render the LINKED HIDDEN FIELD.
  64. html = html + [<input type="hidden" id="]+THIS.cInstanceName +[" name="]+THIS.cInstanceName +[" value="]+HtmlValue+[" style="display:none" />]
  65. && Render the configurations HIDDEN FIELD.
  66. html = html + [<input type="hidden" id="]+THIS.cInstanceName +[___Config" value="]+THIS.GetConfigFieldString() + [" style="display:none" />] +CHR(13)+CHR(10)
  67. && Render the EDITOR IFRAME.
  68. html = html + [<iframe id="]+THIS.cInstanceName +[___Frame" src="Link" width="]+THIS.cWIDTH+[" height="]+THIS.cHEIGHT+[" frameborder="0" scrolling="no"></iframe>]
  69. ELSE
  70. IF ( AT("%", THIS.cWIDTH)=0 )
  71. WidthCSS = THIS.cWIDTH + 'px'
  72. ELSE
  73. WidthCSS = THIS.cWIDTH
  74. ENDIF
  75. IF ( AT("%",THIS.cHEIGHT)=0 )
  76. HeightCSS = THIS.cHEIGHT + 'px'
  77. ELSE
  78. HeightCSS = THIS.cHEIGHT
  79. ENDIF
  80. html = html + [<textarea name="]+THIS.cInstanceName +[" rows="4" cols="40" style="width: ]+WidthCSS+[ height: ]+HeightCSS+[">]+HtmlValue+[</textarea>]
  81. ENDIF
  82. RETURN (html)
  83. ENDFUNC
  84. && -----------------------------------------------------------------------
  85. FUNCTION IsCompatible()
  86. LOCAL llRetval
  87. LOCAL sAgent
  88. llRetval=.F.
  89. SET POINT TO "."
  90. sAgent = LOWER(ALLTRIM(request.servervariables("HTTP_USER_AGENT")))
  91. IF AT("msie",sAgent) >0 .AND. AT("mac",sAgent)=0 .AND. AT("opera",sAgent)=0
  92. iVersion=VAL(SUBSTR(sAgent,AT("msie",sAgent)+5,3))
  93. llRetval= iVersion > 5.5
  94. ELSE
  95. IF AT("gecko/",sAgent)>0
  96. iVersion=VAL(SUBSTR(sAgent,AT("gecko/",sAgent)+6,8))
  97. llRetval =iVersion > 20030210
  98. ENDIF
  99. ELSE
  100. IF AT("opera/",sAgent)>0
  101. iVersion=VAL(SUBSTR(sAgent,AT("opera/",sAgent)+6,4))
  102. llRetval =iVersion >= 9.5
  103. ENDIF
  104. ELSE
  105. IF AT("applewebkit/",sAgent)>0
  106. iVersion=VAL(SUBSTR(sAgent,AT("applewebkit/",sAgent)+12,3))
  107. llRetval =iVersion >= 522
  108. ENDIF
  109. ENDIF
  110. SET POINT TO
  111. RETURN (llRetval)
  112. ENDFUNC
  113. && -----------------------------------------------------------------------
  114. FUNCTION GetConfigFieldString()
  115. LOCAL sParams
  116. LOCAL bFirst
  117. LOCAL sKey
  118. sParams = ""
  119. bFirst = .T.
  120. FOR lnLoop=1 TO 10 && ALEN(this.aconfig)
  121. IF !EMPTY(THIS.aConfig(lnLoop,1))
  122. IF bFirst = .F.
  123. sParams = sParams + "&"
  124. ELSE
  125. bFirst = .F.
  126. ENDIF
  127. sParams = sParams +THIS.aConfig(lnLoop,1)+[=]+THIS.aConfig(lnLoop,2)
  128. ELSE
  129. EXIT
  130. ENDIF
  131. NEXT
  132. RETURN(sParams)
  133. ENDFUNC
  134. ENDDEFINE
  135. %>