| 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 |
|
| 24 |
DEFINE 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 = [] |
| 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 |
RETURN (html) |
| 98 |
ENDFUNC |
| 99 |
|
| 100 |
|
| 101 |
&& ----------------------------------------------------------------------- |
| 102 |
FUNCTION IsCompatible() |
| 103 |
LOCAL llRetval |
| 104 |
LOCAL sAgent |
| 105 |
|
| 106 |
llRetval=.F. |
| 107 |
|
| 108 |
SET POINT TO "." |
| 109 |
|
| 110 |
sAgent = LOWER(ALLTRIM(request.servervariables("HTTP_USER_AGENT"))) |
| 111 |
|
| 112 |
IF AT("msie",sAgent) >0 .AND. AT("mac",sAgent)=0 .AND. AT("opera",sAgent)=0 |
| 113 |
iVersion=VAL(SUBSTR(sAgent,AT("msie",sAgent)+5,3)) |
| 114 |
llRetval= iVersion > 5.5 |
| 115 |
ELSE |
| 116 |
IF AT("gecko/",sAgent)>0 |
| 117 |
iVersion=VAL(SUBSTR(sAgent,AT("gecko/",sAgent)+6,8)) |
| 118 |
llRetval =iVersion > 20030210 |
| 119 |
ENDIF |
| 120 |
ELSE |
| 121 |
IF AT("opera/",sAgent)>0 |
| 122 |
iVersion=VAL(SUBSTR(sAgent,AT("opera/",sAgent)+6,4)) |
| 123 |
llRetval =iVersion >= 9.5 |
| 124 |
ENDIF |
| 125 |
ELSE |
| 126 |
IF AT("applewebkit/",sAgent)>0 |
| 127 |
iVersion=VAL(SUBSTR(sAgent,AT("applewebkit/",sAgent)+12,3)) |
| 128 |
llRetval =iVersion >= 522 |
| 129 |
ENDIF |
| 130 |
ENDIF |
| 131 |
|
| 132 |
SET POINT TO |
| 133 |
|
| 134 |
RETURN (llRetval) |
| 135 |
ENDFUNC |
| 136 |
|
| 137 |
&& ----------------------------------------------------------------------- |
| 138 |
FUNCTION GetConfigFieldString() |
| 139 |
LOCAL sParams |
| 140 |
LOCAL bFirst |
| 141 |
LOCAL sKey |
| 142 |
sParams = "" |
| 143 |
bFirst = .T. |
| 144 |
FOR lnLoop=1 TO 10 && ALEN(this.aconfig) |
| 145 |
IF !EMPTY(THIS.aConfig(lnLoop,1)) |
| 146 |
IF bFirst = .F. |
| 147 |
sParams = sParams + "&" |
| 148 |
ELSE |
| 149 |
bFirst = .F. |
| 150 |
ENDIF |
| 151 |
sParams = sParams +THIS.aConfig(lnLoop,1)+[=]+THIS.aConfig(lnLoop,2) |
| 152 |
ELSE |
| 153 |
EXIT |
| 154 |
ENDIF |
| 155 |
NEXT |
| 156 |
RETURN(sParams) |
| 157 |
ENDFUNC |
| 158 |
ENDDEFINE |
| 159 |
%> |
| 160 |
|