PageRenderTime 14ms CodeModel.GetById 9ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/source/Plug-in/fck/fckeditor.afp

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