* FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 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 = [
] 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 + [] && Render the configurations HIDDEN FIELD. html = html + [] +CHR(13)+CHR(10) && Render the EDITOR IFRAME. html = html + [] 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 + [] ENDIF html = html + [
] 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