source: sandbox/filemanager/tp/fckeditor/fckeditor.cfm @ 1575

Revision 1575, 6.9 KB checked in by amuller, 14 years ago (diff)

Ticket #597 - Implentação, melhorias do modulo gerenciador de arquivos

  • Property svn:executable set to *
Line 
1<cfsetting enablecfoutputonly="Yes">
2<!---
3 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
4 * Copyright (C) 2003-2009 Frederico Caldeira Knabben
5 *
6 * == BEGIN LICENSE ==
7 *
8 * Licensed under the terms of any of the following licenses at your
9 * choice:
10 *
11 *  - GNU General Public License Version 2 or later (the "GPL")
12 *    http://www.gnu.org/licenses/gpl.html
13 *
14 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
15 *    http://www.gnu.org/licenses/lgpl.html
16 *
17 *  - Mozilla Public License Version 1.1 or later (the "MPL")
18 *    http://www.mozilla.org/MPL/MPL-1.1.html
19 *
20 * == END LICENSE ==
21 *
22 * ColdFusion integration.
23 * Note this module is created for use with Coldfusion 4.52 and above.
24 * For a cfc version for coldfusion mx check the fckeditor.cfc.
25 *
26 * Syntax:
27 *
28 * <cfmodule name="path/to/cfc/fckeditor"
29 *      instanceName="myEditor"
30 *      toolbarSet="..."
31 *      width="..."
32 *      height="..:"
33 *      value="..."
34 *      config="..."
35 * >
36--->
37<!--- ::
38         *      Attribute validation
39        :: --->
40<cfparam name="attributes.instanceName" type="string">
41<cfparam name="attributes.width"                type="string" default="100%">
42<cfparam name="attributes.height"               type="string" default="200">
43<cfparam name="attributes.toolbarSet"   type="string" default="Default">
44<cfparam name="attributes.value"                type="string" default="">
45<cfparam name="attributes.basePath"     type="string" default="/fckeditor/">
46<cfparam name="attributes.checkBrowser" type="boolean" default="true">
47<cfparam name="attributes.config"               type="struct" default="#structNew()#">
48<cfinclude template="fckutils.cfm">
49
50<!--- ::
51         * check browser compatibility via HTTP_USER_AGENT, if checkBrowser is true
52        :: --->
53
54<cfscript>
55if( attributes.checkBrowser )
56{
57        isCompatibleBrowser = FCKeditor_IsCompatibleBrowser();
58}
59else
60{
61        // If we should not check browser compatibility, assume true
62        isCompatibleBrowser = true;
63}
64</cfscript>
65
66<cfif isCompatibleBrowser>
67
68        <!--- ::
69                 * show html editor area for compatible browser
70                :: --->
71
72        <cfscript>
73                // try to fix the basePath, if ending slash is missing
74                if( len( attributes.basePath) and right( attributes.basePath, 1 ) is not "/" )
75                        attributes.basePath = attributes.basePath & "/";
76
77                // construct the url
78                sURL = attributes.basePath & "editor/fckeditor.html?InstanceName=" & attributes.instanceName;
79
80                // append toolbarset name to the url
81                if( len( attributes.toolbarSet ) )
82                        sURL = sURL & "&amp;Toolbar=" & attributes.toolbarSet;
83
84                // create configuration string: Key1=Value1&Key2=Value2&... (Key/Value:HTML encoded)
85
86                /**
87                 * CFML doesn't store casesensitive names for structure keys, but the configuration names must be casesensitive for js.
88                 * So we need to find out the correct case for the configuration keys.
89                 * We "fix" this by comparing the caseless configuration keys to a list of all available configuration options in the correct case.
90                 * changed 20041206 hk@lwd.de (improvements are welcome!)
91                 */
92                lConfigKeys = "";
93                lConfigKeys = lConfigKeys & "CustomConfigurationsPath,EditorAreaCSS,ToolbarComboPreviewCSS,DocType";
94                lConfigKeys = lConfigKeys & ",BaseHref,FullPage,Debug,AllowQueryStringDebug,SkinPath";
95                lConfigKeys = lConfigKeys & ",PreloadImages,PluginsPath,AutoDetectLanguage,DefaultLanguage,ContentLangDirection";
96                lConfigKeys = lConfigKeys & ",ProcessHTMLEntities,IncludeLatinEntities,IncludeGreekEntities,ProcessNumericEntities,AdditionalNumericEntities";
97                lConfigKeys = lConfigKeys & ",FillEmptyBlocks,FormatSource,FormatOutput,FormatIndentator";
98                lConfigKeys = lConfigKeys & ",StartupFocus,ForcePasteAsPlainText,AutoDetectPasteFromWord,ForceSimpleAmpersand";
99                lConfigKeys = lConfigKeys & ",TabSpaces,ShowBorders,SourcePopup,ToolbarStartExpanded,ToolbarCanCollapse";
100                lConfigKeys = lConfigKeys & ",IgnoreEmptyParagraphValue,FloatingPanelsZIndex,TemplateReplaceAll,TemplateReplaceCheckbox";
101                lConfigKeys = lConfigKeys & ",ToolbarLocation,ToolbarSets,EnterMode,ShiftEnterMode,Keystrokes";
102                lConfigKeys = lConfigKeys & ",ContextMenu,BrowserContextMenuOnCtrl,FontColors,FontNames,FontSizes";
103                lConfigKeys = lConfigKeys & ",FontFormats,StylesXmlPath,TemplatesXmlPath,SpellChecker,IeSpellDownloadUrl";
104                lConfigKeys = lConfigKeys & ",SpellerPagesServerScript,FirefoxSpellChecker,MaxUndoLevels,DisableObjectResizing,DisableFFTableHandles";
105                lConfigKeys = lConfigKeys & ",LinkDlgHideTarget ,LinkDlgHideAdvanced,ImageDlgHideLink   ,ImageDlgHideAdvanced,FlashDlgHideAdvanced";
106                lConfigKeys = lConfigKeys & ",ProtectedTags,BodyId,BodyClass,DefaultLinkTarget,CleanWordKeepsStructure";
107                lConfigKeys = lConfigKeys & ",LinkBrowser,LinkBrowserURL,LinkBrowserWindowWidth,LinkBrowserWindowHeight,ImageBrowser";
108                lConfigKeys = lConfigKeys & ",ImageBrowserURL,ImageBrowserWindowWidth,ImageBrowserWindowHeight,FlashBrowser,FlashBrowserURL";
109                lConfigKeys = lConfigKeys & ",FlashBrowserWindowWidth ,FlashBrowserWindowHeight,LinkUpload,LinkUploadURL,LinkUploadWindowWidth";
110                lConfigKeys = lConfigKeys & ",LinkUploadWindowHeight,LinkUploadAllowedExtensions,LinkUploadDeniedExtensions,ImageUpload,ImageUploadURL";
111                lConfigKeys = lConfigKeys & ",ImageUploadAllowedExtensions,ImageUploadDeniedExtensions,FlashUpload,FlashUploadURL,FlashUploadAllowedExtensions";
112                lConfigKeys = lConfigKeys & ",FlashUploadDeniedExtensions,SmileyPath,SmileyImages,SmileyColumns,SmileyWindowWidth,SmileyWindowHeight";
113
114                sConfig = "";
115
116                for( key in attributes.config )
117                {
118                        iPos = listFindNoCase( lConfigKeys, key );
119                        if( iPos GT 0 )
120                        {
121                                if( len( sConfig ) )
122                                        sConfig = sConfig & "&amp;";
123
124                                fieldValue = attributes.config[key];
125                                fieldName = listGetAt( lConfigKeys, iPos );
126
127                                sConfig = sConfig & urlEncodedFormat( fieldName ) & '=' & urlEncodedFormat( fieldValue );
128                        }
129                }
130        </cfscript>
131
132        <cfoutput>
133        <input type="hidden" id="#attributes.instanceName#" name="#attributes.instanceName#" value="#HTMLEditFormat(attributes.value)#" style="display:none" />
134        <input type="hidden" id="#attributes.instanceName#___Config" value="#sConfig#" style="display:none" />
135        <iframe id="#attributes.instanceName#___Frame" src="#sURL#" width="#attributes.width#" height="#attributes.height#" frameborder="0" scrolling="no"></iframe>
136        </cfoutput>
137
138<cfelse>
139
140        <!--- ::
141                 * show plain textarea for non compatible browser
142                :: --->
143
144        <cfscript>
145                // append unit "px" for numeric width and/or height values
146                if( isNumeric( attributes.width ) )
147                        attributes.width = attributes.width & "px";
148                if( isNumeric( attributes.height ) )
149                        attributes.height = attributes.height & "px";
150        </cfscript>
151
152        <!--- Fixed Bug ##1075166. hk@lwd.de 20041206 --->
153        <cfoutput>
154        <textarea name="#attributes.instanceName#" rows="4" cols="40" style="WIDTH: #attributes.width#; HEIGHT: #attributes.height#">#HTMLEditFormat(attributes.value)#</textarea>
155        </cfoutput>
156
157</cfif>
158
159<cfsetting enablecfoutputonly="No"><cfexit method="exittag">
Note: See TracBrowser for help on using the repository browser.