Wiki2GoEditor 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/Wiki2Go_install_editor.rb +13 -0
- data/fckeditor/editor/_source/classes/fckcontextmenu.js +134 -0
- data/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js +46 -0
- data/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js +58 -0
- data/fckeditor/editor/_source/classes/fckdomrange.js +452 -0
- data/fckeditor/editor/_source/classes/fckdomrange_gecko.js +71 -0
- data/fckeditor/editor/_source/classes/fckdomrange_ie.js +149 -0
- data/fckeditor/editor/_source/classes/fckeditingarea.js +253 -0
- data/fckeditor/editor/_source/classes/fckelementpath.js +66 -0
- data/fckeditor/editor/_source/classes/fckenterkey.js +556 -0
- data/fckeditor/editor/_source/classes/fckevents.js +53 -0
- data/fckeditor/editor/_source/classes/fckicon.js +98 -0
- data/fckeditor/editor/_source/classes/fckiecleanup.js +68 -0
- data/fckeditor/editor/_source/classes/fckimagepreloader.js +68 -0
- data/fckeditor/editor/_source/classes/fckkeystrokehandler.js +136 -0
- data/fckeditor/editor/_source/classes/fckmenublock.js +143 -0
- data/fckeditor/editor/_source/classes/fckmenublockpanel.js +54 -0
- data/fckeditor/editor/_source/classes/fckmenuitem.js +160 -0
- data/fckeditor/editor/_source/classes/fckpanel.js +303 -0
- data/fckeditor/editor/_source/classes/fckplugin.js +56 -0
- data/fckeditor/editor/_source/classes/fckspecialcombo.js +363 -0
- data/fckeditor/editor/_source/classes/fckstyledef.js +59 -0
- data/fckeditor/editor/_source/classes/fckstyledef_gecko.js +119 -0
- data/fckeditor/editor/_source/classes/fckstyledef_ie.js +142 -0
- data/fckeditor/editor/_source/classes/fckstylesloader.js +88 -0
- data/fckeditor/editor/_source/classes/fcktoolbar.js +120 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js +36 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js +38 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbutton.js +74 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js +222 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js +114 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js +47 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js +52 -0
- data/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js +91 -0
- data/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js +134 -0
- data/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js +111 -0
- data/fckeditor/editor/_source/classes/fckw3crange.js +448 -0
- data/fckeditor/editor/_source/classes/fckxml_gecko.js +87 -0
- data/fckeditor/editor/_source/classes/fckxml_ie.js +90 -0
- data/fckeditor/editor/_source/commandclasses/fck_othercommands.js +380 -0
- data/fckeditor/editor/_source/commandclasses/fckfitwindow.js +169 -0
- data/fckeditor/editor/_source/commandclasses/fcknamedcommand.js +37 -0
- data/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js +38 -0
- data/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js +40 -0
- data/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js +39 -0
- data/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js +67 -0
- data/fckeditor/editor/_source/commandclasses/fckstylecommand.js +99 -0
- data/fckeditor/editor/_source/commandclasses/fcktablecommand.js +71 -0
- data/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js +175 -0
- data/fckeditor/editor/_source/fckconstants.js +52 -0
- data/fckeditor/editor/_source/fckeditorapi.js +161 -0
- data/fckeditor/editor/_source/fckjscoreextensions.js +152 -0
- data/fckeditor/editor/_source/fckscriptloader.js +108 -0
- data/fckeditor/editor/_source/internals/fck.js +859 -0
- data/fckeditor/editor/_source/internals/fck_contextmenu.js +307 -0
- data/fckeditor/editor/_source/internals/fck_gecko.js +254 -0
- data/fckeditor/editor/_source/internals/fck_ie.js +383 -0
- data/fckeditor/editor/_source/internals/fckbrowserinfo.js +48 -0
- data/fckeditor/editor/_source/internals/fckcodeformatter.js +100 -0
- data/fckeditor/editor/_source/internals/fckcommands.js +132 -0
- data/fckeditor/editor/_source/internals/fckconfig.js +199 -0
- data/fckeditor/editor/_source/internals/fckdebug.js +56 -0
- data/fckeditor/editor/_source/internals/fckdialog.js +38 -0
- data/fckeditor/editor/_source/internals/fckdialog_gecko.js +103 -0
- data/fckeditor/editor/_source/internals/fckdialog_ie.js +48 -0
- data/fckeditor/editor/_source/internals/fckdocumentprocessor.js +243 -0
- data/fckeditor/editor/_source/internals/fckdomtools.js +294 -0
- data/fckeditor/editor/_source/internals/fcklanguagemanager.js +161 -0
- data/fckeditor/editor/_source/internals/fcklisthandler.js +152 -0
- data/fckeditor/editor/_source/internals/fcklistslib.js +60 -0
- data/fckeditor/editor/_source/internals/fckplugins.js +46 -0
- data/fckeditor/editor/_source/internals/fckregexlib.js +95 -0
- data/fckeditor/editor/_source/internals/fckselection.js +24 -0
- data/fckeditor/editor/_source/internals/fckselection_gecko.js +151 -0
- data/fckeditor/editor/_source/internals/fckselection_ie.js +158 -0
- data/fckeditor/editor/_source/internals/fcktablehandler.js +385 -0
- data/fckeditor/editor/_source/internals/fcktablehandler_gecko.js +57 -0
- data/fckeditor/editor/_source/internals/fcktablehandler_ie.js +58 -0
- data/fckeditor/editor/_source/internals/fcktoolbaritems.js +121 -0
- data/fckeditor/editor/_source/internals/fcktoolbarset.js +357 -0
- data/fckeditor/editor/_source/internals/fcktools.js +225 -0
- data/fckeditor/editor/_source/internals/fcktools_gecko.js +235 -0
- data/fckeditor/editor/_source/internals/fcktools_ie.js +214 -0
- data/fckeditor/editor/_source/internals/fckundo_gecko.js +27 -0
- data/fckeditor/editor/_source/internals/fckundo_ie.js +123 -0
- data/fckeditor/editor/_source/internals/fckurlparams.js +39 -0
- data/fckeditor/editor/_source/internals/fckxhtml.js +466 -0
- data/fckeditor/editor/_source/internals/fckxhtml_gecko.js +66 -0
- data/fckeditor/editor/_source/internals/fckxhtml_ie.js +194 -0
- data/fckeditor/editor/_source/internals/fckxhtmlentities.js +345 -0
- data/fckeditor/editor/css/behaviors/disablehandles.htc +15 -0
- data/fckeditor/editor/css/behaviors/showtableborders.htc +36 -0
- data/fckeditor/editor/css/fck_editorarea.css +91 -0
- data/fckeditor/editor/css/fck_internal.css +111 -0
- data/fckeditor/editor/css/fck_showtableborders_gecko.css +42 -0
- data/fckeditor/editor/css/images/fck_anchor.gif +0 -0
- data/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
- data/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
- data/fckeditor/editor/css/images/fck_pagebreak.gif +0 -0
- data/fckeditor/editor/dialog/common/fck_dialog_common.css +83 -0
- data/fckeditor/editor/dialog/common/fck_dialog_common.js +154 -0
- data/fckeditor/editor/dialog/common/fcknumericfield.htc +24 -0
- data/fckeditor/editor/dialog/common/images/locked.gif +0 -0
- data/fckeditor/editor/dialog/common/images/reset.gif +0 -0
- data/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
- data/fckeditor/editor/dialog/common/moz-bindings.xml +30 -0
- data/fckeditor/editor/dialog/fck_about.html +155 -0
- data/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
- data/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
- data/fckeditor/editor/dialog/fck_anchor.html +227 -0
- data/fckeditor/editor/dialog/fck_button.html +107 -0
- data/fckeditor/editor/dialog/fck_checkbox.html +107 -0
- data/fckeditor/editor/dialog/fck_colorselector.html +171 -0
- data/fckeditor/editor/dialog/fck_docprops.html +600 -0
- data/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +113 -0
- data/fckeditor/editor/dialog/fck_find.html +173 -0
- data/fckeditor/editor/dialog/fck_flash.html +146 -0
- data/fckeditor/editor/dialog/fck_flash/fck_flash.js +288 -0
- data/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +46 -0
- data/fckeditor/editor/dialog/fck_form.html +105 -0
- data/fckeditor/editor/dialog/fck_hiddenfield.html +116 -0
- data/fckeditor/editor/dialog/fck_image.html +252 -0
- data/fckeditor/editor/dialog/fck_image/fck_image.js +486 -0
- data/fckeditor/editor/dialog/fck_image/fck_image_preview.html +66 -0
- data/fckeditor/editor/dialog/fck_link.html +293 -0
- data/fckeditor/editor/dialog/fck_link/fck_link.js +664 -0
- data/fckeditor/editor/dialog/fck_listprop.html +116 -0
- data/fckeditor/editor/dialog/fck_paste.html +285 -0
- data/fckeditor/editor/dialog/fck_radiobutton.html +107 -0
- data/fckeditor/editor/dialog/fck_replace.html +156 -0
- data/fckeditor/editor/dialog/fck_select.html +176 -0
- data/fckeditor/editor/dialog/fck_select/fck_select.js +169 -0
- data/fckeditor/editor/dialog/fck_smiley.html +105 -0
- data/fckeditor/editor/dialog/fck_source.html +65 -0
- data/fckeditor/editor/dialog/fck_specialchar.html +113 -0
- data/fckeditor/editor/dialog/fck_spellerpages.html +64 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +87 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +153 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +174 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +196 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +180 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +462 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +71 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +49 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +272 -0
- data/fckeditor/editor/dialog/fck_table.html +286 -0
- data/fckeditor/editor/dialog/fck_tablecell.html +255 -0
- data/fckeditor/editor/dialog/fck_template.html +242 -0
- data/fckeditor/editor/dialog/fck_template/images/template1.gif +0 -0
- data/fckeditor/editor/dialog/fck_template/images/template2.gif +0 -0
- data/fckeditor/editor/dialog/fck_template/images/template3.gif +0 -0
- data/fckeditor/editor/dialog/fck_textarea.html +94 -0
- data/fckeditor/editor/dialog/fck_textfield.html +139 -0
- data/fckeditor/editor/fckdebug.html +153 -0
- data/fckeditor/editor/fckdialog.html +324 -0
- data/fckeditor/editor/fckeditor.html +227 -0
- data/fckeditor/editor/fckeditor.original.html +319 -0
- data/fckeditor/editor/filemanager/browser/default/browser.css +88 -0
- data/fckeditor/editor/filemanager/browser/default/browser.html +154 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp +62 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp +234 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp +183 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp +49 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp +124 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp +89 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp +55 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx +30 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm +99 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm +363 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso +65 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso +249 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl +63 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl +158 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi +137 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl +131 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl +667 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl +60 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php +75 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php +222 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/config.php +56 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php +113 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/io.php +101 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/util.php +41 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py +785 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/test.html +180 -0
- data/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +67 -0
- data/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +113 -0
- data/fckeditor/editor/filemanager/browser/default/frmfolders.html +196 -0
- data/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +160 -0
- data/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +65 -0
- data/fckeditor/editor/filemanager/browser/default/frmupload.html +113 -0
- data/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/js/common.js +55 -0
- data/fckeditor/editor/filemanager/browser/default/js/fckxml.js +130 -0
- data/fckeditor/editor/filemanager/upload/asp/class_upload.asp +234 -0
- data/fckeditor/editor/filemanager/upload/asp/config.asp +52 -0
- data/fckeditor/editor/filemanager/upload/asp/io.asp +29 -0
- data/fckeditor/editor/filemanager/upload/asp/upload.asp +121 -0
- data/fckeditor/editor/filemanager/upload/aspx/upload.aspx +30 -0
- data/fckeditor/editor/filemanager/upload/cfm/config.cfm +98 -0
- data/fckeditor/editor/filemanager/upload/cfm/upload.cfm +168 -0
- data/fckeditor/editor/filemanager/upload/lasso/config.lasso +65 -0
- data/fckeditor/editor/filemanager/upload/lasso/upload.lasso +157 -0
- data/fckeditor/editor/filemanager/upload/php/config.php +56 -0
- data/fckeditor/editor/filemanager/upload/php/upload.php +124 -0
- data/fckeditor/editor/filemanager/upload/php/util.php +40 -0
- data/fckeditor/editor/filemanager/upload/test.html +133 -0
- data/fckeditor/editor/images/anchor.gif +0 -0
- data/fckeditor/editor/images/arrow_ltr.gif +0 -0
- data/fckeditor/editor/images/arrow_rtl.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
- data/fckeditor/editor/images/spacer.gif +0 -0
- data/fckeditor/editor/js/fckeditorcode_gecko.js +98 -0
- data/fckeditor/editor/js/fckeditorcode_ie.js +99 -0
- data/fckeditor/editor/lang/_getfontformat.html +85 -0
- data/fckeditor/editor/lang/_translationstatus.txt +76 -0
- data/fckeditor/editor/lang/af.js +504 -0
- data/fckeditor/editor/lang/ar.js +504 -0
- data/fckeditor/editor/lang/bg.js +504 -0
- data/fckeditor/editor/lang/bn.js +504 -0
- data/fckeditor/editor/lang/bs.js +504 -0
- data/fckeditor/editor/lang/ca.js +504 -0
- data/fckeditor/editor/lang/cs.js +504 -0
- data/fckeditor/editor/lang/da.js +504 -0
- data/fckeditor/editor/lang/de.js +504 -0
- data/fckeditor/editor/lang/el.js +504 -0
- data/fckeditor/editor/lang/en-au.js +504 -0
- data/fckeditor/editor/lang/en-ca.js +504 -0
- data/fckeditor/editor/lang/en-uk.js +504 -0
- data/fckeditor/editor/lang/en.js +504 -0
- data/fckeditor/editor/lang/eo.js +504 -0
- data/fckeditor/editor/lang/es.js +504 -0
- data/fckeditor/editor/lang/et.js +504 -0
- data/fckeditor/editor/lang/eu.js +505 -0
- data/fckeditor/editor/lang/fa.js +504 -0
- data/fckeditor/editor/lang/fi.js +504 -0
- data/fckeditor/editor/lang/fo.js +504 -0
- data/fckeditor/editor/lang/fr.js +504 -0
- data/fckeditor/editor/lang/gl.js +504 -0
- data/fckeditor/editor/lang/he.js +504 -0
- data/fckeditor/editor/lang/hi.js +504 -0
- data/fckeditor/editor/lang/hr.js +504 -0
- data/fckeditor/editor/lang/hu.js +504 -0
- data/fckeditor/editor/lang/it.js +504 -0
- data/fckeditor/editor/lang/ja.js +504 -0
- data/fckeditor/editor/lang/km.js +504 -0
- data/fckeditor/editor/lang/ko.js +504 -0
- data/fckeditor/editor/lang/lt.js +504 -0
- data/fckeditor/editor/lang/lv.js +504 -0
- data/fckeditor/editor/lang/mn.js +504 -0
- data/fckeditor/editor/lang/ms.js +504 -0
- data/fckeditor/editor/lang/nb.js +504 -0
- data/fckeditor/editor/lang/nl.js +504 -0
- data/fckeditor/editor/lang/no.js +504 -0
- data/fckeditor/editor/lang/pl.js +504 -0
- data/fckeditor/editor/lang/pt-br.js +504 -0
- data/fckeditor/editor/lang/pt.js +504 -0
- data/fckeditor/editor/lang/ro.js +504 -0
- data/fckeditor/editor/lang/ru.js +504 -0
- data/fckeditor/editor/lang/sk.js +504 -0
- data/fckeditor/editor/lang/sl.js +504 -0
- data/fckeditor/editor/lang/sr-latn.js +504 -0
- data/fckeditor/editor/lang/sr.js +504 -0
- data/fckeditor/editor/lang/sv.js +504 -0
- data/fckeditor/editor/lang/th.js +504 -0
- data/fckeditor/editor/lang/tr.js +504 -0
- data/fckeditor/editor/lang/uk.js +504 -0
- data/fckeditor/editor/lang/vi.js +504 -0
- data/fckeditor/editor/lang/zh-cn.js +504 -0
- data/fckeditor/editor/lang/zh.js +504 -0
- data/fckeditor/editor/plugins/autogrow/fckplugin.js +92 -0
- data/fckeditor/editor/plugins/placeholder/fck_placeholder.html +100 -0
- data/fckeditor/editor/plugins/placeholder/fckplugin.js +187 -0
- data/fckeditor/editor/plugins/placeholder/lang/de.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/en.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/fr.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/it.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/pl.js +27 -0
- data/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
- data/fckeditor/editor/plugins/simplecommands/fckplugin.js +29 -0
- data/fckeditor/editor/plugins/tablecommands/fckplugin.js +32 -0
- data/fckeditor/editor/skins/_fckviewstrips.html +121 -0
- data/fckeditor/editor/skins/default/fck_dialog.css +137 -0
- data/fckeditor/editor/skins/default/fck_editor.css +464 -0
- data/fckeditor/editor/skins/default/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.start.gif +0 -0
- data/fckeditor/editor/skins/office2003/fck_dialog.css +138 -0
- data/fckeditor/editor/skins/office2003/fck_editor.css +476 -0
- data/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
- data/fckeditor/editor/skins/silver/fck_dialog.css +141 -0
- data/fckeditor/editor/skins/silver/fck_editor.css +473 -0
- data/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.start.gif +0 -0
- data/fckeditor/fckconfig.js +224 -0
- data/fckeditor/fckeditor.js +214 -0
- data/fckeditor/fckstyles.xml +53 -0
- data/fckeditor/fcktemplates.xml +103 -0
- data/lib/Wiki2GoEditor/Install/editor.rb +39 -0
- data/test/test_install.rb +40 -0
- metadata +517 -0
@@ -0,0 +1,101 @@
|
|
1
|
+
<?php
|
2
|
+
/*
|
3
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
4
|
+
* Copyright (C) 2003-2007 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
|
+
* This is the File Manager Connector for PHP.
|
23
|
+
*/
|
24
|
+
|
25
|
+
function GetUrlFromPath( $resourceType, $folderPath )
|
26
|
+
{
|
27
|
+
if ( $resourceType == '' )
|
28
|
+
return RemoveFromEnd( $GLOBALS["UserFilesPath"], '/' ) . $folderPath ;
|
29
|
+
else
|
30
|
+
return $GLOBALS["UserFilesPath"] . strtolower( $resourceType ) . $folderPath ;
|
31
|
+
}
|
32
|
+
|
33
|
+
function RemoveExtension( $fileName )
|
34
|
+
{
|
35
|
+
return substr( $fileName, 0, strrpos( $fileName, '.' ) ) ;
|
36
|
+
}
|
37
|
+
|
38
|
+
function ServerMapFolder( $resourceType, $folderPath )
|
39
|
+
{
|
40
|
+
// Get the resource type directory.
|
41
|
+
$sResourceTypePath = $GLOBALS["UserFilesDirectory"] . strtolower( $resourceType ) . '/' ;
|
42
|
+
|
43
|
+
// Ensure that the directory exists.
|
44
|
+
CreateServerFolder( $sResourceTypePath ) ;
|
45
|
+
|
46
|
+
// Return the resource type directory combined with the required path.
|
47
|
+
return $sResourceTypePath . RemoveFromStart( $folderPath, '/' ) ;
|
48
|
+
}
|
49
|
+
|
50
|
+
function GetParentFolder( $folderPath )
|
51
|
+
{
|
52
|
+
$sPattern = "-[/\\\\][^/\\\\]+[/\\\\]?$-" ;
|
53
|
+
return preg_replace( $sPattern, '', $folderPath ) ;
|
54
|
+
}
|
55
|
+
|
56
|
+
function CreateServerFolder( $folderPath )
|
57
|
+
{
|
58
|
+
$sParent = GetParentFolder( $folderPath ) ;
|
59
|
+
|
60
|
+
// Check if the parent exists, or create it.
|
61
|
+
if ( !file_exists( $sParent ) )
|
62
|
+
{
|
63
|
+
$sErrorMsg = CreateServerFolder( $sParent ) ;
|
64
|
+
if ( $sErrorMsg != '' )
|
65
|
+
return $sErrorMsg ;
|
66
|
+
}
|
67
|
+
|
68
|
+
if ( !file_exists( $folderPath ) )
|
69
|
+
{
|
70
|
+
// Turn off all error reporting.
|
71
|
+
error_reporting( 0 ) ;
|
72
|
+
// Enable error tracking to catch the error.
|
73
|
+
ini_set( 'track_errors', '1' ) ;
|
74
|
+
|
75
|
+
// To create the folder with 0777 permissions, we need to set umask to zero.
|
76
|
+
$oldumask = umask(0) ;
|
77
|
+
mkdir( $folderPath, 0777 ) ;
|
78
|
+
umask( $oldumask ) ;
|
79
|
+
|
80
|
+
$sErrorMsg = $php_errormsg ;
|
81
|
+
|
82
|
+
// Restore the configurations.
|
83
|
+
ini_restore( 'track_errors' ) ;
|
84
|
+
ini_restore( 'error_reporting' ) ;
|
85
|
+
|
86
|
+
return $sErrorMsg ;
|
87
|
+
}
|
88
|
+
else
|
89
|
+
return '' ;
|
90
|
+
}
|
91
|
+
|
92
|
+
function GetRootPath()
|
93
|
+
{
|
94
|
+
$sRealPath = realpath( './' ) ;
|
95
|
+
|
96
|
+
$sSelfPath = $_SERVER['PHP_SELF'] ;
|
97
|
+
$sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) ) ;
|
98
|
+
|
99
|
+
return substr( $sRealPath, 0, strlen( $sRealPath ) - strlen( $sSelfPath ) ) ;
|
100
|
+
}
|
101
|
+
?>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<?php
|
2
|
+
/*
|
3
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
4
|
+
* Copyright (C) 2003-2007 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
|
+
* Utility functions for the File Manager Connector for PHP.
|
23
|
+
*/
|
24
|
+
|
25
|
+
function RemoveFromStart( $sourceString, $charToRemove )
|
26
|
+
{
|
27
|
+
$sPattern = '|^' . $charToRemove . '+|' ;
|
28
|
+
return preg_replace( $sPattern, '', $sourceString ) ;
|
29
|
+
}
|
30
|
+
|
31
|
+
function RemoveFromEnd( $sourceString, $charToRemove )
|
32
|
+
{
|
33
|
+
$sPattern = '|' . $charToRemove . '+$|' ;
|
34
|
+
return preg_replace( $sPattern, '', $sourceString ) ;
|
35
|
+
}
|
36
|
+
|
37
|
+
function ConvertToXmlAttribute( $value )
|
38
|
+
{
|
39
|
+
return utf8_encode( htmlspecialchars( $value ) ) ;
|
40
|
+
}
|
41
|
+
?>
|
@@ -0,0 +1,785 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
|
3
|
+
"""
|
4
|
+
FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
5
|
+
Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
6
|
+
|
7
|
+
== BEGIN LICENSE ==
|
8
|
+
|
9
|
+
Licensed under the terms of any of the following licenses at your
|
10
|
+
choice:
|
11
|
+
|
12
|
+
- GNU General Public License Version 2 or later (the "GPL")
|
13
|
+
http://www.gnu.org/licenses/gpl.html
|
14
|
+
|
15
|
+
- GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
16
|
+
http://www.gnu.org/licenses/lgpl.html
|
17
|
+
|
18
|
+
- Mozilla Public License Version 1.1 or later (the "MPL")
|
19
|
+
http://www.mozilla.org/MPL/MPL-1.1.html
|
20
|
+
|
21
|
+
== END LICENSE ==
|
22
|
+
|
23
|
+
Connector for Python.
|
24
|
+
|
25
|
+
Tested With:
|
26
|
+
Standard:
|
27
|
+
Python 2.3.3
|
28
|
+
Zope:
|
29
|
+
Zope Version: (Zope 2.8.1-final, python 2.3.5, linux2)
|
30
|
+
Python Version: 2.3.5 (#4, Mar 10 2005, 01:40:25)
|
31
|
+
[GCC 3.3.3 20040412 (Red Hat Linux 3.3.3-7)]
|
32
|
+
System Platform: linux2
|
33
|
+
"""
|
34
|
+
|
35
|
+
"""
|
36
|
+
Author Notes (04 December 2005):
|
37
|
+
This module has gone through quite a few phases of change. Obviously,
|
38
|
+
I am only supporting that part of the code that I use. Initially
|
39
|
+
I had the upload directory as a part of zope (ie. uploading files
|
40
|
+
directly into Zope), before realising that there were too many
|
41
|
+
complex intricacies within Zope to deal with. Zope is one ugly piece
|
42
|
+
of code. So I decided to complement Zope by an Apache server (which
|
43
|
+
I had running anyway, and doing nothing). So I mapped all uploads
|
44
|
+
from an arbitrary server directory to an arbitrary web directory.
|
45
|
+
All the FCKeditor uploading occurred this way, and I didn't have to
|
46
|
+
stuff around with fiddling with Zope objects and the like (which are
|
47
|
+
terribly complex and something you don't want to do - trust me).
|
48
|
+
|
49
|
+
Maybe a Zope expert can touch up the Zope components. In the end,
|
50
|
+
I had FCKeditor loaded in Zope (probably a bad idea as well), and
|
51
|
+
I replaced the connector.py with an alias to a server module.
|
52
|
+
Right now, all Zope components will simple remain as is because
|
53
|
+
I've had enough of Zope.
|
54
|
+
|
55
|
+
See notes right at the end of this file for how I aliased out of Zope.
|
56
|
+
|
57
|
+
Anyway, most of you probably wont use Zope, so things are pretty
|
58
|
+
simple in that regard.
|
59
|
+
|
60
|
+
Typically, SERVER_DIR is the root of WEB_DIR (not necessarily).
|
61
|
+
Most definitely, SERVER_USERFILES_DIR points to WEB_USERFILES_DIR.
|
62
|
+
"""
|
63
|
+
|
64
|
+
import cgi
|
65
|
+
import re
|
66
|
+
import os
|
67
|
+
import string
|
68
|
+
|
69
|
+
"""
|
70
|
+
escape
|
71
|
+
|
72
|
+
Converts the special characters '<', '>', and '&'.
|
73
|
+
|
74
|
+
RFC 1866 specifies that these characters be represented
|
75
|
+
in HTML as < > and & respectively. In Python
|
76
|
+
1.5 we use the new string.replace() function for speed.
|
77
|
+
"""
|
78
|
+
def escape(text, replace=string.replace):
|
79
|
+
text = replace(text, '&', '&') # must be done 1st
|
80
|
+
text = replace(text, '<', '<')
|
81
|
+
text = replace(text, '>', '>')
|
82
|
+
text = replace(text, '"', '"')
|
83
|
+
return text
|
84
|
+
|
85
|
+
"""
|
86
|
+
getFCKeditorConnector
|
87
|
+
|
88
|
+
Creates a new instance of an FCKeditorConnector, and runs it
|
89
|
+
"""
|
90
|
+
def getFCKeditorConnector(context=None):
|
91
|
+
# Called from Zope. Passes the context through
|
92
|
+
connector = FCKeditorConnector(context=context)
|
93
|
+
return connector.run()
|
94
|
+
|
95
|
+
|
96
|
+
"""
|
97
|
+
FCKeditorRequest
|
98
|
+
|
99
|
+
A wrapper around the request object
|
100
|
+
Can handle normal CGI request, or a Zope request
|
101
|
+
Extend as required
|
102
|
+
"""
|
103
|
+
class FCKeditorRequest(object):
|
104
|
+
def __init__(self, context=None):
|
105
|
+
if (context is not None):
|
106
|
+
r = context.REQUEST
|
107
|
+
else:
|
108
|
+
r = cgi.FieldStorage()
|
109
|
+
self.context = context
|
110
|
+
self.request = r
|
111
|
+
|
112
|
+
def isZope(self):
|
113
|
+
if (self.context is not None):
|
114
|
+
return True
|
115
|
+
return False
|
116
|
+
|
117
|
+
def has_key(self, key):
|
118
|
+
return self.request.has_key(key)
|
119
|
+
|
120
|
+
def get(self, key, default=None):
|
121
|
+
value = None
|
122
|
+
if (self.isZope()):
|
123
|
+
value = self.request.get(key, default)
|
124
|
+
else:
|
125
|
+
if key in self.request.keys():
|
126
|
+
value = self.request[key].value
|
127
|
+
else:
|
128
|
+
value = default
|
129
|
+
return value
|
130
|
+
|
131
|
+
"""
|
132
|
+
FCKeditorConnector
|
133
|
+
|
134
|
+
The connector class
|
135
|
+
"""
|
136
|
+
class FCKeditorConnector(object):
|
137
|
+
# Configuration for FCKEditor
|
138
|
+
# can point to another server here, if linked correctly
|
139
|
+
#WEB_HOST = "http://127.0.0.1/"
|
140
|
+
WEB_HOST = ""
|
141
|
+
SERVER_DIR = "/var/www/html/"
|
142
|
+
|
143
|
+
WEB_USERFILES_FOLDER = WEB_HOST + "upload/"
|
144
|
+
SERVER_USERFILES_FOLDER = SERVER_DIR + "upload/"
|
145
|
+
|
146
|
+
# Allow access (Zope)
|
147
|
+
__allow_access_to_unprotected_subobjects__ = 1
|
148
|
+
# Class Attributes
|
149
|
+
parentFolderRe = re.compile("[\/][^\/]+[\/]?$")
|
150
|
+
|
151
|
+
"""
|
152
|
+
Constructor
|
153
|
+
"""
|
154
|
+
def __init__(self, context=None):
|
155
|
+
# The given root path will NOT be shown to the user
|
156
|
+
# Only the userFilesPath will be shown
|
157
|
+
|
158
|
+
# Instance Attributes
|
159
|
+
self.context = context
|
160
|
+
self.request = FCKeditorRequest(context=context)
|
161
|
+
self.rootPath = self.SERVER_DIR
|
162
|
+
self.userFilesFolder = self.SERVER_USERFILES_FOLDER
|
163
|
+
self.webUserFilesFolder = self.WEB_USERFILES_FOLDER
|
164
|
+
|
165
|
+
# Enables / Disables the connector
|
166
|
+
self.enabled = False # Set to True to enable this connector
|
167
|
+
|
168
|
+
# These are instance variables
|
169
|
+
self.zopeRootContext = None
|
170
|
+
self.zopeUploadContext = None
|
171
|
+
|
172
|
+
# Copied from php module =)
|
173
|
+
self.allowedExtensions = {
|
174
|
+
"File": None,
|
175
|
+
"Image": None,
|
176
|
+
"Flash": None,
|
177
|
+
"Media": None
|
178
|
+
}
|
179
|
+
self.deniedExtensions = {
|
180
|
+
"File": [ "html","htm","php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess","asis" ],
|
181
|
+
"Image": [ "html","htm","php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess","asis" ],
|
182
|
+
"Flash": [ "html","htm","php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess","asis" ],
|
183
|
+
"Media": [ "html","htm","php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess","asis" ]
|
184
|
+
}
|
185
|
+
|
186
|
+
"""
|
187
|
+
Zope specific functions
|
188
|
+
"""
|
189
|
+
def isZope(self):
|
190
|
+
# The context object is the zope object
|
191
|
+
if (self.context is not None):
|
192
|
+
return True
|
193
|
+
return False
|
194
|
+
|
195
|
+
def getZopeRootContext(self):
|
196
|
+
if self.zopeRootContext is None:
|
197
|
+
self.zopeRootContext = self.context.getPhysicalRoot()
|
198
|
+
return self.zopeRootContext
|
199
|
+
|
200
|
+
def getZopeUploadContext(self):
|
201
|
+
if self.zopeUploadContext is None:
|
202
|
+
folderNames = self.userFilesFolder.split("/")
|
203
|
+
c = self.getZopeRootContext()
|
204
|
+
for folderName in folderNames:
|
205
|
+
if (folderName <> ""):
|
206
|
+
c = c[folderName]
|
207
|
+
self.zopeUploadContext = c
|
208
|
+
return self.zopeUploadContext
|
209
|
+
|
210
|
+
"""
|
211
|
+
Generic manipulation functions
|
212
|
+
"""
|
213
|
+
def getUserFilesFolder(self):
|
214
|
+
return self.userFilesFolder
|
215
|
+
|
216
|
+
def getWebUserFilesFolder(self):
|
217
|
+
return self.webUserFilesFolder
|
218
|
+
|
219
|
+
def getAllowedExtensions(self, resourceType):
|
220
|
+
return self.allowedExtensions[resourceType]
|
221
|
+
|
222
|
+
def getDeniedExtensions(self, resourceType):
|
223
|
+
return self.deniedExtensions[resourceType]
|
224
|
+
|
225
|
+
def removeFromStart(self, string, char):
|
226
|
+
return string.lstrip(char)
|
227
|
+
|
228
|
+
def removeFromEnd(self, string, char):
|
229
|
+
return string.rstrip(char)
|
230
|
+
|
231
|
+
def convertToXmlAttribute(self, value):
|
232
|
+
if (value is None):
|
233
|
+
value = ""
|
234
|
+
return escape(value)
|
235
|
+
|
236
|
+
def convertToPath(self, path):
|
237
|
+
if (path[-1] <> "/"):
|
238
|
+
return path + "/"
|
239
|
+
else:
|
240
|
+
return path
|
241
|
+
|
242
|
+
def getUrlFromPath(self, resourceType, path):
|
243
|
+
if (resourceType is None) or (resourceType == ''):
|
244
|
+
url = "%s%s" % (
|
245
|
+
self.removeFromEnd(self.getUserFilesFolder(), '/'),
|
246
|
+
path
|
247
|
+
)
|
248
|
+
else:
|
249
|
+
url = "%s%s%s" % (
|
250
|
+
self.getUserFilesFolder(),
|
251
|
+
resourceType,
|
252
|
+
path
|
253
|
+
)
|
254
|
+
return url
|
255
|
+
|
256
|
+
def getWebUrlFromPath(self, resourceType, path):
|
257
|
+
if (resourceType is None) or (resourceType == ''):
|
258
|
+
url = "%s%s" % (
|
259
|
+
self.removeFromEnd(self.getWebUserFilesFolder(), '/'),
|
260
|
+
path
|
261
|
+
)
|
262
|
+
else:
|
263
|
+
url = "%s%s%s" % (
|
264
|
+
self.getWebUserFilesFolder(),
|
265
|
+
resourceType,
|
266
|
+
path
|
267
|
+
)
|
268
|
+
return url
|
269
|
+
|
270
|
+
def removeExtension(self, fileName):
|
271
|
+
index = fileName.rindex(".")
|
272
|
+
newFileName = fileName[0:index]
|
273
|
+
return newFileName
|
274
|
+
|
275
|
+
def getExtension(self, fileName):
|
276
|
+
index = fileName.rindex(".") + 1
|
277
|
+
fileExtension = fileName[index:]
|
278
|
+
return fileExtension
|
279
|
+
|
280
|
+
def getParentFolder(self, folderPath):
|
281
|
+
parentFolderPath = self.parentFolderRe.sub('', folderPath)
|
282
|
+
return parentFolderPath
|
283
|
+
|
284
|
+
"""
|
285
|
+
serverMapFolder
|
286
|
+
|
287
|
+
Purpose: works out the folder map on the server
|
288
|
+
"""
|
289
|
+
def serverMapFolder(self, resourceType, folderPath):
|
290
|
+
# Get the resource type directory
|
291
|
+
resourceTypeFolder = "%s%s/" % (
|
292
|
+
self.getUserFilesFolder(),
|
293
|
+
resourceType
|
294
|
+
)
|
295
|
+
# Ensure that the directory exists
|
296
|
+
self.createServerFolder(resourceTypeFolder)
|
297
|
+
|
298
|
+
# Return the resource type directory combined with the
|
299
|
+
# required path
|
300
|
+
return "%s%s" % (
|
301
|
+
resourceTypeFolder,
|
302
|
+
self.removeFromStart(folderPath, '/')
|
303
|
+
)
|
304
|
+
|
305
|
+
"""
|
306
|
+
createServerFolder
|
307
|
+
|
308
|
+
Purpose: physically creates a folder on the server
|
309
|
+
"""
|
310
|
+
def createServerFolder(self, folderPath):
|
311
|
+
# Check if the parent exists
|
312
|
+
parentFolderPath = self.getParentFolder(folderPath)
|
313
|
+
if not(os.path.exists(parentFolderPath)):
|
314
|
+
errorMsg = self.createServerFolder(parentFolderPath)
|
315
|
+
if errorMsg is not None:
|
316
|
+
return errorMsg
|
317
|
+
# Check if this exists
|
318
|
+
if not(os.path.exists(folderPath)):
|
319
|
+
os.mkdir(folderPath)
|
320
|
+
os.chmod(folderPath, 0755)
|
321
|
+
errorMsg = None
|
322
|
+
else:
|
323
|
+
if os.path.isdir(folderPath):
|
324
|
+
errorMsg = None
|
325
|
+
else:
|
326
|
+
raise "createServerFolder: Non-folder of same name already exists"
|
327
|
+
return errorMsg
|
328
|
+
|
329
|
+
|
330
|
+
"""
|
331
|
+
getRootPath
|
332
|
+
|
333
|
+
Purpose: returns the root path on the server
|
334
|
+
"""
|
335
|
+
def getRootPath(self):
|
336
|
+
return self.rootPath
|
337
|
+
|
338
|
+
"""
|
339
|
+
setXmlHeaders
|
340
|
+
|
341
|
+
Purpose: to prepare the headers for the xml to return
|
342
|
+
"""
|
343
|
+
def setXmlHeaders(self):
|
344
|
+
#now = self.context.BS_get_now()
|
345
|
+
#yesterday = now - 1
|
346
|
+
self.setHeader("Content-Type", "text/xml")
|
347
|
+
#self.setHeader("Expires", yesterday)
|
348
|
+
#self.setHeader("Last-Modified", now)
|
349
|
+
#self.setHeader("Cache-Control", "no-store, no-cache, must-revalidate")
|
350
|
+
self.printHeaders()
|
351
|
+
return
|
352
|
+
|
353
|
+
def setHeader(self, key, value):
|
354
|
+
if (self.isZope()):
|
355
|
+
self.context.REQUEST.RESPONSE.setHeader(key, value)
|
356
|
+
else:
|
357
|
+
print "%s: %s" % (key, value)
|
358
|
+
return
|
359
|
+
|
360
|
+
def printHeaders(self):
|
361
|
+
# For non-Zope requests, we need to print an empty line
|
362
|
+
# to denote the end of headers
|
363
|
+
if (not(self.isZope())):
|
364
|
+
print ""
|
365
|
+
|
366
|
+
"""
|
367
|
+
createXmlFooter
|
368
|
+
|
369
|
+
Purpose: returns the xml header
|
370
|
+
"""
|
371
|
+
def createXmlHeader(self, command, resourceType, currentFolder):
|
372
|
+
self.setXmlHeaders()
|
373
|
+
s = ""
|
374
|
+
# Create the XML document header
|
375
|
+
s += """<?xml version="1.0" encoding="utf-8" ?>"""
|
376
|
+
# Create the main connector node
|
377
|
+
s += """<Connector command="%s" resourceType="%s">""" % (
|
378
|
+
command,
|
379
|
+
resourceType
|
380
|
+
)
|
381
|
+
# Add the current folder node
|
382
|
+
s += """<CurrentFolder path="%s" url="%s" />""" % (
|
383
|
+
self.convertToXmlAttribute(currentFolder),
|
384
|
+
self.convertToXmlAttribute(
|
385
|
+
self.getWebUrlFromPath(
|
386
|
+
resourceType,
|
387
|
+
currentFolder
|
388
|
+
)
|
389
|
+
),
|
390
|
+
)
|
391
|
+
return s
|
392
|
+
|
393
|
+
"""
|
394
|
+
createXmlFooter
|
395
|
+
|
396
|
+
Purpose: returns the xml footer
|
397
|
+
"""
|
398
|
+
def createXmlFooter(self):
|
399
|
+
s = """</Connector>"""
|
400
|
+
return s
|
401
|
+
|
402
|
+
"""
|
403
|
+
sendError
|
404
|
+
|
405
|
+
Purpose: in the event of an error, return an xml based error
|
406
|
+
"""
|
407
|
+
def sendError(self, number, text):
|
408
|
+
self.setXmlHeaders()
|
409
|
+
s = ""
|
410
|
+
# Create the XML document header
|
411
|
+
s += """<?xml version="1.0" encoding="utf-8" ?>"""
|
412
|
+
s += """<Connector>"""
|
413
|
+
s += """<Error number="%s" text="%s" />""" % (number, text)
|
414
|
+
s += """</Connector>"""
|
415
|
+
return s
|
416
|
+
|
417
|
+
"""
|
418
|
+
getFolders
|
419
|
+
|
420
|
+
Purpose: command to recieve a list of folders
|
421
|
+
"""
|
422
|
+
def getFolders(self, resourceType, currentFolder):
|
423
|
+
if (self.isZope()):
|
424
|
+
return self.getZopeFolders(resourceType, currentFolder)
|
425
|
+
else:
|
426
|
+
return self.getNonZopeFolders(resourceType, currentFolder)
|
427
|
+
|
428
|
+
def getZopeFolders(self, resourceType, currentFolder):
|
429
|
+
# Open the folders node
|
430
|
+
s = ""
|
431
|
+
s += """<Folders>"""
|
432
|
+
zopeFolder = self.findZopeFolder(resourceType, currentFolder)
|
433
|
+
for (name, o) in zopeFolder.objectItems(["Folder"]):
|
434
|
+
s += """<Folder name="%s" />""" % (
|
435
|
+
self.convertToXmlAttribute(name)
|
436
|
+
)
|
437
|
+
# Close the folders node
|
438
|
+
s += """</Folders>"""
|
439
|
+
return s
|
440
|
+
|
441
|
+
def getNonZopeFolders(self, resourceType, currentFolder):
|
442
|
+
# Map the virtual path to our local server
|
443
|
+
serverPath = self.serverMapFolder(resourceType, currentFolder)
|
444
|
+
# Open the folders node
|
445
|
+
s = ""
|
446
|
+
s += """<Folders>"""
|
447
|
+
for someObject in os.listdir(serverPath):
|
448
|
+
someObjectPath = os.path.join(serverPath, someObject)
|
449
|
+
if os.path.isdir(someObjectPath):
|
450
|
+
s += """<Folder name="%s" />""" % (
|
451
|
+
self.convertToXmlAttribute(someObject)
|
452
|
+
)
|
453
|
+
# Close the folders node
|
454
|
+
s += """</Folders>"""
|
455
|
+
return s
|
456
|
+
|
457
|
+
"""
|
458
|
+
getFoldersAndFiles
|
459
|
+
|
460
|
+
Purpose: command to recieve a list of folders and files
|
461
|
+
"""
|
462
|
+
def getFoldersAndFiles(self, resourceType, currentFolder):
|
463
|
+
if (self.isZope()):
|
464
|
+
return self.getZopeFoldersAndFiles(resourceType, currentFolder)
|
465
|
+
else:
|
466
|
+
return self.getNonZopeFoldersAndFiles(resourceType, currentFolder)
|
467
|
+
|
468
|
+
def getNonZopeFoldersAndFiles(self, resourceType, currentFolder):
|
469
|
+
# Map the virtual path to our local server
|
470
|
+
serverPath = self.serverMapFolder(resourceType, currentFolder)
|
471
|
+
# Open the folders / files node
|
472
|
+
folders = """<Folders>"""
|
473
|
+
files = """<Files>"""
|
474
|
+
for someObject in os.listdir(serverPath):
|
475
|
+
someObjectPath = os.path.join(serverPath, someObject)
|
476
|
+
if os.path.isdir(someObjectPath):
|
477
|
+
folders += """<Folder name="%s" />""" % (
|
478
|
+
self.convertToXmlAttribute(someObject)
|
479
|
+
)
|
480
|
+
elif os.path.isfile(someObjectPath):
|
481
|
+
size = os.path.getsize(someObjectPath)
|
482
|
+
files += """<File name="%s" size="%s" />""" % (
|
483
|
+
self.convertToXmlAttribute(someObject),
|
484
|
+
os.path.getsize(someObjectPath)
|
485
|
+
)
|
486
|
+
# Close the folders / files node
|
487
|
+
folders += """</Folders>"""
|
488
|
+
files += """</Files>"""
|
489
|
+
# Return it
|
490
|
+
s = folders + files
|
491
|
+
return s
|
492
|
+
|
493
|
+
def getZopeFoldersAndFiles(self, resourceType, currentFolder):
|
494
|
+
folders = self.getZopeFolders(resourceType, currentFolder)
|
495
|
+
files = self.getZopeFiles(resourceType, currentFolder)
|
496
|
+
s = folders + files
|
497
|
+
return s
|
498
|
+
|
499
|
+
def getZopeFiles(self, resourceType, currentFolder):
|
500
|
+
# Open the files node
|
501
|
+
s = ""
|
502
|
+
s += """<Files>"""
|
503
|
+
zopeFolder = self.findZopeFolder(resourceType, currentFolder)
|
504
|
+
for (name, o) in zopeFolder.objectItems(["File","Image"]):
|
505
|
+
s += """<File name="%s" size="%s" />""" % (
|
506
|
+
self.convertToXmlAttribute(name),
|
507
|
+
((o.get_size() / 1024) + 1)
|
508
|
+
)
|
509
|
+
# Close the files node
|
510
|
+
s += """</Files>"""
|
511
|
+
return s
|
512
|
+
|
513
|
+
def findZopeFolder(self, resourceType, folderName):
|
514
|
+
# returns the context of the resource / folder
|
515
|
+
zopeFolder = self.getZopeUploadContext()
|
516
|
+
folderName = self.removeFromStart(folderName, "/")
|
517
|
+
folderName = self.removeFromEnd(folderName, "/")
|
518
|
+
if (resourceType <> ""):
|
519
|
+
try:
|
520
|
+
zopeFolder = zopeFolder[resourceType]
|
521
|
+
except:
|
522
|
+
zopeFolder.manage_addProduct["OFSP"].manage_addFolder(id=resourceType, title=resourceType)
|
523
|
+
zopeFolder = zopeFolder[resourceType]
|
524
|
+
if (folderName <> ""):
|
525
|
+
folderNames = folderName.split("/")
|
526
|
+
for folderName in folderNames:
|
527
|
+
zopeFolder = zopeFolder[folderName]
|
528
|
+
return zopeFolder
|
529
|
+
|
530
|
+
"""
|
531
|
+
createFolder
|
532
|
+
|
533
|
+
Purpose: command to create a new folder
|
534
|
+
"""
|
535
|
+
def createFolder(self, resourceType, currentFolder):
|
536
|
+
if (self.isZope()):
|
537
|
+
return self.createZopeFolder(resourceType, currentFolder)
|
538
|
+
else:
|
539
|
+
return self.createNonZopeFolder(resourceType, currentFolder)
|
540
|
+
|
541
|
+
def createZopeFolder(self, resourceType, currentFolder):
|
542
|
+
# Find out where we are
|
543
|
+
zopeFolder = self.findZopeFolder(resourceType, currentFolder)
|
544
|
+
errorNo = 0
|
545
|
+
errorMsg = ""
|
546
|
+
if self.request.has_key("NewFolderName"):
|
547
|
+
newFolder = self.request.get("NewFolderName", None)
|
548
|
+
zopeFolder.manage_addProduct["OFSP"].manage_addFolder(id=newFolder, title=newFolder)
|
549
|
+
else:
|
550
|
+
errorNo = 102
|
551
|
+
error = """<Error number="%s" originalDescription="%s" />""" % (
|
552
|
+
errorNo,
|
553
|
+
self.convertToXmlAttribute(errorMsg)
|
554
|
+
)
|
555
|
+
return error
|
556
|
+
|
557
|
+
def createNonZopeFolder(self, resourceType, currentFolder):
|
558
|
+
errorNo = 0
|
559
|
+
errorMsg = ""
|
560
|
+
if self.request.has_key("NewFolderName"):
|
561
|
+
newFolder = self.request.get("NewFolderName", None)
|
562
|
+
currentFolderPath = self.serverMapFolder(
|
563
|
+
resourceType,
|
564
|
+
currentFolder
|
565
|
+
)
|
566
|
+
try:
|
567
|
+
newFolderPath = currentFolderPath + newFolder
|
568
|
+
errorMsg = self.createServerFolder(newFolderPath)
|
569
|
+
if (errorMsg is not None):
|
570
|
+
errorNo = 110
|
571
|
+
except:
|
572
|
+
errorNo = 103
|
573
|
+
else:
|
574
|
+
errorNo = 102
|
575
|
+
error = """<Error number="%s" originalDescription="%s" />""" % (
|
576
|
+
errorNo,
|
577
|
+
self.convertToXmlAttribute(errorMsg)
|
578
|
+
)
|
579
|
+
return error
|
580
|
+
|
581
|
+
"""
|
582
|
+
getFileName
|
583
|
+
|
584
|
+
Purpose: helper function to extrapolate the filename
|
585
|
+
"""
|
586
|
+
def getFileName(self, filename):
|
587
|
+
for splitChar in ["/", "\\"]:
|
588
|
+
array = filename.split(splitChar)
|
589
|
+
if (len(array) > 1):
|
590
|
+
filename = array[-1]
|
591
|
+
return filename
|
592
|
+
|
593
|
+
"""
|
594
|
+
fileUpload
|
595
|
+
|
596
|
+
Purpose: command to upload files to server
|
597
|
+
"""
|
598
|
+
def fileUpload(self, resourceType, currentFolder):
|
599
|
+
if (self.isZope()):
|
600
|
+
return self.zopeFileUpload(resourceType, currentFolder)
|
601
|
+
else:
|
602
|
+
return self.nonZopeFileUpload(resourceType, currentFolder)
|
603
|
+
|
604
|
+
def zopeFileUpload(self, resourceType, currentFolder, count=None):
|
605
|
+
zopeFolder = self.findZopeFolder(resourceType, currentFolder)
|
606
|
+
file = self.request.get("NewFile", None)
|
607
|
+
fileName = self.getFileName(file.filename)
|
608
|
+
fileNameOnly = self.removeExtension(fileName)
|
609
|
+
fileExtension = self.getExtension(fileName).lower()
|
610
|
+
if (count):
|
611
|
+
nid = "%s.%s.%s" % (fileNameOnly, count, fileExtension)
|
612
|
+
else:
|
613
|
+
nid = fileName
|
614
|
+
title = nid
|
615
|
+
try:
|
616
|
+
zopeFolder.manage_addProduct['OFSP'].manage_addFile(
|
617
|
+
id=nid,
|
618
|
+
title=title,
|
619
|
+
file=file.read()
|
620
|
+
)
|
621
|
+
except:
|
622
|
+
if (count):
|
623
|
+
count += 1
|
624
|
+
else:
|
625
|
+
count = 1
|
626
|
+
self.zopeFileUpload(resourceType, currentFolder, count)
|
627
|
+
return
|
628
|
+
|
629
|
+
def nonZopeFileUpload(self, resourceType, currentFolder):
|
630
|
+
errorNo = 0
|
631
|
+
errorMsg = ""
|
632
|
+
if self.request.has_key("NewFile"):
|
633
|
+
# newFile has all the contents we need
|
634
|
+
newFile = self.request.get("NewFile", "")
|
635
|
+
# Get the file name
|
636
|
+
newFileName = newFile.filename
|
637
|
+
newFileNameOnly = self.removeExtension(newFileName)
|
638
|
+
newFileExtension = self.getExtension(newFileName).lower()
|
639
|
+
allowedExtensions = self.getAllowedExtensions(resourceType)
|
640
|
+
deniedExtensions = self.getDeniedExtensions(resourceType)
|
641
|
+
if (allowedExtensions is not None):
|
642
|
+
# Check for allowed
|
643
|
+
isAllowed = False
|
644
|
+
if (newFileExtension in allowedExtensions):
|
645
|
+
isAllowed = True
|
646
|
+
elif (deniedExtensions is not None):
|
647
|
+
# Check for denied
|
648
|
+
isAllowed = True
|
649
|
+
if (newFileExtension in deniedExtensions):
|
650
|
+
isAllowed = False
|
651
|
+
else:
|
652
|
+
# No extension limitations
|
653
|
+
isAllowed = True
|
654
|
+
|
655
|
+
if (isAllowed):
|
656
|
+
if (self.isZope()):
|
657
|
+
# Upload into zope
|
658
|
+
self.zopeFileUpload(resourceType, currentFolder)
|
659
|
+
else:
|
660
|
+
# Upload to operating system
|
661
|
+
# Map the virtual path to the local server path
|
662
|
+
currentFolderPath = self.serverMapFolder(
|
663
|
+
resourceType,
|
664
|
+
currentFolder
|
665
|
+
)
|
666
|
+
i = 0
|
667
|
+
while (True):
|
668
|
+
newFilePath = "%s%s" % (
|
669
|
+
currentFolderPath,
|
670
|
+
newFileName
|
671
|
+
)
|
672
|
+
if os.path.exists(newFilePath):
|
673
|
+
i += 1
|
674
|
+
newFilePath = "%s%s(%s).%s" % (
|
675
|
+
currentFolderPath,
|
676
|
+
newFileNameOnly,
|
677
|
+
i,
|
678
|
+
newFileExtension
|
679
|
+
)
|
680
|
+
errorNo = 201
|
681
|
+
break
|
682
|
+
else:
|
683
|
+
fileHandle = open(newFilePath,'w')
|
684
|
+
linecount = 0
|
685
|
+
while (1):
|
686
|
+
#line = newFile.file.readline()
|
687
|
+
line = newFile.readline()
|
688
|
+
if not line: break
|
689
|
+
fileHandle.write("%s" % line)
|
690
|
+
linecount += 1
|
691
|
+
os.chmod(newFilePath, 0777)
|
692
|
+
break
|
693
|
+
else:
|
694
|
+
newFileName = "Extension not allowed"
|
695
|
+
errorNo = 203
|
696
|
+
else:
|
697
|
+
newFileName = "No File"
|
698
|
+
errorNo = 202
|
699
|
+
|
700
|
+
string = """
|
701
|
+
<script type="text/javascript">
|
702
|
+
window.parent.frames["frmUpload"].OnUploadCompleted(%s,"%s");
|
703
|
+
</script>
|
704
|
+
""" % (
|
705
|
+
errorNo,
|
706
|
+
newFileName.replace('"',"'")
|
707
|
+
)
|
708
|
+
return string
|
709
|
+
|
710
|
+
def run(self):
|
711
|
+
s = ""
|
712
|
+
try:
|
713
|
+
# Check if this is disabled
|
714
|
+
if not(self.enabled):
|
715
|
+
return self.sendError(1, "This connector is disabled. Please check the connector configurations and try again")
|
716
|
+
# Make sure we have valid inputs
|
717
|
+
if not(
|
718
|
+
(self.request.has_key("Command")) and
|
719
|
+
(self.request.has_key("Type")) and
|
720
|
+
(self.request.has_key("CurrentFolder"))
|
721
|
+
):
|
722
|
+
return
|
723
|
+
# Get command
|
724
|
+
command = self.request.get("Command", None)
|
725
|
+
# Get resource type
|
726
|
+
resourceType = self.request.get("Type", None)
|
727
|
+
# folder syntax must start and end with "/"
|
728
|
+
currentFolder = self.request.get("CurrentFolder", None)
|
729
|
+
if (currentFolder[-1] <> "/"):
|
730
|
+
currentFolder += "/"
|
731
|
+
if (currentFolder[0] <> "/"):
|
732
|
+
currentFolder = "/" + currentFolder
|
733
|
+
# Check for invalid paths
|
734
|
+
if (".." in currentFolder):
|
735
|
+
return self.sendError(102, "")
|
736
|
+
# File upload doesn't have to return XML, so intercept
|
737
|
+
# her:e
|
738
|
+
if (command == "FileUpload"):
|
739
|
+
return self.fileUpload(resourceType, currentFolder)
|
740
|
+
# Begin XML
|
741
|
+
s += self.createXmlHeader(command, resourceType, currentFolder)
|
742
|
+
# Execute the command
|
743
|
+
if (command == "GetFolders"):
|
744
|
+
f = self.getFolders
|
745
|
+
elif (command == "GetFoldersAndFiles"):
|
746
|
+
f = self.getFoldersAndFiles
|
747
|
+
elif (command == "CreateFolder"):
|
748
|
+
f = self.createFolder
|
749
|
+
else:
|
750
|
+
f = None
|
751
|
+
if (f is not None):
|
752
|
+
s += f(resourceType, currentFolder)
|
753
|
+
s += self.createXmlFooter()
|
754
|
+
except Exception, e:
|
755
|
+
s = "ERROR: %s" % e
|
756
|
+
return s
|
757
|
+
|
758
|
+
# Running from command line
|
759
|
+
if __name__ == '__main__':
|
760
|
+
# To test the output, uncomment the standard headers
|
761
|
+
#print "Content-Type: text/html"
|
762
|
+
#print ""
|
763
|
+
print getFCKeditorConnector()
|
764
|
+
|
765
|
+
"""
|
766
|
+
Running from zope, you will need to modify this connector.
|
767
|
+
If you have uploaded the FCKeditor into Zope (like me), you need to
|
768
|
+
move this connector out of Zope, and replace the "connector" with an
|
769
|
+
alias as below. The key to it is to pass the Zope context in, as
|
770
|
+
we then have a like to the Zope context.
|
771
|
+
|
772
|
+
## Script (Python) "connector.py"
|
773
|
+
##bind container=container
|
774
|
+
##bind context=context
|
775
|
+
##bind namespace=
|
776
|
+
##bind script=script
|
777
|
+
##bind subpath=traverse_subpath
|
778
|
+
##parameters=*args, **kws
|
779
|
+
##title=ALIAS
|
780
|
+
##
|
781
|
+
import Products.connector as connector
|
782
|
+
return connector.getFCKeditorConnector(context=context).run()
|
783
|
+
"""
|
784
|
+
|
785
|
+
|