fck.afpa.code
165 lines
| 4.6 KiB
| text/plain
|
TextLexer
|
r0 | * FCKeditor - The text editor for Internet - http://www.fckeditor.net | ||
* Copyright (C) 2003-2008 Frederico Caldeira Knabben | ||||
* | ||||
* == BEGIN LICENSE == | ||||
* | ||||
* Licensed under the terms of any of the following licenses at your | ||||
* choice: | ||||
* | ||||
* - GNU General Public License Version 2 or later (the "GPL") | ||||
* http://www.gnu.org/licenses/gpl.html | ||||
* | ||||
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL") | ||||
* http://www.gnu.org/licenses/lgpl.html | ||||
* | ||||
* - Mozilla Public License Version 1.1 or later (the "MPL") | ||||
* http://www.mozilla.org/MPL/MPL-1.1.html | ||||
* | ||||
* == END LICENSE == | ||||
* | ||||
* This is the class definition file for the sample pages. | ||||
* | ||||
DEFINE CLASS fckeditor AS custom | ||||
cInstanceName ="" | ||||
BasePath ="" | ||||
cWIDTH ="" | ||||
cHEIGHT ="" | ||||
ToolbarSet ="" | ||||
cValue="" | ||||
DIMENSION aConfig(10,2) | ||||
&& ----------------------------------------------------------------------- | ||||
FUNCTION fckeditor( tcInstanceName ) | ||||
LOCAL lnLoop,lnLoop2 | ||||
THIS.cInstanceName = tcInstanceName | ||||
THIS.BasePath = '../../../FCKeditor/' | ||||
THIS.cWIDTH = '100%' | ||||
THIS.cHEIGHT = '200' | ||||
THIS.ToolbarSet = 'Default' | ||||
THIS.cValue = '' | ||||
FOR lnLoop=1 TO 10 | ||||
FOR lnLoop2=1 TO 2 | ||||
THIS.aConfig(lnLoop,lnLoop2) = "" | ||||
NEXT | ||||
NEXT | ||||
RETURN | ||||
ENDFUNC | ||||
&& ----------------------------------------------------------------------- | ||||
FUNCTION CREATE() | ||||
RETURN(THIS.CreateHtml()) | ||||
ENDFUNC | ||||
&& ----------------------------------------------------------------------- | ||||
FUNCTION CreateHtml() | ||||
LOCAL html | ||||
LOCAL lcLink | ||||
HtmlValue = THIS.cValue && HTMLSPECIALCHARS() | ||||
html = [<div>] | ||||
IF THIS.IsCompatible() | ||||
lcLink = THIS.BasePath+[editor/fckeditor.html?InstanceName=]+THIS.cInstanceName | ||||
IF ( !THIS.ToolbarSet == '' ) | ||||
lcLink = lcLink + [&Toolbar=]+THIS.ToolbarSet | ||||
ENDIF | ||||
&& Render the LINKED HIDDEN FIELD. | ||||
html = html + [<input type="hidden" id="]+THIS.cInstanceName +[" name="]+THIS.cInstanceName +[" value="]+HtmlValue+[">] | ||||
&& Render the configurations HIDDEN FIELD. | ||||
html = html + [<input type="hidden" id="]+THIS.cInstanceName +[___Config" value="]+THIS.GetConfigFieldString() + [">] +CHR(13)+CHR(10) | ||||
&& Render the EDITOR IFRAME. | ||||
html = html + [<iframe id="]+THIS.cInstanceName +[___Frame" src="]+lcLink+[" width="]+THIS.cWIDTH+[" height="]+THIS.cHEIGHT+[" frameborder="no" scrolling="no"></iframe>] | ||||
ELSE | ||||
IF ( AT("%", THIS.cWIDTH)=0 ) | ||||
WidthCSS = THIS.cWIDTH + 'px' | ||||
ELSE | ||||
WidthCSS = THIS.cWIDTH | ||||
ENDIF | ||||
IF ( AT("%",THIS.cHEIGHT)=0 ) | ||||
HeightCSS = THIS.cHEIGHT + 'px' | ||||
ELSE | ||||
HeightCSS = THIS.cHEIGHT | ||||
ENDIF | ||||
html = html + [<textarea name="]+THIS.cInstanceName +[" rows="4" cols="40" style="width: ]+WidthCSS+[ height: ]+HeightCSS+[" wrap="virtual">]+HtmlValue+[</textarea>] | ||||
ENDIF | ||||
html = html + [</div>] | ||||
RETURN (html) | ||||
ENDFUNC | ||||
&& ----------------------------------------------------------------------- | ||||
FUNCTION IsCompatible() | ||||
LOCAL llRetval | ||||
LOCAL sAgent | ||||
llRetval=.F. | ||||
sAgent= LOWER(Request.ServerVariables("HTTP_USER_AGENT")) | ||||
IF AT("msie",sAgent) >0 .AND. AT("mac",sAgent)=0 .AND. AT("opera",sAgent)=0 | ||||
iVersion=VAL(SUBSTR(sAgent,AT("msie",sAgent)+5,3)) | ||||
llRetval= iVersion > 5.5 | ||||
ELSE | ||||
IF AT("gecko",sAgent)>0 | ||||
iVersion=VAL(SUBSTR(sAgent,AT("gecko/",sAgent)+6,8)) | ||||
llRetval =iVersion > 20030210 | ||||
ENDIF | ||||
ENDIF | ||||
RETURN (llRetval) | ||||
ENDFUNC | ||||
&& ----------------------------------------------------------------------- | ||||
FUNCTION GetConfigFieldString() | ||||
LOCAL sParams | ||||
LOCAL bFirst | ||||
LOCAL sKey | ||||
sParams = "" | ||||
bFirst = .T. | ||||
FOR lnLoop=1 TO 10 && ALEN(this.aconfig) | ||||
IF !EMPTY(THIS.aConfig(lnLoop,1)) | ||||
IF bFirst = .F. | ||||
sParams = sParams + "&" | ||||
ELSE | ||||
bFirst = .F. | ||||
ENDIF | ||||
sParams = sParams +THIS.aConfig(lnLoop,1)+[=]+THIS.aConfig(lnLoop,2) | ||||
ELSE | ||||
EXIT | ||||
ENDIF | ||||
NEXT | ||||
RETURN(sParams) | ||||
ENDFUNC | ||||
&& ----------------------------------------------------------------------- | ||||
&& This function removes unwanted characters in URL parameters mostly entered by hackers | ||||
FUNCTION StripAttacks | ||||
LPARAMETERS tcString | ||||
IF !EMPTY(tcString) | ||||
tcString=STRTRAN(tcString,"&","") | ||||
tcString=STRTRAN(tcString,"?","") | ||||
tcString=STRTRAN(tcString,";","") | ||||
tcString=STRTRAN(tcString,"!","") | ||||
tcString=STRTRAN(tcString,"<%","") | ||||
tcString=STRTRAN(tcString,"%>","") | ||||
tcString=STRTRAN(tcString,"<","") | ||||
tcString=STRTRAN(tcString,">","") | ||||
tcString=STRTRAN(tcString,"..","") | ||||
tcString=STRTRAN(tcString,"/","") | ||||
tcString=STRTRAN(tcString,"\","") | ||||
tcString=STRTRAN(tcString,":","") | ||||
ELSE | ||||
tcString="" | ||||
ENDIF | ||||
RETURN (tcString) | ||||
ENDDEFINE | ||||