From 17710c20ab71ba8648823bdd6ab129704c33e47e Mon Sep 17 00:00:00 2001 From: Pim Snel Date: Tue, 21 Jun 2005 13:02:36 +0000 Subject: [PATCH] Add TineMCE, the future htmlArea Replacement. A clean WYSIWYG editor see tinymce.moxiecode.com/ for more info --- phpgwapi/js/tinymce/changelog | 563 ++ phpgwapi/js/tinymce/docs/about.html | 41 + .../js/tinymce/docs/compatiblity_chart.html | 84 + phpgwapi/js/tinymce/docs/credits.html | 81 + phpgwapi/js/tinymce/docs/css/screen.css | 145 + .../docs/customization_language_packs.html | 47 + .../tinymce/docs/customization_plugins.html | 243 + .../js/tinymce/docs/customization_themes.html | 423 ++ phpgwapi/js/tinymce/docs/faq.html | 86 + phpgwapi/js/tinymce/docs/images/moxiecode.gif | Bin 0 -> 4831 bytes phpgwapi/js/tinymce/docs/index.html | 43 + .../tinymce/docs/installation_example_00.html | 37 + .../tinymce/docs/installation_example_01.html | 38 + .../tinymce/docs/installation_example_02.html | 54 + .../tinymce/docs/installation_example_03.html | 45 + phpgwapi/js/tinymce/docs/installing.html | 122 + phpgwapi/js/tinymce/docs/license.html | 465 ++ .../docs/option_add_form_submit_trigger.html | 38 + .../docs/option_add_unload_trigger.html | 38 + phpgwapi/js/tinymce/docs/option_ask.html | 38 + .../docs/option_auto_cleanup_word.html | 38 + .../js/tinymce/docs/option_auto_focus.html | 38 + .../docs/option_auto_reset_designmode.html | 38 + .../js/tinymce/docs/option_auto_resize.html | 38 + .../tinymce/docs/option_button_tile_map.html | 38 + phpgwapi/js/tinymce/docs/option_cleanup.html | 38 + .../tinymce/docs/option_cleanup_callback.html | 72 + .../docs/option_cleanup_on_startup.html | 38 + .../js/tinymce/docs/option_content_css.html | 38 + .../docs/option_convert_newlines_to_brs.html | 38 + .../tinymce/docs/option_custom_undo_redo.html | 38 + ...n_custom_undo_redo_keyboard_shortcuts.html | 38 + .../docs/option_custom_undo_redo_levels.html | 38 + phpgwapi/js/tinymce/docs/option_debug.html | 38 + .../tinymce/docs/option_directionality.html | 38 + .../js/tinymce/docs/option_docs_language.html | 38 + .../docs/option_document_base_url.html | 36 + .../js/tinymce/docs/option_editor_css.html | 38 + phpgwapi/js/tinymce/docs/option_elements.html | 38 + phpgwapi/js/tinymce/docs/option_encoding.html | 38 + phpgwapi/js/tinymce/docs/option_entities.html | 58 + .../tinymce/docs/option_entity_encoding.html | 38 + .../docs/option_extended_valid_elements.html | 38 + .../docs/option_external_image_list_url.html | 51 + .../docs/option_external_link_list_url.html | 52 + .../docs/option_file_browser_callback.html | 43 + .../docs/option_fix_content_duplication.html | 38 + .../js/tinymce/docs/option_focus_alert.html | 38 + .../docs/option_force_br_newlines.html | 38 + .../tinymce/docs/option_force_p_newlines.html | 38 + .../docs/option_force_p_newliness.html | 38 + phpgwapi/js/tinymce/docs/option_height.html | 38 + .../docs/option_init_instance_callback.html | 42 + .../js/tinymce/docs/option_inline_styles.html | 38 + .../docs/option_insertimage_callback.html | 57 + .../docs/option_insertlink_callback.html | 50 + .../tinymce/docs/option_invalid_elements.html | 38 + phpgwapi/js/tinymce/docs/option_language.html | 42 + phpgwapi/js/tinymce/docs/option_mode.html | 54 + phpgwapi/js/tinymce/docs/option_nowrap.html | 38 + .../docs/option_onchange_callback.html | 43 + phpgwapi/js/tinymce/docs/option_oninit.html | 42 + phpgwapi/js/tinymce/docs/option_plugins.html | 42 + .../js/tinymce/docs/option_popups_css.html | 38 + .../js/tinymce/docs/option_preformatted.html | 38 + .../js/tinymce/docs/option_relative_urls.html | 36 + .../docs/option_remove_linebreaks.html | 38 + .../docs/option_remove_script_host.html | 37 + .../js/tinymce/docs/option_save_callback.html | 45 + .../docs/option_setupcontent_callback.html | 43 + .../js/tinymce/docs/option_submit_patch.html | 38 + .../tinymce/docs/option_textarea_trigger.html | 41 + phpgwapi/js/tinymce/docs/option_theme.html | 54 + .../option_theme_advanced_blockformats.html | 38 + .../docs/option_theme_advanced_buttons_n.html | 47 + .../option_theme_advanced_buttons_n_add.html | 47 + ...n_theme_advanced_buttons_n_add_before.html | 47 + .../docs/option_theme_advanced_container.html | 39 + ...option_theme_advanced_container_align.html | 39 + ...option_theme_advanced_container_class.html | 39 + .../option_theme_advanced_containers.html | 38 + ...eme_advanced_containers_default_align.html | 38 + ...eme_advanced_containers_default_class.html | 38 + .../option_theme_advanced_custom_layout.html | 49 + .../docs/option_theme_advanced_disable.html | 38 + .../option_theme_advanced_layout_manager.html | 39 + .../option_theme_advanced_path_location.html | 38 + ...n_theme_advanced_source_editor_height.html | 38 + ...on_theme_advanced_source_editor_width.html | 38 + .../docs/option_theme_advanced_styles.html | 38 + .../option_theme_advanced_toolbar_align.html | 38 + ...ption_theme_advanced_toolbar_location.html | 38 + .../docs/option_trim_span_elements.html | 38 + .../docs/option_urlconverter_callback.html | 46 + .../tinymce/docs/option_valid_elements.html | 351 ++ .../docs/option_verify_css_classes.html | 38 + .../js/tinymce/docs/option_verify_html.html | 38 + phpgwapi/js/tinymce/docs/option_visual.html | 38 + .../docs/option_visual_table_class.html | 38 + phpgwapi/js/tinymce/docs/option_width.html | 38 + phpgwapi/js/tinymce/docs/plugin_advhr.html | 46 + phpgwapi/js/tinymce/docs/plugin_advimage.html | 46 + phpgwapi/js/tinymce/docs/plugin_advlink.html | 45 + .../js/tinymce/docs/plugin_contextmenu.html | 43 + .../tinymce/docs/plugin_directionality.html | 44 + phpgwapi/js/tinymce/docs/plugin_emotions.html | 53 + phpgwapi/js/tinymce/docs/plugin_flash.html | 76 + .../js/tinymce/docs/plugin_fullscreen.html | 44 + phpgwapi/js/tinymce/docs/plugin_iespell.html | 45 + .../tinymce/docs/plugin_insertdatetime.html | 107 + phpgwapi/js/tinymce/docs/plugin_paste.html | 66 + phpgwapi/js/tinymce/docs/plugin_preview.html | 66 + phpgwapi/js/tinymce/docs/plugin_print.html | 45 + phpgwapi/js/tinymce/docs/plugin_save.html | 44 + .../js/tinymce/docs/plugin_searchreplace.html | 44 + phpgwapi/js/tinymce/docs/plugin_table.html | 94 + phpgwapi/js/tinymce/docs/plugin_zoom.html | 44 + .../tinymce/docs/reference_configuration.html | 191 + .../docs/reference_javascript_functions.html | 591 ++ .../js/tinymce/docs/reference_plugins.html | 70 + phpgwapi/js/tinymce/examples/dump.php | 27 + .../js/tinymce/examples/example_advanced.css | 44 + .../js/tinymce/examples/example_advanced.htm | 111 + .../js/tinymce/examples/example_flash_list.js | 9 + phpgwapi/js/tinymce/examples/example_full.css | 74 + phpgwapi/js/tinymce/examples/example_full.htm | 61 + .../js/tinymce/examples/example_image_list.js | 9 + .../js/tinymce/examples/example_link_list.js | 10 + .../js/tinymce/examples/example_simple.htm | 41 + phpgwapi/js/tinymce/examples/logo.jpg | Bin 0 -> 2764 bytes phpgwapi/js/tinymce/examples/logo_over.jpg | Bin 0 -> 6508 bytes phpgwapi/js/tinymce/examples/zh_cn/dump.php | 28 + .../tinymce/examples/zh_cn/editor_content.css | 23 + .../tinymce/examples/zh_cn/editor_popup.css | 92 + .../js/tinymce/examples/zh_cn/editor_ui.css | 147 + .../examples/zh_cn/example_advanced.htm | 114 + .../tinymce/examples/zh_cn/example_full.css | 43 + .../tinymce/examples/zh_cn/example_full.htm | 57 + .../tinymce/examples/zh_cn/example_mail.htm | 42 + .../tinymce/examples/zh_cn/example_simple.htm | 45 + .../js/tinymce/jscripts/tiny_mce/blank.htm | 10 + .../js/tinymce/jscripts/tiny_mce/langs/ar.js | 39 + .../js/tinymce/jscripts/tiny_mce/langs/cs.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/da.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/de.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/el.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/en.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/es.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/fa.js | 43 + .../js/tinymce/jscripts/tiny_mce/langs/fi.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/fr.js | 38 + .../tinymce/jscripts/tiny_mce/langs/fr_ca.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/hu.js | 39 + .../js/tinymce/jscripts/tiny_mce/langs/it.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/ja.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/ko.js | 37 + .../js/tinymce/jscripts/tiny_mce/langs/nl.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/no.js | 37 + .../js/tinymce/jscripts/tiny_mce/langs/pl.js | 38 + .../js/tinymce/jscripts/tiny_mce/langs/pt.js | 41 + .../jscripts/tiny_mce/langs/readme.txt | 2 + .../js/tinymce/jscripts/tiny_mce/langs/ru.js | 40 + .../js/tinymce/jscripts/tiny_mce/langs/sv.js | 40 + .../js/tinymce/jscripts/tiny_mce/langs/th.js | 37 + .../tinymce/jscripts/tiny_mce/langs/zh_cn.js | 38 + .../plugins/_template/editor_plugin.js | 118 + .../plugins/_template/images/template.gif | Bin 0 -> 879 bytes .../tiny_mce/plugins/_template/langs/en.js | 6 + .../tiny_mce/plugins/_template/popup.htm | 31 + .../tiny_mce/plugins/_template/readme.txt | 1 + .../tiny_mce/plugins/advhr/editor_plugin.js | 2 + .../plugins/advhr/editor_plugin_src.js | 58 + .../tiny_mce/plugins/advhr/images/advhr.gif | Bin 0 -> 209 bytes .../tiny_mce/plugins/advhr/langs/cs.js | 6 + .../tiny_mce/plugins/advhr/langs/de.js | 6 + .../tiny_mce/plugins/advhr/langs/en.js | 6 + .../tiny_mce/plugins/advhr/langs/fa.js | 11 + .../tiny_mce/plugins/advhr/langs/fr.js | 6 + .../tiny_mce/plugins/advhr/langs/fr_ca.js | 6 + .../tiny_mce/plugins/advhr/langs/pl.js | 6 + .../tiny_mce/plugins/advhr/langs/sv.js | 6 + .../tiny_mce/plugins/advhr/langs/zh_cn.js | 6 + .../tiny_mce/plugins/advhr/readme.txt | 20 + .../jscripts/tiny_mce/plugins/advhr/rule.htm | 106 + .../plugins/advimage/editor_plugin.js | 2 + .../plugins/advimage/editor_plugin_src.js | 61 + .../tiny_mce/plugins/advimage/image.htm | 354 ++ .../tiny_mce/plugins/advimage/langs/cs.js | 6 + .../tiny_mce/plugins/advimage/langs/de.js | 6 + .../tiny_mce/plugins/advimage/langs/en.js | 6 + .../tiny_mce/plugins/advimage/langs/fa.js | 11 + .../tiny_mce/plugins/advimage/langs/fa_ca.js | 6 + .../tiny_mce/plugins/advimage/langs/fr.js | 6 + .../tiny_mce/plugins/advimage/langs/ko.js | 6 + .../tiny_mce/plugins/advimage/langs/pl.js | 6 + .../tiny_mce/plugins/advimage/langs/sv.js | 6 + .../tiny_mce/plugins/advimage/langs/zh_cn.js | 6 + .../tiny_mce/plugins/advimage/readme.txt | 19 + .../tiny_mce/plugins/advlink/editor_plugin.js | 2 + .../plugins/advlink/editor_plugin_src.js | 18 + .../tiny_mce/plugins/advlink/langs/cs.js | 20 + .../tiny_mce/plugins/advlink/langs/de.js | 20 + .../tiny_mce/plugins/advlink/langs/en.js | 20 + .../tiny_mce/plugins/advlink/langs/fa.js | 25 + .../tiny_mce/plugins/advlink/langs/fr.js | 20 + .../tiny_mce/plugins/advlink/langs/fr_ca.js | 20 + .../tiny_mce/plugins/advlink/langs/ko.js | 19 + .../tiny_mce/plugins/advlink/langs/pl.js | 23 + .../tiny_mce/plugins/advlink/langs/sv.js | 20 + .../tiny_mce/plugins/advlink/langs/zh_cn.js | 20 + .../tiny_mce/plugins/advlink/link.htm | 448 ++ .../tiny_mce/plugins/advlink/readme.txt | 19 + .../plugins/contextmenu/contextmenu.css | 60 + .../plugins/contextmenu/editor_plugin.js | 2 + .../plugins/contextmenu/editor_plugin_src.js | 288 + .../plugins/directionality/editor_plugin.js | 2 + .../directionality/editor_plugin_src.js | 71 + .../plugins/directionality/readme.txt | 16 + .../jscripts/tiny_mce/plugins/readme.txt | 1 + .../js/tinymce/jscripts/tiny_mce/tiny_mce.js | 12 + .../jscripts/tiny_mce/tiny_mce_popup.js | 86 + .../tinymce/jscripts/tiny_mce/tiny_mce_src.js | 4738 +++++++++++++++++ phpgwapi/js/tinymce/lgpl.txt | 437 ++ phpgwapi/js/tinymce/readme | 2 + phpgwapi/js/tinymce/todo | 3 + 225 files changed, 17206 insertions(+) create mode 100644 phpgwapi/js/tinymce/changelog create mode 100644 phpgwapi/js/tinymce/docs/about.html create mode 100644 phpgwapi/js/tinymce/docs/compatiblity_chart.html create mode 100644 phpgwapi/js/tinymce/docs/credits.html create mode 100644 phpgwapi/js/tinymce/docs/css/screen.css create mode 100644 phpgwapi/js/tinymce/docs/customization_language_packs.html create mode 100644 phpgwapi/js/tinymce/docs/customization_plugins.html create mode 100644 phpgwapi/js/tinymce/docs/customization_themes.html create mode 100644 phpgwapi/js/tinymce/docs/faq.html create mode 100644 phpgwapi/js/tinymce/docs/images/moxiecode.gif create mode 100644 phpgwapi/js/tinymce/docs/index.html create mode 100644 phpgwapi/js/tinymce/docs/installation_example_00.html create mode 100644 phpgwapi/js/tinymce/docs/installation_example_01.html create mode 100644 phpgwapi/js/tinymce/docs/installation_example_02.html create mode 100644 phpgwapi/js/tinymce/docs/installation_example_03.html create mode 100644 phpgwapi/js/tinymce/docs/installing.html create mode 100644 phpgwapi/js/tinymce/docs/license.html create mode 100644 phpgwapi/js/tinymce/docs/option_add_form_submit_trigger.html create mode 100644 phpgwapi/js/tinymce/docs/option_add_unload_trigger.html create mode 100644 phpgwapi/js/tinymce/docs/option_ask.html create mode 100644 phpgwapi/js/tinymce/docs/option_auto_cleanup_word.html create mode 100644 phpgwapi/js/tinymce/docs/option_auto_focus.html create mode 100644 phpgwapi/js/tinymce/docs/option_auto_reset_designmode.html create mode 100644 phpgwapi/js/tinymce/docs/option_auto_resize.html create mode 100644 phpgwapi/js/tinymce/docs/option_button_tile_map.html create mode 100644 phpgwapi/js/tinymce/docs/option_cleanup.html create mode 100644 phpgwapi/js/tinymce/docs/option_cleanup_callback.html create mode 100644 phpgwapi/js/tinymce/docs/option_cleanup_on_startup.html create mode 100644 phpgwapi/js/tinymce/docs/option_content_css.html create mode 100644 phpgwapi/js/tinymce/docs/option_convert_newlines_to_brs.html create mode 100644 phpgwapi/js/tinymce/docs/option_custom_undo_redo.html create mode 100644 phpgwapi/js/tinymce/docs/option_custom_undo_redo_keyboard_shortcuts.html create mode 100644 phpgwapi/js/tinymce/docs/option_custom_undo_redo_levels.html create mode 100644 phpgwapi/js/tinymce/docs/option_debug.html create mode 100644 phpgwapi/js/tinymce/docs/option_directionality.html create mode 100644 phpgwapi/js/tinymce/docs/option_docs_language.html create mode 100644 phpgwapi/js/tinymce/docs/option_document_base_url.html create mode 100644 phpgwapi/js/tinymce/docs/option_editor_css.html create mode 100644 phpgwapi/js/tinymce/docs/option_elements.html create mode 100644 phpgwapi/js/tinymce/docs/option_encoding.html create mode 100644 phpgwapi/js/tinymce/docs/option_entities.html create mode 100644 phpgwapi/js/tinymce/docs/option_entity_encoding.html create mode 100644 phpgwapi/js/tinymce/docs/option_extended_valid_elements.html create mode 100644 phpgwapi/js/tinymce/docs/option_external_image_list_url.html create mode 100644 phpgwapi/js/tinymce/docs/option_external_link_list_url.html create mode 100644 phpgwapi/js/tinymce/docs/option_file_browser_callback.html create mode 100644 phpgwapi/js/tinymce/docs/option_fix_content_duplication.html create mode 100644 phpgwapi/js/tinymce/docs/option_focus_alert.html create mode 100644 phpgwapi/js/tinymce/docs/option_force_br_newlines.html create mode 100644 phpgwapi/js/tinymce/docs/option_force_p_newlines.html create mode 100644 phpgwapi/js/tinymce/docs/option_force_p_newliness.html create mode 100644 phpgwapi/js/tinymce/docs/option_height.html create mode 100644 phpgwapi/js/tinymce/docs/option_init_instance_callback.html create mode 100644 phpgwapi/js/tinymce/docs/option_inline_styles.html create mode 100644 phpgwapi/js/tinymce/docs/option_insertimage_callback.html create mode 100644 phpgwapi/js/tinymce/docs/option_insertlink_callback.html create mode 100644 phpgwapi/js/tinymce/docs/option_invalid_elements.html create mode 100644 phpgwapi/js/tinymce/docs/option_language.html create mode 100644 phpgwapi/js/tinymce/docs/option_mode.html create mode 100644 phpgwapi/js/tinymce/docs/option_nowrap.html create mode 100644 phpgwapi/js/tinymce/docs/option_onchange_callback.html create mode 100644 phpgwapi/js/tinymce/docs/option_oninit.html create mode 100644 phpgwapi/js/tinymce/docs/option_plugins.html create mode 100644 phpgwapi/js/tinymce/docs/option_popups_css.html create mode 100644 phpgwapi/js/tinymce/docs/option_preformatted.html create mode 100644 phpgwapi/js/tinymce/docs/option_relative_urls.html create mode 100644 phpgwapi/js/tinymce/docs/option_remove_linebreaks.html create mode 100644 phpgwapi/js/tinymce/docs/option_remove_script_host.html create mode 100644 phpgwapi/js/tinymce/docs/option_save_callback.html create mode 100644 phpgwapi/js/tinymce/docs/option_setupcontent_callback.html create mode 100644 phpgwapi/js/tinymce/docs/option_submit_patch.html create mode 100644 phpgwapi/js/tinymce/docs/option_textarea_trigger.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_blockformats.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n_add.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n_add_before.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_container.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_container_align.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_container_class.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_containers.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_containers_default_align.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_containers_default_class.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_custom_layout.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_disable.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_layout_manager.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_path_location.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_source_editor_height.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_source_editor_width.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_styles.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_toolbar_align.html create mode 100644 phpgwapi/js/tinymce/docs/option_theme_advanced_toolbar_location.html create mode 100644 phpgwapi/js/tinymce/docs/option_trim_span_elements.html create mode 100644 phpgwapi/js/tinymce/docs/option_urlconverter_callback.html create mode 100644 phpgwapi/js/tinymce/docs/option_valid_elements.html create mode 100644 phpgwapi/js/tinymce/docs/option_verify_css_classes.html create mode 100644 phpgwapi/js/tinymce/docs/option_verify_html.html create mode 100644 phpgwapi/js/tinymce/docs/option_visual.html create mode 100644 phpgwapi/js/tinymce/docs/option_visual_table_class.html create mode 100644 phpgwapi/js/tinymce/docs/option_width.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_advhr.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_advimage.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_advlink.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_contextmenu.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_directionality.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_emotions.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_flash.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_fullscreen.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_iespell.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_insertdatetime.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_paste.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_preview.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_print.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_save.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_searchreplace.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_table.html create mode 100644 phpgwapi/js/tinymce/docs/plugin_zoom.html create mode 100644 phpgwapi/js/tinymce/docs/reference_configuration.html create mode 100644 phpgwapi/js/tinymce/docs/reference_javascript_functions.html create mode 100644 phpgwapi/js/tinymce/docs/reference_plugins.html create mode 100644 phpgwapi/js/tinymce/examples/dump.php create mode 100644 phpgwapi/js/tinymce/examples/example_advanced.css create mode 100644 phpgwapi/js/tinymce/examples/example_advanced.htm create mode 100644 phpgwapi/js/tinymce/examples/example_flash_list.js create mode 100644 phpgwapi/js/tinymce/examples/example_full.css create mode 100644 phpgwapi/js/tinymce/examples/example_full.htm create mode 100644 phpgwapi/js/tinymce/examples/example_image_list.js create mode 100644 phpgwapi/js/tinymce/examples/example_link_list.js create mode 100644 phpgwapi/js/tinymce/examples/example_simple.htm create mode 100644 phpgwapi/js/tinymce/examples/logo.jpg create mode 100644 phpgwapi/js/tinymce/examples/logo_over.jpg create mode 100644 phpgwapi/js/tinymce/examples/zh_cn/dump.php create mode 100644 phpgwapi/js/tinymce/examples/zh_cn/editor_content.css create mode 100644 phpgwapi/js/tinymce/examples/zh_cn/editor_popup.css create mode 100644 phpgwapi/js/tinymce/examples/zh_cn/editor_ui.css create mode 100644 phpgwapi/js/tinymce/examples/zh_cn/example_advanced.htm create mode 100644 phpgwapi/js/tinymce/examples/zh_cn/example_full.css create mode 100644 phpgwapi/js/tinymce/examples/zh_cn/example_full.htm create mode 100644 phpgwapi/js/tinymce/examples/zh_cn/example_mail.htm create mode 100644 phpgwapi/js/tinymce/examples/zh_cn/example_simple.htm create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/blank.htm create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/ar.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/cs.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/da.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/de.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/el.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/en.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/es.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fa.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fi.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fr.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fr_ca.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/hu.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/it.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/ja.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/ko.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/nl.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/no.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/pl.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/pt.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/readme.txt create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/ru.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/sv.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/th.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/langs/zh_cn.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/editor_plugin.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/images/template.gif create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/langs/en.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/popup.htm create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/readme.txt create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/images/advhr.gif create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/langs/cs.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/langs/de.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/langs/fa.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/langs/fr.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/langs/fr_ca.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/langs/pl.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/langs/sv.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/langs/zh_cn.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/readme.txt create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/cs.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fa.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fa_ca.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fr.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ko.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/pl.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/sv.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/zh_cn.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/readme.txt create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/cs.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fa.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr_ca.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ko.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/pl.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/sv.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/zh_cn.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/readme.txt create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/contextmenu.css create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/readme.txt create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/readme.txt create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/tiny_mce.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/tiny_mce_popup.js create mode 100644 phpgwapi/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js create mode 100644 phpgwapi/js/tinymce/lgpl.txt create mode 100644 phpgwapi/js/tinymce/readme create mode 100644 phpgwapi/js/tinymce/todo diff --git a/phpgwapi/js/tinymce/changelog b/phpgwapi/js/tinymce/changelog new file mode 100644 index 0000000000..68686a1099 --- /dev/null +++ b/phpgwapi/js/tinymce/changelog @@ -0,0 +1,563 @@ +Version 1.45 RC1 (2005-05-27) + Fixed bug where character map inserted & and </> when using & < >. + Fixed so paragraphs containing   is converted to numeric or raw if entity_encoding is set. + Fixed bug in searchreplace plugin when user tried to search on a empty string or the editor contents was empty. + Fixed repaint/trail graphics issues with images and tables in FF/Mozilla. + Fixed some memory leaks in TinyMCE core and context menu plugin, only MSIE was inflicted by this. + Fixed stange issue where elements sometimes disappeared in MSIE. + Fixed URL convertion problems with onmouseover, onmouseout image urls in advimage plugin. + Fixed URL convertion problems with Flash plugin. + Fixed the experimental Safari support, some features work some doesn't. + Fixed bug where multiple a elements where created when updating links on images in FF/Mozilla. + Fixed bug in importCSS function, was having a meaning less if statement. + Fixed so the contextmenu plugin uses images from the configurated theme instead of the advanced theme. + Fixed so the external_link_list_url/external_image_list_url options can use relative or absolute path. + Fixed so the external_link_list_url/external_image_list_url has a random query parameter to prevent it from cache. + Added new mceInsertRawHTML command, this inserts raw as it is HTML code in the the selected position. + Added paste plain text plugin contributed by Ryan Demmer, converted it into a paste plugin. + Added updated paste plugin contributed by speednet, includes paste directly feature for MSIE. + Added split/merge table cells support, to table plugin and context menus. + Added cut/copy/paste table rows functionality to context menu and table plugin. + Added new mceSetContent command, this does the same as the setContent function. + Added new clear all/new document icon to advanced theme. + Added new remove formatting and select text color icons. + Added new directionality plugin to better support languages that write from right to left. + Added new fullscreen plugin, enables users to toggle fullscreen editing mode. + Added a new template/tutorial plugin to aid people in the development of own plugins. + Removed visual_table_style and replaced it with visual_table_class. [BREAKS COMPATIBLITY]. + Renamed urlconvertor_callback option to urlconverter_callback. +Version 1.44 (2005-05-03) + Fixed bug with contextmenu not showing at the correct location in MSIE. + Fixed bug where a error was produced by the Flash plugin if the user reloaded the page in MSIE. + Fixed issue where mceAddControl and mceRemoveControl commands produced a error in MSIE. + Fixed bug when images and flash movies where mixed in the editor produced strange results. + Fixed so trailing / characters isn't removed from URLs. + Fixed so the contextmenu uses a diffrent method of loading it's custom CSS file. + Fixed getAttributes problem, it should read getAttribute. + Fixed so "Edit HTML source" window may be maximized. + Added French eacute entitiy to default entities option. + Added a height CSS value for the element path in advanced themes editor_ui.css since it keept bobbing up and down. + Added updated Polish language pack contributed by Marcin Szymon Sznyra. + Added better window auto resize method for most dialogs. + Added new feature to set what tags are to be left open in valid_elements. Add a + before the element names to enable. + Added nowrap for the editor table cells, sometimes the editors controls wrapped. + Updated German language pack contributed by Krokogras. +Version 1.44 RC2 (2005-04-25) + Fixed bug with host prefixes and port numbers when having relative_urls set to false and remove_script_host set to true. + Fixed bug when site absolute URLs for example /something was converted incorrectly in Firefox/Mozilla. + Fixed bug where the link wasn't auto selected in the drop list in the advanced themes default link dialog. + Fixed bug issue with the flash plugin and croping out characters before and after the movie. + Fixed bug where the editor jumped to top of editor area on enter/return when doctype was set to XML Transitional. + Fixed bug where context menu was appearing in the wrong location if the window was resized. + Fixed bug in the context menu where table properties wasn't working. + Fixed bug where a selectorText exception was trown if the CSS file contained @import or @charset. + Fixed bug where bold/italic/strikethough/underline wasn't selected/unselected in toolbar some times. + Fixed issue with hspace and vspace when having the inline_styles option enabled. Contributed by speednet. + Fixed bug where access denied error was thrown sometimes in MSIE. + Fixed so images without src won't be inserted. + Fixed some issues with width/height fields in the advimage plugin. + Fixed so the contextmenu plugin doesn't appear in MSIE 5.0, now functions with 5.5+. + Added filebrowser icon to mouse over and mouse out fields in the advimage plugin. + Added filebrowser icon to popup field in the advlink plugin. + Added so the triggerSave function gets auto executed when a user calls submit on a form, this can be disabled with the submit_patch option. + Added missing readme.txt file for the context menu plugin. + Added new border and background color fields to table dialog, based on contribution by Neirda. Enable them by the table_color_fields option. + Removed some old outdated items from FAQ. +Version 1.44 RC1 (2005-04-20) + Fixed bug where width/height attributes of a image wasn't stored some times in Firefox/Mozilla. + Fixed bug where P elements where created if a user pressed return/enter within a h1-h6 in Firefox/Mozilla. + Fixed bug where the remove format fuction didn't work some times in MSIE. + Fixed so backspace/delete gets added in one undo level in MSIE (improves performance). + Fixed so the "Could not find element by id or name" alert only shows when the debug option is set to true. + Fixed bug where bold/italic didn't work in Mozilla 1.3. + Fixed bug where width/height of a hidden TinyMCE instance where incorrect. + Fixed so the function layout of classes in tiny_mce_src.js uses prototype keyword instead of TinyMCE_ prefix (reduces size). + Fixed bug where triggerNodeChange produced javascript error some times in MSIE. + Fixed some issues in the Swedish and Spanish language packs. + Fixed bug where first undo level wasn't working correctly. + Fixed so flash plugin loads it's needed CSS data from within the plugin. + Fixed button images and CSS in the simple theme. + Fixed so the simple example shows how to use the simple theme instead of the default theme. + Fixed so cleanup default values can be set to empty. For example alt= generated alt="" on img elements. + Fixed memory leaks in MSIE (circular closure problem) events are now removed in a better way. + Fixed bug where URLs where converted incorrectly if the editor page URL contained / characters. + Fixed bug where table guidlines didn't work correctly when using the build in Mozilla table buttons. + Fixed bug where the Flash plugin was breaking other elements. + Added new contextmenu plugin, this plugin adds a menu if the user right clicks/uses the contextmenu on elements. + Added new multiple configuration support, the init method may now be called multiple times. + Added new remove_linebreaks option, this option is enabled by default and removes all HTML code linebreaks. + Added new behavior to the textarea_trigger option, if mode is textareas and trigger is false those elements will not be converted into editors. + Added new entity_encoding option, enabled user to better control the behavior of how character are converted into entities. + Added new isDirty command to TinyMCEControl, this method returns true if the user has done any modifications to the content. + Added new onchange_callback option, this callback is executed when contents within the editor instance is changed. + Added new init function for themes/plugins this gets called when a editor instance has finished it's setup. + Added new init_instance_callback option this callback is executed when instances are added to the editor. + Added new cleanup option this option enables users to totaly disable the whole cleanup process. + Added new importCSS method to TinyMCE. This method allows plugins and themes to load custom CSS files on initialization. + Added new getSelectedHTML method to TinyMCEControl class, this method returns the currently selected HTML contents. + Added new getSelectedText method to TinyMCEControl class, this method returns the currently selected contents as text. + Added new removeclass behavior to the removeformat button. The current class will be removed if no contents is selected. + Added new queryInstanceCommandValue and queryInstanceCommandState methods. + Added new option button_tile_map, this option contols the usage of button tile maps and is disabled by default. +Version 1.43 (2005-03-06) + Fixed bug with ask option not working at all. + Fixed bug where a "instance is not defined bug" error was produced. + Fixed bug with empty image src produced a error. + Fixed so the simple and default theme used the same CSS style as the advanced theme. + Fixed bug with the relative to absolute URL convertion logic if a empty string was passed used. + Fixed parse error bug with the source editor some servers can't handle XML PI declarations. + Fixed bug issue with HR elements in MSIE, if a specific work pattern where used a runtime error was produced by MSIE. + Fixed bug in the URL convertor logic, port numbers was not correctly handled. + Fixed issue where the cursor was placed before a insert of custom charater or date/time. + Fixed bug where the editor height option didn't work on MSIE. + Fixed bug where a linefeed within a table cell broke the table in Firefox/Mozilla. + Fixed bug where return/enter key after a image removed all content. + Fixed bug where return/enter key sometimes produced nestled P elements. + Fixed bug where the editor was stealing focus on load in MSIE. + Fixed bug where the visual aid logic forces width/height attributes on tables. + Fixed bug where getCSSClasses some times returned null value. + Fixed issue where the lang_insert/lang_update language variables wasn't entity decoded. + Fixed so the image/link/flash drop list gets auto selected thanks goes to Randy Simons and salzbermat. + Fixed so remove formatting button in MSIE removes all classes aswell. + Fixed issue where output contained single br element when the editor area was empty. + Added new %A/%a/%B/%b format chunks to insertdatetime, these insert localized date names such as January. + Added new oninit callback option for TinyMCE this callback is executed when all editor instances been initialized. + Added new preview panel to dialog in the advimage plugin, contributed by Virtuelcom. + Added element class name to element path in the advanced theme. + Updated Canadian French table language pack contributed by Virtuelcom. + Updated the swedish language pack, contributed by Mats Löfström, York Consulting AB. +Version 1.42 (2005-02-14) + Fixed bug with the element path beeing resized if width/height of editor was 100%. + Fixed bug with reloading/flicker of all button images in MSIE if browser cache is disabled. + Fixed backspace/delete bug in Firefox, some times the cursor got stuck. + Fixed bug issues with enter/return key in Firefox/Mozilla. + Fixed bug where copy/paste and drag drop of images/links failed in Firefox/Mozilla if a document_base_url is provided. + Fixed so when relative_urls is set to false it forces absolute URLs for images/links. + Fixed so the _src.js suffix versions of the themes and plugins gets loaded with the tiny_mce_src.js script is used. + Fixed so verify_css_classes option is disabled by default. + Fixed bug where tables where resized when toggling visual aid in Firefox/Mozilla. + Fixed bugs with advhr plugin running in a hidden div element. + Added new auto_focus option that enabled a specific editor area to be focused on startup. + Added a extra argument to the filebrowser callback inorder to get the calling window reference. + Added a new persian (farsi) language pack contributed by Morteza Zafari. + Added new more nice looking icons contributed by Morteza Zafari and Michael Keck. The old icons are available in a separate icon pack. + Added updated Canadian French language pack contributed by Virtuelcom. + Added updated French languahe pack contributed by Laurent Dran. + Added updated German language pack contributed by Tobias Heer. + Added some documentation regarding the layout manager options made by SlyD. +Version 1.41 (2005-01-31) + Added new table plugin, all table code is moved into this plugin [BREAKS COMPATIBLITY]. + Added new external_link_list_url/external_image_list_url options for better backend integration. + Added new file_browser_callback option for better backend integration. + Added new layout manager code into the advanced theme, contributed by SlyD. + Added new nowrap option, enables so users may change the word wraping behavior. + Added new Thai language pack contributed by Innozent. + Added obfuscated version of all plugins and themes to reduce over all startup/download time. + Added Simplified Chinese language pack contributed by cube316. + Added a updated Czech language pack thanks to Josef Klimosz. + Fixed issue where anchor elements where closed. This results in browser problems with the outputed HTML. + Fixed bug where the first return key press didn't produce a paragraph in Firefox/Mozilla. + Fixed bug in the searchreplace plugin where replace content sometimes fails in Firefox/Mozilla. + Fixed so all language packs now uses the ISO-639-2 code instead of ISO 3166-1 [BREAKS COMPATIBLITY]. + Fixed some issues with the force_br_newlines option in MSIE. + Fixed bug where the backspace or delete key produced BR elements in Firefox/Mozilla. + Fixed bug issue with link and image dialogs of the default theme/simple example. + Fixed some bugs when having the editor hidden in a tab/div, contributed by Ernst de Moor. + Fixed some character issues with the Danish language packs, contributed by someone unknown. +Version 1.40 (2005-01-09) + Added a new default value for the font size drop down, if no font size where found this gets selected. + Added a auto resize window feature, this is enabled by default but can be disabled with a window argument. + Added a new print plugin, prints the current editor contents to a printer. + Added a new searchreplace plugin, adds a search, searchnext and replace button. + Fixed bug issue where buttons didn't display correctly on some Firefox installations. + Fixed issue with value and type attributes of input elements getting lost in cleanup on MSIE. + Fixed so that the getEditorInstance command is public, returns a TinyMCEControl by id. + Fixed issue where "true" and "false" string wasn't treated as booleans in TinyMCE init options. + Fixed so cursor/mousepointer allways remains a arrow in all themes when rolling over buttons. + Fixed the popup windows so they are mode "modal" in Mozilla/Firefox. + Fixed so the ask question is displayed when elements are focused with the tab key. + Fixed so the ask option works when mode option is set to exact. + Fixed issue with visualaids on tables not working correctly when the user uses the tab key in Firefox/Mozilla. + Fixed some bugs with the mceSetCSSClass class command and the element path. + Fixed a new version of the mceInsertContent command. + Fixed so the auto_cleanup_word option is disabled by default. + Removed the langs of the zoom plugin, it now uses + instead of the "zoom" word. +Version 1.391 (2005-01-04) + Fixed major spacebar bug in MSIE, spacebar was disabled. +Version 1.39 (2005-01-04) + Updated the Flash plugin with a new version, contributed by jamesw. + Added new setWindowArg function, useful if plugins are to call other plugins. + Added new save plugin, this plugin adds a save/submit form button to tinyMCE, contributed by SlyD. + Added new hilite color support, sets a background-color style on the selected text. + Added new variable replacement popup URLs, check the openWindow function documentation for details. + Added new force_p_newlines option, forces P elements on return/enter key in Mozilla/Firefox. + Added new theme_advanced_path_location, adds a element path list. + Added new theme_advanced_toolbar_align option, defaults to center. + Added new Portuguese translation contributed by José Pedro Pereira. + Added new mceSelectNode and mceSelectNodeDepth commands. + Added new add_unload_trigger option, this adds a unload triggerSave call. Enabled by default. + Added am/pm time format to the insertdatetime plugin. + Fixed font color and size attribute bug, contributed by Vincent FIACK. + Fixed className undefined bug, Firefox/Mozilla produced a console error sometimes. + Fixed so mceSetCSSClass command may be applied to all sorts of elements. + Fixed so anchor elements can be removed by setting the anchor name to nothing. + Fixed typing performance some in Firefox/Mozilla, removed some nodechange triggers. + Fixed so the zoom plugin is invisible in MSIE 5.0, since zoom isn't available in that browser. + Fixed bug with the emotions plugin in MSIE 5.0, it was opening a new window. + Fixed so contents stay within the editor if the user hits the back/forward buttons. + Fixed bug where the window.name property was set to the image name. + Fixed so anchors links within the same page are made relative when relative_urls are set to false. + Updated the advanced theme so most of the images are loaded from a tiled image, improves loading time. + Updated the Swedish language pack, contributed by Martin. + Updated the readme.txt in the advlink plugin, was some problems with the valid_elements. + Updated the default CSS for the advanced theme some, added button backgrounds to look like office2k. +Version 1.38 (2004-11-28) + Added new textarea field for form elements when debug mode is enabled, contributed by Michael Keck. + Added new spacer item support for the theme_advanced_buttons options, contributed by Michael Keck. + Added new selection borders for images and hr elements, contributed by Michael Keck. + Added new advhr plugin, this plugin handles advanced settings on HR elements, contributed by Michael Keck. + Added new german language pack for the preview plugin, contributed by Michael Keck. + Added new word wrap and source formatting to the source editor, contributed by Michael Keck. + Added new updated charmap, contributed by Michael Keck. + Added new flash plugin that enabled flash movied to be handled, contributed by Michael Keck. + Added the old cut/copy/paste commands to the advanced theme, these are not visible by default. + Added new theme_advanced_buttons_add_before option to advanced theme. + Added new "update" button title for a popup windows. + Added new zoom prefix language variable to the zoom plugin. + Added new entities option, that enables you to config entity code to name convertion. + Added new custom cleanup possibility to plugins. + Added new cleanup_callback option, adds the possibilty to add custom cleanup logic. + Added new Norwegian language pack, contributed by Sten Aksel Heien. + Added new Korean language pack, contributed by Setzer Gabbiani. + Fixed the layout of the color picker, contributed by Michael Keck. + Fixed so the preview plugin doesn't include the any toolsbars in preview popup window, contributed by Michael Keck. + Fixed bug where anchors elements was treated as links. + Fixed so all popup windows are modal dialogs in MSIE. + Fixed bug where the word "null" sometimes appares in HTML after cleanup in Firefox/Mozilla. + Fixed bug where form elements with missing name attributes produced errors. + Fixed some default value bugs and issues with the new advlink plugin. + Fixed the link/image dialog sizes in the SE language pack. + Fixed the content duplication bug, it seems to be fixed anyway, if not please let me know. + Fixed bug where plugin handleNodeChange extentions broke the theme function. +Version 1.37 (2004-11-12) + Added new mceResetDesignMode command that can be used when the editor is placed in tabs. + Added new updated Italian language pack thanks goes to "Fabrix Xm" for the contribtion. + Added new greek language pack thanks goes to "Jacaranda Bill" for the contribution. + Added new french language pack thanks goes to "Pat Boens" for the contribution. + Added new russian language pack thanks goes to "Roman Filippov" for the contribution. + Added new updated Dutch language pack thanks goes to Arnoud van Delden and Ernst de Moor for the contribution. + Added new convert_newlines_to_brs option, that enables newlines to be converted to br elements. + Added new custom_undo_redo_keyboard_shortcuts option, enables keyboard shortcuts to be enabled/disabled. + Added new auto_reset_designmode option, thats resets the design mode when a editor instance is focused. + Added new form reset handler, resets the contents of TinyMCE areas when the onreset event is trigged. + Added new skip_cleanup parameter to triggerSave, this parameter is optional and defaults to false. + Added new lang_underline_img language variable to all themes. + Added new title attribute to all images, enables tooltips in Mozilla and Firefox. + Added new insert and cancel CSS id's for all submit and cancel buttons. + Added new full featured example that includes all available plugins and buttons. + Added new advlink and advimage plugins to TinyMCE, these are more advanced link and image tools. Contributed by Michael Keck. + Added new parameters to insertImage and insertLink commands. Contributed by Michael Keck. + Added updated compatiblity chart, includes a matrix table thanks goes to Ernst de Moor. + Added new insert image icon contributed by Arnoud van Delden and Ernst de Moor. + Added window focus on all popup windows, contributed by Arnoud van Delden and Ernst de Moor. + Fixed some issues with the char map added some characters and removed duplicate ones, contributed by Arnoud van Delden and Ernst de Moor. + Fixed the insert row icon, rotated it 180 degrees, contributed by Arnoud van Delden and Ernst de Moor. + Fixed the visual aid icon, made it a bit darker. Contributed by Arnoud van Delden and Ernst de Moor. + Fixed some issues with entity encoding in source editor aswell as in core cleanup code. + Fixed bug where the auto import CSS feature imported invalid CSS rules with : or spaces. + Fixed bug where unnecessary entity encoding of characters was done. + Fixed the window sizes some to better function on MSIE with SP2. + Fixed some issued with the auto word cleanup feature, fixes some issued with content duplication. + Fixed bug that made the editor to throw weird error when HTML code includes content. + Fixed bug where the style attribute was returned on images in source output even if it was disabled. + Fixed issue where the UI form elements of TinyMCE was submitted with the form submit. +Version 1.36 (2004-10-19) + Added a newly modified version of the German language pack from "krokogras". + Added auto resizing to popup windows with the same name. + Added example page for the plugin_preview_pageurl option in the preview plugin. + Fixed issue with link button auto enable/disable feature when content selection was made with the keyboard. + Fixed bug where events wasn't handled correctly in MSIE 5.5 and some 6.0 versions. + Fixed so align on images gets set as float style when the inline_styles option is enabled. + Fixed so solid border style isn't applied on elements with a border when the inline_styles option is enabled. + Fixed some issues with tables and the inline_styles option. + Fixed back button issue with MSIE, iframes was placed in browser history. +Version 1.35 (2004-10-13) + Added so that whitespace gets stripped in plugin and theme_advanced_buttons options. + Added custom plugin_preview_pageurl option to preview plugin. + Added Canadian French language packs for the new plugins, contributed by Virtuelcom. + Added new theme_advanced_blockformats option. + Added new title support to advanced theme link dialog. + Added new Ctrl+B/I/U keyboard shortcuts for Firefox. + Added Polish language pack contributed by "revyag". + Added Taiwanese language pack contributed by "Jim Kou". + Added updated German language pack contributed by "Krokogras". + Fixed some issues with ieSpell including better language support. + Fixed bug with default value in valid_elements not working in Firefox some times. + Fixed bug when focusing links without selecting any characters. + Fixed some typos in Swedish language pack. + Fixed bug with content selection and link button auto enable/disable feature. + Fixed bug issue when "theme_advanced_buttons" options where left empty. + Fixed various bugs with absolute URLs. +Version 1.34 (2004-10-03) + Added new insertdatetime plugin, inserts date/time in various formats. + Added new preview plugin, previews the HTML page in a new window. + Added new zoom plugin, adds the possibility zoom the editor in MSIE. + Added new emotions plugin, adds the possibility to add smileys. + Fixed so that TinyMCE functions on MSIE 5.0 again. + Fixed so that TinyMCE functions better on Mozilla 1.3. + Fixed so that the cursor doesn't jump to the top when setting styles. + Fixed bug with STRONG and EM elements wasn't handled correctly in Firefox. + Optimized the key handling some, gives better typing performance. + Removed key down statusbar debug info. +Version 1.33 (2004-09-29) + Removed the need of loading blank.html, iframes are now created dynamicly. + Fixed bug when selecting tables, MSIE was casting errors. + Fixed bug with pluginurl variable. + Fixed bug when tinyMCE.selectedElement error was cast in Mozilla. + Added new Arabic language pack contributed by Hani Suleiman. + Added "lang_dir" support to language packs like Arabic. +Version 1.32 (2004-09-25) + Added new ieSpell plugin, only works in MSIE. + Added new "theme_advanced_buttons_add" option. + Added new importPluginLanguagePack function. + Added new Danish language pack contributed by Jan Moelgaard. + Added updated German language pack contributed by Christopher Müller. + Added new any_selection to handleNodeChange callback. + Modified so link/unlink is dimmed if nothing is selected. + Fixed bug when deleting images in Firefox. + Changed the plugin location to a new plugin directory. + Renamed the "theme_plugins" option to "plugins". +Version 1.31 (2004-09-18) + Added Canadian French language pack, contributed by Virtuelcom. + Added so link/unlink buttons gets selected when user enters a link element. + Fixed URL bug when drag dropping/copy pasting images in Mozilla. + Fixed so mso style attribs don't get trimmed if auto_cleanup_word option is set to false. + Fixed bug with text alignment buttons. + Fixed bug with CSS auto import function in MSIE. + Fixed initialization bugs and issues. +Version 1.30 (2004-09-10) + Fixed bug issue where the editor was stealing focus from location bar. + Fixed bug issue with absolute aligned images lost focus when using tools. + Fixed bug #1025483, Url converting broken. + Added ability to send command values in advanced theme button list, contributed by someone helpfull. + Added new cleanup_on_startup option, to increase startup speed. + Added new inline_styles partly based on a contribution by Victor Nilsson. + Added new named anchor support. + Added custom_undo_redo_levels option. +Version 1.29 (2004-09-08) + Added new getEditorId function, to retrive the editor id of a form element. + Readded so cleanup is automaticly executed on editor startup in MSIE. + Added some various cleanup fixes for MS Word HTML. + Added new auto_cleanup_word option, enabled auto MS Word HTML cleanup on paste events. + Fixed parameter issue with insertImage function. Bug #1022863. + Fixed bug #1022874, Where the small theme had underline command on strikethrough button. + Fixed some bugs with table commands. + Fixed bug #1023204, mceRemoveControl brings back the old HTML. + Fixed bug issue with tinyMCE.selectedInstance in Mozilla. + Fixed bug issue with Mozilla not saving content. +Version 1.28 (2004-09-04) + Added new Finnish language pack thanks to Urho Konttori. + Added new rowseparator as a possible value of the theme_advanced_buttons options. + Added new theme_advanced_toolbar_location option. + Added new uid variable option to valid_elements. (Generates unique IDs) + Added new "directionality" option to support languages like Arabic. + Added new character map button/window. + Added new guidelines/visual aid toggle button. + Reduced the source of the advanced theme some, and added some better comments. + Separated the default theme in to files aswell. + Removed source area size options and made source editor resizable instead. + Increased the default width and height of the source editor. + Fixed bug where image width/height default to 0x0 if these attributes wasn't defined. + Fixed some bug issues with MSIE 5.5. +Version 1.27 (2004-08-29) + Added new cleanup logic, with new options and smarter behavior. + Added new "trim_span_elements" option (removed unneeded span elements). + Added new "verify_css_classes" option (verifies so class attributes contain a valid class). + Added new "verify_html" option (enables/disabled verification of elements and attributes). + Added new value verification type to "valid_elements" option. + Added new simple wildcard support in "valid_elements" option. + Added class as a valid attribute to table elements by default. + Added so non existent classes gets removed HTML output. + Added fix for   entities, so they get converted correctly. + Added new class select box in table dialog. + Added hr as a default valid element. + Fixed some issues with the language packs. + Fixed some weird bugs and issues with hr elements. + Fixed bug where Mozilla was casting exceptions on keypress. +Version 1.26 (2004-08-25) + Added a better way to create theme popup windows (External files). + Added new getWindowArg function, returns window arguments in theme popups. + Modified the advanced theme to adopt the new theme popup idea. + Fixed critical Mozilla bug, where the editor didn't work at all some times. + Fixed bug with auto CSS class import feature running on Firefox. +Version 1.25 (2004-08-22) + Added new format select box in advanced theme (Can be disabled). + Added new "theme_advanced_disable" option to advanced theme. + Added some new elements to default list of valid elements (Format select box elements). + Added new font face, forecolor and font size support, these are not enabled by default. + Added new "mceAddControl" command, enables users to dynamicly add editors. + Added new execInstanceCommand function, check the documentation for details. + Added new "mceSetAttribute" command. + Modified the themes so that the focus alert doesn't popup as often as before. + Modified the "mceRemoveControl" command so it can handle element id aswell as editor ids. + Fixed some bugs and issues with the new custom undo/redo logic. + Fixed weird Mozilla bug #997860. +Version 1.24 (2004-08-17) + Modified so that span with CSS classes that don't exists get removed. + Added new "custom_undo_redo" option, this option is enabled by default. + Added new "fix_content_duplication" option, that fixes some MSIE content duplication issues. + Added new "mceFocus" command, that changes focus to the specified editor instance. + Added new "mceReplaceContent" command, that enables users to replace the current selection. + Fixed so styles including spaces doesn't get listed in style selection box. + Fixed bug with form element names and exact mode in Mozilla. + Fixed so tiny_mce_src.js can be used aswell as tiny_mce.js. + Converted some of the language packs to better support unicode. +Version 1.23 (2004-07-31) + Modified the mceSetCSSClass command to address bug #997071. + Added new Hungarian language pack thanks to 2XP. + Added new callback "setupcontent_callback" check the manual for details. + Fixed bug #994506, where empty theme_plugins option generated a 404 error. + Fixed bug #999332, where image properties wasn't removed if the user deleted the image. +Version 1.22 (2004-07-19) + Fixed bug #989846, Image resize bug. + Changed so that style attribute values get converted to lowercase in MSIE. + Changed so the alignment called "middle" is "center" in table properties. + Fixed so visual aids work correctly after using the source editor. + Fixed some issues with anchor links. + Fixed so that javascript: links can be used. + Added width/height options for the advanced source editor. + Fixed bug issue with URL:s containing quotes or single quotes. + Fixed so that document_base_url can point to another domain. +Version 1.21 (2004-07-12) + Added new "theme_plugins" option, check the manuals for details. + Added new "execCommand" plugin extention possibility. + Added new "buttons" config options to the advanced theme. + Added new "mceRemoveControl" command. + Added Spanish language pack thanks to "Alvaro Velasco". + Fixed first click bug. + Fixed so CSS url:s can be absolute. + Updated the FAQ regarding the Cut/Copy/Paste issue. +Version 1.20 (2004-07-05) + Fixed bug issue #983257, JS runtime error when template contains no controls. + Removed cut/copy/paste commands and icons due to security reasons in Mozilla. + Added Czech language pack, thanks goes to "Pavel Novák" for the contribution. + Fixed minor bug regarding empty attributes. + Fixed so the "extended_valid_elements" overrides previous declarations. +Version 1.19 (2004-06-28) + Fixed focus bug that appared on Linux version of Mozilla. + Fixed major bug issues with some Firefox/Firebird versions on Linux. + Fixed minor visual aid bugs on tables. + Fixed minor bugs with table commands. + Fixed scroll issue in HTML source windows on Mozilla/Linux. + Added a compatiblity chart to the manuals. +Version 1.18 (2004-06-20) + Added new option "remove_script_host". + Some minor fixes to the mceInsertContent command. + Fixed some issues with visual aids for tables. + Fixed strange focus bug in MSIE. + Updated some of the documentation. +Version 1.17 (2004-06-16) + Fixed bug, #972666 - Doesn't save edits when id != name. + Added more Italian, user manuals. Thanks goes to "Fabrix Xm". + Added Dutch language pack thanks to "Meint Post". + Modified the MSIE version of mceInsertContent command. +Version 1.16 (2004-06-14) + Added new table dialog and TinyMCE__getInsertTableTemplate template function. + Added auto class import feature and Italian language pack thanks goes to "Lorenzo Pavani". + Added border, alignment, vspace, hspace, width, height fields to the image properties dialog in advanced theme. + Updates advanced theme help pages for Swedish and English. + Fixed some minor issues with the mceSetCSSClass command. + Fixed minor MSIE bug in built in default URL convertor. + Fixed some image alignment issues. + Fixed support for site root script paths like src="/jscripts/tiny_mce.js". + Removed the use of "TinyMCE_advanced_cssClasses" from "advanced" theme. + Modified the default value of "valid_elements" to include table align and class as valid attributes. + Modified the default value of "valid_elements" to set img border attribute to 0 by default instead of by force. + Modified so that popup windows gets centered on screen. +Version 1.15 (2004-06-09) + Added new "advanced" theme, that adds some new functions. + Added new public js functions "getContent, setContent, applyTemplate, openWindow". + Added new custom command "mceSetCSSClass", that sets css class of the selection. + Added new custom command "mceInsertContent", that inserts HTML content. + Added class attributes to some of the elements in the default value of "valid_elements". + Added ability to have theme specific language packs by the js function "importThemeLanguagePack". + Added more documentation to the usage and themes sections. + Added table support, with custom commands and in advanced theme. + Modified the advanced example to include the new advanced theme. + Fixed tooltips for buttons in Mozilla. +Version 1.14 (2004-06-07) + Added new conversion possibility to save callback. + Added some more usage documentation. + Fixed some issues will updateContent function in Mozilla. + Fixed some issues with relative paths. + Fixed small Mozilla issue with visual aids. + Fixed so that the default theme sets image border to 0. + Fixed bug #968079, Removing editor buttons in template can cause errors. +Version 1.13 (2004-06-04) + Fixed critical bug where the editor didn't work at all in MSIE. + Fixed bug where table visual aids didn't work in Mozilla. +Version 1.12 (2004-06-03) + Added updateContent function thanks to "Jürgen Baute" contribution. + Added documentation of the diffrent public javascript functions of tinyMCE. + Fixed bug #965615, Empty editor content returns "
" as value after cleanup. + Fixed bug where Bold and Italic didn't work correctly in Mozilla. +Version 1.11 (2004-06-01) + Added new option "document_base_url", it's used when converting absolute URLs to relative ones. + Added so that align button sets the align attribute of selected images. + Fixed bug when / was passed within query string to the editors page. + Fixed bug #961041, Image attributes are not removed. +Version 1.1 (2004-05-26) + Fixed bug #960112 JavaScript error when opening image window. + Fixed bug #926644 Multiple forms with elements having the same name failed. + Added function so that "specific_textareas" mode handles the "ask" option. + Added new option "focus_alert", to remove annoying focus alert message. +Version 1.09 (2004-05-24) + Added new option "extended_valid_elements", this option adds extra elements to the "valid_elements" list. + Fixed bug #958637, Resized images are displayed in original size + Fixed bug #958942, Bug on realitive_urls (Bug with absolute URLs to insertlink_callback, insertimage_callback callbacks) + Fixed bug #958498, Unable to change Bold and italic text in Mozilla. +Version 1.08 (2004-05-21) + Added new attributes "border, hspace, vspace, width, height, align" to the getInsertImageTemplate theme function. + Added new relative_urls option, this new feature converts all absolute URLs to relative URLs and it's on by default. + Fixed bug #956007, the CSS theme URL:s was allways pointing to the default theme. + Fixed bug where enter/return key produced a error in the insert link popup window form. (This was done in the default template) + Fixed bug #957681, Could not delete text without first adding character bug in Mozilla. +Version 1.07 (2004-05-10) + Added experimental support for option "force_br_newlines" to address bug #922416 and feature request #936270. + Fixed bug with mailto: links. +Version 1.06 (2004-04-15) + Added new German language pack. Thanks goes to "Simon Rupf" for the contribution. + Added new German/Swedish bold/italic language specific icons to both default and simple theme. + Added new Swedish documentation. +Version 1.05 (2004-04-02) + Added new Italian language pack and documentation. Thanks goes to "Fabrix Xm" for the contribution. + Fixed missing "lang_help_desc" definition in UK and SE langpacks. + Added better documentation for the "valid_elements" option and it's format. + Added new "preformatted" option to address feature request #927948. + Added browser checker so that the script don't break on non compatible browsers. + Fixed bug #926639, now the editor instance gets resized if a width/height is specified in %. + Added new simple theme, this theme has only basic functions. +Version 1.04 (2004-03-30) + Fixed bug when insertLink and insertImage function didn't use the url_convertor callback. + Fixed MSIE bug when images was 32x32 on initialization on slow connections. + Fixed bug that made request on images with wrong path, produced some 404 error in webserver logs. + Fixed MSIE bug where users could add images outside of the editor scope. +Version 1.03 (2004-03-26) + Added new "add_form_submit_trigger" this option is default and is added on all document forms within the page. To address bug #923362 + Moved javascript sourcecode file to "jscripts/tiny_mce/tiny_mce_src.js". + Added new obfuscated version of tinymce to reduce size of script. + Added some performance boosting code to the switchClassSticky function. + Removed the "autosave" option, this is no longer needed and is replaced with "add_form_submit_trigger" or triggerSave call. + Fixed undo bug in MSIE. + Removed some unused eventhandlers results in better performance. +Version 1.02 (2004-03-26) + Added new handleNodeChange callback to themes. + Fixed some bugs regarding events and themes function checks. + Fixed bug issue when user focused nodes with keyboard. +Version 1.01 (2004-03-12) + Added some more documentation. + Added new "visual" option to editor. + Fixed bug on empty P elements. + Fixed bug on table width/height. +Version 1.0 (2004-03-11) + Added new "debug" option and fixed some path issues. diff --git a/phpgwapi/js/tinymce/docs/about.html b/phpgwapi/js/tinymce/docs/about.html new file mode 100644 index 0000000000..6d5a2d8eae --- /dev/null +++ b/phpgwapi/js/tinymce/docs/about.html @@ -0,0 +1,41 @@ + + + +About + + + + +
+

About

+
+ +
+

General information

+
+

TinyMCE is a powerful WYSIWYG editor control for web browsers such as MSIE or Mozilla that enables the user to edit HTML contents in a more user friendly way. The editor control is very flexible and it's build for integration purposes for example usage within systems like Intranets, CMS, LMS and so forth.

+

+ TinyMCE is developed by Moxiecode Systems AB and is currently released under the "LGPL" license, read the license agreement for details. +

+

Features

+

+

    +
  • Easy to integrate, takes only a couple lines of code.
  • +
  • Theme and template support.
  • +
  • Easy to extend with custom code. (Plugins and callbacks)
  • +
  • Customizable HTML output. Block elements and force attributes.
  • +
  • International language support (Language packs).
  • +
  • Multiple browser support, currently Mozilla (PC, Mac and Linux), MSIE (PC) and FireFox (PC, Mac and Linux) and some limited Safari support.
  • +
+

+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/compatiblity_chart.html b/phpgwapi/js/tinymce/docs/compatiblity_chart.html new file mode 100644 index 0000000000..32fded18c2 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/compatiblity_chart.html @@ -0,0 +1,84 @@ + + + +Compatiblity Chart + + + + +
+

Compatiblity Chart

+
+ +
+

Browser support

+
+

TinyMCE uses advanced JavaScript and tries to be as smart as possible when it comes to different browsers, the main focus is on Microsoft Internet Explorer and Mozilla/Firefox. The table was reset to only show the browsers we ourselves can test on. It works with many older versions of Mozilla and Firefox. Just cause a browser is not listed on this page doesn't mean it does work, try out the examples on our website.

+ +

Since MacOS X 10.4 is more or less Linux we are not testing much on Linux any more, use the Sourceforge bug report system to submit bugs on the very latest browsers only.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Windows XPMacOS X 10.4
MSIE 6OK 
MSIE 5.5 SP2OK 
MSIE 5.0OK 
Mozilla 1.7.8OKOK
Mozilla 1.7.7OKOK
Firefox 1.0.4OKOK
Firefox 1.0.3OKOK
Safari 2.0 (412) OK(1)
+

+

+

    +
  • (1) - Partialy working
  • +
  • (2) - Buggy browser version
  • +
+

+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/credits.html b/phpgwapi/js/tinymce/docs/credits.html new file mode 100644 index 0000000000..8da2497212 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/credits.html @@ -0,0 +1,81 @@ + + + +Credits + + + + +
+

Credits

+
+ +
+

Contributors

+
+

These are the people, companies or organizations that have contributed in some way to the TinyMCE project. If you feel we are missing someone please inform us right away and we will correct this in future versions of TinyMCE.

+

+ Please note that some of these have contributed with complete language packs and some have updated parts of language packs or similar. +

+
+
+
+

+

    +
  • Code / Solutions / Features
  • +
      +
    • Michael Keck
    • +
    • Victor Nilsson
    • +
    • Jürgen Baute
    • +
    • "Neirda"
    • +
    • "speednet"
    • +
    • Virtuelcom
    • +
    • "SlyD"
    • +
    • Ernst de Moor
    • +
    • "jamesw"
    • +
    • Vincent FIACK
    • +
    • Aptest
    • +
    +
  • Language packs
  • +
      +
    • Marcin Szymon Sznyra
    • +
    • "revyag"
    • +
    • Jim Kou
    • +
    • "Krokogras"
    • +
    • Hani Suleiman
    • +
    • Jan Moelgaard
    • +
    • Christopher Müller
    • +
    • Virtuelcom
    • +
    • Pavel Novák
    • +
    • Simon Rupf
    • +
    • "Fabrix Xm"
    • +
    • Mats Löfström, York Consulting AB
    • +
    • Morteza Zafari
    • +
    • Laurent Dran
    • +
    • Tobias Heer
    • +
    • "Innozent"
    • +
    • "cube316"
    • +
    • José Pedro Pereira
    • +
    • "Martin"
    • +
    • Sten Aksel Heien
    • +
    • Setzer Gabbiani
    • +
    • Jacaranda Bill
    • +
    • Pat Boens
    • +
    • Roman Filippov
    • +
    • Arnoud van Delden
    • +
    +
+

+

There are also a few corporations that have contributed in various ways to have features developed by payed support. +

+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/css/screen.css b/phpgwapi/js/tinymce/docs/css/screen.css new file mode 100644 index 0000000000..56222b1ee4 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/css/screen.css @@ -0,0 +1,145 @@ +body { + background-color: #FFFFFF; + font-family: Verdana, Arial, helvetica, sans-serif; + font-size: 12px; +} + +.header { + border: #E0E0E0 solid 1px; +} + +.footer { + border: #E0E0E0 solid 1px; + height: 20px; +} + +h1 { + font-size: 18px; + font-weight: bold; + padding: 0px; + margin: 4px; +} + +h2 { + font-size: 14px; + font-weight: bold; + padding: 0px; + margin: 0px; + margin-top: 4px; + margin-bottom: 4px; +} + +h3 { + font-size: 11px; + font-weight: bold; + padding: 0px; + margin: 0px; + margin-bottom: 3px; +} + +.section { + margin-left: 15px; +} + +.column { + margin-right: 20px; + float: left +} + +.separator { + border-bottom: 1px solid #E6EBF1; + margin-top: 10px; + margin-bottom: 10px; +} + +p { +} + +.helpindex { + margin-left: 20px; + padding-left: 0px; +} + + +.optionlist { + margin: 0px; + padding: 0px; + margin-bottom: 10px; +} + +.optionlist li { + padding: 0px; + margin: 0px; + margin-top: 3px; + margin-bottom: 3px; + margin-left: 10px; + list-style-type: none; +} + +.helpindex li { + margin-top: 3px; +} + +.content { + margin: 10px; +} + +.example { + background-color: #E6EBF1; + margin-left: 10px; +} + +code, pre { + margin: 0px; + padding: 0px; + background-color: #E6EBF1; +} + +.copyright { + margin: 3px; + float: left; +} + +.helpindexlink { + margin: 3px; + float: right; +} + +a:visited { + color: #666666; + text-decoration: underline; +} + +a:active { + color: #666666; + text-decoration: underline; +} + +a:hover { + color: #666666; + text-decoration: underline; +} + +a { + color: #666666; + text-decoration: underline; +} + +.list_subtitle { + padding-top: 5px; +} + +.note { + margin-top: 5px; + margin-left: 10px; + font-size: 10px; +} + +.marked { + color: red; + font-weight: bold; +} + +thead { + background-color: #E6EBF1; +} \ No newline at end of file diff --git a/phpgwapi/js/tinymce/docs/customization_language_packs.html b/phpgwapi/js/tinymce/docs/customization_language_packs.html new file mode 100644 index 0000000000..659e15ad41 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/customization_language_packs.html @@ -0,0 +1,47 @@ + + + +Customization - Creating a language pack + + + + +
+

Customization - Creating a language pack

+
+ +
+

Making language packs

+

Language packs are simply JavaScript name/value arrays placed in the ".js" files in the "lang" directory. Remember to allways use the "lang_" prefix for these value names so that they don't override other variables in the templates. The example below shows how the cut, copy and paste texts are lang packed. Notice there are two kinds of language packs one is the general one shared by all themes these are located in the "jscripts/tiny_mce/langs" directory the other optional one is theme specific language packs these are contained in "jscripts/tiny_mce/themes/<some theme>/langs". +

+

+

+
+tinyMCELang['lang_cut_desc'] = 'Cut (Ctrl+X)';
+tinyMCELang['lang_copy_desc'] = 'Copy (Ctrl+C)';
+tinyMCELang['lang_paste_desc'] = 'Paste (Ctrl+P)';
+
+
+

+ +

Files to edit

+ When translating TinyMCE, these are the files that currently needs to be translated: +

+

+ /tinymce/jscripts/tiny_mce/langs/en.js
+ /tinymce/jscripts/tiny_mce/plugins/<plugin>/langs/en.js
+ /tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js
+

+

+ Notice some language variables may include a name/url of a gif image or simmilar, for example the button for bold has a "F" character in the Swedish language pack. +

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/customization_plugins.html b/phpgwapi/js/tinymce/docs/customization_plugins.html new file mode 100644 index 0000000000..91a58aaa84 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/customization_plugins.html @@ -0,0 +1,243 @@ + + + +Customization - Creating a plugin + + + + +
+

Customization - Creating a plugin

+
+ +
+ +

Creating your own plugins

+

+Creating you own plugins for the TinyMCE application is fairly easy if you know the basics of HTML, CSS and Javascript. The most easy way is to copy the "_template" directory or one of the other core plugins and work from there. The "_template" directory is a tutorial plugin that shows how to create a plugin. After you copy the template you need to change the red sections marked below to the name of your plugin this is needed so that plugins don't overlap in other words it gives the plugin a unique name. Then just alter the source code as you see fit remember that your custom plugins needs to be located in tiny_mce's "plugins" directory. If you want you may add plugin specific options/settings but remember to namespace them in the following format "<your plugin>_<option>" for example "yourplugin_someoption". +

+

+The example below has three functions, these are explained in greater detail below. +

+

+

+
+function TinyMCE_yourplugin_initInstance(inst) {
+	// Gets executed when a editor instance is initialized
+}
+
+function TinyMCE_yourplugin_getControlHTML(control_name) {
+	// Gets executed when a button is to be generated
+}
+
+function TinyMCE_yourplugin_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+   // Gets executed when the selection changes
+}
+
+function TinyMCE_yourplugin_execCommand(editor_id, element, command, user_interface, value) {
+   // Add your own custom commands here
+
+   return false;
+}
+
+function TinyMCE_yourplugin_cleanup(type, content) {
+	// Add your own custom cleanup here
+
+	return content;
+}
+
+
+

+ +
+ +

Creating popup HTML files

+

+When creating a popup you need to include the "tiny_mce_popup.js" this enables you to retrive the tinyMCE global instance in all popup windows. All variables and language definitions gets replaced in the page when it loads. So language variables such as {$lang_something} can be places in the HTML code, if you need to get a language string in JavaScript simply use the tinyMCE.getLang function. +

+

Example of simple popup file:

+
+
+<html>
+<head>
+<title>{$lang_plugin_sample_title}</title>
+<script language="javascript" src="../../tiny_mce_popup.js"></script>
+<script language="javascript">
+     // getWindowArg returns any arguments passed to the window
+     alert(tinyMCE.getWindowArg('some_arg'));
+</script>
+<body>
+     <strong>{$lang_plugin_sample_desc}</strong>
+</body>
+
+
+ +
+ +

The TinyMCE_<plugin>_initInstance function (Optional)

+

+ This function is called when a editor instance gets initialized. +

+

+ + + + + + + + + + + + +
Parameters
instReference to editor instance that was initialized.
+

+ + +
+ +

The TinyMCE_<plugin>_handleNodeChange function (Optional)

+

+This function is called when the cursor/selection of a editor instance changes. Then the currenly selected/focused node is passed to this function. This can be useful when you want to change the UI depending on what the user has selected. +

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameters
editor_idUnique editor id, this is the same as the $editor_id variable in getEditorTemplate.
nodeReference to the Node element where the cursor is currenly located.
undo_indexCurrent undo index, this value is -1 if the custom undo/redo support is disabled.
undo_levelsCurrent number of undo levels, this value is -1 if the custom undo/redo support is disabled.
visual_aidTrue/false state of visual aid/guidelines mode.
any_selectionIs any text or image selected.
+

+ +
+ +

The TinyMCE_<plugin>_execCommand function (Optional)

+

+This function is called when a command is executed for example "bold" or "createlink" this callback/plugin function may then intercept plugin specific commands and do custom logic. If this command returns true the command handling is terminated and the default tinyMCE command handeling never gets executed. +

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameters
editor_idUnique editor id, this is the same as the $editor_id variable in getEditorTemplate.
elementReference to the document DOM root element of the editor instance.
commandCommand that is to be executed for example "myCommand".
user_interfacetrue/false option if a user insterace is to be used or not.
valueCustom data value passed with command, may be any data type.
+

+

+Returns:
+true - Command intercepted and handled do not continue with command handling.
+false - Continue with execCommand handling, bubble.
+

+ +
+ +

The TinyMCE_<plugin>_getControlHTML(control_name) function (Optional)

+

+This function is called when a editor needs to render a specific control/button. This function should return the HTML template of that control or a empty string if the control_name wasn't recognized. Notice the variable {$pluginurl} gets replaced with the URL prefix for the current plugin directory. +

+

+ + + + + + + + + + + + +
Parameters
control_nameControl name to match against.
+

+

+Returns: return the HTML template of that control or a empty string if the control_name wasn't recognized. +

+

The TinyMCE_<plugin>_cleanup(type, content) function (Optional)

+

+This function is called when a editor does cleanup of contents. This function has the same format as the one defined in the cleanup_callback option. +

+

+ + + + + + + + + + + + + + + + +
Parameters
typeType of cleanup, insert_to_editor or get_from_editor. Insert to editor is passed when new content is placed within the editor and get_from_editor is when content is passed out from the editor. When dealing with the DOM representation of the same content insert_to_editor_dom or get_from_editor_dom gets passed as a type.
contentHTML contents to be cleaned up, this string contains the HTML code or with the _dom types the body DOM object gets passed instead.
+

+

+Returns: return the cleaned up HTML code. +

+ +
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/customization_themes.html b/phpgwapi/js/tinymce/docs/customization_themes.html new file mode 100644 index 0000000000..586839a877 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/customization_themes.html @@ -0,0 +1,423 @@ + + + +Customization - Creating a theme + + + + +
+

Customization - Creating a theme

+
+ +
+ +

Creating your own Themes

+

+Creating you own themes for the TinyMCE application is fairly easy if you know the basics of HTML, CSS and Javascript. The most easy way is to copy the "default" or the "advanced" template and rename it as your own name to for example "mytheme". After you copy the template you need to change the red sections marked below to "mytheme" this is needed so that themes don't overlap in other words it gives the theme a unique name. Then just alter the HTML code as you see fit but notice some elements needs to be there so check the docs below on each function also remember that your custom themes needs to be located in tiny_mce's "themes" directory. If you want you may add theme specific options/settings but remember to namespace them in the following format "theme_<your theme>_<option>". +

+

+The example below has three functions, these are explained in greater detail below. +

+

+

+
+function TinyMCE_default_getEditorTemplate(settings) {
+   var template = new Array();
+
+   template['html'] = '<Some HTML>';
+   template['delta_width'] = 0;
+   template['delta_height'] = -40;
+
+   return template;
+}
+
+function TinyMCE_default_getInsertLinkTemplate(settings) {
+   var template = new Array();
+
+   template['file'] = 'link.htm';
+   template['width'] = 320;
+   template['height'] = 130;
+
+   return template;
+}
+
+function TinyMCE_default_getInsertImageTemplate(settings) {
+   var template = new Array();
+
+   template['file'] = 'image.htm';
+   template['width'] = 320;
+   template['height'] = 130;
+
+   return template;
+}
+
+function TinyMCE_default_handleNodeChange(editor_id, node) {
+   // Check what happend
+}
+
+function TinyMCE_default_execCommand(editor_id, element, command, user_interface, value) {
+   // Your custom command logic
+   return false;
+}
+
+
+

+
+ +

Creating popup HTML files

+

+When creating a popup you need to include the "tiny_mce_popup.js" this enables you to retrive the tinyMCE global instance in all popup windows. All variables and language definitions gets replaced in the page when it loads. So language variables such as {$lang_something} can be places in the HTML code, if you need to get a language string in JavaScript simply use the tinyMCE.getLang function. +

+

Example of simple popup file:

+
+
+<html>
+<head>
+<title>{$lang_plugin_sample_title}</title>
+<script language="javascript" src="../../tiny_mce_popup.js"></script>
+<script language="javascript">
+     // getWindowArg returns any arguments passed to the window
+     alert(tinyMCE.getWindowArg('some_arg'));
+</script>
+<body>
+     <strong>{$lang_plugin_sample_desc}</strong>
+</body>
+
+
+ +
+

The TinyMCE_<theme>_getEditorTemplate(settings) function

+

+This function is responsible for the layout of the editor instance within the page it should return a name/value based array with some specific names. These are explained below, notice names included in [] characters are optional. The settings parameter to this function is a name/value array containing tinyMCE:s settings/options. +

+

+ + + + + + + + + + + + + + + + + + + + +
Template data
htmlHTML template data, this value should contain all the HTML code needed to render the editor. Notice: {$<variable>} are replaces with values when used. More about these specific values later on.
[delta_width]Delta width, this value should contain the relative width needed by the UI. For example if a toolbar takes 20 pixels this value should be -20. This is so the editor gets the same size as the element that are replaced.
[delta_height]Delta height, this value should contain the relative width needed by the UI. For example if a toolbar takes 40 pixels this value should be -40. This is so the editor gets the same size as the element that are replaced.
+

+

+Variables within the "html" value above are replaced with internal TinyMCE values. There are two types of variables one is the ones starting with the "lang_" prefix, these are replaced with the matching names in the language packs. So for example <b>{$lang_test}</b> gets replaces with the "tinyMCELang['lang_test']" variable and the output is then <b>Test</b>. The other variables are passed expicilty for the template used and these are listed below. Notice: Variables within [] characters are optional. +

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Variables
editor_idThis is the editor instance id and it should be placed in ID attribute of the IFRAME element that must be included in the template.
[default_document]This will be replaced with a blank html page, this is added for MSIE security issues and should be placed in the SRC attribute of the IFRAME within the template.
[area_width]Width of IFRAME area in pixels.
[area_height]Height of IFRAME area in pixels.
[width]Width of the whole editor area in pixels.
[height]Height of the whole editor area in pixels.
[themeurl]URL to theme location.
+

+

+Notice: There are two javascript function that can be called from this template these are tinyMCE.execCommand that executes commans on the currenly selected editor area and the tinyMCE.switchClass that switches the CSS class of the element specified. For more details of commands available by execCommand check the Mozilla midas specification and the TinyMCE specific commands. +

+
+

The TinyMCE_<theme>_getInsertLinkTemplate(settings) function

+

+This function is responsible for the layout of the insert link popup window and it should return a name/value based array with some specific names. These are explained below, notice names included in [] characters are optional. The settings parameter to this function is a name/value array containing tinyMCE:s settings/options. +

+

+ + + + + + + + + + + + + + + + + + + + + + + + +
Template data
htmlHTML template data, this value should contain all the HTML code needed to render the link dialog. Notice: {$<variable>} are replaces with values when used. More about these specific values later on. This parameter is not needed if the "file" param is assigned.
fileName of external template file to use, this may even be logic pages like .php,.asp,.jsp etc.
[width]Width of popup window in pixels. Default is 320.
[height]Height of popup window in pixels. Default is 200.
+

+

+Variables within the "html" value above are replaced with internal TinyMCE values. There are two types of variables one is the ones starting with the "lang_" prefix, these are replaced with the matching names in the language packs. So for example <b>{$lang_test}</b> gets replaces with the "tinyMCELang['lang_test']" variable and the output is then <b>Test</b>. The other variables are passed expicilty for the template used and these are listed below. Notice: Variables within [] characters are optional. +

+

+ + + + + + + + + + + + + + + + + + + + +
Variables/Window arguments:
[href]This variable gets replaced with the "href" attribute value of the selected link if one is selected.
[target]This variable gets replaced with the "target" attribute value of the selected link if one is selected.
[css]Theme popup css location.
+

+

+Notice: There are a javascript function that can be called from this template "window.opener.tinyMCE.insertLink(href, target)" this inserts the link into the currently selected editor and should be called when for example a insert button is pressed. +

+
+

The TinyMCE_<theme>_getInsertImageTemplate(settings) function

+

+This function is responsible for the layout of the insert image dialog, it should return a name/value based array with some specific names. These are explained below, notice names included in [] characters are optional. The settings parameter to this function is a name/value array containing tinyMCE:s settings/options. +

+

+ + + + + + + + + + + + + + + + + + + + +
Template data
htmlHTML template data, this value should contain all the HTML code needed to render the image dialog. Notice: {$<variable>} are replaces with values when used. More about these specific values later on. This parameter is not needed if the "file" param is assigned.
[width]Width of popup window in pixels. Default is 320.
[height]Height of popup window in pixels. Default is 200.
+

+

+Variables within the "html" value above are replaced with internal TinyMCE values. There are two types of variables one is the ones starting with the "lang_" prefix, these are replaced with the matchin names in the language packs. So for example <b>{$lang_test}</b> gets replaces with the "tinyMCELang['lang_test']" variable and the output is then <b>Test</b>. The other variables are passed expicilty for the template used and these are listed below. Notice: Variables within [] characters are optional. +

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Variables/Window arguments
[src]This variable gets replaced with the "src" attribute value of the selected link if one is selected.
[alt]This variable gets replaced with the "alt" attribute value of the selected link if one is selected.
[border]This variable gets replaced with the "border" attribute value of the selected link if one is selected.
[hspace]This variable gets replaced with the "hspace" attribute value of the selected link if one is selected.
[vspace]This variable gets replaced with the "vspace" attribute value of the selected link if one is selected.
[width]This variable gets replaced with the "width" attribute value of the selected link if one is selected.
[height]This variable gets replaced with the "height" attribute value of the selected link if one is selected.
[align]This variable gets replaced with the "align" attribute value of the selected link if one is selected.
[css]Theme popup css location.
+

+

+Notice: There are a javascript function that can be called from this template "window.opener.tinyMCE.insertImage(src, alt, border, hspace, vspace, width, height, align)" this inserts the image into the currently selected editor and should be called when for example a insert button is pressed. +

+ +
+ +

The TinyMCE_<theme>_handleNodeChange function (Optional)

+

+This function is called when the cursor/selection of a editor instance changes. Then the currenly selected/focused node is passed to this function. This can be useful when you want to change the UI depending on what the user has selected. +

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameters
editor_idUnique editor id, this is the same as the $editor_id variable in getEditorTemplate.
nodeReference to the Node element where the cursor is currenly located.
undo_indexCurrent undo index, this value is -1 if the custom undo/redo support is disabled.
undo_levelsCurrent number of undo levels, this value is -1 if the custom undo/redo support is disabled.
visual_aidTrue/false state of visual aid/guidelines mode.
any_selectionIs any text or image selected.
+

+ +
+ +

The TinyMCE_<theme>_execCommand function (Optional)

+

+This function is called when a command is executed for example "bold" or "createlink" this callback/theme function may then intercept theme specific commands and do custom logic. If this command returns true the command handling is terminated and the default tinyMCE command handeling never gets executed. +

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameters
editor_idUnique editor id, this is the same as the $editor_id variable in getEditorTemplate.
elementReference to the document DOM root element of the editor instance.
commandCommand that is to be executed for example "myCommand".
user_interfacetrue/false option if a user insterace is to be used or not.
valueCustom data value passed with command, may be any data type.
+

+

+Returns:
+true - Command intercepted and handled do not continue with command handling.
+false - Continue with execCommand handling, bubble.
+

+ +
+ +

The TinyMCE_<theme>_getControlHTML(control_name) function (Optional)

+

+This function is called when a editor needs to render a specific control/button. This function should return the HTML template of that control or a empty string if the control_name wasn't recognized. Notice the variable {$pluginurl} gets replaced with the URL prefix for the current plugin directory. +

+

+ + + + + + + + + + + + +
Parameters
control_nameControl name to match against.
+

+

+Returns: return the HTML template of that control or a empty string if the control_name wasn't recognized. +

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/faq.html b/phpgwapi/js/tinymce/docs/faq.html new file mode 100644 index 0000000000..bea781dfff --- /dev/null +++ b/phpgwapi/js/tinymce/docs/faq.html @@ -0,0 +1,86 @@ + + + +Frequently Asked Questions + + + + +
+

Frequently Asked Questions

+
+ +
+

Here are some common answers to common questions. If you need more help you can always visit the TinyMCE Forum on the TinyMCE website.

+ +
+ +

Why does TinyMCE strip aways attributes or tags from my source?

+
+

You need to check out the "valid_elements" and "extended_valid_elements" option in the configuration. By default, TinyMCE only allows certain tags and attributes. TinyMCE also tries to follow the XHTML specification as much as possible (and so should you), this can cause some unexpected source changes, there are however configururation options to battle this issue, study the configuration options in details.

+
+ +
+ +

TinyMCE changes the path of my images, why?

+
+

+ Different browsers handles images differently, TinyMCE tries to compensate for this and has its own convert URL functions. You can control the behaviour through the configuration, check out the URL section in the configuration options. +

+
+ +
+ +

Can I use TinyMCE in my commercial application?

+
+

Yes you can, the LGPL license is a Free Software License. You can read the whole license here or visit Free Software Foundation website here

+
+ +
+ +

Are there any restrictions to useing TinyMCE in my commercial application?

+
+

+ Yes, all copyright notices must be intact. Moxiecode Systems are still the copyright holders of the source code, so you can not use the code for other applications. Any modifications or addons you make to the source has to be contributes back to the TinyMCE community. +

+

+ If you start to make a lot of revenue from using TinyMCE, please remember the time and dedication that has been put into this by other developers, respect this and give credit to those who deserve it. We also accept donations. +

+
+ +
+ +

I don't like LGPL, is there a commercial license avalible for me?

+
+

+ Yes, we can draw up a license for you that enables you to remove copyright restrictions or anything else you would like to have in this license aggreement. Contact us through email, sales (at) moxiecode (dot) com. +

+
+ +
+ +

Do you provide support?

+
+

+ We do not provide any non-commercial support outside the forum on the TinyMCE webbsite. If you require commercial support, contact us by email, sales (at) moxiecode (dot) com. +

+
+ +
+ +

Who made this software?

+
+

+ The author of TinyMCE is Moxiecode Systems, parts of code has also been contributed by others, here are the credits list. +

+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/images/moxiecode.gif b/phpgwapi/js/tinymce/docs/images/moxiecode.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa23215457c033b2b10d4ecd0b0bea3a5c22427e GIT binary patch literal 4831 zcmW;JiC@cq;K1?s=h|9_)_q7V9isAG_eooe?kuglSXzn1Dx#>?wer<5nJ)2N2h!oY z2)WmxgJd0)gryLPC12l=Z@=UD7rY*im%Haydxxk#KnL$KLDAod@4x-)AF#b){B2kn zb#ZaAXY^`IciG(BT>ikzk>Q~`w{M5t8x9W-XWShcc=U+R=eM=B?LOl%GdIP?9sjEctdK;a7 z1Alj~vp~jrVa>X}Emn?!EgbPHPe4Y2Pm^NpP8HXn3T$EaR}QZD0Q+Y^%$Z5s%KieV21u#lgYG%{^wP?PR~Lt#;%`KUM7Z z`~OxNH>mY}g^DySA~qZ9xA)NQgfR}9FjZWA)>!DLm`D=|g5DC|2G2cKwSIR`**?=r z6-tm(M4uGr0#W@raNwVAvpojq4f_6~V4+@?wNF}8`^##wIHUr2{n0WrTGco2v*vO= z*vq|x+SwMm*ZqBiPIwq$>7B*Cd*>>HF0)tC16?V(@JW)X_OZ|=Mt3e=wY0%tDxu}N zl8Wk#@Wsfs$=+t>hj!|Dc@1S+fmv(i!Aeb4w_B5vVF7eXSvD@|@`RuuTQQ=WUz0Rl zX#W>4+1o34ZMR**>yP#N$`|uFVYVN0Jzb+b!xDP$=khe&X@4Dv>R^R(*1dRq0G3iD zBinBLU}jkI1-pFAHhqXxoz+w_ehgzylAFQm+h{siq=4A7CNW}x>&Y;WrXhNta$cko zYp3(I^pD(lcF0y3bsT2tJSeva=LHjFpGWk)*47)9GIQVgyP_Jp6@BWmWwU~^!rpl% zVRgXNY=;7+xo<6tZ$jBpXsmmxb|pX-_3u*nr*9V0cHpq{U@f48S6lFSPK&0Uvs2a8 z9n4WtS)htgjW}{m?yX(FwBQd8w5 zyjF+sQbRIBano#CAALeOm_m7UII2k8gLJz+FT(4yrtmmT`>hT8Gvp-{j7{R<%A z;%udjwv|@~)d)ng`t&MOEjdF7SNAf+rW1DiB*IdzaiW4`(E-WFCbx$Yik!yGP&d&% zw-rSdSxQ{Hq@br=#9+R#o8!o$yCGktZ<`~H#CDylHs~_*G^`p#3Hvj;MF3e9LCn#k zs}fnO6(-|qSDd#jL2l57CH?G6#%bTVdYe^6C-qwk zYil$=H_LEvEWL(i6f(fXpdc|@blp7pEnZ&3o_G~OL{s>%`O9x1m5>l+_bAFmtYxpNh1=Mf!UHy<%>bt0=KTPE?%9eG*$QkMCI`$f^W3F?E1 z&Q6Qq1vcbZkhmD~wLTGB%_tahU!yR|qbbk5Yx;uU^r0i05Y$%O2A#0_@06aU^C}0# z+z=o}k*ZhA1|#DxNDc?hv$yEPEfbM$!-lC!yxeLKB;SpnU*8UJG^!Z<|Vwh0IU_b=cKb z+Up^JW>jzvwGVNrXq5b7NQd5FdzmHk6289y!BBq=nN348O}z9xK%REt$qj})SWhfe zH}-&_OgCAL%K){h@F?2Mo(a1k?8<$te^h>2gj1HHFMp6$U^py$)m~m+OpHQETmb@C z3v*XbN|4YG0Nh~%M8`J+4XM&o=kSf>*AhJRJM@B>wbsk}@Fb~2=833?Tu3j8;=mST z$~d$@;_71ptp1q65j~R3wE>JhW9xhEtySK9=PY7R%t6}(QK`bM3TXo8>Zb;>&qAJl zPO%G75a$2M~`*^NoG?qfJ`J? zwRC@qEgPWv#DgZDV?>-@drggEQJiHbedtLmp;mdmtDIL^c(Ro5OKq4L*(jx53MHL2 zmw|CjUv1ZiE3FvDljEp zQDh0DEnhK(&c@SqdLB4k%}~z0DjzI$o+e{Vx4iEsJ)cfN^f(g4_IuWaQbU@8W;n;% zF#6)80H_Kj!Nq~wG4?oRv~3*{YTk@l$(8DnB%>Egx482K8@@Gb-#vZSrzvq@54yK6 z&))A~O+P8e0lNK+>SI;&t}R|~b6PIz7>AoD(~SEVCeytaK-nNGSvNeu84V;lwl}LD znZR#$Ggc(oLs;tNtQ;8vz*||%PdbpGiEtq zzsS!dtL%jP)N)r;J16pO%s52dEtKS`hd8ApA?Q9$*O*flFKHnfw>Rd-`u0m-y6`D? zW)5{}ZJvzEIcKG)6Gz2hGT?p~hs#HGk+^sGTa~NgbZ0xP3IUkCxe<#EcrI@&g%pp8 zEW+0yXlW}-B=O}7637vH5tCHnR7*OU%>B|hC6}i!qd!kOu8{cVQ=|PA^Nd!%-uT*? z*xCfQ$C0`$a=u>}IC=vKcK$8m{(SREZqpH9B+TzUyIP~+f zM75MByVNg}3SQ*PXh=(To49f9oXhNbQwN_KS^P<5zn8qz>Pf%M)qBNt%74H?rnD1k zO;_m0WyU`ZZK4AshG6GdXd2GzHmupX3z1=_)+$n_wS$Bb8R66oR^UH+A@h6HW`A7K z3Rz5gv3%2U{Kc!1Etje8Awb{=og{O5_UR#~Vc2SVbG{?XSre(}(n-OBW-evkYqhrNmLyk?M3PDC*MKsip6$A|W-^g>92d zo$B@JoDb(EW!ErZlr3ziAB707x$#i3Q$T#}i;gC)Fjr%eQ=a*`b4|=5_o*Oxh30Yi zq4jkxa_q2e&Ufw zMp(g9d<77{y{GvD^&Lf+DD5ua49da{+6=>Mbd*DMCjka_{KMyDnih2Nu@Ax-V&S*N#>ZOIFuCi zqIK0A&+Kk{i5wZqP4HL_BvglvoiR+jSr_JO?82yktwr!g zI%>Rt`3S+ilU7U~l(T(Pz5qm%-QUs^)dV{Z7}x}gki)z`}7;f5n(&^i!)mlZ~wxrN!65)iIVNvTIFhP&$SwQn1^BA<_^KBCSO0tNx-V zYDiJ1XVE1Fh!fkYe+c6XA?gJ`M1seGq@aSlE#k0!dn)-b?id@GsyO}a3dNCfyd-D@ z+viU;+>Gj8eIafwT{VV+la=n8TJJw?fm61@T?tWeSwgdMtb7yr;UdN$?I|9~pynRm z6KuGooN~I-*^Yw#X2I*g+1#Z45FZ=+hOhk&l5FAK6o|or9hus3LY$ERGGvBsw1EBS zI3G}hS{JBE(Ff{?1sk#yd4HaQyu~(*$~X;<<$o+}BV~o)&UVnHuZs|(HpCc|E+~w~ zl~Z9)p&*uymlY#E6nGy6+Qh@A>meTr&XaCjg?bT=GC4&_XoeKH$ZkRf_Jsk6m&Ai8^3f8}RhYOvOl?yNZeVC{ z0v%BiBWtA~EDSc}L8fe!0l2LMmfYb(e0KHRNW!cUG8^NhfFNDRt+zje@Ek~vj-Ly_ zhfd*NFR^gi#xh$n?(pUHIm~_mE`bO;NP_x#>7`Xz3=j1p;!HuIH#7PvJ@@%lKlOFk zIeSH0He$gmLWDb>SFAKPc>(I5(A9(R7Ga*lRcu)TC#BV8dO=zKz=n<6EjVifG*x*J zCIwW0$&&u|B%*150#6dAB>({;9aVZstHZvki_v@$UaQ>d2=CCaCdmDcY6u#OD!tbT zx8aFc%V`}|3L*M~qd|ES{wka>45CRbx>I;*V2chB$TBm+1?s%A+U<35`OjK4#TDy` zSDNdr4Nu5_CBZEYZGN#Z5Gfs8FT=Y6n-ULDs02zo*_C2ugfUWJRYo*vuA$m+i*A-!^(o%UVyt5}^>*`G&@hkGX z#2Dkyacf=*lXXM5J@GXG2G?}$?h-p`l-PC_9GDF!4#_mGf8qFT z5ib0|N>2kj0GNApZ~hGVwRXj#)L@x&qsoqzK~He6^Ij*qZz~(~(^O=(i}1~+DOP;O z;liel)cbU~ty}2{E2{K0(H&8)gv~sWu!isaplT#FfSjBD<}UrnjeXwNy( z=!M~fMxc$n_TNvt*Y;L&CM})o%U~hMz3r#yP6z>=tmSQXRXrys*Jg-udKB~m=61_! zPh?y7yPy3v1NK$bV{)2#^Yv=5 zkz+s8=-s>T#@)&r3M$~b;Z1?g<2wTdm3(|>q4Rw}@0jqp$p@G1FX0!FYj2zfXC`ee qh2+%&JT(=L>>7l92<~dYCj~wg|K#5YLfp~L|MqqK;LBzK;PgL+Fc1&` literal 0 HcmV?d00001 diff --git a/phpgwapi/js/tinymce/docs/index.html b/phpgwapi/js/tinymce/docs/index.html new file mode 100644 index 0000000000..693b82f51c --- /dev/null +++ b/phpgwapi/js/tinymce/docs/index.html @@ -0,0 +1,43 @@ + + + +TinyMCE Documentation - Index + + + + +
+

TinyMCE Documentation

+
+ + + + + + + diff --git a/phpgwapi/js/tinymce/docs/installation_example_00.html b/phpgwapi/js/tinymce/docs/installation_example_00.html new file mode 100644 index 0000000000..0b89fd6873 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/installation_example_00.html @@ -0,0 +1,37 @@ + + + +Installation Example 00 + + + + + + +
+

Installation example 00

+
+ +
+

Example

+

+

+ +
+

+
+ + + + + + diff --git a/phpgwapi/js/tinymce/docs/installation_example_01.html b/phpgwapi/js/tinymce/docs/installation_example_01.html new file mode 100644 index 0000000000..a5ec7f8915 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/installation_example_01.html @@ -0,0 +1,38 @@ + + + +Installation Example 01 + + + + + + +
+

Installation example 01

+
+ +
+

Example

+

Open this page with "View source" or similar to see how the configuration is made.

+

+

+ +
+

+
+ + + + + + diff --git a/phpgwapi/js/tinymce/docs/installation_example_02.html b/phpgwapi/js/tinymce/docs/installation_example_02.html new file mode 100644 index 0000000000..1d4e2f3bb4 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/installation_example_02.html @@ -0,0 +1,54 @@ + + + +Installation Example 02 + + + + + + +
+

Installation example 02

+
+ +
+

Example

+

Open this page with "View source" or similar to see how the configuration is made.

+

+

+ +
+

+
+ + + + + + diff --git a/phpgwapi/js/tinymce/docs/installation_example_03.html b/phpgwapi/js/tinymce/docs/installation_example_03.html new file mode 100644 index 0000000000..0afc5c2d2c --- /dev/null +++ b/phpgwapi/js/tinymce/docs/installation_example_03.html @@ -0,0 +1,45 @@ + + + +Installation Example 02 + + + + + + +
+

Installation example 02

+
+ +
+

Example

+

Open this page with "View source" or similar to see how the configuration is made.

+

+

+ +
+

+
+ + + + + + diff --git a/phpgwapi/js/tinymce/docs/installing.html b/phpgwapi/js/tinymce/docs/installing.html new file mode 100644 index 0000000000..13a61b89c1 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/installing.html @@ -0,0 +1,122 @@ + + + +Installation instructions + + + + +
+

Installation instructions

+
+ +
+

Installing TinyMCE is very simple, follow the instructions here. We give a few examples of to integrate TinyMCE, also look at the extensive options for configuration.

+ +
+ +

Requirements

+
+

TinyMCE has no direct requirements except for browser compatiblity and of course JavaScript needs to be turned on. There is NO backend code distributed with TinyMCE. +

+
+ +
+ +

Downloading

+
+

For download instructions check our website.

+
+ +
+ +

Extracting the archives

+
+

On windows you could use WinZip or something similar. And on other operating systems such as Linux you simply extract the archive with the tar command. You can find a example on how to extract the archived file on Linux below.

+

+ You should extract TinyMCE in your wwwroot or site domain root folder +

+

Extract example using a shell:

+
+
+$ cd wwwroot
+$ gzip -d tinymce_1_44.tar.gz
+$ tar xvf tinymce_1_44.tar
+
+
+

+

A folder structure looking like this is created:

+
+
+/tinymce/
+/tinymce/docs/
+/tinymce/docs/zh_cn/
+/tinymce/examples/
+/tinymce/examples/zh_cn/
+/tinymce/jscripts/
+/tinymce/jscripts/tiny_mce/
+/tinymce/jscripts/tiny_mce/langs/
+/tinymce/jscripts/tiny_mce/plugins/
+/tinymce/jscripts/tiny_mce/plugins/<plugin folders>
+/tinymce/jscripts/tiny_mce/themes/
+/tinymce/jscripts/tiny_mce/themes/advanced/
+/tinymce/jscripts/tiny_mce/themes/default/
+/tinymce/jscripts/tiny_mce/themes/simple/
+
+
+

+
+ +
+ +

Making changes on your website

+
+

Once you have extracted the archive you will need to edit the pages to include the configuration and javascript for TinyMCE. Please note that you should probably only include the TinyMCE javascript on the pages that need it, not all the pages of the website.

+

+

The most basic page integration (converts all textarea elements into editors):

+
+
+<html>
+<head>
+<title>TinyMCE Test<title>
+<script language="javascript" type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
+<script language="javascript" type="text/javascript">
+tinyMCE.init({
+	mode : "textareas"
+});
+</script>
+</head>
+<body>
+<form method="post">
+	<textarea name="content" cols="50" rows="15">This is some content that will be editable with TinyMCE.</textarea>
+</form>
+</body>
+</html>
+
+
+

+

+ Here are a few different example of how you could integrate TinyMCE. +

+

+

+

+

+ If you have any problems, you should check the forum on the TinyMCE website. +

+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/license.html b/phpgwapi/js/tinymce/docs/license.html new file mode 100644 index 0000000000..b162e98389 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/license.html @@ -0,0 +1,465 @@ + + + +TinyMCE License (LGPL) + + + + +
+

TinyMCE License (LGPL)

+
+ +
+

+Visit the FAQ for general answers surrounding TinyMCE. Or visit http://www.fsf.org for more information about Open-Source licenses. +

+
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL.  It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+.
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+.
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License").  Each licensee is
+addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+.
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+.
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+.
+  6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    c) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    d) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+.
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+.
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+.
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_add_form_submit_trigger.html b/phpgwapi/js/tinymce/docs/option_add_form_submit_trigger.html new file mode 100644 index 0000000000..eb8c6068d6 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_add_form_submit_trigger.html @@ -0,0 +1,38 @@ + + + +Option: add_form_submit_trigger + + + + +
+

Option: add_form_submit_trigger

+
+ +
+

+ This option enables you to turn on/off the onsubmit event listener. This feature adds a onsubmit event listener on all forms on the page, if a form is submitted a tinyMCE.triggerSave() JavaScript calls gets executed, this function moves HTML content from the editor iframe and to the hidden form element. This option is set to true by default. +

+ +
+ +

Example of usage of the add_form_submit_trigger option:

+
+
+tinyMCE.init({
+	...
+	add_form_submit_trigger : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_add_unload_trigger.html b/phpgwapi/js/tinymce/docs/option_add_unload_trigger.html new file mode 100644 index 0000000000..6f5e7b13d5 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_add_unload_trigger.html @@ -0,0 +1,38 @@ + + + +Option: add_unload_trigger + + + + +
+

Option: add_unload_trigger

+
+ +
+

+ If you set this option to true, page contents will be stored away is the page is unloaded for example is the user navigates away from the page and then navigated back to it by pressing the back button. This option is set to true by default. +

+ +
+ +

Example of usage of the add_unload_trigger option:

+
+
+tinyMCE.init({
+	...
+	add_unload_trigger : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_ask.html b/phpgwapi/js/tinymce/docs/option_ask.html new file mode 100644 index 0000000000..803a0cb5c0 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_ask.html @@ -0,0 +1,38 @@ + + + +Option: ask + + + + +
+

Option: ask

+
+ +
+

+ This option enables you to add a confirmation dialog when focusing textareas. This dialog asks if the focused textarea should be converted into a editor instance or not. It will only ask once since it would get annoying otherwice. The default value of this option is "false". +

+ +
+ +

Example of usage of the ask option:

+
+
+tinyMCE.init({
+	...
+	ask : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_auto_cleanup_word.html b/phpgwapi/js/tinymce/docs/option_auto_cleanup_word.html new file mode 100644 index 0000000000..4f11e00d62 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_auto_cleanup_word.html @@ -0,0 +1,38 @@ + + + +Option: auto_cleanup_word + + + + +
+

Option: auto_cleanup_word

+
+ +
+

+ If you set this option to true, TinyMCE will try to auto remove some weird Word HTML when a user pastes content. This feature is disabled by default. +

+ +
+ +

Example of usage of the auto_cleanup_word option:

+
+
+tinyMCE.init({
+	...
+	auto_cleanup_word : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_auto_focus.html b/phpgwapi/js/tinymce/docs/option_auto_focus.html new file mode 100644 index 0000000000..aaa1004a85 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_auto_focus.html @@ -0,0 +1,38 @@ + + + +Option: auto_focus + + + + +
+

Option: auto_focus

+
+ +
+

+ This option enables you to auto focus a editor instance. The value of this option should be a editor instance id. Editor instance ids are specified as "mce_editor_<index>" where index is a value starting from 0. So if there are 3 editor instances on a page these would have the following ids mce_editor_0, mce_editor_1 and mce_editor_2. +

+ +
+ +

Example of usage of the auto_focus option:

+
+
+tinyMCE.init({
+	...
+	auto_focus : "mce_editor_2"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_auto_reset_designmode.html b/phpgwapi/js/tinymce/docs/option_auto_reset_designmode.html new file mode 100644 index 0000000000..8e2bbc457d --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_auto_reset_designmode.html @@ -0,0 +1,38 @@ + + + +Option: auto_reset_designmode + + + + +
+

Option: auto_reset_designmode

+
+ +
+

+ This option is very useful if TinyMCE is used in a DHTML tab system or other divs that are hidden and displayed by some JavaScript. Since Mozilla has a bug when using display:none, the designMode state gets lost. To prevent this from happening you should enable this option. The default value of this option is "false". +

+ +
+ +

Example of usage of the auto_reset_designmode option:

+
+
+tinyMCE.init({
+	...
+	auto_reset_designmode : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_auto_resize.html b/phpgwapi/js/tinymce/docs/option_auto_resize.html new file mode 100644 index 0000000000..c308a9f5f1 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_auto_resize.html @@ -0,0 +1,38 @@ + + + +Option: auto_resize + + + + +
+

Option: auto_resize

+
+ +
+

+ This option enables you to get the TinyMCE editor area to resize to the bounderies of the contents. This option is very experimental and is set to false by default. +

+ +
+ +

Example of usage of the auto_resize option:

+
+
+tinyMCE.init({
+	...
+	auto_resize : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_button_tile_map.html b/phpgwapi/js/tinymce/docs/option_button_tile_map.html new file mode 100644 index 0000000000..77bb45d471 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_button_tile_map.html @@ -0,0 +1,38 @@ + + + +Option: button_tile_map + + + + +
+

Option: button_tile_map

+
+ +
+

+ If this option is set to true TinyMCE will use tiled images instead of individual images for most of the editor controls. This produces faster loading time since only one GIF image needs to be loaded instead of a GIF for each individual button. This option is set to false by default since it doesn't work with some DOCTYPE declarations. +

+ +
+ +

Example of usage of the button_tile_map option:

+
+
+tinyMCE.init({
+	...
+	button_tile_map : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_cleanup.html b/phpgwapi/js/tinymce/docs/option_cleanup.html new file mode 100644 index 0000000000..116a688611 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_cleanup.html @@ -0,0 +1,38 @@ + + + +Option: cleanup + + + + +
+

Option: cleanup

+
+ +
+

+ This option enables you to turn on/off the build in cleanup functionality. TinyMCE is equipped with powerful cleanup functionality that enables you to specify what elements and attributes are allowed and how HTML contents should be generated. This option is set to true by default, but if you want to disable it you may set it to false. +

+ +
+ +

Example of usage of the cleanup option:

+
+
+tinyMCE.init({
+	...
+	cleanup : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_cleanup_callback.html b/phpgwapi/js/tinymce/docs/option_cleanup_callback.html new file mode 100644 index 0000000000..7690fd400f --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_cleanup_callback.html @@ -0,0 +1,72 @@ + + + +Option: cleanup_callback + + + + +
+

Option: cleanup_callback

+
+ +
+

+ This option enables you to add custom cleanup logic to TinyMCE. This function is called when the cleanup process is executed this process occures when the editor saves/submits content, user hits the cleanup button and when the HTML editor dialog is presented. The format of this function is: customCleanup(type, value). Where type can be "get_from_editor" when the contents is extracted from TinyMCE for example when the user submits the form. The "insert_to_editor" type value gets passed when new contents is inserted into the editor on initialization or when the HTML editor dialog commits new content. The "get_from_editor_dom" value is executed when cleanup process has a valid DOM tree and is extracted from the editor. The "insert_to_editor_dom" gets passed when the editor has a valid DOM tree and contents has been inserted into the editor. The example below illustrated all these types. +

+ +
+ +

Example of usage of the cleanup_callback option:

+
+
+function myCustomCleanup(type, value) {
+	switch (type) {
+		case "get_from_editor":
+			alert("Value HTML string: " + value);
+
+			// Do custom cleanup code here
+
+			break;
+
+		case "insert_to_editor":
+			alert("Value HTML string: " + value);
+
+			// Do custom cleanup code here
+
+			break;
+
+		case "get_from_editor_dom":
+			alert("Value DOM Element " + value);
+
+			// Do custom cleanup code here
+
+			break;
+
+		case "insert_to_editor_dom":
+			alert("Value DOM Element: " + value);
+
+			// Do custom cleanup code here
+
+			break;
+	}
+
+	return value;
+}
+
+tinyMCE.init({
+	...
+	cleanup_callback : "myCustomCleanup"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_cleanup_on_startup.html b/phpgwapi/js/tinymce/docs/option_cleanup_on_startup.html new file mode 100644 index 0000000000..e15ee7acc8 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_cleanup_on_startup.html @@ -0,0 +1,38 @@ + + + +Option: cleanup_on_startup + + + + +
+

Option: cleanup_on_startup

+
+ +
+

+ If you set this option to true, TinyMCE will perform a HTML cleanup call when the editor loads. This option is set to false by default. +

+ +
+ +

Example of usage of the cleanup_on_startup option:

+
+
+tinyMCE.init({
+	...
+	cleanup_on_startup : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_content_css.html b/phpgwapi/js/tinymce/docs/option_content_css.html new file mode 100644 index 0000000000..73cc322d82 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_content_css.html @@ -0,0 +1,38 @@ + + + +Option: content_css + + + + +
+

Option: content_css

+
+ +
+

+ This option enables you to specify a custom CSS file to use instead of the build in content CSS. This CSS file is the one used within the editor. The default location of this CSS file is within the current theme. +

+ +
+ +

Example of usage of the content_css option:

+
+
+tinyMCE.init({
+	...
+	content_css : "/mycontent.css"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_convert_newlines_to_brs.html b/phpgwapi/js/tinymce/docs/option_convert_newlines_to_brs.html new file mode 100644 index 0000000000..a9d9ff8aa9 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_convert_newlines_to_brs.html @@ -0,0 +1,38 @@ + + + +Option: convert_newlines_to_brs + + + + +
+

Option: convert_newlines_to_brs

+
+ +
+

+ If you set this option to true newline characters codes gets converted in to br elements. This option is set to false by default. +

+ +
+ +

Example of usage of the convert_newlines_to_brs option:

+
+
+tinyMCE.init({
+	...
+	convert_newlines_to_brs : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_custom_undo_redo.html b/phpgwapi/js/tinymce/docs/option_custom_undo_redo.html new file mode 100644 index 0000000000..d63f2b5fbe --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_custom_undo_redo.html @@ -0,0 +1,38 @@ + + + +Option: custom_undo_redo + + + + +
+

Option: custom_undo_redo

+
+ +
+

+ This option is a true/false option that enables you to disable/enable the custom undo/redo logic within TinyMCE. This option is enabled by default, if you disable it some operations may not be undoable. +

+ +
+ +

Example of usage of the custom_undo_redo option:

+
+
+tinyMCE.init({
+	...
+	custom_undo_redo : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_custom_undo_redo_keyboard_shortcuts.html b/phpgwapi/js/tinymce/docs/option_custom_undo_redo_keyboard_shortcuts.html new file mode 100644 index 0000000000..502fcf7abd --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_custom_undo_redo_keyboard_shortcuts.html @@ -0,0 +1,38 @@ + + + +Option: custom_undo_redo_keyboard_shortcuts + + + + +
+

Option: custom_undo_redo_keyboard_shortcuts

+
+ +
+

+ This option enables you to disable/enable the usage of keyboard shortcuts for undo/redo. This feature is enabled by default. Keyboard shortcurs are Ctrl+Z for undo, Ctrl+Y for redo. +

+ +
+ +

Example of usage of the custom_undo_redo_keyboard_shortcuts option:

+
+
+tinyMCE.init({
+	...
+	custom_undo_redo_keyboard_shortcuts : "false"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_custom_undo_redo_levels.html b/phpgwapi/js/tinymce/docs/option_custom_undo_redo_levels.html new file mode 100644 index 0000000000..63be14dc43 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_custom_undo_redo_levels.html @@ -0,0 +1,38 @@ + + + +Option: custom_undo_redo_levels + + + + +
+

Option: custom_undo_redo_levels

+
+ +
+

+ This option should contain the number of undo levels to keep in memory. This is set to -1 by default and such a value tells TinyMCE to use a unlimited number of undo levels. But this steals lots of memory so for low end systems a value of 10 may be better. +

+ +
+ +

Example of usage of the custom_undo_redo_levels option:

+
+
+tinyMCE.init({
+	...
+	custom_undo_redo_levels : 10
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_debug.html b/phpgwapi/js/tinymce/docs/option_debug.html new file mode 100644 index 0000000000..98a8e99598 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_debug.html @@ -0,0 +1,38 @@ + + + +Option: debug + + + + +
+

Option: debug

+
+ +
+

+ If the value of this option is set to "true" some debugging information will appear such as a list of what CSS files are used. The default value of this option is false. +

+ +
+ +

Example of usage of the debug option:

+
+
+tinyMCE.init({
+	...
+	debug : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_directionality.html b/phpgwapi/js/tinymce/docs/option_directionality.html new file mode 100644 index 0000000000..ff38cbd1f5 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_directionality.html @@ -0,0 +1,38 @@ + + + +Option: directionality + + + + +
+

Option: directionality

+
+ +
+

+ This option specifies the default writing direction, some languages writes from right to left instead of left to right. The default value of this option is ":ltr" but if you want to use from right to left mode specify "rtl" instead. +

+ +
+ +

Example of usage of the directionality option:

+
+
+tinyMCE.init({
+	...
+	directionality : "rtl"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_docs_language.html b/phpgwapi/js/tinymce/docs/option_docs_language.html new file mode 100644 index 0000000000..cb87a9fdc2 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_docs_language.html @@ -0,0 +1,38 @@ + + + +Option: docs_language + + + + +
+

Option: docs_language

+
+ +
+

+ This option should contain a language code of the editor documentation to use with TinyMCE. These codes are in ISO-639-2 format to see if your language is available check the contents of "tinymce/jscripts/tiny_mce/theme/<theme used>/docs". The default value of this option is the value specified in the "language" option or "en" for English. +

+ +
+ +

Example of usage of the docs_language option:

+
+
+tinyMCE.init({
+	...
+	docs_language : "sv"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_document_base_url.html b/phpgwapi/js/tinymce/docs/option_document_base_url.html new file mode 100644 index 0000000000..6e9564f133 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_document_base_url.html @@ -0,0 +1,36 @@ + + + +Option: document_base_url + + + + +
+

Option: document_base_url

+
+ +
+

This option enables you to specify the URL from where all URLs will be relative to this option is only used when the relative_urls option is set to true. The value of this option is set to the current document by default.

+ +
+ +

Example of usage of the document_base_url option:

+
+
+tinyMCE.init({
+	...
+	document_base_url : "/somedir/somfile.html"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_editor_css.html b/phpgwapi/js/tinymce/docs/option_editor_css.html new file mode 100644 index 0000000000..39de422f0c --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_editor_css.html @@ -0,0 +1,38 @@ + + + +Option: editor_css + + + + +
+

Option: editor_css

+
+ +
+

+ This option enables you to specify the CSS to be used for the editor toolbars/user interface of TinyMCE this option is set to a CSS file found in the currently used theme by default. This CSS contains layout information about panels and buttons used by TinyMCE. +

+ +
+ +

Example of usage of the editor_css option:

+
+
+tinyMCE.init({
+	...
+	editor_css : "/myeditor.css"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_elements.html b/phpgwapi/js/tinymce/docs/option_elements.html new file mode 100644 index 0000000000..4e5729c731 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_elements.html @@ -0,0 +1,38 @@ + + + +Option: elements + + + + +
+

Option: elements

+
+ +
+

+ This option should contain a comma separated list of element id's to convert into editor instances. This option is only used if mode is set to "exact". +

+ +
+ +

Example of usage of the elements option:

+
+
+tinyMCE.init({
+	...
+	elements : "elm1,elm2"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_encoding.html b/phpgwapi/js/tinymce/docs/option_encoding.html new file mode 100644 index 0000000000..5d9ec34c95 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_encoding.html @@ -0,0 +1,38 @@ + + + +Option: encoding + + + + +
+

Option: encoding

+
+ +
+

+ This option enables you to get XML escaped contents out of TinyMCE. Posted content will be converted to a XML string escaping characters such as < > " & to &lt; &gt; &quot; &amp;. This option is set nothing by default and is there for disabled. +

+ +
+ +

Example of usage of the encoding option:

+
+
+tinyMCE.init({
+	...
+	encoding : "xml"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_entities.html b/phpgwapi/js/tinymce/docs/option_entities.html new file mode 100644 index 0000000000..e73ae8dd93 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_entities.html @@ -0,0 +1,58 @@ + + + +Option: entities + + + + +
+

Option: entities

+
+ +
+

+ This option contains a comma separated list of entity names that is used instead of characters. Odd items are the character code and even items are the name of the character code. The default value of this option is placed in the example below. +

+ +
+ +

Example of usage of the entities option / default value:

+
+
+tinyMCE.init({
+	...
+	entities : "160,nbsp,38,amp,34,quot,162,cent,8364,euro,163,pound,165,yen,169,copy,174,reg,8482,trade,8240,
+	permil,181,micro,183,middot,8226,bull,8230,hellip,8242,prime,8243,Prime,167,sect,182,para,223,szlig,8249,lsaquo,8250,
+	rsaquo,171,laquo,187,raquo,8216,lsquo,8217,rsquo,8220,ldquo,8221,rdquo,8218,sbquo,8222,bdquo,60,lt,62,gt,8804,le,8805,
+	ge,8211,ndash,8212,mdash,175,macr,8254,oline,164,curren,166,brvbar,168,uml,161,iexcl,191,iquest,710,circ,732,tilde,176,
+	deg,8722,minus,177,plusmn,247,divide,8260,frasl,215,times,185,sup1,178,sup2,179,sup3,188,frac14,189,frac12,190,frac34,402,
+	fnof,8747,int,8721,sum,8734,infin,8730,radic,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8712,isin,8713,notin,8715,
+	ni,8719,prod,8743,and,8744,or,172,not,8745,cap,8746,cup,8706,part,8704,forall,8707,exist,8709,empty,8711,nabla,8727,
+	lowast,8733,prop,8736,ang,180,acute,184,cedil,170,ordf,186,ordm,8224,dagger,8225,Dagger,192,Agrave,194,Acirc,195,
+	Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,202,Ecirc,203,Euml,204,Igrave,206,Icirc,207,Iuml,208,ETH,
+	209,Ntilde,210,Ograve,212,Ocirc,213,Otilde,214,Ouml,216,Oslash,338,OElig,217,Ugrave,219,Ucirc,220,Uuml,376,Yuml,222,
+	THORN,224,agrave,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,234,ecirc,235,euml,236,
+	igrave,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,244,ocirc,245,otilde,246,ouml,248,oslash,339,oelig,249,
+	ugrave,251,ucirc,252,uuml,254,thorn,255,yuml,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,
+	921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,
+	Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,
+	iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,
+	966,phi,967,chi,968,psi,969,omega,8501,alefsym,982,piv,8476,real,977,thetasym,978,upsih,8472,weierp,8465,image,
+	8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,
+	8756,there4,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,
+	lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,
+	diams,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,173,shy,233,eacute"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_entity_encoding.html b/phpgwapi/js/tinymce/docs/option_entity_encoding.html new file mode 100644 index 0000000000..b23819ce09 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_entity_encoding.html @@ -0,0 +1,38 @@ + + + +Option: entity_encoding + + + + +
+

Option: entity_encoding

+
+ +
+

+ This option controls how entities/characters gets processed by TinyMCE. The value can be set to numeric, named or raw. Where numeric is numeric representation such as "&#160;" named is entity names such as "&nbsp;" and raw is " ". The default value of this option is named, if named is used the entities option will be used to convert the codes into names. +

+ +
+ +

Example of usage of the entity_encoding option:

+
+
+tinyMCE.init({
+	...
+	entity_encoding : "raw"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_extended_valid_elements.html b/phpgwapi/js/tinymce/docs/option_extended_valid_elements.html new file mode 100644 index 0000000000..ed7a6471b5 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_extended_valid_elements.html @@ -0,0 +1,38 @@ + + + +Option: extended_valid_elements + + + + +
+

Option: extended_valid_elements

+
+ +
+

+ This option is very similar to valid_elements the only diffrance between this option and valid_elements is that this one gets added to the existing rule set. This can be very useful if the existing rule set is fine but you want to add some specific elements that also should be valid. +

+ +
+ +

Example of usage of the extended_valid_elements option:

+
+
+tinyMCE.init({
+	...
+	extended_valid_elements : "img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name]"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_external_image_list_url.html b/phpgwapi/js/tinymce/docs/option_external_image_list_url.html new file mode 100644 index 0000000000..2f91b4f899 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_external_image_list_url.html @@ -0,0 +1,51 @@ + + + +Option: external_image_list_url + + + + +
+

Option: external_image_list_url

+
+ +
+

+ This option enables you to have a external list of images this list of images can be generated by a server side page and then inserted into the image dialog windows of TinyMCE. The images can be to internal site images or external URLs. +

+ +
+ +

Example of usage of the external_image_list_url option:

+
+
+tinyMCE.init({
+	...
+	external_image_list_url : "myexternallist.js"
+});
+
+
+ +
+ +

Example of a external link list file: (myexternallist.js)

+
+
+var tinyMCEImageList = new Array(
+	// Name, URL
+	["Logo 1", "logo.jpg"],
+	["Logo 2 Over", "logo_over.jpg"]
+);
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_external_link_list_url.html b/phpgwapi/js/tinymce/docs/option_external_link_list_url.html new file mode 100644 index 0000000000..5b5155aa65 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_external_link_list_url.html @@ -0,0 +1,52 @@ + + + +Option: external_link_list_url + + + + +
+

Option: external_link_list_url

+
+ +
+

+ This option enables you to have a external list of links this list of links can be generated by a server side page and then inserted into the link dialog windows of TinyMCE. The links can be to internal site documents or external URLs. +

+ +
+ +

Example of usage of the external_link_list_url option:

+
+
+tinyMCE.init({
+	...
+	external_link_list_url : "myexternallist.js"
+});
+
+
+ +
+ +

Example of a external link list file: (myexternallist.js)

+
+
+var tinyMCELinkList = new Array(
+	// Name, URL
+	["Moxiecode", "http://www.moxiecode.com"],
+	["Freshmeat", "http://www.freshmeat.com"],
+	["Sourceforge", "http://www.sourceforge.com"]
+);
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_file_browser_callback.html b/phpgwapi/js/tinymce/docs/option_file_browser_callback.html new file mode 100644 index 0000000000..5a529389c5 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_file_browser_callback.html @@ -0,0 +1,43 @@ + + + +Option: file_browser_callback + + + + +
+

Option: file_browser_callback

+
+ +
+

+ This option enables you to add your own file browser/image browser to TinyMCE. This function is executed each time a user clicks on the "browse" buttons in various dialogs. The format of this callback function is: fileBrowser(field_name, url, type, win) where field_name is the id/name of the form element that the browser should insert it's URL into. The url parameter contains the URL value that is currently inside the field. The type parameter contains what type of browser to present this value can be file, image or flash depending on what dialog is calling the function. The win parameter contains a reference to the dialog/window that executes the function. +

+ +
+ +

Example of usage of the file_browser_callback option:

+
+
+function myCustomFileBrowser(field_name, url, type, win) {
+	// Do custom browser logic
+	win.document.forms[0].elements[field_name].value = 'my browser value';
+}
+
+tinyMCE.init({
+	...
+	file_browser_callback : "myCustomFileBrowser"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_fix_content_duplication.html b/phpgwapi/js/tinymce/docs/option_fix_content_duplication.html new file mode 100644 index 0000000000..89717f1103 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_fix_content_duplication.html @@ -0,0 +1,38 @@ + + + +Option: fix_content_duplication + + + + +
+

Option: fix_content_duplication

+
+ +
+

+ This option is available since MSIE has a serious bug where the DOM tree sometimes can include the same node twice. This produces duplication of content when the cleanup process runs. This option is enabled by default and removes any duplicated nodes. +

+ +
+ +

Example of usage of the fix_content_duplication option:

+
+
+tinyMCE.init({
+	...
+	fix_content_duplication : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_focus_alert.html b/phpgwapi/js/tinymce/docs/option_focus_alert.html new file mode 100644 index 0000000000..7a669f1f47 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_focus_alert.html @@ -0,0 +1,38 @@ + + + +Option: focus_alert + + + + +
+

Option: focus_alert

+
+ +
+

+ This option enables you to specify if a "Editor is not focused" alert message should appear if the user calls tinyMCE.execCommand and havn't selected a editor instance before. This message will normaly not appear unless some integration has been made. Using tinyMCE.execInstanceCommand prevents this from happening since it auto focuses the editor specified. The default value of this option is "true". +

+ +
+ +

Example of usage of the focus_alert option:

+
+
+tinyMCE.init({
+	...
+	focus_alert : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_force_br_newlines.html b/phpgwapi/js/tinymce/docs/option_force_br_newlines.html new file mode 100644 index 0000000000..ffcbb74a7a --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_force_br_newlines.html @@ -0,0 +1,38 @@ + + + +Option: force_br_newlines + + + + +
+

Option: force_br_newlines

+
+ +
+

+ If you set this option to true, TinyMCE will force BR elements on newlines instead of inserting paragraphs. This option is set to false by default since paragraphs is a much better concept. +

+ +
+ +

Example of usage of the force_br_newlines option:

+
+
+tinyMCE.init({
+	...
+	force_br_newlines : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_force_p_newlines.html b/phpgwapi/js/tinymce/docs/option_force_p_newlines.html new file mode 100644 index 0000000000..23320e209a --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_force_p_newlines.html @@ -0,0 +1,38 @@ + + + +Option: force_p_newlines + + + + +
+

Option: force_p_newlines

+
+ +
+

+ This option enables you to disable/enable the creation of paragraphs on return/enter in Mozilla/Firefox. The default value of this option is true. +

+ +
+ +

Example of usage of the force_p_newlines option:

+
+
+tinyMCE.init({
+	...
+	force_p_newlines : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_force_p_newliness.html b/phpgwapi/js/tinymce/docs/option_force_p_newliness.html new file mode 100644 index 0000000000..93af1bca2b --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_force_p_newliness.html @@ -0,0 +1,38 @@ + + + +Option: force_p_newliness + + + + +
+

Option: force_p_newliness

+
+ +
+

+ ... +

+ +
+ +

Example of usage of the force_p_newliness option:

+
+
+tinyMCE.init({
+	...
+	force_p_newliness : ""
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_height.html b/phpgwapi/js/tinymce/docs/option_height.html new file mode 100644 index 0000000000..8e3fea9757 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_height.html @@ -0,0 +1,38 @@ + + + +Option: height + + + + +
+

Option: height

+
+ +
+

+ This option gives you the ability to specify the height of the editor in pixels or percent. This height can be very userful to specify if the editor is used in hidden tabs or if the editor area should be bigger than the replaced element. The default value of this option is set to the height of the HTML element TinyMCE replaces for example the pixel height of a textarea. +

+ +
+ +

Example of usage of the height option:

+
+
+tinyMCE.init({
+	...
+	height : "480"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_init_instance_callback.html b/phpgwapi/js/tinymce/docs/option_init_instance_callback.html new file mode 100644 index 0000000000..762cb8458e --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_init_instance_callback.html @@ -0,0 +1,42 @@ + + + +Option: init_instance_callback + + + + +
+

Option: init_instance_callback

+
+ +
+

+ This option should contain a function name to be executed each time a editor instance is initialized. The format of this function is: initInstance(inst) where inst is the editor instance object reference. +

+ +
+ +

Example of usage of the init_instance_callback option:

+
+
+function myCustomInitInstance(inst) {
+	alert("Editor: " + inst.editorId + " is now initialized.");
+}
+
+tinyMCE.init({
+	...
+	init_instance_callback : "myCustomInitInstance"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_inline_styles.html b/phpgwapi/js/tinymce/docs/option_inline_styles.html new file mode 100644 index 0000000000..e4b273db70 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_inline_styles.html @@ -0,0 +1,38 @@ + + + +Option: inline_styles + + + + +
+

Option: inline_styles

+
+ +
+

+ If you enable the inline styles feature by setting this option to true. Most of the attributes gets converted into CSS style attributes instead. This option is set to false by default since I think using classes is a better approach. +

+ +
+ +

Example of usage of the inline_styles option:

+
+
+tinyMCE.init({
+	...
+	inline_styles : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_insertimage_callback.html b/phpgwapi/js/tinymce/docs/option_insertimage_callback.html new file mode 100644 index 0000000000..c4186e80b8 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_insertimage_callback.html @@ -0,0 +1,57 @@ + + + +Option: insertimage_callback + + + + +
+

Option: insertimage_callback

+
+ +
+

+ This option enables you to override the build in functionality for inserting images. This option should contain a function name to be executed when a new image is inserted into TinyMCE. The format of this callback function is: insertImage(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action). Where most of these options are self explained the action can be "update" or "insert" depending on what operation type. This function should return an array with the same values as the incomming parameters, the example below describes how this is done. This option is set to a internal TinyMCE function by default. +

+ +
+ +

Example of usage of the insertimage_callback option:

+
+
+function myCustomInsertImage(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action) {
+	var result = new Array();
+
+	// Do some custom logic
+	result['src'] = "logo.jpg";
+	result['alt'] = "test description";
+	result['border'] = "2";
+	result['hspace'] = "5";
+	result['vspace'] = "5";
+	result['width'] = width;
+	result['height'] = height;
+	result['align'] = "right";
+	result['title'] = "Some title";
+	result['onmouseover'] = "";
+	result['onmouseout'] = "";
+
+	return data;
+}
+
+tinyMCE.init({
+	...
+	insertimage_callback : "myCustomInsertImage"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_insertlink_callback.html b/phpgwapi/js/tinymce/docs/option_insertlink_callback.html new file mode 100644 index 0000000000..46b963a908 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_insertlink_callback.html @@ -0,0 +1,50 @@ + + + +Option: insertlink_callback + + + + +
+

Option: insertlink_callback

+
+ +
+

+ This option enables you to override the build in functionality for inserting links. This option should contain a function name to be executed when a new link is inserted into TinyMCE. The format of this callback function is: insertLink(href, target, title, onclick, action). Where most of these options are self explained the action can be "update" or "insert" depending on what operation type. This function should return an array with the same values as the incomming parameters, the example below describes how this is done. This option is set to a internal TinyMCE function by default. +

+ +
+ +

Example of usage of the insertlink_callback option:

+
+
+function myCustomInsertLink(href, target, title, onclick, action) {
+	var result = new Array();
+
+	// Do some custom logic
+	result['href'] = "some_page.htm";
+	result['target'] = "_self";
+	result['title'] = "Some link title";
+	result['onclick'] = "";
+
+	return data;
+}
+
+tinyMCE.init({
+	...
+	insertlink_callback : "myCustomInsertLink"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_invalid_elements.html b/phpgwapi/js/tinymce/docs/option_invalid_elements.html new file mode 100644 index 0000000000..fe9669dcc8 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_invalid_elements.html @@ -0,0 +1,38 @@ + + + +Option: invalid_elements + + + + +
+

Option: invalid_elements

+
+ +
+

+ This option should contain a comma separated list of element names to exclude from the content. Elements in this list will removed when TinyMCE executes a cleanup. +

+ +
+ +

Example of usage of the invalid_elements option:

+
+
+tinyMCE.init({
+	...
+	invalid_elements : "strong,em"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_language.html b/phpgwapi/js/tinymce/docs/option_language.html new file mode 100644 index 0000000000..915bf8888e --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_language.html @@ -0,0 +1,42 @@ + + + +Option: language + + + + +
+

Option: language

+
+ +
+

+ This option should contain a language code of the language pack to use with TinyMCE. These codes are in ISO-639-2 format to see if your language is available check the contents of "tinymce/jscripts/tiny_mce/langs". The default value of this option is "en" for English. +

+ +

+ If TinyMCE doesn't have a language pack for your language you could always write your own and contribute this back to this project by uploading it as a Patch at SourceForge. A description on how to create language packs can be found in Language packs section. +

+ +
+ +

Example of usage of the language option:

+
+
+tinyMCE.init({
+	...
+	language : "en"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_mode.html b/phpgwapi/js/tinymce/docs/option_mode.html new file mode 100644 index 0000000000..96a4d4532a --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_mode.html @@ -0,0 +1,54 @@ + + + +Option: mode + + + + +
+

Option: mode

+
+ +
+

+ This option specifies how elements is to be converted into TinyMCE WYSIWYG editor instances. This option can be set to any of the values below. +

+ +

+

textareas

+ Converts all textarea elements to editors when the page loads. +

+ +

+

specific_textareas

+ Converts all textarea elements with the a textarea_trigger attribute set to "true". +

+ +

+

exact

+ exact - Converts only explicit elements, these are listed in the elements option. These elements can be any kind for example textareas or divs. +

+ +
+ +

Example of usage of the mode option:

+
+
+tinyMCE.init({
+	...
+	mode : "exact",
+	elements : "elm1,elm2"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_nowrap.html b/phpgwapi/js/tinymce/docs/option_nowrap.html new file mode 100644 index 0000000000..87b6276bdd --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_nowrap.html @@ -0,0 +1,38 @@ + + + +Option: nowrap + + + + +
+

Option: nowrap

+
+ +
+

+ This nowrap option enables you to control how whitespace is to be wordwrapped within the editor. This option is set to false by default, but if you enable it by setting it to true editor contents will never wrap. +

+ +
+ +

Example of usage of the nowrap option:

+
+
+tinyMCE.init({
+	...
+	nowrap : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_onchange_callback.html b/phpgwapi/js/tinymce/docs/option_onchange_callback.html new file mode 100644 index 0000000000..89eb940a82 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_onchange_callback.html @@ -0,0 +1,43 @@ + + + +Option: onchange_callback + + + + +
+

Option: onchange_callback

+
+ +
+

+ This option should contain a function name to be executed each time contents is modified by TinyMCE. This function is called each time a undo level is added to TinyMCE. The format of this function is: onchange(inst), where inst is the editor instance object reference. +

+ +
+ +

Example of usage of the onchange_callback option:

+
+
+function myCustomOnChangeHandler(inst) {
+	alert("Some one modified something");
+	alert("The HTML is now:" + inst.getBody().innerHTML);
+}
+
+tinyMCE.init({
+	...
+	onchange_callback : "myCustomOnChangeHandler"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_oninit.html b/phpgwapi/js/tinymce/docs/option_oninit.html new file mode 100644 index 0000000000..4c5be4cd29 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_oninit.html @@ -0,0 +1,42 @@ + + + +Option: oninit + + + + +
+

Option: oninit

+
+ +
+

+ This option enables you to specify a function name to be executed when all editor instances has finished it's initialization. This is much like the onload event of a HTML page. +

+ +
+ +

Example of usage of the oninit option:

+
+
+function myCustomOnInit() {
+	alert("We are ready to rumble!!");
+}
+
+tinyMCE.init({
+	...
+	oninit : "myCustomOnInit"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_plugins.html b/phpgwapi/js/tinymce/docs/option_plugins.html new file mode 100644 index 0000000000..73854ce7c6 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_plugins.html @@ -0,0 +1,42 @@ + + + +Option: plugins + + + + +
+

Option: plugins

+
+ +
+

+ This option should contain a comma separated list of plugins. Plugins are loaded from the "tinymce/jscripts/tiny_mce/plugins" directory and the plugin name matches the name of the directory. TinyMCE is shipped with some core plugins these are described in greater detail in the Plugins reference. +

+ +

+ There are many third party plugins for TinyMCE some of these may be found under "Plugins" at SourceForge and if you have developed one of your own please contribute it to this project by uploading it to SourceForge. +

+ +
+ +

Example of usage of the plugins option:

+
+
+tinyMCE.init({
+	...
+	plugins : "table,contextmenu,paste"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_popups_css.html b/phpgwapi/js/tinymce/docs/option_popups_css.html new file mode 100644 index 0000000000..c9f3b31a49 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_popups_css.html @@ -0,0 +1,38 @@ + + + +Option: popups_css + + + + +
+

Option: popups_css

+
+ +
+

+ This option enables you to specify the CSS to be used in all popup/dialog windows within TinyMCE this option is set to a CSS file found in the currently used theme by default. +

+ +
+ +

Example of usage of the popups_css option:

+
+
+tinyMCE.init({
+	...
+	popups_css : "/mypopup.css"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_preformatted.html b/phpgwapi/js/tinymce/docs/option_preformatted.html new file mode 100644 index 0000000000..e341766c80 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_preformatted.html @@ -0,0 +1,38 @@ + + + +Option: preformatted + + + + +
+

Option: preformatted

+
+ +
+

+ If you enable this feature, whitespace such as tabs and spaces will be preserved. Much like the bahavior of a PRE element. This can be handy when integrating TinyMCE with webmail clients. This option is disabled by default. +

+ +
+ +

Example of usage of the preformatted option:

+
+
+tinyMCE.init({
+	...
+	preformatted : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_relative_urls.html b/phpgwapi/js/tinymce/docs/option_relative_urls.html new file mode 100644 index 0000000000..6d5bc8ce7a --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_relative_urls.html @@ -0,0 +1,36 @@ + + + +Option: relative_urls + + + + +
+

Option: relative_urls

+
+ +
+

If this option is set to true, all URLs returned from the MCFileManager will be relative from the specified document_base_url if it's set to false all URLs will be converted to absolute URLs. This feature can not be disabled since MSIE and FF modifies the URLs of DOM objects by them self so TinyMCE tries to solve this problem by reconverting them. This option is set to true by default.

+ +
+ +

Example of usage of the relative_urls option:

+
+
+tinyMCE.init({
+	...
+	relative_urls : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_remove_linebreaks.html b/phpgwapi/js/tinymce/docs/option_remove_linebreaks.html new file mode 100644 index 0000000000..1bd911a88b --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_remove_linebreaks.html @@ -0,0 +1,38 @@ + + + +Option: remove_linebreaks + + + + +
+

Option: remove_linebreaks

+
+ +
+

+ This option controls if linebreak characters should be removed from output HTML or not. This option is enabled by default since many backend systems use newline to <br /> convertion since they used to be plain old textarea based. With this option enables all HTML content will be placed on one line. +

+ +
+ +

Example of usage of the remove_linebreaks option:

+
+
+tinyMCE.init({
+	...
+	remove_linebreaks : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_remove_script_host.html b/phpgwapi/js/tinymce/docs/option_remove_script_host.html new file mode 100644 index 0000000000..f1f4fa9dc7 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_remove_script_host.html @@ -0,0 +1,37 @@ + + + +Option: remove_script_host + + + + +
+

Option: remove_script_host

+
+ +
+

If this option is enabled the protocol and host part of the URLs returned from the MCFileManager will be removed. This option is only used if the relative_urls option is set to false. This option is set to true by default.

+

URL:s will be returned in this format: "/somedir/somefile.htm" instead of the default mode: "http://www.somesite.com/somedir/somefile.htm".

+ +
+ +

Example of usage of the remove_script_host option:

+
+
+tinyMCE.init({
+	...
+	remove_script_host : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_save_callback.html b/phpgwapi/js/tinymce/docs/option_save_callback.html new file mode 100644 index 0000000000..2635be7ec8 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_save_callback.html @@ -0,0 +1,45 @@ + + + +Option: save_callback + + + + +
+

Option: save_callback

+
+ +
+

+ This option enables you to add custom logic to be executed when the contents is extracted/saved. This custom logic can then modify the contents before it's submited to a serverside page. This can be useful if you want to do your own regexp cleanups and so forth. The format of this function is: saveContent(element_id, html, body). Where element id is the form element/div id of the editor and HTML is the HTML contents after the build in cleanup process has executed. This function should return the new HTML contents. +

+ +
+ +

Example of usage of the save_callback option:

+
+
+function myCustomSaveContent(element_id, html, body) {
+	// Do some custom HTML cleanup
+	html = html.replace(/a/g,'b');
+
+	return html;
+}
+
+tinyMCE.init({
+	...
+	save_callback : "myCustomSaveContent"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_setupcontent_callback.html b/phpgwapi/js/tinymce/docs/option_setupcontent_callback.html new file mode 100644 index 0000000000..e86c2250b9 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_setupcontent_callback.html @@ -0,0 +1,43 @@ + + + +Option: setupcontent_callback + + + + +
+

Option: setupcontent_callback

+
+ +
+

+ This option enables you to execute custom setup content logic when the editor initializes. The format of this callback is: + setupContent(editor_id, body, doc). Where editor_id is the TinyMCE editor instance id the editor instance object reference can be retrived by using tinyMCE.getInstanceById(editor_id). The body parameter is a reference to the iframes body element and doc is the iframes document element. This option is not used if it's not specified. +

+ +
+ +

Example of usage of the setupcontent_callback option:

+
+
+function myCustomSetupContent(editor_id, body, doc) {
+	body.innerHTML = "my new content" + body.innerHTML;
+}
+
+tinyMCE.init({
+	...
+	setupcontent_callback : "myCustomSetupContent"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_submit_patch.html b/phpgwapi/js/tinymce/docs/option_submit_patch.html new file mode 100644 index 0000000000..5cd7f6f348 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_submit_patch.html @@ -0,0 +1,38 @@ + + + +Option: submit_patch + + + + +
+

Option: submit_patch

+
+ +
+

+ This toggle option enables you to turn on/off the auto patching of the submit function in forms. TinyMCE will auto move contents from the iframe to the hidden textarea field if for example a JavaScript uses a form[0].submit() call. This is the same as using the tinyMCE.triggerSave() call. This option is set to true by default. +

+ +
+ +

Example of usage of the submit_patch option:

+
+
+tinyMCE.init({
+	...
+	submit_patch : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_textarea_trigger.html b/phpgwapi/js/tinymce/docs/option_textarea_trigger.html new file mode 100644 index 0000000000..8ecb37c081 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_textarea_trigger.html @@ -0,0 +1,41 @@ + + + +Option: textarea_trigger + + + + +
+

Option: textarea_trigger

+
+ +
+

+ This option enables you to specify the name of the attribute to check if it's value is true/false. If the mode option is set to "specific_textareas", only specific textareas with a attribute by the name of the value of this option gets converted and only if it's set to true. This option defaults to "mce_editable". +

+

+ If the mode is set to textareas and the textarea trigger attribute value is set to false, these textareas will not be converted. +

+ +
+ +

Example of usage of the textarea_trigger option:

+
+
+tinyMCE.init({
+	...
+	textarea_trigger : "convert_this"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme.html b/phpgwapi/js/tinymce/docs/option_theme.html new file mode 100644 index 0000000000..b8bdf7d071 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme.html @@ -0,0 +1,54 @@ + + + +Option: theme + + + + +
+

Option: theme

+
+ +
+

+ This option enables you to specify what theme to use when rendering the TinyMCE WYSIWYG editor instances. This name matches the directories located in "tinymce/jscripts/tiny_mce/themes". The default value of this option is "default". TinyMCE has three build in themes and these are described in greater detail below. +

+ +

+

default

+ This is the default theme of TinyMCE if no theme option is specified this one will be used for rendering TinyMCE editor instances. This theme contains some of the most common functions. +

+ +

+

advanced

+ This is the advanced theme of TinyMCE, this theme enables users to add/remove buttons and panels and is a lot more flexible than the simple or default theme. For more information about this themes specific options check the "Advanced theme" configuration section. +

+ +

+

simple

+ This is the most simple theme for TinyMCE it contains only the basic functions. +

+ +
+ +

Example of usage of the theme option:

+
+
+tinyMCE.init({
+	...
+	theme : "advanced",
+	theme_advanced_buttons3_add_before : "tablecontrols,separator"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_blockformats.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_blockformats.html new file mode 100644 index 0000000000..74d608288d --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_blockformats.html @@ -0,0 +1,38 @@ + + + +Option: theme_advanced_blockformats + + + + +
+

Option: theme_advanced_blockformats

+
+ +
+

+ This option should contain a comma separated list of block formats the default value of this option is "p,address,pre,h1,h2,h3,h4,h5,h6". This option is only available if the advanced theme is used. +

+ +
+ +

Example of usage of the theme_advanced_blockformats option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_blockformats : "p,h1,h2,h3,h4,h5,h6"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n.html new file mode 100644 index 0000000000..5f7a82e8be --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n.html @@ -0,0 +1,47 @@ + + + +Option: theme_advanced_buttons<1-3> + + + + +
+

Option: theme_advanced_buttons<1-3>

+
+ +
+

+ This option should contain a comma separated list of button/control names to insert into the toolbar. The number 1-3 is the row number to insert the buttons/controls to. Below is a list of build in controls, plugins may include other controls names that can be inserted but these are documented in the individual plugins. + This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the default value of "SimpleLayout". +

+

+

These are the build in buttons/controls that the advanced theme has.

+ bold,italic,underline,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect + bullist,numlist,outdent,indent,undo,redo,link,unlink,anchor,image,cleanup,help,code + hr,removeformat,visualaid,sub,sup,charmap,separator +

+ +
+ +

Example of usage of the theme_advanced_buttons<1-3> option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_buttons1 : "separator,insertdate,inserttime,preview,zoom,separator,forecolor,backcolor"
+	theme_advanced_buttons2 : "bullist,numlist,separator,outdent,indent,separator,undo,redo,separator,link,unlink,anchor,image,cleanup,help,code"
+	theme_advanced_buttons3 : "hr,removeformat,visualaid,separator,sub,sup,separator,charmap"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n_add.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n_add.html new file mode 100644 index 0000000000..f5c9314484 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n_add.html @@ -0,0 +1,47 @@ + + + +Option: theme_advanced_buttons<1-3_add> + + + + +
+

Option: theme_advanced_buttons<1-3_add>

+
+ +
+

+ This option should contain a comma separated list of button/control names to add to the end of the specified toolbar row. The number 1-3 is the row number to add the buttons/controls to. Below is a list of build in controls, plugins may include other controls names that can be inserted but these are documented in the individual plugins. + This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the default value of "SimpleLayout". +

+

+

These are the build in buttons/controls that the advanced theme has.

+ bold,italic,underline,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect + bullist,numlist,outdent,indent,undo,redo,link,unlink,anchor,image,cleanup,help,code + hr,removeformat,visualaid,sub,sup,charmap,separator +

+ +
+ +

Example of usage of the theme_advanced_buttons<1-3>_add option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_buttons1_add : "separator,insertdate,inserttime,preview,zoom,separator,forecolor,backcolor"
+	theme_advanced_buttons2_add : "bullist,numlist,separator,outdent,indent,separator,undo,redo,separator,link,unlink,anchor,image,cleanup,help,code"
+	theme_advanced_buttons3_add : "hr,removeformat,visualaid,separator,sub,sup,separator,charmap"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n_add_before.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n_add_before.html new file mode 100644 index 0000000000..f3e6e5fdf0 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_buttons_n_add_before.html @@ -0,0 +1,47 @@ + + + +Option: theme_advanced_buttons<1-3_add_before> + + + + +
+

Option: theme_advanced_buttons<1-3_add_before>

+
+ +
+

+ This option should contain a comma separated list of button/control names to add to the beginning of the specified toolbar row. The number 1-3 is the row number to add the buttons/controls to. Below is a list of build in controls, plugins may include other controls names that can be inserted but these are documented in the individual plugins. + This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the default value of "SimpleLayout". +

+

+

These are the build in buttons/controls that the advanced theme has.

+ bold,italic,underline,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect + bullist,numlist,outdent,indent,undo,redo,link,unlink,anchor,image,cleanup,help,code + hr,removeformat,visualaid,sub,sup,charmap,separator +

+ +
+ +

Example of usage of the theme_advanced_buttons<1-3>_add_before option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_buttons1_add_before : "separator,insertdate,inserttime,preview,zoom,separator,forecolor,backcolor"
+	theme_advanced_buttons2_add_before : "bullist,numlist,separator,outdent,indent,separator,undo,redo,separator,link,unlink,anchor,image,cleanup,help,code"
+	theme_advanced_buttons3_add_before : "hr,removeformat,visualaid,separator,sub,sup,separator,charmap"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_container.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_container.html new file mode 100644 index 0000000000..a54e7adde6 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_container.html @@ -0,0 +1,39 @@ + + + +Option: theme_advanced_container_<container> + + + + +
+

Option: theme_advanced_container_<container>

+
+ +
+

+ This option should contain buttons/control that you wich to insert into the container, the button names available is the same as in the theme_advanced_buttons_<1-3> option but two extra controls available when this layout option is used these are "mceEditor" and "mceElementpath". The <container> part of this option should be replaced with a name within the theme_advanced_containers list. This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the value of "RowLayout". +

+ +
+ +

Example of usage of the theme_advanced_container_<container> option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_container_somecontainer1 : "bold,italic",
+	theme_advanced_container_somecontainer2 : "strikethrough,cut"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_container_align.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_container_align.html new file mode 100644 index 0000000000..e27438438a --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_container_align.html @@ -0,0 +1,39 @@ + + + +Option: theme_advanced_container_align + + + + +
+

Option: theme_advanced_container_<container>_align

+
+ +
+

+ This option is used to set the alignment of a specific containerer. The <container> part of this option should be replaced with a name within the theme_advanced_containers list. This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the value of "RowLayout". +

+ +
+ +

Example of usage of the theme_advanced_container_<container>_align option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_container_somecontainer1_align : "left"
+	theme_advanced_container_somecontainer2_align : "right"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_container_class.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_container_class.html new file mode 100644 index 0000000000..f34656f80a --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_container_class.html @@ -0,0 +1,39 @@ + + + +Option: theme_advanced_container_<container>_class + + + + +
+

Option: theme_advanced_container_<container>_class

+
+ +
+

+ This option is used to set the class of a specific container. The <container> part of this option should be replaced with a name within the theme_advanced_containers list. This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the value of "RowLayout". +

+ +
+ +

Example of usage of the theme_advanced_container_<container>_class option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_container_somecontainer1_class : "someclass",
+	theme_advanced_container_somecontainer2_class : "someotherclass"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_containers.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_containers.html new file mode 100644 index 0000000000..b908d6b0de --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_containers.html @@ -0,0 +1,38 @@ + + + +Option: theme_advanced_containers + + + + +
+

Option: theme_advanced_containers

+
+ +
+

+ This option should contain a comma separated list of container/panel names. These names are then matched agains the other container options. This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the value of "RowLayout". +

+ +
+ +

Example of usage of the theme_advanced_containers option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_containers : "mycontainer1,mycontainer2"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_containers_default_align.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_containers_default_align.html new file mode 100644 index 0000000000..a782dadba2 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_containers_default_align.html @@ -0,0 +1,38 @@ + + + +Option: theme_advanced_containers_default_align + + + + +
+

Option: theme_advanced_containers_default_align

+
+ +
+

+ This option should contain the default container/panel alignment this can be a value of "left", "center" or "right". This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the value of "RowLayout". +

+ +
+ +

Example of usage of the theme_advanced_containers_default_align option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_containers_default_align : "left"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_containers_default_class.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_containers_default_class.html new file mode 100644 index 0000000000..e5b9086a99 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_containers_default_class.html @@ -0,0 +1,38 @@ + + + +Option: theme_advanced_containers_default_class + + + + +
+

Option: theme_advanced_containers_default_class

+
+ +
+

+ This option should contain the default container/panel class name. This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the value of "RowLayout". +

+ +
+ +

Example of usage of the theme_advanced_containers_default_class option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_containers_default_class : "myPanelClass"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_custom_layout.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_custom_layout.html new file mode 100644 index 0000000000..0ffdb5113b --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_custom_layout.html @@ -0,0 +1,49 @@ + + + +Option: theme_advanced_custom_layout + + + + +
+

Option: theme_advanced_custom_layout

+
+ +
+

+ This option is used to specify a custom layout manager function. The format of this function is: customLayout(template) where template is the template array within the advanced theme, this function should return a new template array containing the editor HTML in a key called html. This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the value of "RowLayout". + + CustomLayout + + template +

+ +
+ +

Example of usage of the theme_advanced_custom_layout option:

+
+
+function myCustomLayout(template) {
+	// Make custom layout
+	template['html'] = "make new layout";
+
+	return template;
+}
+
+tinyMCE.init({
+	...
+	theme_advanced_custom_layout : "myCustomLayout"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_disable.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_disable.html new file mode 100644 index 0000000000..092d4d1c87 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_disable.html @@ -0,0 +1,38 @@ + + + +Option: theme_advanced_disable + + + + +
+

Option: theme_advanced_disable

+
+ +
+

+ This option should contain a comma separated list of controls to disable from any toolbar row/panel in TinyMCE. +

+ +
+ +

Example of usage of the theme_advanced_disable option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_disable : "bold,italic"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_layout_manager.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_layout_manager.html new file mode 100644 index 0000000000..003e8fbdd0 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_layout_manager.html @@ -0,0 +1,39 @@ + + + +Option: theme_advanced_layout_manager + + + + +
+

Option: theme_advanced_layout_manager

+
+ +
+

+ This option enables you to switch button and panel layout functionality. There are three diffrent layout manager options + SimpleLayout that is the default layout manager, RowLayout that is the more advanced manager and finaly CustomLayout that executes a custom layout manager function. Each of these layout managers have diffrent options and can be configurated in diffrent ways. This option is only available if the advanced theme is used. +

+ +
+ +

Example of usage of the theme_advanced_layout_manager option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_layout_manager : "RowLayout"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_path_location.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_path_location.html new file mode 100644 index 0000000000..cdab6072dd --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_path_location.html @@ -0,0 +1,38 @@ + + + +Option: theme_advanced_path_location + + + + +
+

Option: theme_advanced_path_location

+
+ +
+

+ This option enables you to specify where the element path should be located. This option can be set to "top", "bottom" or "none". The default value is set to "none". This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the default value of "SimpleLayout". +

+ +
+ +

Example of usage of the theme_advanced_path_location option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_path_location : "bottom"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_source_editor_height.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_source_editor_height.html new file mode 100644 index 0000000000..1bfbb5b835 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_source_editor_height.html @@ -0,0 +1,38 @@ + + + +Option: theme_advanced_source_editor_height + + + + +
+

Option: theme_advanced_source_editor_height

+
+ +
+

+ This option is used to define the height of the source editor dialog. This option is set to 400 by default. +

+ +
+ +

Example of usage of the theme_advanced_source_editor_height option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_source_editor_height : "600"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_source_editor_width.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_source_editor_width.html new file mode 100644 index 0000000000..881eb91f3a --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_source_editor_width.html @@ -0,0 +1,38 @@ + + + +Option: theme_advanced_source_editor_width + + + + +
+

Option: theme_advanced_source_editor_width

+
+ +
+

+ This option is used to define the width of the source editor dialog. This option is set to 500 by default. +

+ +
+ +

Example of usage of the theme_advanced_source_editor_width option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_source_editor_width : "700"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_styles.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_styles.html new file mode 100644 index 0000000000..f767d14e0a --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_styles.html @@ -0,0 +1,38 @@ + + + +Option: theme_advanced_styles + + + + +
+

Option: theme_advanced_styles

+
+ +
+

+ This option should contain a semicolon separated list of class titles and class names separated by =. The titles are the ones that get presented to the user in the styles drop down list and and the class names is the classes that gets inserted. If this option isn't defined TinyMCE auto imports the classes from the content CSS. +

+ +
+ +

Example of usage of the theme_advanced_styles option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_toolbar_align.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_toolbar_align.html new file mode 100644 index 0000000000..db14b32907 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_toolbar_align.html @@ -0,0 +1,38 @@ + + + +Option: theme_advanced_toolbar_align + + + + +
+

Option: theme_advanced_toolbar_align

+
+ +
+

+ This option enables you to specify the alignment of the toolbar, this value can be left, right or center the default value is center. This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the default value of "SimpleLayout". +

+ +
+ +

Example of usage of the theme_advanced_toolbar_align option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_toolbar_align : "left"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_theme_advanced_toolbar_location.html b/phpgwapi/js/tinymce/docs/option_theme_advanced_toolbar_location.html new file mode 100644 index 0000000000..bcf87e7dbd --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_theme_advanced_toolbar_location.html @@ -0,0 +1,38 @@ + + + +Option: theme_advanced_toolbar_location + + + + +
+

Option: theme_advanced_toolbar_location

+
+ +
+

+ This option enables you to specify where the toolbar should be located. This option can be set to "top" or "bottom". The default value is set to "bottom". This option can only be used when theme is set to advanced and when the theme_advanced_layout_manager option is set to the default value of "SimpleLayout". +

+ +
+ +

Example of usage of the theme_advanced_toolbar_location option:

+
+
+tinyMCE.init({
+	...
+	theme_advanced_toolbar_location : "top"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_trim_span_elements.html b/phpgwapi/js/tinymce/docs/option_trim_span_elements.html new file mode 100644 index 0000000000..3d430c321b --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_trim_span_elements.html @@ -0,0 +1,38 @@ + + + +Option: trim_span_elements + + + + +
+

Option: trim_span_elements

+
+ +
+

+ This option turns on/off the span auto removal functionality. Unneeded span element will be removed for example <span class="someclass"><span class="someclass">content</span></span> will be turned into <span class="someclass">content</span>. This option is set to true by default. +

+ +
+ +

Example of usage of the trim_span_elements option:

+
+
+tinyMCE.init({
+	...
+	trim_span_elements : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_urlconverter_callback.html b/phpgwapi/js/tinymce/docs/option_urlconverter_callback.html new file mode 100644 index 0000000000..5201c77893 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_urlconverter_callback.html @@ -0,0 +1,46 @@ + + + +Option: urlconverter_callback + + + + +
+

Option: urlconverter_callback

+
+ +
+

+ This option enable you to add your own URL converter logic. This option should contain a JavaScript function name. The format of this converter function is: URLConverter(url, node, on_save). There URL is the URL string to convert, node is the element that contains the URL that is to be converted this parameter may be set to null if there is no element for the URL and on_save is set to true when contents is to be extracted from the editor for example when the user submits the HTML form. This function should return the converted URL as a string. This option is set to a internal TinyMCE function "TinyMCE.prototype.convertURL" by default. You may call this function from your extention inorder to use the build in convertor options. +

+ +
+ +

Example of usage of the urlconverter_callback option:

+
+
+function myCustomURLConverter(url, node, on_save) {
+	// Do some custom URL convertion
+	url = url.substring(3);
+
+	// Return new URL
+	return url;
+}
+
+tinyMCE.init({
+	...
+	urlconverter_callback : "myCustomURLConverter"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_valid_elements.html b/phpgwapi/js/tinymce/docs/option_valid_elements.html new file mode 100644 index 0000000000..ccde62b394 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_valid_elements.html @@ -0,0 +1,351 @@ + + + +Option: valid_elements + + + + +
+

Option: valid_elements

+
+ +
+

+ This option should contain a comma separated list element convertion chunks. Each chunk contains information about how one element and it's attributes should be treated. The default rule set for this option is specified below. +

+

+ + + + + + + + + + + + + + + +
Control characters:
,Separates element chunk definitions.
/Separates element synonymous. The first element is the one that will be outputted.
|Separates attribute definitions.
[Starts a new attribute list for a element definition.
]Ends a attribute list for a element definition.
=Makes the attribute to default to the specified value. For example "target=_blank"
:Makes the attribute to be forced to the specified value. For example "border:0"
<Verifies the value of a attribute. For example "target<_blank?_self"
?Separates attribute verification values, see above.
+Makes the element open if no child nodes exists. Example: +a.
+ Wildcards such as *,+,? may be used in element or attribute name matching. +

+

+ Special variables:
+ {$uid} Results in a unique ID. For example "p[id:{$uid}]".
+
+ Use *[*] to include all elements and all attributes this can be very useful when used with the invalid_elements option. +

+ +
+ +

Example of usage of the valid_elements option:

+

+ This example string tells TinyMCE to remove all elements that are not a "a, strong, div or br" element, convert b elements to strong elements, default target to "_blank" and keep the href, target and align attributes of the elements. +

+
+
+tinyMCE.init({
+	...
+	valid_elements : "a[href|target=_blank],strong/b,div[align],br"
+});
+
+
+ +
+ +

Default rule set:

+

+ This is the default string used by TinyMCE to cleanup the HTML contents. +

+
+
++a[name|href|target|title],strong/b[class],em/i[class],strike[class],u[class],p[dir|class|align],ol,ul,li,br,
+img[class|src|border=0|alt|title|hspace|vspace|width|height|align],sub,sup,blockquote[dir|style],
+table[border=0|cellspacing|cellpadding|width|height|class|align],tr[class|rowspan|width|height|align|valign],
+td[dir|class|colspan|rowspan|width|height|align|valign],div[dir|class|align],span[class|align],pre[class|align],
+address[class|align],h1[dir|class|align],h2[dir|class|align],h3[dir|class|align],
+h4[dir|class|align],h5[dir|class|align],h6[dir|class|align],hr
+
+
+ +
+ +

Full XHTML rule set:

+

+ This is the default string used by TinyMCE to cleanup the HTML contents. +

+
+
+valid_elements : ""
++"a[accesskey|charset|class|coords|dir<ltr?rtl|href|hreflang|id|lang|name"
+  +"|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
+  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|rel|rev"
+  +"|shape<circle?default?poly?rect|style|tabindex|title|target|type],"
++"abbr[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"acronym[class|dir<ltr?rtl|id|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"address[class|align|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
+  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
+  +"|onmouseup|style|title],"
++"applet[align<bottom?left?middle?right?top|alt|archive|class|code|codebase"
+  +"|height|hspace|id|name|object|style|title|vspace|width],"
++"area[accesskey|alt|class|coords|dir<ltr?rtl|href|id|lang|nohref<nohref"
+  +"|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
+  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup"
+  +"|shape<circle?default?poly?rect|style|tabindex|title|target],"
++"base[href|target],"
++"basefont[color|face|id|size],"
++"bdo[class|dir<ltr?rtl|id|lang|style|title],"
++"big[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"blockquote[dir|style|cite|class|dir<ltr?rtl|id|lang|onclick|ondblclick"
+  +"|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
+  +"|onmouseover|onmouseup|style|title],"
++"body[alink|background|bgcolor|class|dir<ltr?rtl|id|lang|link|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onload|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|onunload|style|title|text|vlink],"
++"br[class|clear<all?left?none?right|id|style|title],"
++"button[accesskey|class|dir<ltr?rtl|disabled<disabled|id|lang|name|onblur"
+  +"|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup|onmousedown"
+  +"|onmousemove|onmouseout|onmouseover|onmouseup|style|tabindex|title|type"
+  +"|value],"
++"caption[align<bottom?left?right?top|class|dir<ltr?rtl|id|lang|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|style|title],"
++"center[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"cite[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"code[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"col[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
+  +"|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
+  +"|onmousemove|onmouseout|onmouseover|onmouseup|span|style|title"
+  +"|valign<baseline?bottom?middle?top|width],"
++"colgroup[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl"
+  +"|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
+  +"|onmousemove|onmouseout|onmouseover|onmouseup|span|style|title"
+  +"|valign<baseline?bottom?middle?top|width],"
++"dd[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
+  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
++"del[cite|class|datetime|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
+  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
+  +"|onmouseup|style|title],"
++"dfn[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"dir[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
+  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
+  +"|onmouseup|style|title],"
++"div[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|style|title],"
++"dl[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
+  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
+  +"|onmouseup|style|title],"
++"dt[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
+  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
++"em/i[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"fieldset[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"font[class|color|dir<ltr?rtl|face|id|lang|size|style|title],"
++"form[accept|accept-charset|action|class|dir<ltr?rtl|enctype|id|lang"
+  +"|method<get?post|name|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
+  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onreset|onsubmit"
+  +"|style|title|target],"
++"frame[class|frameborder|id|longdesc|marginheight|marginwidth|name"
+  +"|noresize<noresize|scrolling<auto?no?yes|src|style|title],"
++"frameset[class|cols|id|onload|onunload|rows|style|title],"
++"h1[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|style|title],"
++"h2[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|style|title],"
++"h3[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|style|title],"
++"h4[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|style|title],"
++"h5[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|style|title],"
++"h6[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|style|title],"
++"head[dir<ltr?rtl|lang|profile],"
++"hr[align<center?left?right|class|dir<ltr?rtl|id|lang|noshade<noshade|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|size|style|title|width],"
++"html[dir<ltr?rtl|lang|version],"
++"iframe[align<bottom?left?middle?right?top|class|frameborder|height|id"
+  +"|longdesc|marginheight|marginwidth|name|scrolling<auto?no?yes|src|style"
+  +"|title|width],"
++"img[align<bottom?left?middle?right?top|alt|border|class|dir<ltr?rtl|height"
+  +"|hspace|id|ismap<ismap|lang|longdesc|name|onclick|ondblclick|onkeydown"
+  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
+  +"|onmouseup|src|style|title|usemap|vspace|width],"
++"input[accept|accesskey|align<bottom?left?middle?right?top|alt"
+  +"|checked<checked|class|dir<ltr?rtl|disabled<disabled|id|ismap<ismap|lang"
+  +"|maxlength|name|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onselect"
+  +"|readonly<readonly|size|src|style|tabindex|title"
+  +"|type<button?checkbox?file?hidden?image?password?radio?reset?submit?text"
+  +"|usemap|value],"
++"ins[cite|class|datetime|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
+  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
+  +"|onmouseup|style|title],"
++"isindex[class|dir<ltr?rtl|id|lang|prompt|style|title],"
++"kbd[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"label[accesskey|class|dir<ltr?rtl|for|id|lang|onblur|onclick|ondblclick"
+  +"|onfocus|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
+  +"|onmouseover|onmouseup|style|title],"
++"legend[align<bottom?left?right?top|accesskey|class|dir<ltr?rtl|id|lang"
+  +"|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|style|title],"
++"li[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
+  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title|type"
+  +"|value],"
++"link[charset|class|dir<ltr?rtl|href|hreflang|id|lang|media|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|rel|rev|style|title|target|type],"
++"map[class|dir<ltr?rtl|id|lang|name|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"menu[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
+  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
+  +"|onmouseup|style|title],"
++"meta[content|dir<ltr?rtl|http-equiv|lang|name|scheme],"
++"noframes[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"noscript[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"object[align<bottom?left?middle?right?top|archive|border|class|classid"
+  +"|codebase|codetype|data|declare|dir<ltr?rtl|height|hspace|id|lang|name"
+  +"|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|standby|style|tabindex|title|type|usemap"
+  +"|vspace|width],"
++"ol[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
+  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
+  +"|onmouseup|start|style|title|type],"
++"optgroup[class|dir<ltr?rtl|disabled<disabled|id|label|lang|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|style|title],"
++"option[class|dir<ltr?rtl|disabled<disabled|id|label|lang|onclick|ondblclick"
+  +"|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
+  +"|onmouseover|onmouseup|selected<selected|style|title|value],"
++"p[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|style|title],"
++"param[id|name|type|value|valuetype<DATA?OBJECT?REF],"
++"pre/listing/plaintext/xmp[align|class|dir<ltr?rtl|id|lang|onclick|ondblclick"
+  +"|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
+  +"|onmouseover|onmouseup|style|title|width],"
++"q[cite|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"s[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
+  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
++"samp[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"script[charset|defer|language|src|type],"
++"select[class|dir<ltr?rtl|disabled<disabled|id|lang|multiple<multiple|name"
+  +"|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
+  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|size|style"
+  +"|tabindex|title],"
++"small[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"span[align|class|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
+  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
+  +"|onmouseup|style|title],"
++"strike[class|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
+  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
+  +"|onmouseup|style|title],"
++"strong/b[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"style[dir<ltr?rtl|lang|media|title|type],"
++"sub[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"sup[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title],"
++"table[align<center?left?right|bgcolor|border|cellpadding|cellspacing|class"
+  +"|dir<ltr?rtl|frame|height|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|rules"
+  +"|style|summary|title|width],"
++"tbody[align<center?char?justify?left?right|char|class|charoff|dir<ltr?rtl|id"
+  +"|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
+  +"|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
+  +"|valign<baseline?bottom?middle?top],"
++"td[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff|class"
+  +"|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|rowspan|scope<col?colgroup?row?rowgroup"
+  +"|style|title|valign<baseline?bottom?middle?top|width],"
++"textarea[accesskey|class|cols|dir<ltr?rtl|disabled<disabled|id|lang|name"
+  +"|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
+  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onselect"
+  +"|readonly<readonly|rows|style|tabindex|title],"
++"tfoot[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
+  +"|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
+  +"|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
+  +"|valign<baseline?bottom?middle?top],"
++"th[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff|class"
+  +"|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|onclick"
+  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
+  +"|onmouseout|onmouseover|onmouseup|rowspan|scope<col?colgroup?row?rowgroup"
+  +"|style|title|valign<baseline?bottom?middle?top|width],"
++"thead[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
+  +"|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
+  +"|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
+  +"|valign<baseline?bottom?middle?top],"
++"title[dir<ltr?rtl|lang],"
++"tr[abbr|align<center?char?justify?left?right|bgcolor|char|charoff|class"
+  +"|rowspan|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title|valign<baseline?bottom?middle?top],"
++"tt[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
+  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
++"u[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
+  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
++"ul[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
+  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
+  +"|onmouseup|style|title|type],"
++"var[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
+  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
+  +"|title]"
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_verify_css_classes.html b/phpgwapi/js/tinymce/docs/option_verify_css_classes.html new file mode 100644 index 0000000000..60820ae524 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_verify_css_classes.html @@ -0,0 +1,38 @@ + + + +Option: verify_css_classes + + + + +
+

Option: verify_css_classes

+
+ +
+

+ If you enable this function, class names placed in class attributes will be verified agains the content CSS. So elements with a class attribute containing a class that doesn't exist in the CSS will be removed. +

+ +
+ +

Example of usage of the verify_css_classes option:

+
+
+tinyMCE.init({
+	...
+	verify_css_classes : true
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_verify_html.html b/phpgwapi/js/tinymce/docs/option_verify_html.html new file mode 100644 index 0000000000..f63310ddcd --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_verify_html.html @@ -0,0 +1,38 @@ + + + +Option: verify_html + + + + +
+

Option: verify_html

+
+ +
+

+ This option enabled or disables the element cleanup functionality. If you set this option to false, all element cleanup will be skipped but other cleanup functionality such as URL convertion will still be executed. +

+ +
+ +

Example of usage of the verify_html option:

+
+
+tinyMCE.init({
+	...
+	verify_html : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_visual.html b/phpgwapi/js/tinymce/docs/option_visual.html new file mode 100644 index 0000000000..88b77dc45f --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_visual.html @@ -0,0 +1,38 @@ + + + +Option: visual + + + + +
+

Option: visual

+
+ +
+

+ This true/false option gives you the ability to turn on/off the visual aid for border less tables. If a the border of a table is set to 0 TinyMCE adds a dotted line around the table by default. +

+ +
+ +

Example of usage of the visual option:

+
+
+tinyMCE.init({
+	...
+	visual : false
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_visual_table_class.html b/phpgwapi/js/tinymce/docs/option_visual_table_class.html new file mode 100644 index 0000000000..4ebbb06ec0 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_visual_table_class.html @@ -0,0 +1,38 @@ + + + +Option: visual_table_class + + + + +
+

Option: visual_table_class

+
+ +
+

+ This option enables you to specify what CSS class to use for presenting visual aids for border less tables. The default value of this option is set to "mceVisualAid". +

+ +
+ +

Example of usage of the visual_table_class option:

+
+
+tinyMCE.init({
+	...
+	visual_table_class : "myCustomVisualAidTableClass"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/option_width.html b/phpgwapi/js/tinymce/docs/option_width.html new file mode 100644 index 0000000000..bf89cf3083 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/option_width.html @@ -0,0 +1,38 @@ + + + +Option: width + + + + +
+

Option: width

+
+ +
+

+ This option gives you the ability to specify the width of the editor in pixels or percent. This width can be very useful to specify if the editor is used in hidden tabs or if the editor area should be bigger than the replaced element. The default value of this option is set to the width of the HTML element TinyMCE replaces for example the pixel width of a textarea. +

+ +
+ +

Example of usage of the width option:

+
+
+tinyMCE.init({
+	...
+	width : "640"
+});
+
+
+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_advhr.html b/phpgwapi/js/tinymce/docs/plugin_advhr.html new file mode 100644 index 0000000000..1564b995de --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_advhr.html @@ -0,0 +1,46 @@ + + + +Plugin: advhr + + + + +
+

Plugin: advhr

+
+ +
+

This is a more advanced hr dialog contributed by Michael Keck. This hr plugin supports noshade, width and size.

+ +

Installation Instructions

+

+

    +
  • Copy the advhr directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
  • +
  • Add plugin to TinyMCE plugin option list example: plugins : "advhr".
  • +
  • Add this "hr[class|width|size|noshade]" to extended_valid_elements option.
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "advhr",
+	theme_advanced_buttons1_add : "advhr",
+	extended_valid_elements : "hr[class|width|size|noshade]"
+});
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_advimage.html b/phpgwapi/js/tinymce/docs/plugin_advimage.html new file mode 100644 index 0000000000..f497df7378 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_advimage.html @@ -0,0 +1,46 @@ + + + +Plugin: advimage + + + + +
+

Plugin: advimage

+
+ +
+

This is a more advanced image dialog mostly based on code contributed by Michael Keck. This one supports mouseover/out image swapping.

+ +

Installation Instructions

+

+

    +
  • Copy the advimage directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
  • +
  • Add plugin to TinyMCE plugin option list example: plugins : "advimage".
  • +
  • Add this "a[name|href|target|title|onclick]" to extended_valid_elements option.
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "preview",
+	extended_valid_elements : "a[name|href|target|title|onclick]"
+});
+
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_advlink.html b/phpgwapi/js/tinymce/docs/plugin_advlink.html new file mode 100644 index 0000000000..1f6880d170 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_advlink.html @@ -0,0 +1,45 @@ + + + +Plugin: advlink + + + + +
+

Plugin: advlink

+
+ +
+

This is a more advanced link dialog mostly based on code contributed by Michael Keck. This link plugin supports popup windows and targets.

+ +

Installation Instructions

+

+

    +
  • Copy the advlink directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
  • +
  • Add plugin to TinyMCE plugin option list example: plugins : "advlink".
  • +
  • Add this "a[name|href|target|title|onclick]" to extended_valid_elements option.
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "advlink",
+	extended_valid_elements : "a[name|href|target|title|onclick]"
+});
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_contextmenu.html b/phpgwapi/js/tinymce/docs/plugin_contextmenu.html new file mode 100644 index 0000000000..3465c6920d --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_contextmenu.html @@ -0,0 +1,43 @@ + + + +Plugin: contextmenu + + + + +
+

Plugin: contextmenu

+
+ +
+

+ +

Installation Instructions

+

+

    +
  • Copy the contextmenu directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
  • +
  • Add plugin to TinyMCE plugin option list example: plugins : "contextmenu".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "contextmenu"
+});
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_directionality.html b/phpgwapi/js/tinymce/docs/plugin_directionality.html new file mode 100644 index 0000000000..951da44665 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_directionality.html @@ -0,0 +1,44 @@ + + + +Plugin: directionality + + + + +
+

Plugin: directionality

+
+ +
+

This plugin adds directionality icons to TinyMCE that enables TinyMCE to better handle languages that is written from right to left.

+ +

Installation Instructions

+

+

    +
  • Add plugin to TinyMCE plugin option list example: plugins : "directionality".
  • +
  • Add the ltr, rtl button names to button list, example: theme_advanced_buttons3_add : "ltr,rtl".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "directionality",
+	theme_advanced_buttons3_add : "ltr,rtl"
+});
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_emotions.html b/phpgwapi/js/tinymce/docs/plugin_emotions.html new file mode 100644 index 0000000000..228e7c820f --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_emotions.html @@ -0,0 +1,53 @@ + + + +Plugin: emotions + + + + +
+

Plugin: emotions

+
+ +
+

The emotions plugin is able to insert smiley images into the TinyMCE editable area.

+ +

Installation Instructions

+

+

    +
  • Copy the emotions directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
  • +
  • Add plugin to TinyMCE plugin option list example: plugins : "emotions".
  • +
  • Add the emotions button name to button list, example: theme_advanced_buttons3_add : "emotions".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "emotions",
+	theme_advanced_buttons3_add : "emotions"
+});
+
+

+ +
+ +

Copyright notice

+

+ These emotions where taken from Mozilla Thunderbird. I hope they don't get angry if I use them here after all this is a open source project aswell and I realy love their product. +

+
+ + + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_flash.html b/phpgwapi/js/tinymce/docs/plugin_flash.html new file mode 100644 index 0000000000..b9fc3b5cdd --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_flash.html @@ -0,0 +1,76 @@ + + + +Plugin: flash + + + + +
+

Plugin: flash

+
+ +
+

This is the "Insert Flash" Dialog contributed by Michael Keck. This one supports popup windows and targets.

+

The placeholder for Flash is called 'mce_plugin_flash' and needs a class 'mce_plugin_flash' in the 'css_-style'. Do not name another image name="mce_plugin_flash"!

+ +

Installation Instructions

+

+

    +
  • Copy the flash directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
  • +
  • Add plugin to TinyMCE plugin option list example: plugins : "flash".
  • +
  • Add this "img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name]" to extended_valid_elements option.
  • +
  • Add the flash button name to button list, example: theme_advanced_buttons3_add : "flash".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "flash",
+	extended_valid_elements : "img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name]"
+	flash_external_list_url : "example_flash_list.js" // Optional URL to a list of SWF movies
+});
+
+

+ +
+ +

Additional note

+

+ The flash plugin has been heavily modified (the original is editor_plugin_original.js) since the original did not play nicely with html content that already contained existing flash tags and in fact stripped out the object + tags for existing flash html. The rewrite corrects this as well attempts + to preserve the existing flash tags where possible. The tinyMCE.init call + should be be something like: +

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "flash",
+	extended_valid_elements : "img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|obj|param|embed]"
+});
+
+

+

Note the extra obj,param,embed attributes for the img tag. These attributes + are used to serialize data from existing flash tags so that they can be + properly restored. Editing a flash tag with the plugin will cause this + information to be lost (sorry!) but still produces a working flash nevertheless. +

+
+ + + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_fullscreen.html b/phpgwapi/js/tinymce/docs/plugin_fullscreen.html new file mode 100644 index 0000000000..68123cbf7a --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_fullscreen.html @@ -0,0 +1,44 @@ + + + +Plugin: fullscreen + + + + +
+

Plugin: fullscreen

+
+ +
+

This plugin adds fullscreen editing mode to TinyMCE.

+ +

Installation Instructions

+

+

    +
  • Add plugin to TinyMCE plugin option list example: plugins : "fullscreen".
  • +
  • Add the fullscreen button name to button list, example: theme_advanced_buttons3_add : "fullscreen".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "fullscreen",
+	theme_advanced_buttons3_add : "fullscreen"
+});
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_iespell.html b/phpgwapi/js/tinymce/docs/plugin_iespell.html new file mode 100644 index 0000000000..ec86c73f01 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_iespell.html @@ -0,0 +1,45 @@ + + + +Plugin: iespell + + + + +
+

Plugin: iespell

+
+ +
+

+ +

Installation Instructions

+

+

    +
  • Copy the iespell directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
  • +
  • Add plugin to TinyMCE plugin option list example: plugins : "iespell".
  • +
  • Add the iespell button name to button list, example: theme_advanced_buttons3_add : "iespell".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "iespell",
+	theme_advanced_buttons3_add : "iespell"
+});
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_insertdatetime.html b/phpgwapi/js/tinymce/docs/plugin_insertdatetime.html new file mode 100644 index 0000000000..ca4f0fa630 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_insertdatetime.html @@ -0,0 +1,107 @@ + + + +Plugin: insertdatetime + + + + +
+

Plugin: insertdatetime

+
+ +
+

+ +

Installation Instructions

+

+

    +
  • Copy the iespell directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
  • +
  • Add plugin to TinyMCE plugin option list example: plugins : "iespell".
  • +
  • Add the insertdate or inserttime button name to button list, example: theme_advanced_buttons3_add : "insertdate,inserttime".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "insertdatetime",
+	theme_advanced_buttons3_add : "insertdate,inserttime"
+    plugin_insertdate_dateFormat : "%Y-%m-%d",
+    plugin_insertdate_timeFormat : "%H:%M:%S"
+});
+
+

+

+

Options

+

+

+ plugin_insertdate_dateFormat - Format that the date is output as. Defaults to: "%Y-%m-%d".
+ plugin_insertdate_timeFormat - Format that the time is output as. Defaults to: "%H:%M:%S". +

+

Replacement variables

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%yyear as a decimal number without a century (range 00 to 99)
%Yyear as a decimal number including the century
%dday of the month as a decimal number (range 01 to 31)
%mmonth as a decimal number (range 01 to 12)
%Dsame as %m/%d/%y
%rtime in a.m. and p.m. notation
%Hhour as a decimal number using a 24-hour clock (range 00 to 23)
%Ihour as a decimal number using a 12-hour clock (range 01 to 12)
%Mminute as a decimal number (range 00-59)
%Ssecond as a decimal number (range 00-59)
%peither "am" or "pm" according to the given time value
%%a literal "%" character
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_paste.html b/phpgwapi/js/tinymce/docs/plugin_paste.html new file mode 100644 index 0000000000..7a24b3a546 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_paste.html @@ -0,0 +1,66 @@ + + + +Plugin: paste + + + + +
+

Plugin: paste

+
+ +
+

This plugin adds paste as plain text and paste from Word icons to TinyMCE. This plugin was developed by Ryan Demmer and modified by the TinyMCE crew to be more general and some extra features where added.

+

+ On 25 May 2005, this plugin was modified by speednet: IE now pastes directly into the editor, bypassing the extra steps of opening the Insert box, selecting options, and clicking Insert. Speednet also added the Select All command, which highlights all the content in the editor when the user clicks the toolbar button (Other miscellaneous cleanup also). +

+

Installation Instructions

+

+

    +
  • Copy the paste directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
  • +
  • Add plugin to TinyMCE plugin option list example: plugins : "paste".
  • +
  • Add the button names to button list, example: theme_advanced_buttons3_add : "pastetext,pasteword,selectall".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "paste",
+	theme_advanced_buttons3_add : "pastetext,pasteword,selectall",
+	paste_create_paragraphs : false,
+	paste_use_dialog : true
+});
+
+
+

+

+

Options

+

+

+ + + + + + + + + +
[paste_create_paragraphs]If enabled double linefeeds are converted to paragraph elements when using the plain text dialog. This is enabled by default.
[paste_use_dialog]MSIE specific option, if you set this to false both Mozilla and MSIE will present a paste dialog. If you set it to true pasting in MSIE will be done directly. This option is set to false by default.
+

+ +
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_preview.html b/phpgwapi/js/tinymce/docs/plugin_preview.html new file mode 100644 index 0000000000..3f364af12b --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_preview.html @@ -0,0 +1,66 @@ + + + +Plugin: preview + + + + +
+

Plugin: preview

+
+ +
+

This plugin adds a preview button to TinyMCE, pressing the button opens a popup showing the current content.

+ +

Installation Instructions

+

+

    +
  • Copy the preview directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
  • +
  • Add plugin to TinyMCE plugin option list example: plugins : "preview".
  • +
  • Add the button name to button list, example: theme_advanced_buttons3_add : "preview".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "preview",
+	theme_advanced_buttons3_add : "preview",
+	plugin_preview_width : "500",
+	plugin_preview_height : "600"
+});
+
+

+

+

Options

+

+

+ + + + + + + + + + + + + +
[plugin_preview_width]Preview window width. Defaults to 550.
[plugin_preview_height]Preview window height. Defaults to 600.
[plugin_preview_pageurl]Custom preview page URL relative from theme use "../../plugins/preview/example.html" for a example.
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_print.html b/phpgwapi/js/tinymce/docs/plugin_print.html new file mode 100644 index 0000000000..1d5459bfdc --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_print.html @@ -0,0 +1,45 @@ + + + +Plugin: paste + + + + +
+

Plugin: print

+
+ +
+

This plugin adds a print button to TinyMCE.

+ +

Installation Instructions

+

+

    +
  • Copy the print directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
  • +
  • Add plugin to TinyMCE plugin option list example: plugins : "print".
  • +
  • Add the button name to button list, example: theme_advanced_buttons3_add : "print".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "print",
+	theme_advanced_buttons3_add : "print"
+});
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_save.html b/phpgwapi/js/tinymce/docs/plugin_save.html new file mode 100644 index 0000000000..53eed7f93b --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_save.html @@ -0,0 +1,44 @@ + + + +Plugin: save + + + + +
+

Plugin: save

+
+ +
+

This plugin adds a save button to TinyMCE this save button will submit the form that the editor is within.

+ +

Installation Instructions

+

+

    +
  • Add plugin to TinyMCE plugin option list example: plugins : "save".
  • +
  • Add the ltr, rtl button names to button list, example: theme_advanced_buttons3_add : "save".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "save",
+	theme_advanced_buttons3_add : "save"
+});
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_searchreplace.html b/phpgwapi/js/tinymce/docs/plugin_searchreplace.html new file mode 100644 index 0000000000..b15906d8e7 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_searchreplace.html @@ -0,0 +1,44 @@ + + + +Plugin: searchreplace + + + + +
+

Plugin: searchreplace

+
+ +
+

This plugin adds search/replace dialogs to TinyMCE.

+ +

Installation Instructions

+

+

    +
  • Add plugin to TinyMCE plugin option list example: plugins : "searchreplace".
  • +
  • Add the ltr, rtl button names to button list, example: theme_advanced_buttons3_add : "search,replace".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "searchreplace",
+	theme_advanced_buttons3_add : "search,replace"
+});
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_table.html b/phpgwapi/js/tinymce/docs/plugin_table.html new file mode 100644 index 0000000000..72a9235a2d --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_table.html @@ -0,0 +1,94 @@ + + + +Plugin: table + + + + +
+

Plugin: table

+
+ +
+

+ This plugin adds table management functionality to TinyMCE. +

+ +

+ + + + + + + + + + + + + + + + + + +
Table controls/buttons
tablecontrolsAll table control below and some separators between them.
tableInsert table control.
row_propsEdit row properties (tr).
cell_propsEdit cell properties (td).
delete_colDelete column control.
delete_rowDelete row control.
col_afterColumn after control.
col_beforeColumn before control.
row_afterRow after control.
row_beforeRow before control.
row_afterRow after control.
row_beforeRow before control.
split_cellsSplits a merged cell into rows and columns.
merge_cellsMergers selected cells into one cell.
+

+ +

+ + + + + + + + + + + +
Table commands to use with execCommand
mceInsertTableInserts a new table at cursor location the default size is 2x2. If the value parameter is specified it should contain a name/value array, this array has the following options cols, rows, border, cellspacing, cellpadding. The default border is set to: 0.
mceTableInsertRowBeforeInserts a row before/above the current cursor location.
mceTableInsertRowAfterInserts a row after/under the current cursor location.
mceTableDeleteRowDeletes the row at the current cursor location.
mceTableInsertColBeforeInserts a column before the current cursor location.
mceTableInsertColAfterInserts a column after the current cursor location.
mceTableDeleteColDeletes the column at the current cursor location.
+

+ +

+ + + + + +
Options
table_color_fieldsIf set to true, tables dialogs will have color fields.
+
+

+ +

Installation Instructions

+

+

    +
  • Add plugin to TinyMCE plugin option list example: plugins : "directionality".
  • +
  • Add the ltr, rtl button names to button list, example: theme_advanced_buttons3_add : "ltr,rtl".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "table",
+	theme_advanced_buttons3_add : "tablecontrols",
+	table_color_fields : true
+});
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/plugin_zoom.html b/phpgwapi/js/tinymce/docs/plugin_zoom.html new file mode 100644 index 0000000000..a365161951 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/plugin_zoom.html @@ -0,0 +1,44 @@ + + + +Plugin: zoom + + + + +
+

Plugin: zoom

+
+ +
+

Adds a zoom drop list in MSIE5.5+, this plugin was mostly created to show how to add custom droplists as plugins.

+ +

Installation Instructions

+

+

    +
  • Add plugin to TinyMCE plugin option list example: plugins : "zoom".
  • +
  • Add the ltr, rtl button names to button list, example: theme_advanced_buttons3_add : "zoom".
  • +
+

+

Initialization Example

+

+

+
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas",
+	plugins : "zoom",
+	theme_advanced_buttons3_add : "zoom"
+});
+
+

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/reference_configuration.html b/phpgwapi/js/tinymce/docs/reference_configuration.html new file mode 100644 index 0000000000..537707adcd --- /dev/null +++ b/phpgwapi/js/tinymce/docs/reference_configuration.html @@ -0,0 +1,191 @@ + + + +Configuration reference + + + + +
+

Configuration reference

+
+ +
+

This document is the index/reference page for all available core configuration options in TinyMCE.

+ +
+ +

Configuration options

+
+

All configuration options below is to be placed within the init JavaScript call.

+ +

+ + + +
+

+
+ +
+ +

Initialization of TinyMCE

+
+

Inorder to initialize the TinyMCE the following code must be placed within HEAD element of a document. The following example is configurated to convert all TEXTAREA elements to into editors when the page loads, there are other modes as well.

+

Example of TinyMCE configuration:

+
+
+<html>
+<head>
+<script language="javascript" type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
+<script language="javascript" type="text/javascript">
+tinyMCE.init({
+	theme : "advanced",
+	mode : "textareas"
+});
+</script>
+</head>
+
+
+
+ Note: Remember to remove the last "," character in the options list. +
+
+ + +
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/reference_javascript_functions.html b/phpgwapi/js/tinymce/docs/reference_javascript_functions.html new file mode 100644 index 0000000000..28b7d4e2cc --- /dev/null +++ b/phpgwapi/js/tinymce/docs/reference_javascript_functions.html @@ -0,0 +1,591 @@ + + + +Javascript Functions + + + + +
+

Javascript Functions

+
+ +
+

This is for advanced users, TinyMCE has a global instance with some public functions that can be called from the page.

+

tinyMCE.triggerSave([skip_cleanup], [skip_callback]);

+

+Makes a cleanup and moves the contents from the editor to the form field. This method is automaticly called by tinyMCE by adding a trigger on the forms submit method. +

+

+ + + + + + + + + + + + + + + + +
Parameters
[skip_cleanup]Disables the cleanup process of trigger save. Defaults to false. (Optional)
[skip_callback]Disables the execution of the save_callback function. Defaults to false. (Optional)
+ +skip_callback +

+

+Returns: Nothing +

+
+

tinyMCE.updateContent(form_element_name);

+

+Moves the contents from the form element to the editor, this does the opposite of triggerSave(). This method can be used when you want to change the contents of the editor dynamicly. +

+

+ + + + + + + + + + + + +
Parameters
form_element_nameThe name of the form element to get contents from.
+

+

+Returns: Nothing +

+
+

tinyMCE.execInstanceCommand(editor_id, command, [user_interface], [value]);

+

+This method executes a command by name on the editor instance specified by the editor_id parameter. +

+

+ + + + + + + + + + + + + + + + + + + + + + + + +
Parameters
editor_idID of editor instance or element id/name of the replaced element.
commandCommand to execute check the execCommand function for details.
[user_interface]Is a user interface to be used or not.
[value]Value to pass with command for example a URL..
+

+

+Returns: Nothing +

+
+

tinyMCE.execCommand(command, [user_interface], [value]);

+

+This method executes a command by name on the selected editor instance. +

+

+ + + + + + + + + + + + + + + + + + + + +
Parameters
commandCommand to execute for example "Bold" or "Italic". These are defined by Mozilla Midas specification or Microsoft specification. But there are a some TinyMCE specific commands many other commands are available within plugins and themes.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mceLinkOpens the insert link dialog and inserts a link.
mceImageOpens the insert image dialog and inserts a image.
mceCleanupRemoved unwanted elements and attributes from the HTML code.
mceHelpOpens the manual pages.
mceAddControlAdds a editor control to the element id/name specified as value.
mceRemoveControlRemoves a specific control by editor_id name. The value is the editor_id to remove, editor ids are in the following format: "mce_editor_<index>". DOM element ids and form element names can allso be used.
mceFocusFocuses the editor by the id placed in value. Editor id's are in the format "mce_editor_". DOM element ids and form element names can allso be used.
mceSetCSSClassSets the CSS class attribute or creates a new span of the selection. The value is the css class name to assign to selected element or new span element.
mceInsertContentInserts contents of value parameter to current cursor position.
mceReplaceContentReplaces the current selection with the HTML code in value. The {$selection} variable gets replaced with the currently selected text contents.
mceSetAttributeSets a attribute of the currenly selected element. The value of this command should be a name/value array with the following parameters.

+ name - Attribute name to set.
+ value - Attrbute value to set.
+ [targets] - Target elements to add attribute on. Default: p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address.

+ Example of usage:
+ tinyMCE.execCommand('mceSetAttribute',false,{name:'align',value:'right'});
+
mceToggleVisualAidToggles visual aid/guidelines mode on/off.
mceAnchorInserts a named anchor element, the value is the name of the anchor.
mceResetDesignModeResets the designMode state of all editor instances, this command is useful on Firefox if the editor is placed in tabs or shown/hidden with style.display="none/block". Call this command after the editor displayed again.
mceSelectNodeSelects the node/element passed as value. This command will also scroll to the elements location within the editor.
mceSelectNodeDepthSelects the node/element by depth relative from the current node. So a value of 0 will select the currently focused node. This command will also scroll to the elements location within the editor.
+
[user_interface]Tells if the command is to display a user interface or not. True/False option.
[value]Value to pass for the command for example to insertLink it's the URL of the link.
+ +

+

+Returns: Nothing +

+

+Example: +

+

+

+
+<a href="javascript:tinymce.execCommand('Bold');">[Do bold]</a>
+
+
+

+
+

tinyMCE.insertLink(href, target);

+ +

This method inserts a link a the cursor position of the selected editor instance or updates the selected link with new data. This method should be called upon "ok" in the insertLink popup when you create custom themes. +

+ + + + + + + + + + + + + + + + +
Parameters
hrefHREF/URL of the link.
targetTarget of the link.
+

+Returns: Nothing +

+
+

tinyMCE.insertImage(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout);

+

+This method inserts a image a the cursor position of the selected editor instance or updates the selected image with new data. This method should be called upon "ok" in the insertImage popup when you create custom themes. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameters
srcImage src url.
altAlternative text of img element.
borderBorder of image element.
hspaceHorizontal spacing of image element.
vspaceVertical spacing of image element.
widthWidth of image element.
heightHeight of image element.
alignAlignment of image element.
titleLink title of image element.
onmouseoverOn mouse over event handler of image element.
onmouseoutOn mouse out event handler of image element.
+

+Returns: Nothing +

+
+

tinyMCE.triggerNodeChange();

+

This method is to be called when external changes is made to the editor. This method will then call the "handleNodeChangeCallback" callback in the theme. +

+

+Parameters: +

+

+None +

+

+Returns: Nothing +

+
+

tinyMCE.getContent();

+

+This method returns the HTML contents of the currently selected editor or null if no editor was selected. +

+

+Parameters: +

+

+None +

+

+Returns: HTML contents of the currently selected editor or null. +

+
+

Syntax: tinyMCE.setContent(html);

+ +

This method sets the HTML contents of the currently selected editor.

+ +

+ + + + + + + + + + + + +
Parameters
htmlHTML Source code to set.
+

+

+Returns: None. +

+
+

tinyMCE.getInstanceById(editor_id);

+

+This method returns a editor instance by editor id. +

+

+ + + + + + + + + + + + +
Parameters
editor_idEditor instance to retrive.
+

+

+Returns: TinyMCE Editor instance (TinyMCEControl). +

+
+

tinyMCE.importThemeLanguagePack([theme]);

+

+This method imports/loads theme specific language packs. This may be called from custom themes. +

+

+ + + + + + + + + + + + +
Parameters
[theme]Name of the current theme. This is a optional parameter it defaults to the global "theme" setting. This parameter is useful within theme plugins.
+

+

+Returns: None. +

+
+

tinyMCE.importPluginLanguagePack(plugin, valid_languages);

+

+This method imports/loads plugin specific language packs. This may be called from custom plugins. +

+

+ + + + + + + + + + + + + + + + +
Parameters
pluginName of the current plugin.
valid_languagesComma separated list of supported languagepacks.
+

+

+Returns: None. +

+
+

tinyMCE.applyTemplate(html);

+

+This method replaces settings and lang variables in the theme. +

+

+ + + + + + + + + + + + +
Parameters
htmlHTML code to apply theme variable substitution on.
+

+

+Returns: New converted, HTML code. +

+
+

tinyMCE.openWindow(template, [args]);

+

This method opens a new window by the template data assigned, it will get the width, height and html data from template parameters. The args array contains variable names to be substituted.

+

+There are some custom window arguments: +

+

+ + + + + + + + + + + + + + + + +
Parameters
mce_replacevariablesEnables/Disables the language/variable replacement of the document HTML. Enabled by default.
mce_windowresizeEnables/Disables the auto resize feature of popupwindows. Enabled by default.
+

+ +

+ + + + + + + + + + + + + + + + +
Parameters
templateName/Value array with width, height, html and file keys in it.
[args]Name/Value array with variable names to replace. Variables in the template file key value (URL) gets replaced with the argument list.
+

+

+Returns: None. +

+
+

tinyMCE.getWindowArg(name, [default_value]);

+

+This method returns a window argument defined by name. This function is to be used in theme popup windows to retrive dialog parameters. +

+

+ + + + + + + + + + + + + + + + +
Parameters
nameName of window argument to get.
[default_value]Default value to be returned if window argument is missing.
+

+

+Returns: Window argument value. +

+
+

tinyMCE.setWindowArg(name, value);

+

This method sets a window argument by name. This can for example be useful if plugin are to call other plugins.

+

+ + + + + + + + + + + + + + + + +
Parameters
nameName of window argument to set.
valueValue to set in window argument.
+

+

+Returns: Window argument value. +

+
+

tinyMCE.getParam(name, [default_value], [strip_whitespace]);

+

This method returns a TinyMCE configuration parameter.

+

+ + + + + + + + + + + + + + + + + + + + +
Parameters:
nameName of window argument to get.
[default_value]Default value to be returned if window argument is missing.
[strip_whitespace]If true all whitespace will be removed from return value, default: false.
+

+

+Returns: TinyMCE configuration parameter. +

+
+ + + + + diff --git a/phpgwapi/js/tinymce/docs/reference_plugins.html b/phpgwapi/js/tinymce/docs/reference_plugins.html new file mode 100644 index 0000000000..72fc8ed7b0 --- /dev/null +++ b/phpgwapi/js/tinymce/docs/reference_plugins.html @@ -0,0 +1,70 @@ + + + +Plugins Reference + + + + +
+

Plugins reference

+
+ +
+

Here are some information about the different plugins.

+ +
+ +

Plugins

+
+

To use a plugin, you need to use the advanced theme and add the plugin name in the "plugin" comma seperated line. You also need to add the button to the interface, read more about the advanced plugin to configure this.

+

+

+ + +
+

+

+ Please notice that the plugins can require some configuration, click on the plugin link to read more about that plugin. +

+
+ +
+ + +
+ + + + + diff --git a/phpgwapi/js/tinymce/examples/dump.php b/phpgwapi/js/tinymce/examples/dump.php new file mode 100644 index 0000000000..a4bd19693b --- /dev/null +++ b/phpgwapi/js/tinymce/examples/dump.php @@ -0,0 +1,27 @@ + + +Displays the output of a TinyMCE + + + +

HTML output from post

+ + + + $value) { ?> + + +
Form elementHTML output
+ +

Source output from post

+ + + + $value) { ?> + + +
Form elementSource output
+ + + + diff --git a/phpgwapi/js/tinymce/examples/example_advanced.css b/phpgwapi/js/tinymce/examples/example_advanced.css new file mode 100644 index 0000000000..c8709418f0 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/example_advanced.css @@ -0,0 +1,44 @@ +body { + background-color: #FFFFFF; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 12px; + color: #880000; + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} + +.header1 { + font-weight: bold; + font-size: 14px +} + +.header2 { + font-weight: bold; + font-size: 12px; + color: #FF0000 +} + +.header3 { + font-weight: normal; + font-size: 12px; + color: #0000FF +} + +.tablerow1 { + background-color: #BBBBBB; +} + +td { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 12px; +} + +.mceVisualAid { + border: 1px dashed #BBBBBB; +} diff --git a/phpgwapi/js/tinymce/examples/example_advanced.htm b/phpgwapi/js/tinymce/examples/example_advanced.htm new file mode 100644 index 0000000000..d1b5167788 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/example_advanced.htm @@ -0,0 +1,111 @@ + + + + + + + + + + + +[Full featured example] [Advanced example] [Simple example] + +

Advanced example

+This page shows a more complex usage of TinyMCE. On this page the mode is set to convert specific elements in this case a DIV element and a TEXTAREA into editor instances. The example below uses a custom CSS, thats why the text is red and it allso uses the "advanced" theme that includes more options than the default one. The code allso includes examples of custom call back functions and much more. Notice the submit button at the end of the page, this button triggers a save action. Read more about the features and possible settings of TinyMCE in the manual.
+
+ + +
+ +
+ +
+ + +
+ Some element, this is to be editor 2.
This editor instance is a DIV element instead of a textarea. +

Some paragraph. Some link

+ +
+ +
+ +Some custom actions: +[Bold] | +[Italic] +[Insert some HTML] +[Replace selection] + +
+ + + \ No newline at end of file diff --git a/phpgwapi/js/tinymce/examples/example_flash_list.js b/phpgwapi/js/tinymce/examples/example_flash_list.js new file mode 100644 index 0000000000..45946584a8 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/example_flash_list.js @@ -0,0 +1,9 @@ +// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system. +// There flash movies will be displayed as a dropdown in all flash dialogs if the "flash_external_list_url" +// option is defined in TinyMCE init. + +var tinyMCEFlashList = new Array( + // Name, URL + ["Some Flash 1", "test1.swf"], + ["Some Flash 2", "test2.swf"] +); diff --git a/phpgwapi/js/tinymce/examples/example_full.css b/phpgwapi/js/tinymce/examples/example_full.css new file mode 100644 index 0000000000..33e0fde5d4 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/example_full.css @@ -0,0 +1,74 @@ +body { + background-color: #FFFFFF; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} + +td { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +pre { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +.example1 { + font-weight: bold; + font-size: 14px +} + +.example2 { + font-weight: bold; + font-size: 12px; + color: #FF0000 +} + +.tablerow1 { + background-color: #BBBBBB; +} + +/* Default CSS class for links within the editor */ + +.mceLink a:visited { + color: #666666; + text-decoration: underline; + font-size: 12px; +} + +.mceLink a:active { + color: #666666; + text-decoration: underline; + font-size: 12px; +} + +.mceLink a:hover { + color: #666666; + text-decoration: underline; + font-size: 12px; +} + +.mceLink a:link { + color: #666666; + text-decoration: underline; + font-size: 12px; +} + +.mceLink a { + color: #666666; + text-decoration: underline; + font-size: 12px; +} + +.mceVisualAid { + border: 1px dashed #BBBBBB; +} diff --git a/phpgwapi/js/tinymce/examples/example_full.htm b/phpgwapi/js/tinymce/examples/example_full.htm new file mode 100644 index 0000000000..40b85914f8 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/example_full.htm @@ -0,0 +1,61 @@ + + + + + + + + + + + +[Full featured example] [Advanced example] [Simple example] + +
+ +

Full featured example

+This page shows all available plugins that are included in the TinyMCE distribution. Some of these plugins will only be visible on MSIE due to the lack of some support in FF. For more details on the various options on TinyMCE check the manual or for more third party plugins check the plugin section.

+ + + +
+ + + + +
+ + + \ No newline at end of file diff --git a/phpgwapi/js/tinymce/examples/example_image_list.js b/phpgwapi/js/tinymce/examples/example_image_list.js new file mode 100644 index 0000000000..b77b99d921 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/example_image_list.js @@ -0,0 +1,9 @@ +// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system. +// There images will be displayed as a dropdown in all image dialogs if the "external_link_image_url" +// option is defined in TinyMCE init. + +var tinyMCEImageList = new Array( + // Name, URL + ["Logo 1", "logo.jpg"], + ["Logo 2 Over", "logo_over.jpg"] +); diff --git a/phpgwapi/js/tinymce/examples/example_link_list.js b/phpgwapi/js/tinymce/examples/example_link_list.js new file mode 100644 index 0000000000..238dacb3c0 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/example_link_list.js @@ -0,0 +1,10 @@ +// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system. +// There links will be displayed as a dropdown in all link dialogs if the "external_link_list_url" +// option is defined in TinyMCE init. + +var tinyMCELinkList = new Array( + // Name, URL + ["Moxiecode", "http://www.moxiecode.com"], + ["Freshmeat", "http://www.freshmeat.com"], + ["Sourceforge", "http://www.sourceforge.com"] +); diff --git a/phpgwapi/js/tinymce/examples/example_simple.htm b/phpgwapi/js/tinymce/examples/example_simple.htm new file mode 100644 index 0000000000..cd3660b581 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/example_simple.htm @@ -0,0 +1,41 @@ + + + + + + + + + + + +[Full featured example] [Advanced example] [Simple example] + +
+

Simple example

+This page shows how to use TinyMCE on a HTML page in the most common and simple way. On this page each TEXTAREA +element gets converted to a editor instance on page load. Notice how TinyMCE tries to match the width and height of the old text area elements. Read more about the features and settings of TinyMCE in the manual.

+ + + +

+ + +
+ + + \ No newline at end of file diff --git a/phpgwapi/js/tinymce/examples/logo.jpg b/phpgwapi/js/tinymce/examples/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..612e902a8de13e1015fc484b731c9341644ac22d GIT binary patch literal 2764 zcmaJ?cU03^7XJOxz=Rfvf=D%pAfnPD2x2S*QGqBR2sWCCKtj*}p@iTl2$@hqlcEDC z5m2NJ(i8+k(5Ned1qlo-6zOqLf&|%kc6QF5J$v@M=e_gJcklP^`{TZQ*Lv560Hq@Y z2Lb>>0KiXbz}gIeK1B5mq5&WP0{{RorRD&I{eEO0f57jllmXWSz%>94`w8g|mxW8$ zIvF@zW*utXPoNY~a#Elap;Q5&Vajk_ll>}))YO5b&)0np->PGmxcb7 z285uYFkKVn1`sZ&Ih|5vDOF3N$-}%pn-jW#b5!E!@xlDAR0+I zS{t%j6?LbgkO>Mt4(jfK+DwziQph{#w*8q1;--)$6^%0=hPo-*+cHs^kS+-0AfKUW z0N05kqRv|(0j*3}@P{F*F330o%L4Q4z)h%4L=@f_q+1}1+|#D<9-X}B{ERx5%4kl3C5l&{EG8b>WS;~I1&ck2NZdWZqco{iO#ZCLV)vLgnHPsA~ao_t^3V@l%hsmnK-zQ@4v7T@-1JGsgPo`mE9MC3(z!k3zK zwCW6VO04Zdl;7*R5$_LX!o*F|mu4Mc*YuMyyK{J9#Onf$s#J;F&a5gWx zL$F!&k5EH*PsvzBN#^#vcsFT$>U!PbaGpJY3ej8kE8c4bNk8du0lnX;x ziA8PQblC5$FYL9N%}&L24}E2hNaO*?;GU^VmxX(8#>y;P#7$)(#_u98f_TG1OfM51 zN=s&(jM+}uy{l3y#(32be@H;rUIUEIb>$Id!(TbYCkl>0Rmr@AvG9sz)+7o%z%&39 zez^`xOG9?16lDh3n!{c4m9`!>mRtvHYs_Au@!DlKQd-*?p>2$9Bt=g^9b%E>c{fX+7!55^n zk=b|L>^&Xk-_AH>tOSiTEE`^JSZ@3C(ah@)>&8ig-oCE0Pu*_>99W8$?7f7YQuVAj z$v!^6;*c%>`)B(Hr&|t1*IyIw5ZF!)q?RZ8^KR3stCuX;5f_C?GE`W^FZ1=#xG@*9 zsU(wnPrp9pRx@?;xbe;UlE})jfh7zs4!yvdCwFAq$i0eTb)rK13oo-b`kc0Ubrh|> zw~sLrw5314E93nh%ZjGrY|*Tfk$pLt{;R<4q4r`^Eq`ms*U}4+R1^Fw~`w~e)&W%?_TQjzGcN5A-TCL-%bwH$;MQ!&)F)xFm`nD>!j~@6R5Q(U ztw}nD`Atp(ja9ztH(b->CHQOc@iI4v_xde9?%?&)9Nun1Oj0e`v*O-pm?g!bK5{0y zpvH&ugl3h&s{*ki;^E!z_z>P>cwbxNw8DJpK>apK-Nx0$QD^#UXP)B=_iC+Jz55t~ zSHG7)v{+ePP{f&kz1+H?^--Z_tjAx4-vx9bqomyf{80FlAW1&r zoiqRpAW}o!oI0Q!CBncG7&0Z`qmD06)&QvDDoHE)+4a6`DDrxbAorK&k1OZAJ+`n& z&KaJ$zI2MK^TG42jatEJFH)Lc-AXzmWSgd^y~e82FGiZFQ25n0D2qy!tse$Ttdtb@ ze0i(odT!R==w^?N@Y;4Ke2;#%Q5jSr+0JWnHgHU^fSsBPdbkE8g|vn}{>)+O%x6Rt zxgQoBi&?)o1q-ZhN&iRLkCqNYZvDrz6*Nt9D(yCo{zi{(H*TGP>EPs0I+DD>_kF|O ztEyWH@@od2_j!s2J1D=g`_DN_sC&c1T<=U2mnp2*1QG_>Gpau53p# zYPQvW{vM`Kyl$H_|2@n5w8KNCJM-ckT3U$h#?fHt$OV4GPmQ!Sz(qBA%I!Chp#i@Nm&1c~qoo*(9_HPbs?* zN#@Pr{2~eW@|YW+Ssd8ItQ=lWzvNYZvUECMuVvO&i*P7cupzwnp7xf9pQ3{s-Wp}G zxte=KNp*|aE%~^j(~=!d8#Ua6AI(t39MaZH{i4h!Le>tl@`Wi;?(UiN{6}_7qYka@ zc`3pC?$V$IvPkxsH7ez_*d4nD9F%?ePFK|}@W%2r$>mR3j?_zibL zO5WZMNYi7z+RiQh?fhq7e#^};E~eD_NEJppOkJdX7c9gq7Gk=f75JY_&xDg-CXe$x zVbBckrZFjl0Wq*Do?p-v4M#BgUb|FbkNvD+)rBU?86YsAemleNjALhxCnOXYdszas zGrZdiHB&l;Oq}TYt>%DOtudBdFJ&&wAd-{p7mDSd<65WEC$#5U5od7cI1i76E>*_Y zRu_n^!)BdQN2s|jzC)VKP^QML%hOz6{XoTVjYFnp2!_`m-4Q#rRo)1e6E{sqMv%W> zZ|M8evGZ%(`j4%(<583VHLv^KS>Nn$%~{v_`?l4OLN^Q~%d#Bn_#L@SzP(xa9(Q&M zv}|uq@pt0~s3RsHVrypOu&2`5bNi;k8egejCNZF1*|g*=Vt8HJ|NfRi6Hk?`*t>h~ zC%H^7losk($2`k0Tyb7K!O*t1l<2G$Gp=wm@^4|q@2+-l<~6yCyVNei&EXOH6Gf&cN7iDcGGRWHL`u&Q%wS^q#ZE^|@@kgvYqw`C}Wn_UWG}_tFyp literal 0 HcmV?d00001 diff --git a/phpgwapi/js/tinymce/examples/logo_over.jpg b/phpgwapi/js/tinymce/examples/logo_over.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c204dabf27d06b8cba1a74ce1208686fdfdceec1 GIT binary patch literal 6508 zcmaKQWl$VJxAx*12<{dL5@2z+;4Bit;_d;0ECh!jL4vyncXwIbB{*auxCMvc?sxNk zU%hpI-DhgfboJA7&Qm>Ir+d!J{L4DvwW1tI4uF6N09e2;z{_6%o{X!xttS8hfD8Zt zbl_db031mRh?yn8q8r|W@UjF50wDYsi0~F7BHSV(BEg?9@eQUz`(UG;(`3%mVW2^6UF}ErR$o8A;$`;J%QNkWsLZ zk^Z@Y#{l5rBcss0AwcEgrk7MR1xtO&;~_kC`W6u1`|A$_F`C)Ax_OT@(aRzL8!jCY z4+#$-0nn#0(jFru6RIg>3TEbZHdQpwPK7}F+7g{qZH@Mf2|G#8Y-d?%6chv#Jq{#y zKW|L)kA{N-28FflEDD`5wK)q7e|Tam+>U^n|7L)$1FA;{z)6AwvwAfDIDUeX3Ko!u zaq)C8GZ@9|jtbpsF+agb zmZ*u8PgkeJyP{Ucul`QPlu#76bNK=gGF>HZ5`z-pdxSbJ=hFB|*W0U6EZyc+Ca4;9fDnbcie_GF4 z2#B$-?!7Y~NK!1X3%l^8aSdjjQa0Ai86FR25oM7~NXOJ9tBBf07c|2uICuJVV$9a{ zIu%?JX;KECl>f{csItvxpof-j+YguI(Yrb&GO-dbnd{p8?|1P-l3DAoEYcf_JA_5O zu0+8s99Wn4oQ3FJZiKmE1`u~Yg!;>}*S8zOzJOpCB$WWVZjZPUe$4%AJiYNms)SLT8p^s6%DKy|hB(@__U z<{v5kx4HgKP&qAQD)1tDj=3VA8o`Mk=oaxT^oLHEJG&3)ec>W{3ZYX-Y>!{Bnodv3Te5Dfk%|v z6w_79_DeO7`3o0KoI7m`gzO??*-6(n~1>s3wGMOZrt97sjYSIXJ5~_LW=iWyGyhswY41l4NBp( z4Sn6uSyuj3M5v6(7zbEKNdqw`L9Li9T zVc&hemF!)Gb@48&mF;IXH~HSO3zZv7#yn_Az729mdj9kRXlwjI)u)E&VLE(u$J(_Z zVh*aDvf1^^&OUISO)3#ZJhdsp>a5h(lAUugIMwp4_)KW94djACT5PsPmI7!)DI63b zZxmnGyPlEAELk>;FG{gN3QreUZZxO#MW z0i>_of4*zehk!Wox_y*W!!h(lK2Z^xW5rp3J_LDiGYc75+uWdz zt>iQA{zkLKPMN@vLwjQm`=7f-UASve&NoIU$TpsM_rq9s;_f#-5|1;t4-mVg<E)N^s~d1)T-6lOO;AJ6{!(LdU=dL{8jimFQ2y>iZ83q#zyTH z4&ypaHor0j5LCO%t*OyKa-mULw@tHyUOv_ z?!gcJh111)Y=Xdd6}zu?*~dv;86;$u<9-dvpP}DgM4^hD^cSC|5B{~hdfmD0%iel@ zBMqW1!{7;i?wc$Bn>jm|r2;IUPGd#hL-s9k$}f|yYtD3hK7vKiTH2P74{+{|GFFgo zX>3ureL*9CbYW-T#0<{$;YC3(wu=_ftqzn$GxFqA{A+kxnQt>#W_I zyWMjEN=#UB$HM%_?0q$k@lNpRP%sOx_Y2??Vb!0V`_n=;c%oNd@@YXGD`0Bx;4)Qo z{ugB!?zOEl`d#DBKm$QB@%MtZz%RsC>U<>eonmHs-ET!Yt8d~W08U0R+W1;fQ3 zmE?H*?Cn!x?){jKHM5t6UjXVe7tc>B2G14-UxZRanz8zo8$Z$dpEa0Q&W3zi*_Kq# z3H&*4G%FPjgTS+U{j~w-qu8hCgO&QpGot3^ubaT7F5UpJL};`q_7iXgD<*gM;p^4ZQQM+w@pHK@_tzJ| z@UWJ1miQ&=c1lCl(4&d1ql1zOmc?qNo>Y?=x1cpZ(6jB1e5!pr*Y;y_*Or~xo9oUF ze3?h;bhP^yzz|r!`O@L6Ym-mH{FZgt=p7#py=L>b8Ifni`;?hf5UjSq^3X}Zdc^Y3 zZ47`gJ->)h;}()oJ0&Ob6d}u)AW8W}F6=p|ipgVUNW2O}pCD1KMS_}Q;3BqPLM&Q= zq}1TmXxkDP-nd4>3@Jz#w`Evq9&U|q7jpyI>f?1w`t{j)EB+3kgAUTNB`Zq8siz-9s)VSJ&1O_!^DKXIm0 ze~L~7Hn!*l`B%4aKiESf_FSkM+ihSi{No8$%CO3VjTb;E-Nkd)_HJeJQ$_SE61#e#;T>NNoDV%-xfhU z7@@mhmCcN~iGaIagXpRm+8K6fYH+KewsIV}$dDN?F)*-V#pKsW+^C}g7cvWdVhI#0 zz1ERXKdmA^wM66oWE~B_TjW*MfHoM4xLv#_>M&AoozI-P^-Z zTI?!m!Qp*uRn8yYRpisTt^ZEqALf;v&2%>SX=GbBsKbL4%}*+UYH1#W@&{^*i#2yw zWv|gBx=JZKot|?&aPzJh$NeKq0w@iwj(!0GPAb=m1%|i2B^xQkj|;Qa8V8CTXUJlw zLMusKiAe;w%1Sp)#(tGhI#Gg5P!4+Pl`WEhoeArMJH0*g(BP486a;61zc!8StPgQkoKUAbE(<4HZD@~u@ZSOCrZXhB^ecQd{zND>byvT|Z#cpZ)Qf7b zaf!4k9AH>NWF;Kh|5?LwLXtfxIDi-}t~$QDCL#c1 zB0)J_ZghBvCj}xt9vFyHaVV4diaJuM47|?bLQ5U`mZjmxYir}TULX}u8-{F>0kNSM}{-kAj+frCt1*0 zk57ZKl9e{0q&7nNvhDicrLY1MIVa`#>h=9UVa3TR67y9nX7(VUD+=mzF@F#}m=uqsLqh_}X}Z62$ibHqM8RSoA_fHL<_g-x#=<-dwOU>E zW?{BKn+Dzd>@h~CVPakPi`t{5Z5i1vLlP)NSg%~qPK`)j$wpJrA;nvBhCfTtB3_ma z-2g4g%*^4qT}+euVJ$d#JkB0_3L{G+3Z0le?SeNPC5a-YXlTXOsij8p<`q6~<7V+j zquy*wVHLW5^j1TKn@a{^L1T-pNW9&%0iDDu#qwdrV+OMl9TqbL ze&Uu}tXQB=3a$6gNyc$s;>%GIEV$Dz0cWR~Ld@*VZ-v!MX0n zh@EB}A$)=fsm!*&&LL?;Ns(+s754qx-WDVQe->y=P}==#_T3y~d~_iWhrXXrp*BAH zMpaG(#eaCi7?^S^tW+136>G$|<vH7SR-Q!rQg|tFz(zSv))tka_rKzb20j zbaH)2mRCr1Wl2H{4u&cPJry7*tL_V6(6?G)l+<#R%WaFfVhopku}8;9bYLiks8gY< z63cfq(~89YAQ7jE%W(k*>x=&QPC7S&R%2dea@zdf5YZd!@OO<0Wzn+gajsgk1P#9? z&U3B8@&p=Fb0xClGW0LkLPCPCT0_D7bwBH{JgVONI#{avO*@G55z2R6o2i)mzr%@` z^iaIypz(KLnq#5P>R8tqXCWs1^rP|xSHKCz(Z1W8I2p{G>+GWg4yO?(EJRnXJ>O77 zXch>eDt7;~p%{;CPUF6Es{;;|Z^KmE{Cj2zh9-wP(Jq?n@ZR6fM#)_=7U*$axK(IX zciIU|6F3prQ_(uzNc&MyY-Vg+Nfw9y%y9SI749eIaLukvZiuFK$2obfcwVi>XF4zqS!(sO4~kuM z{}fpgVcp(wtvih49JiH=HfOYu5>K6@HYLBL_nZWe?HAd!IwXxlqD}8MvB)EBP!GSwLJvwaznif}m z+%MSJDfDowzu6~coS`dgbn|M?PY`B>&4=;e{meM(6}AN=7f1TII@ACdLrq!uvGIgqqmVPS|cOH1wo}+;#8#fl zG72)`?aR5AKm~e=dYpWn?`qqv>6Gb=%{kxVvyxlLY-WNiI&)WFK`QmUL<+v~ImnsE zHzU4WB|tc4NUJrxtX=@V!80c; zT{QRZTDe#7HCX<7Ek(cQYH4$D4l9c6vKzq^!I38KGN;;3QY`?=G6GCWHfEQC2ga+Ul9DcTO5J00M&-rK$yeGw0qGZn zA;Pz|QW<2u;M^GpRLPl$-9Jaq8X$(&-fwRPoGcOIl2YS)R+JSa2Q*?A=urDSfj46( zlx{ZqLO=)7*aInl!m>E}0Pat<#3r(%vk`;FdF&70N1{X9D-L-(Gwq9K>fq%Q(1fha z(pH+2R!qSm@fn!nury!T$)J`=B!L}?2o-N*_IgcECb0p+B;;G5Th4PiFzamKq|;kX zEO-~eH@^*otT0%2$EhcBd{8Du8Jlld4@ebJUZX7#k!EqR901PR;uh9nR!9dyn2-@oAw#1%-3EW ze>}V?gM^3@Z^REm%Z71|p)pInCLipN@b?Ld zh=}oM?rPUc!~9N$sP*`spTXPC&d!&g|AxHlDk2m;6Xe>Dm}}=w+$ZMVxlvt@Fw^@M zi}c8!5xiffz;ADDL3zQdb6EEy3O$cCO>fo%cC@6l|2>@riS&(iGf)6|$b854H9g>V zIo`uV3uf3-v8xtNM4(XTWIOMFL#^hh6feq#(tJBR?0t49`PYXlWnP&|k(J;%Z z6Cq8*s7(PI8*o^Ey4Z=lVBE9Rohi!2!w=YIO)(2GWT}F=mC2HqCPlDH&7t((v%ap4 z6i0@t_6KOwZHAWKM{jvjg@#GhjffIL%Pa(Nv}s97*U?dj`sfv#Het@r^qlBe2X!R& zqhjs`%E4tsHZ(|l&hM9}xf$vxvFl~OJDdn7SOYswj<% zvz452U#Y6kY=^ScNRHV7HgsVve?h%U^*q^HJxXlhD|8{ngHo$(9$4`nbD6@Y8^Wc& z&7Ee{h8)JDe0CAhM)w^ZuHtux7BejGwh4&H^rG0O=yGhy%YM*TYy1vVRf1Y)tKzEE z)G+q)?w6oN)ehgTZly=8^(}fn`4(EGl<>45Zm;n(I9`~wvzwsAgv8XSi^pcjUzw() z?8Fcp5D`znVo#`3Txq6P&F(9e)9NAAYwnOIAYpaH4g8NiV;-D$Lah92#~b5cbypTE z{h&ATc=K;#Q;GeJxMzxHnO!bMmM+k%fD;eU#Q&zh?jWqOUjc z#>I#vZ)07zz4a}_-v?tJr-q5!V{={f%nb^t-Zj#*9DPwTZ$c^M*DLRF`XSiC7j+kS zso}PF#65rXk=+*vaStQ1)I7V+2=1YNHVGb~Q_u`GUIYcdqhIuEdjX)bm1(~${0{*# BIl%w` literal 0 HcmV?d00001 diff --git a/phpgwapi/js/tinymce/examples/zh_cn/dump.php b/phpgwapi/js/tinymce/examples/zh_cn/dump.php new file mode 100644 index 0000000000..37fcd0eb10 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/zh_cn/dump.php @@ -0,0 +1,28 @@ + + +ÏÔʾTinyMCEµÄÊä³ö + + + + +

post¹ýÀ´µÄHTMLÊä³ö

+ + + + $value) { ?> + + +
±íµ¥×é¼þHTMLÊä³ö
+ +

post¹ýÀ´µÄÔ´Îļþ

+ + + + $value) { ?> + + +
±íµ¥×é¼þSourceÊä³ö
+ + + + diff --git a/phpgwapi/js/tinymce/examples/zh_cn/editor_content.css b/phpgwapi/js/tinymce/examples/zh_cn/editor_content.css new file mode 100644 index 0000000000..5d9c8e582e --- /dev/null +++ b/phpgwapi/js/tinymce/examples/zh_cn/editor_content.css @@ -0,0 +1,23 @@ +body { + background-color: #FFFFFF; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 9pt; + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} + +td { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 9pt; +} + +pre { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 9pt; +} diff --git a/phpgwapi/js/tinymce/examples/zh_cn/editor_popup.css b/phpgwapi/js/tinymce/examples/zh_cn/editor_popup.css new file mode 100644 index 0000000000..9ac1ae8d3f --- /dev/null +++ b/phpgwapi/js/tinymce/examples/zh_cn/editor_popup.css @@ -0,0 +1,92 @@ +body { + background-color: #F0F0EE; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 9pt; + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} + +td { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 9pt; +} + +input { + background: #FFFFFF; + border: 1px solid #cccccc; +} + +td, input, select, textarea { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 9pt; +} + +input, select, textarea { + border: 1px solid #808080; +} + +.input_noborder { + border: 0px solid #808080; +} + +#insert { + font-weight: bold; +} + +#cancel { + font-weight: bold; +} + +.title { + font-size: 12px; + font-weight: bold; +} + +table.charmap { + border-style: solid; + border-width: 1px; + border-color: #AAAAAA; +} + +td.charmap, td.charmapOver { + color: #000000; + border-color: #AAAAAA; + border-style: solid; + border-width: 1px; + text-align: center; + font-size: 12px; +} + +td.charmapOver { + background-color: #CCCCCC; + cursor: arrow; +} + +a.charmap { + color: #000000; + text-decoration: none +} + +.wordWrapCode { + vertical-align: middle; + border: 1px none #000000; + background-color: transparent; +} + +input.radio { + border: 1px none #000000; + background-color: transparent; + vertical-align: middle; +} + +input.checkbox { + border: 1px none #000000; + background-color: transparent; + vertical-align: middle; +} diff --git a/phpgwapi/js/tinymce/examples/zh_cn/editor_ui.css b/phpgwapi/js/tinymce/examples/zh_cn/editor_ui.css new file mode 100644 index 0000000000..3f9950649a --- /dev/null +++ b/phpgwapi/js/tinymce/examples/zh_cn/editor_ui.css @@ -0,0 +1,147 @@ +.mceButtonNormal, .mceButtonOver, .mceButtonDown, .mceSeparator, .mceButtonDisabled, .mceButtonSelected { + margin-top: 1px; + margin-left: 1px; +} + +.mceButtonNormal { + border-top: 1px solid; + border-left: 1px solid; + border-bottom: 1px solid; + border-right: 1px solid; + border-color: #F0F0EE; + cursor: arrow; +} + +.mceButtonOver { +/* border-top: 1px solid buttonhighlight; + border-left: 1px solid buttonhighlight; + border-bottom: 1px solid buttonshadow; + border-right: 1px solid buttonshadow;*/ + border: 1px solid #0A246A; + cursor: arrow; + background-color: #B6BDD2; +} + +.mceButtonDown { +/* border-bottom: 1px solid buttonhighlight; + border-right: 1px solid buttonhighlight; + border-top: 1px solid buttonshadow; + border-left: 1px solid buttonshadow;*/ + cursor: arrow; + border: 1px solid #0A246A; + background-color: #8592B5; +} + +.mceButtonSelected { + border: 1px solid; + border-color: #C0C0BB; + cursor: arrow; +} + +.mceButtonDisabled { + filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); + -moz-opacity:0.3; + opacity: 0.3; + border-top: 1px solid; + border-left: 1px solid; + border-bottom: 1px solid; + border-right: 1px solid; + border-color: #F0F0EE; + cursor: arrow; +} + +.mceSeparator { + border-top: 1px solid buttonhighlight; + border-left: 1px solid buttonhighlight; + border-bottom: 1px solid buttonshadow; + border-right: 1px solid buttonshadow; + margin-right: 2px; + margin-left: 2px; +} + +.mceSeparatorLine { + margin:2px; + margin-left: 4px; + background-color: #F0F0EE; + border-top: 1px solid buttonshadow; + border-left: 1px solid buttonshadow; + border-bottom: 1px solid buttonhighlight; + border-right: 1px solid buttonhighlight; + width: 0px; + height: 15px; +} + +.mceSelectList { + font-family: "MS Sans Serif"; + font-size: 9pt; + font-weight: normal; + margin-top: 3px; + padding: 0px; + display: inline; + vertical-align: top; + background-color: #F0F0EE +} + +.mceLabel, .mceLabelDisabled { + font-family: "MS Sans Serif"; + font-size: 9pt; +} + +.mceLabel { + color: #000000; +} + +.mceLabelDisabled { + cursor: text; + color: #999999; +} + +.mceEditor { + background: #F0F0EE; + border: 1px solid #cccccc; +} + +.mceEditorArea { + font-family: "MS Sans Serif"; + background: #FFFFFF; +} + +.mceToolbarTop, .mceToolbarBottom { + background: #F0F0EE; +} + +.mceToolbarTop { + border-bottom: 1px solid #cccccc; +} + +.mceToolbarBottom { + border-top: 1px solid #cccccc; +} + +.mcePathTop, .mcePathBottom, .mcePath { + font-family: "MS Sans Serif"; + font-size: 9pt; + padding: 2px; +} + +.mcePathTop { + border-bottom: 1px solid #cccccc; +} + +.mcePathBottom { + border-top: 1px solid #cccccc; +} + +.mcePathItem, .mcePathItem:link, .mcePathItem:visited, .mcePathItem:hover { + text-decoration: none; + font-family: "MS Sans Serif"; + font-size: 9pt; +} + +.mcePathItem:hover { + text-decoration: underline; +} + +.mcePath { + border-bottom: 1px solid #cccccc; +} \ No newline at end of file diff --git a/phpgwapi/js/tinymce/examples/zh_cn/example_advanced.htm b/phpgwapi/js/tinymce/examples/zh_cn/example_advanced.htm new file mode 100644 index 0000000000..3c29f2d7e4 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/zh_cn/example_advanced.htm @@ -0,0 +1,114 @@ + + + + + + + + + + +¸ß¼¶Ê¾Àý + +[¼òµ¥Ê¾Àý] [¸ß¼¶Ê¾Àý] [ÓʼþʾÀý] [È«¹¦ÄÜʾÀý] + +

¸ß¼¶Ê¾Àý

+

¸ÃҳչʾÁËTinyMCE¸üΪ¸´ÔÓµÄÓ÷¨¡£ÔÚ´ËÒ³ÃæÉÏ£¬TinyMCEµÄģʽ±»É趨Ϊ½«Ìض¨µÄ×é¼þת»»Îª±à¼­Æ÷£¨ÕâÀïÊÇÒ»¸öDIV×é¼þ¼°Ò»¸öTEXTAREA×é¼þ£©¡£ÏÂÃæµÄÀý×ÓʹÓÃÁËÓû§×Ô¶¨ÒåCSSÎļþ£¬Õâ¾ÍÊÇΪºÎ×ÖÌåÊǺìÉ«µÄÔ­Òò¡£ÁíÍ⣬»¹Ê¹ÓÃÁËÒ»¸ö½Ð"advanced"µÄÖ÷Ì⣬Ëü±ÈĬÈÏÖ÷ÌâÓиü¶àÑ¡Ïî¡£´úÂëÖл¹°üº¬ÁË×Ô¶¨Òå»Øµ÷º¯ÊýʾÀýµÈÆäËû²Ù×÷¡£×¢ÒâÒ³Ãæβ²¿µÄÌá½»°´Å¥£¬Ëü»á´¥·¢Ò»¸ö±£´æ²Ù×÷¡£ÓûÁ˽âTinyMCE¸ü¶àµÄÌØÕ÷ºÍÉèÖã¬Çë²é¿´ Êֲᡣ
+
+ + +

+
+ +
+ +
+ + +
+ Some element, this is to be editor 2.
This editor instance is a DIV element instead of a textarea. +

Some paragraph. Some link

+ +
+ +
+ +һЩ×Ô¶¨Òå²Ù×÷£º[Bold] | +[Italic] +[Insert some HTML] +[Replace selection] + +
+ + + \ No newline at end of file diff --git a/phpgwapi/js/tinymce/examples/zh_cn/example_full.css b/phpgwapi/js/tinymce/examples/zh_cn/example_full.css new file mode 100644 index 0000000000..e307cd7f7b --- /dev/null +++ b/phpgwapi/js/tinymce/examples/zh_cn/example_full.css @@ -0,0 +1,43 @@ +body { + background-color: #FFFFFF; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 9pt; + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} + +td { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 9pt; +} + +pre { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 9pt; +} + +/* Custom class needed by the flash plugin */ +.mce_plugin_flash { + border: 1px dotted #cc0000; + background-image: url(../jscripts/tiny_mce/plugins/flash/images/flash.gif); + background-position: center; + background-repeat: no-repeat; + background-color: #ffffcc; +} + +.example1 { + font-weight: bold; + font-size: 14px +} + +.example2 { + font-weight: bold; + font-size: 12px; + color: #FF0000 +} diff --git a/phpgwapi/js/tinymce/examples/zh_cn/example_full.htm b/phpgwapi/js/tinymce/examples/zh_cn/example_full.htm new file mode 100644 index 0000000000..e52867b8f9 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/zh_cn/example_full.htm @@ -0,0 +1,57 @@ + + + + + + + + + + +È«¹¦ÄÜʾÀý + +[¼òµ¥Ê¾Àý] [¸ß¼¶Ê¾Àý] [ÓʼþʾÀý] [È«¹¦ÄÜʾÀý] + +
+ +

È«¹¦ÄÜʾÀý

+´ËÒ³Ãæ°üº¬ÁËTinyMCE·¢ÐаæÖÐËùÓпÉÓòå¼þ¡£ÆäÖÐһЩÓÉÓÚÔÚFireFoxÖÐȱÉÙÖ§³Ö¶øÖ»ÄÜÔÚMSIEÖпɼû¡£ÓûÁ˽âTinyMCE¸÷ÖÖÑ¡ÏîµÄ¸ü¶àϸ½Ú£¬Çë²é¿´ Êֲᡣ¶ÔÓÚµÚÈý·½²å¼þ£¬Çë²é¿´ ²å¼þ Õ½ڡ£
+
+ + + +
+ + + + +
+ + + \ No newline at end of file diff --git a/phpgwapi/js/tinymce/examples/zh_cn/example_mail.htm b/phpgwapi/js/tinymce/examples/zh_cn/example_mail.htm new file mode 100644 index 0000000000..ab1dc843d5 --- /dev/null +++ b/phpgwapi/js/tinymce/examples/zh_cn/example_mail.htm @@ -0,0 +1,42 @@ + + + + + + + + + + +ÓʼþʾÀý + + [¼òµ¥Ê¾Àý] [¸ß¼¶Ê¾Àý] [ÓʼþʾÀý] [È«¹¦ÄÜʾÀý] +

ÓʼþʾÀý

+ÒÔÏÂÀý×ÓչʾÁËÔÚÔÚÏßÓʼþϵͳºÍÆäËû²»ÄÜʹÓÃCSSÀàµÄÇé¿öÏ£¬ÈçºÎÆôÓÃ×ÖÌåÃû³ÆºÍ×ÖÌå´óСѡÔñ¿ò¡£µ«ÊǶÔÓÚÍøÕ¾ÉÏʹÓõÄÄÚÈÝ£¬ÎÒÃǽ¨ÒéÄú»¹ÊÇʹÓÃCSS·½·¨¡£ÓûÁ˽âTinyMCE¸ü¶àµÄÌØÕ÷ºÍÉèÖã¬Çë²é¿´ Êֲᡣ
+
+ + +
+ +
+ + + \ No newline at end of file diff --git a/phpgwapi/js/tinymce/examples/zh_cn/example_simple.htm b/phpgwapi/js/tinymce/examples/zh_cn/example_simple.htm new file mode 100644 index 0000000000..5d5f98b90f --- /dev/null +++ b/phpgwapi/js/tinymce/examples/zh_cn/example_simple.htm @@ -0,0 +1,45 @@ + + + + + + + + + + +¼òµ¥Ê¾Àý + +[¼òµ¥Ê¾Àý] [¸ß¼¶Ê¾Àý] [ÓʼþʾÀý] [È«¹¦ÄÜʾÀý] + +
+

¼òµ¥Ê¾Àý

+±¾Ò³Õ¹Ê¾ÁËÔÚÒ»¸öHTMLÒ³ÃæÖÐÈçºÎÓÃ×î³£ÓúÍ×î¼òµ¥µÄ·½·¨À´Ê¹ÓÃTinyMCE¡£ÔÚÒ³Ãæ¼ÓÔØʱËùÓÐTEXTAREA×é¼þ¶¼±»×ª»»³É±à¼­Æ÷µÄʵÀý¡£
+×¢ÒâTinyMCEÊÇÈçºÎ¾¡Á¿Æ¥ÅäÔ­Îı¾ÓòµÄ¿í¶ÈºÍ¸ß¶ÈµÄ¡£ÓûÁ˽âTinyMCE¸ü¶àµÄÌØÕ÷ºÍÉèÖã¬Çë²é¿´ Êֲᡣ
+
+ + + +

+ + +
+ + + \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/blank.htm b/phpgwapi/js/tinymce/jscripts/tiny_mce/blank.htm new file mode 100644 index 0000000000..06866d535e --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/blank.htm @@ -0,0 +1,10 @@ + + + +blank_page + + + + + + diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/ar.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/ar.js new file mode 100644 index 0000000000..d5e8f2bce5 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/ar.js @@ -0,0 +1,39 @@ +// arabic lang variables +// Toolbar Items and Context Menu +tinyMCELang['lang_dir'] = 'rtl'; +tinyMCELang['lang_bold_desc'] = 'غامق'; +tinyMCELang['lang_italic_desc'] = 'مائل'; +tinyMCELang['lang_underline_desc'] = 'تسطير'; +tinyMCELang['lang_striketrough_desc'] = 'يتوسطه خط'; +tinyMCELang['lang_justifyleft_desc'] = 'محاذاة إلى اليسار'; +tinyMCELang['lang_justifycenter_desc'] = 'توسيط'; +tinyMCELang['lang_justifyright_desc'] = 'محاذاة إلى اليمين'; +tinyMCELang['lang_justifyfull_desc'] = 'ضبط'; +tinyMCELang['lang_bullist_desc'] = 'تعداد نقطي'; +tinyMCELang['lang_numlist_desc'] = 'تعداد رقمي'; +tinyMCELang['lang_outdent_desc'] = 'إنقاص المسافة البادئة'; +tinyMCELang['lang_indent_desc'] = 'زيادة المسافة البادئة'; +tinyMCELang['lang_undo_desc'] = 'تراجع'; +tinyMCELang['lang_redo_desc'] = 'إعادة'; +tinyMCELang['lang_link_desc'] = 'إدراج/تحرير رابط'; +tinyMCELang['lang_unlink_desc'] = 'إزالة رابط'; +tinyMCELang['lang_image_desc'] = 'إدراج/تحرير صورة'; +tinyMCELang['lang_cleanup_desc'] = 'Cleanup messy code'; +tinyMCELang['lang_focus_alert'] = 'A editor instance must be focused before using this command.'; +tinyMCELang['lang_edit_confirm'] = 'Do you want to use the WYSIWYG mode for this textarea?'; +tinyMCELang['lang_insert_link_title'] = 'إدراج/تحرير رابط'; +tinyMCELang['lang_insert'] = 'إدراج'; +tinyMCELang['lang_update'] = 'إدراج'; +tinyMCELang['lang_cancel'] = 'ألغي'; +tinyMCELang['lang_insert_link_url'] = 'رابط URL'; +tinyMCELang['lang_insert_link_target'] = 'الهدف'; +tinyMCELang['lang_insert_link_target_same'] = 'نفس الإطار'; +tinyMCELang['lang_insert_link_target_blank'] = 'إطار جديد (_blank)'; +tinyMCELang['lang_insert_image_title'] = 'إدراج/تحرير صورة'; +tinyMCELang['lang_insert_image_src'] = 'صورة URL'; +tinyMCELang['lang_insert_image_alt'] = 'الوصف'; +tinyMCELang['lang_help_desc'] = 'المساعدة'; +tinyMCELang['lang_bold_img'] = 'bold.gif'; +tinyMCELang['lang_italic_img'] = 'italic.gif'; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/cs.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/cs.js new file mode 100644 index 0000000000..c7d488d657 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/cs.js @@ -0,0 +1,38 @@ +// CZ lang variables thanks to "Pavel Novák" - repaired by Josef Klimosz + +tinyMCELang['lang_bold_desc'] = 'Tuènì'; +tinyMCELang['lang_italic_desc'] = 'Kurzíva'; +tinyMCELang['lang_underline_desc'] = 'Podtržení'; +tinyMCELang['lang_striketrough_desc'] = 'Pøeškrtnutí'; +tinyMCELang['lang_justifyleft_desc'] = 'Zarovnání vlevo'; +tinyMCELang['lang_justifycenter_desc'] = 'Zarovnání na støed'; +tinyMCELang['lang_justifyright_desc'] = 'Zarovnání vpravo'; +tinyMCELang['lang_justifyfull_desc'] = 'Zarovnání do bloku'; +tinyMCELang['lang_bullist_desc'] = 'Seznam s odrážkami'; +tinyMCELang['lang_numlist_desc'] = 'Èíslovaný seznam'; +tinyMCELang['lang_outdent_desc'] = 'Snížit odsazení'; +tinyMCELang['lang_indent_desc'] = 'Zvýšit odsazení'; +tinyMCELang['lang_undo_desc'] = 'Zpìt'; +tinyMCELang['lang_redo_desc'] = 'Znovu'; +tinyMCELang['lang_link_desc'] = 'Vložit odkaz'; +tinyMCELang['lang_unlink_desc'] = 'Zrušit odkaz'; +tinyMCELang['lang_image_desc'] = 'Vložit obrázek'; +tinyMCELang['lang_cleanup_desc'] = 'Vyèistit kód'; +tinyMCELang['lang_focus_alert'] = 'Pøed použitím tohoto pøíkazu musí být kurzor v oknì editoru.'; +tinyMCELang['lang_edit_confirm'] = 'Chcete použít WYSIWYG editaci pro tento text?'; +tinyMCELang['lang_insert_link_title'] = 'Vložit/upravit odkaz'; +tinyMCELang['lang_insert'] = 'Vložit'; +tinyMCELang['lang_update'] = 'Zmìnit'; +tinyMCELang['lang_cancel'] = 'Zrušit'; +tinyMCELang['lang_insert_link_url'] = 'URL odkazu'; +tinyMCELang['lang_insert_link_target'] = 'Cíl'; +tinyMCELang['lang_insert_link_target_same'] = 'Otevøít odkaz ve stejném oknì'; +tinyMCELang['lang_insert_link_target_blank'] = 'Otevøít odkaz v novém oknì'; +tinyMCELang['lang_insert_image_title'] = 'Vložit/upravit obrázek'; +tinyMCELang['lang_insert_image_src'] = 'URL obrázku'; +tinyMCELang['lang_insert_image_alt'] = 'Popis obrázku'; +tinyMCELang['lang_help_desc'] = 'Nápovìda'; +tinyMCELang['lang_bold_img'] = 'bold.gif'; +tinyMCELang['lang_italic_img'] = 'italic.gif'; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copy/Cut/Paste není použitelné v Mozille a Firefoxu.\nChcete více informací o tomto problému?'; \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/da.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/da.js new file mode 100644 index 0000000000..1c62542a39 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/da.js @@ -0,0 +1,38 @@ +// DK lang variables contributed by Jan Moelgaard + +tinyMCELang['lang_bold_desc'] = 'Fed'; +tinyMCELang['lang_italic_desc'] = 'Kursiv'; +tinyMCELang['lang_underline_desc'] = 'Understreg'; +tinyMCELang['lang_striketrough_desc'] = 'Gennemstreg'; +tinyMCELang['lang_justifyleft_desc'] = 'Venstrestil'; +tinyMCELang['lang_justifycenter_desc'] = 'Centrer'; +tinyMCELang['lang_justifyright_desc'] = 'Højrestil'; +tinyMCELang['lang_justifyfull_desc'] = 'Lige margin'; +tinyMCELang['lang_bullist_desc'] = 'Bulletliste'; +tinyMCELang['lang_numlist_desc'] = 'Nummerliste'; +tinyMCELang['lang_outdent_desc'] = 'Ryk til venstre'; +tinyMCELang['lang_indent_desc'] = 'Ryk til højre'; +tinyMCELang['lang_undo_desc'] = 'Fortryd'; +tinyMCELang['lang_redo_desc'] = 'Gør igen'; +tinyMCELang['lang_link_desc'] = 'Indsæt link'; +tinyMCELang['lang_unlink_desc'] = 'Fjern link'; +tinyMCELang['lang_image_desc'] = 'Indsæt billede'; +tinyMCELang['lang_cleanup_desc'] = 'Ryd op i koden'; +tinyMCELang['lang_focus_alert'] = 'Der skal sættes fokus på sessionen, før man kan bruge denne kommando'; +tinyMCELang['lang_edit_confirm'] = 'Vil du bruge WYSIWYG mode til dette textområde?'; +tinyMCELang['lang_insert_link_title'] = 'Indsæt eller rediger link'; +tinyMCELang['lang_insert'] = 'Indsæt'; +tinyMCELang['lang_update'] = 'Opdater'; +tinyMCELang['lang_cancel'] = 'Fortryd'; +tinyMCELang['lang_insert_link_url'] = 'Linkadresse'; +tinyMCELang['lang_insert_link_target'] = 'Target'; +tinyMCELang['lang_insert_link_target_same'] = 'Luk linket op i samme vindue'; +tinyMCELang['lang_insert_link_target_blank'] = 'Luk linket op i et nyt vindue'; +tinyMCELang['lang_insert_image_title'] = 'Indsæt / rediger billede'; +tinyMCELang['lang_insert_image_src'] = 'Billedets adresse'; +tinyMCELang['lang_insert_image_alt'] = 'Alternativ tekst'; +tinyMCELang['lang_help_desc'] = 'Hjælp'; +tinyMCELang['lang_bold_img'] = "bold.gif"; +tinyMCELang['lang_italic_img'] = "italic.gif"; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/de.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/de.js new file mode 100644 index 0000000000..16b161e54e --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/de.js @@ -0,0 +1,38 @@ +// DE lang variables + +tinyMCELang['lang_bold_desc'] = 'Fett'; +tinyMCELang['lang_italic_desc'] = 'Kursiv'; +tinyMCELang['lang_underline_desc'] = 'Unterstrichen'; +tinyMCELang['lang_striketrough_desc'] = 'Durchgestrichen'; +tinyMCELang['lang_justifyleft_desc'] = 'Linksbündig'; +tinyMCELang['lang_justifycenter_desc'] = 'Zentriert'; +tinyMCELang['lang_justifyright_desc'] = 'Rechtsbündig'; +tinyMCELang['lang_justifyfull_desc'] = 'Blocksatz'; +tinyMCELang['lang_bullist_desc'] = 'Aufzählungszeichen'; +tinyMCELang['lang_numlist_desc'] = 'Nummerierung'; +tinyMCELang['lang_outdent_desc'] = 'Einzug verkleinern'; +tinyMCELang['lang_indent_desc'] = 'Einzug vergrössern'; +tinyMCELang['lang_undo_desc'] = 'Rückgängig'; +tinyMCELang['lang_redo_desc'] = 'Wiederholen'; +tinyMCELang['lang_link_desc'] = 'Link einfügen/bearbeiten'; +tinyMCELang['lang_unlink_desc'] = 'Link entfernen'; +tinyMCELang['lang_image_desc'] = 'Bild einfügen/bearbeiten'; +tinyMCELang['lang_cleanup_desc'] = 'unsauberen Code aufräumen'; +tinyMCELang['lang_focus_alert'] = 'Eine Bearbeitungsinstanz muss für diesen Befehl hervorgehoben.'; +tinyMCELang['lang_edit_confirm'] = 'Wollen Sie den WYSIWYG Modus für dieses Textfeld benutzen?'; +tinyMCELang['lang_insert_link_title'] = 'Link einfügen/bearbeiten'; +tinyMCELang['lang_insert'] = 'Einfügen'; +tinyMCELang['lang_update'] = 'Aktualisieren'; +tinyMCELang['lang_cancel'] = 'Abbrechen'; +tinyMCELang['lang_insert_link_url'] = 'Link URL'; +tinyMCELang['lang_insert_link_target'] = 'Ziel'; +tinyMCELang['lang_insert_link_target_same'] = 'Link in gleichen Fester öffnen'; +tinyMCELang['lang_insert_link_target_blank'] = 'Link in neuen Fenster öffnen'; +tinyMCELang['lang_insert_image_title'] = 'Bild einfügen/bearbeiten'; +tinyMCELang['lang_insert_image_src'] = 'Bild URL'; +tinyMCELang['lang_insert_image_alt'] = 'Bild Beschreibung'; +tinyMCELang['lang_help_desc'] = 'Hilfe'; +tinyMCELang['lang_bold_img'] = "bold_de_se.gif"; +tinyMCELang['lang_italic_img'] = "italic_de_se.gif"; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Kopieren/Ausschneiten/Einfügen ist mit Mozilla und Firefox nicht verfügbar.\nWollen Sie mehr Informationen darüber erhalten?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/el.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/el.js new file mode 100644 index 0000000000..e078d611e3 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/el.js @@ -0,0 +1,38 @@ +// Greek lang variables by Jacaranda Bill + +tinyMCELang['lang_bold_desc'] = '¸íôïíç ãñáöÞ'; +tinyMCELang['lang_italic_desc'] = 'ÐëÜãéá ãñáöÞ'; +tinyMCELang['lang_underline_desc'] = 'ÕðïãñÜììéóç'; +tinyMCELang['lang_striketrough_desc'] = 'ÄéáêñéôÞ äéáãñáöÞ'; +tinyMCELang['lang_justifyleft_desc'] = 'Óôïß÷éóç áñéóôåñÜ'; +tinyMCELang['lang_justifycenter_desc'] = 'Óôïß÷éóç óôï êÝíôñï'; +tinyMCELang['lang_justifyright_desc'] = 'Óôïß÷éóç äåîéÜ'; +tinyMCELang['lang_justifyfull_desc'] = 'ÐëÞñçò óôïß÷éóç'; +tinyMCELang['lang_bullist_desc'] = 'Êïõêêßäåò'; +tinyMCELang['lang_numlist_desc'] = 'Áñßèìçóç'; +tinyMCELang['lang_outdent_desc'] = 'Ìåßùóç åóï÷Þò'; +tinyMCELang['lang_indent_desc'] = 'Áýîçóç åóï÷Þò'; +tinyMCELang['lang_undo_desc'] = 'Áíáßñåóç'; +tinyMCELang['lang_redo_desc'] = 'Áêýñùóç áíáßñåóçò'; +tinyMCELang['lang_link_desc'] = 'Äçìéïõñãßá/Äéüñèùóç õðåñ-óýíäåóçò'; +tinyMCELang['lang_unlink_desc'] = 'ÄéáãñáöÞ õðåñ-óýíäåóçò'; +tinyMCELang['lang_image_desc'] = 'ÅéóáãùãÞ/Äéüñèùóç åéêüíáò'; +tinyMCELang['lang_cleanup_desc'] = 'ÊáèÜñéóìá êþäéêá'; +tinyMCELang['lang_focus_alert'] = 'ÐñÝðåé íá õðÜñ÷åé åíåñãüò êÜðïéïò åðåîåñãáóôÞò êåéìÝíïõ ðñéí íá ÷ñçóéìïðïéÞóåôå áõôÞ ôçí åíôïëÞ.'; +tinyMCELang['lang_edit_confirm'] = 'ÈÝëåôå íá ÷ñçóéìïðïéÞóåôå ôçí êáôÜóôáóç WYSIWYG ãéá ôï óõãêåêñéìÝíï ðëáßóéï êåéìÝíïõ;'; +tinyMCELang['lang_insert_link_title'] = 'Äçìéïõñãßá/Äéüñèùóç õðåñ-óýíäåóçò'; +tinyMCELang['lang_insert'] = 'ÅéóáãùãÞ'; +tinyMCELang['lang_update'] = 'ÅéóáãùãÞ'; +tinyMCELang['lang_cancel'] = 'Áêýñùóç'; +tinyMCELang['lang_insert_link_url'] = 'Äéåýèõíóç'; +tinyMCELang['lang_insert_link_target'] = 'Óôü÷ïò'; +tinyMCELang['lang_insert_link_target_same'] = '¢íïéãìá ôçò äéåýèõíóçò óôï ßäéï ðáñÜèõñï'; +tinyMCELang['lang_insert_link_target_blank'] = '¢íïéãìá ôçò äéåýèõíóçò óå íÝï ðáñÜèõñï'; +tinyMCELang['lang_insert_image_title'] = 'ÅéóáãùãÞ/Äéüñèùóç åéêüíáò'; +tinyMCELang['lang_insert_image_src'] = 'Äéåýèõíóç'; +tinyMCELang['lang_insert_image_alt'] = 'ÐåñéãñáöÞ'; +tinyMCELang['lang_help_desc'] = 'ÂïÞèåéá'; +tinyMCELang['lang_bold_img'] = "bold.gif"; +tinyMCELang['lang_italic_img'] = "italic.gif"; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/en.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/en.js new file mode 100644 index 0000000000..09c0041c2a --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/en.js @@ -0,0 +1,38 @@ +// UK lang variables + +tinyMCELang['lang_bold_desc'] = 'Bold'; +tinyMCELang['lang_italic_desc'] = 'Italic'; +tinyMCELang['lang_underline_desc'] = 'Underline'; +tinyMCELang['lang_striketrough_desc'] = 'Striketrough'; +tinyMCELang['lang_justifyleft_desc'] = 'Align left'; +tinyMCELang['lang_justifycenter_desc'] = 'Align center'; +tinyMCELang['lang_justifyright_desc'] = 'Align right'; +tinyMCELang['lang_justifyfull_desc'] = 'Align full'; +tinyMCELang['lang_bullist_desc'] = 'Unordered list'; +tinyMCELang['lang_numlist_desc'] = 'Ordered list'; +tinyMCELang['lang_outdent_desc'] = 'Outdent'; +tinyMCELang['lang_indent_desc'] = 'Indent'; +tinyMCELang['lang_undo_desc'] = 'Undo'; +tinyMCELang['lang_redo_desc'] = 'Redo'; +tinyMCELang['lang_link_desc'] = 'Insert/edit link'; +tinyMCELang['lang_unlink_desc'] = 'Unlink'; +tinyMCELang['lang_image_desc'] = 'Insert/edit image'; +tinyMCELang['lang_cleanup_desc'] = 'Cleanup messy code'; +tinyMCELang['lang_focus_alert'] = 'A editor instance must be focused before using this command.'; +tinyMCELang['lang_edit_confirm'] = 'Do you want to use the WYSIWYG mode for this textarea?'; +tinyMCELang['lang_insert_link_title'] = 'Insert/edit link'; +tinyMCELang['lang_insert'] = 'Insert'; +tinyMCELang['lang_update'] = 'Update'; +tinyMCELang['lang_cancel'] = 'Cancel'; +tinyMCELang['lang_insert_link_url'] = 'Link URL'; +tinyMCELang['lang_insert_link_target'] = 'Target'; +tinyMCELang['lang_insert_link_target_same'] = 'Open link in the same window'; +tinyMCELang['lang_insert_link_target_blank'] = 'Open link in a new window'; +tinyMCELang['lang_insert_image_title'] = 'Insert/edit image'; +tinyMCELang['lang_insert_image_src'] = 'Image URL'; +tinyMCELang['lang_insert_image_alt'] = 'Image description'; +tinyMCELang['lang_help_desc'] = 'Help'; +tinyMCELang['lang_bold_img'] = "bold.gif"; +tinyMCELang['lang_italic_img'] = "italic.gif"; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/es.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/es.js new file mode 100644 index 0000000000..7f826803cc --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/es.js @@ -0,0 +1,38 @@ +// ES lang variables by Alvaro Velasco + +tinyMCELang['lang_bold_desc'] = 'Negrita'; +tinyMCELang['lang_italic_desc'] = 'Cursiva'; +tinyMCELang['lang_underline_desc'] = 'Subrayado'; +tinyMCELang['lang_striketrough_desc'] = 'Tachado'; +tinyMCELang['lang_justifyleft_desc'] = 'Alinear a la izquierda'; +tinyMCELang['lang_justifycenter_desc'] = 'Alinear al centro'; +tinyMCELang['lang_justifyright_desc'] = 'Alinear a la derecha'; +tinyMCELang['lang_justifyfull_desc'] = 'Alinear justificado'; +tinyMCELang['lang_bullist_desc'] = 'Lista sin ordenar'; +tinyMCELang['lang_numlist_desc'] = 'Lista ordenada'; +tinyMCELang['lang_outdent_desc'] = 'Disminuye sangria'; +tinyMCELang['lang_indent_desc'] = 'Aumentar sangria'; +tinyMCELang['lang_undo_desc'] = 'Deshacer'; +tinyMCELang['lang_redo_desc'] = 'Rehacer'; +tinyMCELang['lang_link_desc'] = 'Insertar enlace'; +tinyMCELang['lang_unlink_desc'] = 'Quitar enlace'; +tinyMCELang['lang_image_desc'] = 'Insertar imagen'; +tinyMCELang['lang_cleanup_desc'] = 'Limpiar codigo'; +tinyMCELang['lang_focus_alert'] = 'Una instanacia del editor debe ser enfocada antes de usar este comando.'; +tinyMCELang['lang_edit_confirm'] = 'Quieres usar el modo WYSIWYG para esta area de texto?'; +tinyMCELang['lang_insert_link_title'] = 'Insertar/editar enlace'; +tinyMCELang['lang_insert'] = 'Insertar'; +tinyMCELang['lang_update'] = 'Insertar'; +tinyMCELang['lang_cancel'] = 'Cancelar'; +tinyMCELang['lang_insert_link_url'] = 'Direccion del enlace'; +tinyMCELang['lang_insert_link_target'] = 'Destino'; +tinyMCELang['lang_insert_link_target_same'] = 'Abrir enlace en la misma ventana'; +tinyMCELang['lang_insert_link_target_blank'] = 'Abrir enlace en una ventana nueva'; +tinyMCELang['lang_insert_image_title'] = 'Insertar/editar imagen'; +tinyMCELang['lang_insert_image_src'] = 'URL de la imagen'; +tinyMCELang['lang_insert_image_alt'] = 'Descripcion de la imagen'; +tinyMCELang['lang_help_desc'] = 'Ayuda'; +tinyMCELang['lang_bold_img'] = "bold.gif"; +tinyMCELang['lang_italic_img'] = "italic.gif"; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fa.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fa.js new file mode 100644 index 0000000000..445830e041 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fa.js @@ -0,0 +1,43 @@ +// IR lang variables +// Persian (Farsi) language pack (for IRAN) +// By: Morteza Zafari +// Lost@LostLord.com +// http://www.LostLord.com + +tinyMCELang['lang_dir'] = 'rtl'; +tinyMCELang['lang_bold_desc'] = 'ضخيم'; +tinyMCELang['lang_italic_desc'] = 'کجکي'; +tinyMCELang['lang_underline_desc'] = 'زير خط دار'; +tinyMCELang['lang_striketrough_desc'] = 'خط خورده'; +tinyMCELang['lang_justifyleft_desc'] = 'Ú†Ù¾ چين'; +tinyMCELang['lang_justifycenter_desc'] = 'وسط چين'; +tinyMCELang['lang_justifyright_desc'] = 'راست چين'; +tinyMCELang['lang_justifyfull_desc'] = 'کشيده چين'; +tinyMCELang['lang_bullist_desc'] = 'ليست'; +tinyMCELang['lang_numlist_desc'] = 'ليست عددي'; +tinyMCELang['lang_outdent_desc'] = 'کاهش زبانه'; +tinyMCELang['lang_indent_desc'] = 'اÙزايش زبانه'; +tinyMCELang['lang_undo_desc'] = 'برگردونک'; +tinyMCELang['lang_redo_desc'] = 'سرگردونک'; +tinyMCELang['lang_link_desc'] = 'درج Ùˆ ويرايش لينک'; +tinyMCELang['lang_unlink_desc'] = 'حذ٠لينک'; +tinyMCELang['lang_image_desc'] = 'درج Ùˆ ويرايش عکس'; +tinyMCELang['lang_cleanup_desc'] = 'پاکسازي کد'; +tinyMCELang['lang_focus_alert'] = 'A editor instance must be focused before using this command.'; +tinyMCELang['lang_edit_confirm'] = 'Do you want to use the WYSIWYG mode for this textarea?'; +tinyMCELang['lang_insert_link_title'] = 'درج Ùˆ ويرايش لينک'; +tinyMCELang['lang_insert'] = ' تاييد '; +tinyMCELang['lang_update'] = ' تاييد '; +tinyMCELang['lang_cancel'] = ' انصرا٠'; +tinyMCELang['lang_insert_link_url'] = 'URL لينک'; +tinyMCELang['lang_insert_link_target'] = 'مقصد'; +tinyMCELang['lang_insert_link_target_same'] = 'لينک را در همان صÙحه باز Ú©Ù†'; +tinyMCELang['lang_insert_link_target_blank'] = 'لينک را در صÙحه جديد باز Ú©Ù†'; +tinyMCELang['lang_insert_image_title'] = 'درج Ùˆ ويرايش عکس'; +tinyMCELang['lang_insert_image_src'] = 'URL عکس'; +tinyMCELang['lang_insert_image_alt'] = 'توضيح'; +tinyMCELang['lang_help_desc'] = 'راهنما'; +tinyMCELang['lang_bold_img'] = "bold.gif"; +tinyMCELang['lang_italic_img'] = "italic.gif"; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fi.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fi.js new file mode 100644 index 0000000000..6491ac7a24 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fi.js @@ -0,0 +1,38 @@ +// FI lang variables by Urho Konttori from Absolutions + +tinyMCELang['lang_bold_desc'] = 'Lihavoi'; +tinyMCELang['lang_italic_desc'] = 'Kursivoi'; +tinyMCELang['lang_underline_desc'] = 'Alleviivaa'; +tinyMCELang['lang_striketrough_desc'] = 'Yliviivaa'; +tinyMCELang['lang_justifyleft_desc'] = 'Vasen tasaus'; +tinyMCELang['lang_justifycenter_desc'] = 'Keskitys'; +tinyMCELang['lang_justifyright_desc'] = 'Oikea tasaus'; +tinyMCELang['lang_justifyfull_desc'] = 'Pakotettu tasaus'; +tinyMCELang['lang_bullist_desc'] = 'Numeroimaton lista'; +tinyMCELang['lang_numlist_desc'] = 'Numeroitu lista'; +tinyMCELang['lang_outdent_desc'] = 'Poista sisennyt'; +tinyMCELang['lang_indent_desc'] = 'Sisennys'; +tinyMCELang['lang_undo_desc'] = 'Peruuta'; +tinyMCELang['lang_redo_desc'] = 'Suorita uudelleen'; +tinyMCELang['lang_link_desc'] = 'Lisää linkki'; +tinyMCELang['lang_unlink_desc'] = 'Poista linkki'; +tinyMCELang['lang_image_desc'] = 'Lisää kuva'; +tinyMCELang['lang_cleanup_desc'] = 'Siisti koodi'; +tinyMCELang['lang_focus_alert'] = 'Teksinkäsittelyalueella täytyy olla fokus ennen tämän komennon suorittamista.'; +tinyMCELang['lang_edit_confirm'] = 'Haluatko käyttää WYSIWYG moodia tähän tekstialueeseen?'; +tinyMCELang['lang_insert_link_title'] = 'Lisää/muokkaa linkkiä'; +tinyMCELang['lang_insert'] = 'Lisää'; +tinyMCELang['lang_update'] = 'Lisää'; +tinyMCELang['lang_cancel'] = 'Peruuta'; +tinyMCELang['lang_insert_link_url'] = 'Linkin URL'; +tinyMCELang['lang_insert_link_target'] = 'Kohde'; +tinyMCELang['lang_insert_link_target_same'] = 'Avaa linkki samassa ikkunassa'; +tinyMCELang['lang_insert_link_target_blank'] = 'Avaa linkki uudessa ikkunassa'; +tinyMCELang['lang_insert_image_title'] = 'Lisää/muokkaa kuvaa'; +tinyMCELang['lang_insert_image_src'] = 'Kuvan URL'; +tinyMCELang['lang_insert_image_alt'] = 'Kuvan selite'; +tinyMCELang['lang_help_desc'] = 'Apua'; +tinyMCELang['lang_bold_img'] = "bold.gif"; +tinyMCELang['lang_italic_img'] = "italic.gif"; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fr.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fr.js new file mode 100644 index 0000000000..a08e140e92 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fr.js @@ -0,0 +1,38 @@ +// FR lang variables by Pat Boens +// Modify by Laurent Dran +tinyMCELang['lang_bold_desc'] = 'Gras'; +tinyMCELang['lang_italic_desc'] = 'Italique'; +tinyMCELang['lang_underline_desc'] = 'Souligné'; +tinyMCELang['lang_striketrough_desc'] = 'Barré'; +tinyMCELang['lang_justifyleft_desc'] = 'Aligner à gauche'; +tinyMCELang['lang_justifycenter_desc'] = 'Aligner au centre'; +tinyMCELang['lang_justifyright_desc'] = 'Aligner à droite'; +tinyMCELang['lang_justifyfull_desc'] = 'Justifier'; +tinyMCELang['lang_bullist_desc'] = 'Liste désordonnée (puces)'; +tinyMCELang['lang_numlist_desc'] = 'Liste ordonnée (numéros)'; +tinyMCELang['lang_outdent_desc'] = 'Diminuer le retrait'; +tinyMCELang['lang_indent_desc'] = 'Augmenter le retrait'; +tinyMCELang['lang_undo_desc'] = 'Défaire'; +tinyMCELang['lang_redo_desc'] = 'Refaire'; +tinyMCELang['lang_link_desc'] = 'Insérer/éditer le lien'; +tinyMCELang['lang_unlink_desc'] = 'Enlever le lien'; +tinyMCELang['lang_image_desc'] = 'Insérer/éditer une image'; +tinyMCELang['lang_cleanup_desc'] = 'Nettoyer le code'; +tinyMCELang['lang_focus_alert'] = 'Une instance de l\éditeur doit avoir le focus avant d\'utiliser cette commande.'; +tinyMCELang['lang_edit_confirm'] = 'Voulez-vous utiliser le mode WYSIWYG pour cette zone de texte (textarea) ?'; +tinyMCELang['lang_insert_link_title'] = 'Insertion/édition lien'; +tinyMCELang['lang_insert'] = 'Insertion'; +tinyMCELang['lang_update'] = 'Insertion'; +tinyMCELang['lang_cancel'] = 'Annuler'; +tinyMCELang['lang_insert_link_url'] = 'Lien URL'; +tinyMCELang['lang_insert_link_target'] = 'Cible'; +tinyMCELang['lang_insert_link_target_same'] = 'Ouvrir le lien dans la même fenêtre'; +tinyMCELang['lang_insert_link_target_blank'] = 'Ouvrir le lien dans une nouvelle fenêtre'; +tinyMCELang['lang_insert_image_title'] = 'Insertion/édition d\'une image'; +tinyMCELang['lang_insert_image_src'] = 'URL de l\'image'; +tinyMCELang['lang_insert_image_alt'] = 'Description de l\'image'; +tinyMCELang['lang_help_desc'] = 'Aide'; +tinyMCELang['lang_bold_img'] = "bold.gif"; +tinyMCELang['lang_italic_img'] = "italic.gif"; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copier/Couper/Coller ne sont pas disponibles pour Mozilla et Firefox.\nVoulez vous plus d\'informatios à ce sujet?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fr_ca.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fr_ca.js new file mode 100644 index 0000000000..1f6bf18fd2 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/fr_ca.js @@ -0,0 +1,38 @@ +// Canadian French lang variables by Virtuelcom + +tinyMCELang['lang_bold_desc'] = 'Gras'; +tinyMCELang['lang_italic_desc'] = 'Italique'; +tinyMCELang['lang_underline_desc'] = 'Souligner'; +tinyMCELang['lang_striketrough_desc'] = 'Barrer'; +tinyMCELang['lang_justifyleft_desc'] = 'Aligner à gauche'; +tinyMCELang['lang_justifycenter_desc'] = 'Aligner au centre'; +tinyMCELang['lang_justifyright_desc'] = 'Aligner à droite'; +tinyMCELang['lang_justifyfull_desc'] = 'Justifier'; +tinyMCELang['lang_bullist_desc'] = 'Puces'; +tinyMCELang['lang_numlist_desc'] = 'Numérotation'; +tinyMCELang['lang_outdent_desc'] = 'Réduire le retrait'; +tinyMCELang['lang_indent_desc'] = 'Augmenter le retrait'; +tinyMCELang['lang_undo_desc'] = 'Annuler la dernière action'; +tinyMCELang['lang_redo_desc'] = 'Refaire la dernière action annulée'; +tinyMCELang['lang_link_desc'] = 'Insérer un hyperlien'; +tinyMCELang['lang_unlink_desc'] = 'Supprimer un hyperlien'; +tinyMCELang['lang_image_desc'] = 'Insérer une image'; +tinyMCELang['lang_cleanup_desc'] = 'Nettoyer le code'; +tinyMCELang['lang_focus_alert'] = 'Un éditeur doit être sélectionné pour utiliser cette fonction.'; +tinyMCELang['lang_edit_confirm'] = 'Désirez-vous utiliser l\'éditeur pour modifier cette zone?'; +tinyMCELang['lang_insert_link_title'] = 'Insérer / Modifier un hyperlien'; +tinyMCELang['lang_insert'] = 'Insérer'; +tinyMCELang['lang_update'] = 'Insérer'; +tinyMCELang['lang_cancel'] = 'Annuler'; +tinyMCELang['lang_insert_link_url'] = 'Adresse URL'; +tinyMCELang['lang_insert_link_target'] = 'Destination'; +tinyMCELang['lang_insert_link_target_same'] = 'Ouvrir dans la même fenêtre'; +tinyMCELang['lang_insert_link_target_blank'] = 'Ouvrir dans une nouvelle fenêtre'; +tinyMCELang['lang_insert_image_title'] = 'Insérer / Modifier une image'; +tinyMCELang['lang_insert_image_src'] = 'Adresse de l\'image'; +tinyMCELang['lang_insert_image_alt'] = 'Description de l\'image'; +tinyMCELang['lang_help_desc'] = 'Aide'; +tinyMCELang['lang_bold_img'] = "bold_fr.gif"; +tinyMCELang['lang_italic_img'] = "italic.gif"; +tinyMCELang['lang_underline_img'] = "underline_fr.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copier/Couper/Coller ne sont pas disponibles dans Mozilla et FireFox.\nDésirez-vous consulter de plus amples informations à ce sujet?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/hu.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/hu.js new file mode 100644 index 0000000000..2d0e45edcc --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/hu.js @@ -0,0 +1,39 @@ +// HU lang variables +// Edited by 2XP (2xp@dino.hu) + +tinyMCELang['lang_bold_desc'] = 'Félkövér'; +tinyMCELang['lang_italic_desc'] = 'Dõlt'; +tinyMCELang['lang_underline_desc'] = 'Aláhúzott'; +tinyMCELang['lang_striketrough_desc'] = 'Áthúzott'; +tinyMCELang['lang_justifyleft_desc'] = 'Balra igazítás'; +tinyMCELang['lang_justifycenter_desc'] = 'Középre igazítás'; +tinyMCELang['lang_justifyright_desc'] = 'Jobbra igazítás'; +tinyMCELang['lang_justifyfull_desc'] = 'Sorkizárt'; +tinyMCELang['lang_bullist_desc'] = 'Felsorolás'; +tinyMCELang['lang_numlist_desc'] = 'Számozott lista'; +tinyMCELang['lang_outdent_desc'] = 'Behúzás balra'; +tinyMCELang['lang_indent_desc'] = 'Behúzás jobbra'; +tinyMCELang['lang_undo_desc'] = 'Visszavonás'; +tinyMCELang['lang_redo_desc'] = 'Ismétlés'; +tinyMCELang['lang_link_desc'] = 'Link felvétele'; +tinyMCELang['lang_unlink_desc'] = 'Link törlése'; +tinyMCELang['lang_image_desc'] = 'Kép beillesztése'; +tinyMCELang['lang_cleanup_desc'] = 'Kód tisztítása'; +tinyMCELang['lang_focus_alert'] = 'Miel\u00F5tt haszn\u00E1lja ezt a funkci\u00F3t, ki kell jel\u00F6lnie a szerkeszteni k\u00EDv\u00E1nt ter\u00FCletet.'; +tinyMCELang['lang_edit_confirm'] = 'K\u00EDv\u00E1nja a WYSIWYG m\u00F3dot erre a sz\u00F6vegter\u00FCletre alkalmazni??'; +tinyMCELang['lang_insert_link_title'] = 'Link beillesztése/szerkesztése'; +tinyMCELang['lang_insert'] = 'Beillesztés'; +tinyMCELang['lang_update'] = 'Beillesztés'; +tinyMCELang['lang_cancel'] = 'Mégsem'; +tinyMCELang['lang_insert_link_url'] = 'Link URL'; +tinyMCELang['lang_insert_link_target'] = 'Cél'; +tinyMCELang['lang_insert_link_target_same'] = 'Link megnyitása azonos ablakban'; +tinyMCELang['lang_insert_link_target_blank'] = 'Link megnyitása új ablakban'; +tinyMCELang['lang_insert_image_title'] = 'Kép beillesztése/szerkesztése'; +tinyMCELang['lang_insert_image_src'] = 'Kép URL'; +tinyMCELang['lang_insert_image_alt'] = 'Képleírás'; +tinyMCELang['lang_help_desc'] = 'Segítég'; +tinyMCELang['lang_bold_img'] = 'bold.gif'; +tinyMCELang['lang_italic_img'] = 'italic.gif'; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/it.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/it.js new file mode 100644 index 0000000000..6d91976929 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/it.js @@ -0,0 +1,38 @@ +// Variabili lingua IT - fabrix.xm@lombardiacom.it + +tinyMCELang['lang_bold_desc'] = 'Grassetto'; +tinyMCELang['lang_italic_desc'] = 'Corsivo'; +tinyMCELang['lang_underline_desc'] = 'Sottolineato'; +tinyMCELang['lang_striketrough_desc'] = 'Barrato'; +tinyMCELang['lang_justifyleft_desc'] = 'Allinea a sinistra'; +tinyMCELang['lang_justifycenter_desc'] = 'Allinea centrato'; +tinyMCELang['lang_justifyright_desc'] = 'Allinea a destra'; +tinyMCELang['lang_justifyfull_desc'] = 'Giustifica'; +tinyMCELang['lang_bullist_desc'] = 'Lista non ordinata'; +tinyMCELang['lang_numlist_desc'] = 'Lista ordinata'; +tinyMCELang['lang_outdent_desc'] = 'Rientra'; +tinyMCELang['lang_indent_desc'] = 'Indenta'; +tinyMCELang['lang_undo_desc'] = 'Annulla'; +tinyMCELang['lang_redo_desc'] = 'Ripeti'; +tinyMCELang['lang_link_desc'] = 'Inserisci link'; +tinyMCELang['lang_unlink_desc'] = 'Elimina link'; +tinyMCELang['lang_image_desc'] = 'Inserisci immagine'; +tinyMCELang['lang_cleanup_desc'] = 'Pulisci il codice'; +tinyMCELang['lang_focus_alert'] = 'Una istanza dell\' editor deve essere selezionata prima di usare questo comando.'; +tinyMCELang['lang_edit_confirm'] = 'Vuoi usare la modalit\u00E0 WYSIWYG per questa textarea?'; +tinyMCELang['lang_insert_link_title'] = 'Inserisci/modifica link'; +tinyMCELang['lang_insert'] = 'Inserisci'; +tinyMCELang['lang_update'] = 'Inserisci'; +tinyMCELang['lang_cancel'] = 'Cancella'; +tinyMCELang['lang_insert_link_url'] = 'Link URL'; +tinyMCELang['lang_insert_link_target'] = 'Target'; +tinyMCELang['lang_insert_link_target_same'] = 'Apri il link nella stessa finestra'; +tinyMCELang['lang_insert_link_target_blank'] = 'Apri il link in una nuova finestra'; +tinyMCELang['lang_insert_image_title'] = 'Inserisci/modifica immagine'; +tinyMCELang['lang_insert_image_src'] = 'URL immagine'; +tinyMCELang['lang_insert_image_alt'] = 'Descrizione dell\'immagine'; +tinyMCELang['lang_help_desc'] = 'Guida'; +tinyMCELang['lang_bold_img'] = "bold.gif"; +tinyMCELang['lang_italic_img'] = "italic.gif"; +tinyMCELang['lang_underline_img'] = "underline.gif"; +tinyMCELang['lang_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/ja.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/ja.js new file mode 100644 index 0000000000..e602f7f1d6 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/langs/ja.js @@ -0,0 +1,38 @@ +// JP lang variables + +tinyMCELang['lang_bold_desc'] = '$BB@;z(B'; +tinyMCELang['lang_italic_desc'] = '$B'; + } + + return ""; +} + +/** + * Gets executed when a command is called. + */ +function TinyMCE_template_execCommand(editor_id, element, command, user_interface, value) { + // Handle commands + switch (command) { + // Remember to have the "mce" prefix for commands so they don't intersect with built in ones in the browser. + case "mceTemplate": + // Show UI/Popup + if (user_interface) { + // Open a popup window and send in some custom data in a window argument + var template = new Array(); + + template['file'] = '../../plugins/template/popup.htm'; // Relative to theme + template['width'] = 150; + template['height'] = 180; + + tinyMCE.openWindow(template, {editor_id : editor_id, some_custom_arg : "somecustomdata"}); + + // Let TinyMCE know that something was modified + tinyMCE.triggerNodeChange(false); + } else { + // Do a command this gets called from the template popup + alert("execCommand: mceTemplate gets called from popup."); + } + + return true; + } + + // Pass to next handler in chain + return false; +} + +/** + * Gets executed when the selection/cursor position was changed. + */ +function TinyMCE_template_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) { + // Deselect template button + tinyMCE.switchClassSticky(editor_id + '_template', 'mceButtonNormal'); + + // Select template button if parent node is a strong or b + if (node.parentNode.nodeName == "STRONG" || node.parentNode.nodeName == "B") + tinyMCE.switchClassSticky(editor_id + '_template', 'mceButtonSelected'); + + return true; +} + +/** + * Gets executed when contents is inserted / retrived. + */ +function TinyMCE_template_cleanup(type, content) { + switch (type) { + case "get_from_editor": + alert("[FROM] Value HTML string: " + content); + + // Do custom cleanup code here + + break; + + case "insert_to_editor": + alert("[TO] Value HTML string: " + content); + + // Do custom cleanup code here + + break; + + case "get_from_editor_dom": + alert("[FROM] Value DOM Element " + content.innerHTML); + + // Do custom cleanup code here + + break; + + case "insert_to_editor_dom": + alert("[TO] Value DOM Element: " + content.innerHTML); + + // Do custom cleanup code here + + break; + } + + return content; +} diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/images/template.gif b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/images/template.gif new file mode 100644 index 0000000000000000000000000000000000000000..321a13482c40933cc4de458dbd5864081ebf5260 GIT binary patch literal 879 zcmZ?wbhEHb6k!ly_|5*tkWEg!bgX@#FUv%R1_|DYvM7~61jOH*<-Sl;v|_ */ + +tinyMCELang['lang_template_title'] = 'This is just a template popup'; +tinyMCELang['lang_template_desc'] = 'This is just a template button'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/popup.htm b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/popup.htm new file mode 100644 index 0000000000..0222c5641b --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/popup.htm @@ -0,0 +1,31 @@ + + +{$lang_template_title} + + + + +

{$lang_template_title}

+ +
+ + +
+ +
+ + diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/readme.txt b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/readme.txt new file mode 100644 index 0000000000..2ee1505cdb --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/_template/readme.txt @@ -0,0 +1 @@ +This is a template/tutorial plugin that where created to help you in the development of own plugins for TinyMCE. \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js new file mode 100644 index 0000000000..03026c2d11 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js @@ -0,0 +1,2 @@ +/* Import plugin specific language pack */ + tinyMCE.importPluginLanguagePack('advhr','en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl');function TinyMCE_advhr_getControlHTML(control_name){switch(control_name){case "advhr":return '';}return "";}function TinyMCE_advhr_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceAdvancedHr":var template=new Array();template['file']='../../plugins/advhr/rule.htm';template['width']=270;template['height']=180;var size="",width="",noshade="";if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="hr"){tinyMCE.hrElement=tinyMCE.selectedElement;if(tinyMCE.hrElement){size=tinyMCE.hrElement.getAttribute('size')?tinyMCE.hrElement.getAttribute('size'):"";width=tinyMCE.hrElement.getAttribute('width')?tinyMCE.hrElement.getAttribute('width'):"";noshade=tinyMCE.hrElement.getAttribute('noshade')?tinyMCE.hrElement.getAttribute('noshade'):"";}tinyMCE.openWindow(template,{editor_id:editor_id,size:size,width:width,noshade:noshade,mceDo:'update'});}else{if(tinyMCE.isMSIE){tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,'
');}else{tinyMCE.openWindow(template,{editor_id:editor_id,size:size,width:width,noshade:noshade,mceDo:'insert'});}}return true;}return false;}function TinyMCE_advhr_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){tinyMCE.switchClassSticky(editor_id+'_advhr','mceButtonNormal');if(node==null)return;do{if(node.nodeName.toLowerCase()=="hr")tinyMCE.switchClassSticky(editor_id+'_advhr','mceButtonSelected');}while((node=node.parentNode));return true;} \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js new file mode 100644 index 0000000000..b74d49ba92 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js @@ -0,0 +1,58 @@ +/* Import plugin specific language pack */ +tinyMCE.importPluginLanguagePack('advhr', 'en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl'); + +function TinyMCE_advhr_getControlHTML(control_name) { + switch (control_name) { + case "advhr": + return ''; + } + return ""; +} + +/** + * Executes the mceAdvanceHr command. + */ +function TinyMCE_advhr_execCommand(editor_id, element, command, user_interface, value) { + // Handle commands + switch (command) { + case "mceAdvancedHr": + var template = new Array(); + template['file'] = '../../plugins/advhr/rule.htm'; // Relative to theme + template['width'] = 270; + template['height'] = 180; + var size = "", width = "", noshade = ""; + if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "hr"){ + tinyMCE.hrElement = tinyMCE.selectedElement; + if (tinyMCE.hrElement) { + size = tinyMCE.hrElement.getAttribute('size') ? tinyMCE.hrElement.getAttribute('size') : ""; + width = tinyMCE.hrElement.getAttribute('width') ? tinyMCE.hrElement.getAttribute('width') : ""; + noshade = tinyMCE.hrElement.getAttribute('noshade') ? tinyMCE.hrElement.getAttribute('noshade') : ""; + } + tinyMCE.openWindow(template, {editor_id : editor_id, size : size, width : width, noshade : noshade, mceDo : 'update'}); + } else { + if (tinyMCE.isMSIE) { + tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false,'
'); + } else { + tinyMCE.openWindow(template, {editor_id : editor_id, size : size, width : width, noshade : noshade, mceDo : 'insert'}); + } + } + + return true; + } + // Pass to next handler in chain + return false; +} + +function TinyMCE_advhr_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) { + tinyMCE.switchClassSticky(editor_id + '_advhr', 'mceButtonNormal'); + + if (node == null) + return; + + do { + if (node.nodeName.toLowerCase() == "hr") + tinyMCE.switchClassSticky(editor_id + '_advhr', 'mceButtonSelected'); + } while ((node = node.parentNode)); + + return true; +} \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/images/advhr.gif b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advhr/images/advhr.gif new file mode 100644 index 0000000000000000000000000000000000000000..e18bfc2ac9e8360ca15d315c55ff182d846ff83e GIT binary patch literal 209 zcmZ?wbhEHb6k!lyI3mn2VaA392RJq|NsAIAOa} + +{$lang_insert_link_title} + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + +
{$lang_insert_advhr_desc}
{$lang_insert_advhr_width}: + + +
{$lang_insert_advhr_size}:
+
+ + diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js new file mode 100644 index 0000000000..f39dc15202 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js @@ -0,0 +1,2 @@ +/* Import plugin specific language pack */ + tinyMCE.importPluginLanguagePack('advimage','en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl');function TinyMCE_advimage_getInsertImageTemplate(){var template=new Array();template['file']='../../plugins/advimage/image.htm';template['width']=430;template['height']=380;template['width']+=tinyMCE.getLang('lang_insert_image_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_image_delta_height',0);return template;}function TinyMCE_advimage_cleanup(type,content){switch(type){case "insert_to_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i + +{$lang_insert_image_title} + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{$lang_insert_image_title}
{$lang_insert_image_src}: + + + + +
{$lang_insert_image_alt}:
{$lang_insert_image_alt2}:
{$lang_insert_image_dimensions}: + x + px +
{$lang_insert_image_border}:
{$lang_insert_image_align}: +
{$lang_insert_image_vspace}:
{$lang_insert_image_hspace}:
{$lang_insert_image_mouseover}: + + + + +
{$lang_insert_image_mouseout}: + + + + +
 
+
+ + diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/cs.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/cs.js new file mode 100644 index 0000000000..1310fd39f2 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/cs.js @@ -0,0 +1,6 @@ +// UK lang variables + +tinyMCELang['lang_insert_image_alt2'] = 'Název obrázku'; +tinyMCELang['lang_insert_image_onmousemove'] = 'Alternativní obrázek' +tinyMCELang['lang_insert_image_mouseover'] = 'pøi najetí myši'; +tinyMCELang['lang_insert_image_mouseout'] = 'pøi odjetí myši'; \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de.js new file mode 100644 index 0000000000..71650a1ca4 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de.js @@ -0,0 +1,6 @@ +// DE lang variables + +tinyMCELang['lang_insert_image_alt2'] = 'Titel des Bildes'; +tinyMCELang['lang_insert_image_onmousemove'] = 'Alternatives Bild' +tinyMCELang['lang_insert_image_mouseover'] = 'für Maus darüber'; +tinyMCELang['lang_insert_image_mouseout'] = 'für Maus ausserhalb'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en.js new file mode 100644 index 0000000000..37c58a1592 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en.js @@ -0,0 +1,6 @@ +// UK lang variables + +tinyMCELang['lang_insert_image_alt2'] = 'Image title'; +tinyMCELang['lang_insert_image_onmousemove'] = 'Alternative image' +tinyMCELang['lang_insert_image_mouseover'] = 'for mouse over'; +tinyMCELang['lang_insert_image_mouseout'] = 'for mouse out'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fa.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fa.js new file mode 100644 index 0000000000..31a4ac1dcc --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fa.js @@ -0,0 +1,11 @@ +// IR lang variables +// Persian (Farsi) language pack (for IRAN) +// By: Morteza Zafari +// Lost@LostLord.com +// http://www.LostLord.com + +tinyMCELang['lang_dir'] = 'rtl'; +tinyMCELang['lang_insert_image_alt2'] = 'عنوان عکس'; +tinyMCELang['lang_insert_image_onmousemove'] = 'عکس جایگزین' +tinyMCELang['lang_insert_image_mouseover'] = 'عکس جایگزین هنگام ورود نشانگر ماوس'; +tinyMCELang['lang_insert_image_mouseout'] = 'عکس جایگزین هنگام خروج نشانگر ماوس'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fa_ca.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fa_ca.js new file mode 100644 index 0000000000..f8f0c43693 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fa_ca.js @@ -0,0 +1,6 @@ +// CA_FR lang variables + +tinyMCELang['lang_insert_image_alt2'] = 'Titre de l\'image'; +tinyMCELang['lang_insert_image_onmousemove'] = 'Image alternative'; +tinyMCELang['lang_insert_image_mouseover'] = 'pour le «mouse over»'; +tinyMCELang['lang_insert_image_mouseout'] = 'pour le «mouse out»'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fr.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fr.js new file mode 100644 index 0000000000..e729301267 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fr.js @@ -0,0 +1,6 @@ +// French lang variables by Laurent Dran + +tinyMCELang['lang_insert_image_alt2'] = 'Titre de l\'image'; +tinyMCELang['lang_insert_image_onmousemove'] = 'Image alternative' +tinyMCELang['lang_insert_image_mouseover'] = 'Pour la souris au dessus'; +tinyMCELang['lang_insert_image_mouseout'] = 'Pour la souris en dehors'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ko.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ko.js new file mode 100644 index 0000000000..aaf0809dcd --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ko.js @@ -0,0 +1,6 @@ +// KO lang variables + +tinyMCELang['lang_insert_image_alt2'] = '±×¸² Á¦¸ñ'; +tinyMCELang['lang_insert_image_onmousemove'] = '´ëü À̹ÌÁö' +tinyMCELang['lang_insert_image_mouseover'] = '¸¶¿ì½º¸¦ ¿Ã·ÈÀ» ¶§'; +tinyMCELang['lang_insert_image_mouseout'] = '¸¶¿ì½º¸¦ ³»·ÈÀ» ¶§'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/pl.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/pl.js new file mode 100644 index 0000000000..64ba76176d --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/pl.js @@ -0,0 +1,6 @@ +// PL lang variables + +tinyMCELang['lang_insert_image_alt2'] = 'TytuÅ‚ obrazka'; +tinyMCELang['lang_insert_image_onmousemove'] = 'Obrazek zastÄ™pczy' +tinyMCELang['lang_insert_image_mouseover'] = 'po najechaniu myszy'; +tinyMCELang['lang_insert_image_mouseout'] = 'po odjechaniu myszy'; \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/sv.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/sv.js new file mode 100644 index 0000000000..92de2cab41 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/sv.js @@ -0,0 +1,6 @@ +// SE lang variables + +tinyMCELang['lang_insert_image_alt2'] = 'Bildentitel'; +tinyMCELang['lang_insert_image_onmousemove'] = 'Alternativ bild' +tinyMCELang['lang_insert_image_mouseover'] = 'när pekaren är över'; +tinyMCELang['lang_insert_image_mouseout'] = 'när pekaren är utanför'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/zh_cn.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/zh_cn.js new file mode 100644 index 0000000000..f7dbe4b597 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/langs/zh_cn.js @@ -0,0 +1,6 @@ +// Simplified Chinese lang variables contributed by cube316 (cube316@etang.com) + +tinyMCELang['lang_insert_image_alt2'] = 'ͼƬ±êÌâ'; +tinyMCELang['lang_insert_image_onmousemove'] = 'Ìæ´úͼÏñ' +tinyMCELang['lang_insert_image_mouseover'] = 'Êó±êÒÆÉÏʱ'; +tinyMCELang['lang_insert_image_mouseout'] = 'Êó±êÒÆ¿ªÊ±'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/readme.txt b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/readme.txt new file mode 100644 index 0000000000..5630951159 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advimage/readme.txt @@ -0,0 +1,19 @@ + Advimage plugin for TinyMCE +----------------------------- + +About: + This is a more advanced image dialog mostly based on code contributed by Michael Keck. + This one supports mouseover/out image swapping. + +Installation instructions: + * Copy the advimage directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins). + * Add plugin to TinyMCE plugin option list example: plugins : "advimage". + * Add this "a[name|href|target|title|onclick]" to extended_valid_elements option. + +Initialization example: + tinyMCE.init({ + theme : "advanced", + mode : "textareas", + plugins : "preview", + extended_valid_elements : "a[name|href|target|title|onclick]" + }); diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js new file mode 100644 index 0000000000..6fa49e7fd9 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js @@ -0,0 +1,2 @@ +/* Import plugin specific language pack */ + tinyMCE.importPluginLanguagePack('advlink','en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl');function TinyMCE_advlink_getInsertLinkTemplate(){var template=new Array();template['file']='../../plugins/advlink/link.htm';template['width']=400;template['height']=420;template['width']+=tinyMCE.getLang('lang_insert_link_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_link_delta_height',0);return template;} \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js new file mode 100644 index 0000000000..bf442948df --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js @@ -0,0 +1,18 @@ +/* Import plugin specific language pack */ +tinyMCE.importPluginLanguagePack('advlink', 'en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl'); + +/** + * Insert link template function. + */ +function TinyMCE_advlink_getInsertLinkTemplate() { + var template = new Array(); + template['file'] = '../../plugins/advlink/link.htm'; + template['width'] = 400; + template['height'] = 420; + + // Language specific width and height addons + template['width'] += tinyMCE.getLang('lang_insert_link_delta_width', 0); + template['height'] += tinyMCE.getLang('lang_insert_link_delta_height', 0); + + return template; +} \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/cs.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/cs.js new file mode 100644 index 0000000000..5277d260a9 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/cs.js @@ -0,0 +1,20 @@ +// CZ lang variables + +tinyMCELang['lang_insert_link_target_same'] = 'Otevøít ve stejném oknì/rámu'; +tinyMCELang['lang_insert_link_target_parent'] = 'Otevøít v rodièovském oknì/rámu'; +tinyMCELang['lang_insert_link_target_top'] = 'Otevøít v nejvyšším rámu (pøepíše všechny rámy)'; +tinyMCELang['lang_insert_link_target_blank'] = 'Otevøít v novém oknì'; +tinyMCELang['lang_insert_link_target_named'] = 'Otevøít v oknì'; +tinyMCELang['lang_insert_link_popup'] = 'JS-Popup'; +tinyMCELang['lang_insert_link_popup_url'] = 'Popup URL'; +tinyMCELang['lang_insert_link_popup_name'] = 'Název okna'; +tinyMCELang['lang_insert_link_popup_return'] = 'insert \'return false\''; +tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Ukázat posuvníky'; +tinyMCELang['lang_insert_link_popup_statusbar'] = 'Ukázat stavový øádek'; +tinyMCELang['lang_insert_link_popup_toolbar'] = 'Ukázat ovl. lištu'; +tinyMCELang['lang_insert_link_popup_menubar'] = 'Ukázat menu'; +tinyMCELang['lang_insert_link_popup_location'] = 'Ukázat lištu umístìní'; +tinyMCELang['lang_insert_link_popup_resizable'] = 'Promìnná velikost okna'; +tinyMCELang['lang_insert_link_popup_size'] = 'Velikost'; +tinyMCELang['lang_insert_link_popup_position'] = 'Umístìní (X/Y)'; +tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Vložte název cíle nebo vyberte jinou volbu.'; \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de.js new file mode 100644 index 0000000000..48263d1d4c --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de.js @@ -0,0 +1,20 @@ +// DE lang variables + +tinyMCELang['lang_insert_link_target_same'] = 'Im selben Frame öffnen'; +tinyMCELang['lang_insert_link_target_parent'] = 'Im darüber liegenden Frame öffnen'; +tinyMCELang['lang_insert_link_target_top']= 'Im obersten Frame öffnen'; +tinyMCELang['lang_insert_link_target_blank']= 'In einem neuen Fenster öffnen'; +tinyMCELang['lang_insert_link_target_named']= 'Öffnen im Fenster/Frame'; +tinyMCELang['lang_insert_link_popup'] = 'JS-Popup'; +tinyMCELang['lang_insert_link_popup_url'] = 'Popup URL'; +tinyMCELang['lang_insert_link_popup_name']= 'Fenstername'; +tinyMCELang['lang_insert_link_popup_return']= 'mit \'return false\''; +tinyMCELang['lang_insert_link_popup_scrollbars']= 'Scrollbars anzeigen'; +tinyMCELang['lang_insert_link_popup_statusbar'] = 'Statusbar anzeigen'; +tinyMCELang['lang_insert_link_popup_toolbar'] = 'Toolbars anzeigen'; +tinyMCELang['lang_insert_link_popup_menubar'] = 'Menu anzeigen'; +tinyMCELang['lang_insert_link_popup_location']= 'Adresszeile anzeigen'; +tinyMCELang['lang_insert_link_popup_resizable'] = 'Größe änderbar'; +tinyMCELang['lang_insert_link_popup_size']= 'Größe'; +tinyMCELang['lang_insert_link_popup_position']= 'Position (X/Y)'; +tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Bitte geben Sie einen Namen für das Ziel an oder wählen Sie eine andere Option.'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en.js new file mode 100644 index 0000000000..a3a658b11e --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en.js @@ -0,0 +1,20 @@ +// UK lang variables + +tinyMCELang['lang_insert_link_target_same'] = 'Open in this window / frame'; +tinyMCELang['lang_insert_link_target_parent'] = 'Open in parent window / frame'; +tinyMCELang['lang_insert_link_target_top'] = 'Open in top frame (replaces all frames)'; +tinyMCELang['lang_insert_link_target_blank'] = 'Open in new window'; +tinyMCELang['lang_insert_link_target_named'] = 'Open in the window'; +tinyMCELang['lang_insert_link_popup'] = 'JS-Popup'; +tinyMCELang['lang_insert_link_popup_url'] = 'Popup URL'; +tinyMCELang['lang_insert_link_popup_name'] = 'Window name'; +tinyMCELang['lang_insert_link_popup_return'] = 'insert \'return false\''; +tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Show scrollbars'; +tinyMCELang['lang_insert_link_popup_statusbar'] = 'Show statusbar'; +tinyMCELang['lang_insert_link_popup_toolbar'] = 'Show toolbars'; +tinyMCELang['lang_insert_link_popup_menubar'] = 'Show menubar'; +tinyMCELang['lang_insert_link_popup_location'] = 'Show locationbar'; +tinyMCELang['lang_insert_link_popup_resizable'] = 'Make window resizable'; +tinyMCELang['lang_insert_link_popup_size'] = 'Size'; +tinyMCELang['lang_insert_link_popup_position'] = 'Position (X/Y)'; +tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Please insert a name for the target or choose another option.'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fa.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fa.js new file mode 100644 index 0000000000..1fc83a0f3e --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fa.js @@ -0,0 +1,25 @@ +// IR lang variables +// Persian (Farsi) language pack (for IRAN) +// By: Morteza Zafari +// Lost@LostLord.com +// http://www.LostLord.com + +tinyMCELang['lang_dir'] = 'rtl'; +tinyMCELang['lang_insert_link_target_same'] = 'در همین صÙحه / Ùریم باز Ú©Ù†'; +tinyMCELang['lang_insert_link_target_parent'] = 'در صÙحه / Ùریم اصلی باز Ú©Ù†'; +tinyMCELang['lang_insert_link_target_top'] = 'در Ùریم اصلی باز Ú©Ù† (همه Ùریمها نادیده گرÙته میشود)'; +tinyMCELang['lang_insert_link_target_blank'] = 'در صÙحه جدید باز Ú©Ù†'; +tinyMCELang['lang_insert_link_target_named'] = 'در پنجره باز Ú©Ù†'; +tinyMCELang['lang_insert_link_popup'] = 'JS-Popup'; +tinyMCELang['lang_insert_link_popup_url'] = 'URL پنجره'; +tinyMCELang['lang_insert_link_popup_name'] = 'نام پنجره'; +tinyMCELang['lang_insert_link_popup_return'] = 'اÙزودن \'return false\''; +tinyMCELang['lang_insert_link_popup_scrollbars'] = 'نمایش scrollbars'; +tinyMCELang['lang_insert_link_popup_statusbar'] = 'نمایش statusbar'; +tinyMCELang['lang_insert_link_popup_toolbar'] = 'نمایش toolbars'; +tinyMCELang['lang_insert_link_popup_menubar'] = 'نمایش menubar'; +tinyMCELang['lang_insert_link_popup_location'] = 'نمایش locationbar'; +tinyMCELang['lang_insert_link_popup_resizable'] = 'قابل تغییر اندازه باشد'; +tinyMCELang['lang_insert_link_popup_size'] = 'اندازه'; +tinyMCELang['lang_insert_link_popup_position'] = 'موقعیت (X/Y)'; +tinyMCELang['lang_insert_link_popup_missingtarget'] = 'لطÙا یک نام برای مقصد انتخاب کنید در غیر این صورت گزینه دیگری را انتخاب نمایید.'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr.js new file mode 100644 index 0000000000..129c154161 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr.js @@ -0,0 +1,20 @@ +// French lang variables by Laurent Dran + +tinyMCELang['lang_insert_link_target_same'] = 'Ouvre dans la fenętre / Cadre(frame)'; +tinyMCELang['lang_insert_link_target_parent'] = 'Ouvre dans fenętre parente / Cadres(frame)'; +tinyMCELang['lang_insert_link_target_top'] = 'Ouvre dans le Top frame (remplace toutes les cadres(frames))'; +tinyMCELang['lang_insert_link_target_blank'] = 'Ouvre dans la fenętre'; +tinyMCELang['lang_insert_link_target_named'] = 'Ouvre dans la fenętre'; +tinyMCELang['lang_insert_link_popup'] = 'JS-Popup'; +tinyMCELang['lang_insert_link_popup_url'] = 'URL de la Popup'; +tinyMCELang['lang_insert_link_popup_name'] = 'Nom de la fenętre'; +tinyMCELang['lang_insert_link_popup_return'] = 'Insert \'return false\''; +tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Montrer la barre de défilement '; +tinyMCELang['lang_insert_link_popup_statusbar'] = 'Montrer la barre d\'état'; +tinyMCELang['lang_insert_link_popup_toolbar'] = 'Montrer la barre d\'outils'; +tinyMCELang['lang_insert_link_popup_menubar'] = 'Montrer la barre du menu'; +tinyMCELang['lang_insert_link_popup_location'] = 'Montre la barre d\'adresse'; +tinyMCELang['lang_insert_link_popup_resizable'] = 'Fabriquer une fenętre redimensionnable'; +tinyMCELang['lang_insert_link_popup_size'] = 'Taille'; +tinyMCELang['lang_insert_link_popup_position'] = 'Position (X/Y)'; +tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Veuillez insérer un nom pour la cible ou choisissez une autre option.'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr_ca.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr_ca.js new file mode 100644 index 0000000000..99631b32cf --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr_ca.js @@ -0,0 +1,20 @@ +// CA_FR lang variables + +tinyMCELang['lang_insert_link_target_same'] = 'Ouvrir dans la même fenêtre'; +tinyMCELang['lang_insert_link_target_parent'] = 'Ouvrir dans la fenêtre parent'; +tinyMCELang['lang_insert_link_target_top'] = 'Ouvrir dans le cadre supérieur'; +tinyMCELang['lang_insert_link_target_blank'] = 'Ouvrir dans une nouvelle fenêtre'; +tinyMCELang['lang_insert_link_target_named'] = 'Ouvrir à la destination'; +tinyMCELang['lang_insert_link_popup'] = 'JS-Popup'; +tinyMCELang['lang_insert_link_popup_url'] = 'URL du popup'; +tinyMCELang['lang_insert_link_popup_name'] = 'Nom de la fenêtre'; +tinyMCELang['lang_insert_link_popup_return'] = 'Insérer le script \'return false\''; +tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Barres de défilement'; +tinyMCELang['lang_insert_link_popup_statusbar'] = 'Barre de statut'; +tinyMCELang['lang_insert_link_popup_toolbar'] = 'Barres d\'outils'; +tinyMCELang['lang_insert_link_popup_menubar'] = 'Barre de menu'; +tinyMCELang['lang_insert_link_popup_location'] = 'Barre d\'adresse'; +tinyMCELang['lang_insert_link_popup_resizable'] = 'Fenêtre redimensionnable'; +tinyMCELang['lang_insert_link_popup_size'] = 'Dimensions'; +tinyMCELang['lang_insert_link_popup_position'] = 'Position (X/Y)'; +tinyMCELang['lang_insert_link_popup_missingtarget'] = 'S.v.p., entrer un nom de destination ou choisir une autre option.'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ko.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ko.js new file mode 100644 index 0000000000..14b051a591 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ko.js @@ -0,0 +1,19 @@ +// KO lang variables + +tinyMCELang['lang_insert_link_target_same'] = '°°Àº â¿¡¼­ ¸µÅ©/ÇÁ·¹ÀÓ ¿­±â'; +tinyMCELang['lang_insert_link_target_parent'] = 'ºÎ¸ð â¿¡¼­ ¸µÅ©/ÇÁ·¹ÀÓ ¿­±â'; +tinyMCELang['lang_insert_link_target_top'] = 'TOP ÇÁ·¹ÀÓ¿¡¼­ ¿­±â (¸ðµç ÇÁ·¹ÀÓÀ» ´ëü)'; +tinyMCELang['lang_insert_link_target_blank'] = '»õ â¿¡¼­ ¿­±â'; +tinyMCELang['lang_insert_link_target_named'] = '»õ â¿¡¼­ ¿­±â'; +tinyMCELang['lang_insert_link_popup'] = 'JS-Popup'; +tinyMCELang['lang_insert_link_popup_url'] = 'Æ˾÷ URL'; +tinyMCELang['lang_insert_link_popup_name'] = 'â À̸§'; +tinyMCELang['lang_insert_link_popup_return'] = '\'return false\' ³Ö±â'; +tinyMCELang['lang_insert_link_popup_scrollbars'] = '½ºÅ©·Ñ¹Ù¸¦ º¸¿©ÁÜ'; +tinyMCELang['lang_insert_link_popup_statusbar'] = '»óÅÂâÀ» º¸¿©ÁÜ'; +tinyMCELang['lang_insert_link_popup_toolbar'] = 'Åø¹Ù¸¦ º¸¿©ÁÜ'; +tinyMCELang['lang_insert_link_popup_menubar'] = '¸Þ´º¹Ù¸¦ º¸¿©ÁÜ'; +tinyMCELang['lang_insert_link_popup_location'] = 'À§Ä¡ Ç¥½ÃÁÙÀ» º¸¿©ÁÜ'; +tinyMCELang['lang_insert_link_popup_resizable'] = 'Å©±â Á¶Àý °¡´ÉÇÑ À©µµ¿ì »ý¼º'; +tinyMCELang['lang_insert_link_popup_size'] = 'Å©±â'; +tinyMCELang['lang_insert_link_popup_position'] = 'À§Ä¡ (X/Y)'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/pl.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/pl.js new file mode 100644 index 0000000000..1ac810f563 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/pl.js @@ -0,0 +1,23 @@ +// PL lang variables + +tinyMCELang['lang_insert_link_target_same'] = 'Otwórz w tym samym oknie'; +tinyMCELang['lang_insert_link_target_parent'] = 'Open in parent window / frame'; +tinyMCELang['lang_insert_link_target_top'] = 'Open in top frame (replaces all frames)'; +tinyMCELang['lang_insert_link_target_blank'] = 'Otwórz w nowym oknie'; +tinyMCELang['lang_insert_link_target_named'] = 'Open in the window'; +tinyMCELang['lang_insert_link_popup'] = 'JS-Popup'; +tinyMCELang['lang_insert_link_popup_url'] = 'Popup URL'; +tinyMCELang['lang_insert_link_popup_name'] = 'Window name'; +tinyMCELang['lang_insert_link_popup_return'] = 'insert \'return false\''; +tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Show scrollbars'; +tinyMCELang['lang_insert_link_popup_statusbar'] = 'Show statusbar'; +tinyMCELang['lang_insert_link_popup_toolbar'] = 'Show toolbars'; +tinyMCELang['lang_insert_link_popup_menubar'] = 'Show menubar'; +tinyMCELang['lang_insert_link_popup_location'] = 'Show locationbar'; +tinyMCELang['lang_insert_link_popup_resizable'] = 'Make window resizable'; +tinyMCELang['lang_insert_link_popup_size'] = 'Size'; +tinyMCELang['lang_insert_link_popup_position'] = 'Position (X/Y)'; +tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Please insert a name for the target or choose another option.'; +tinyMCELang['lang_insert_link_url'] = 'Adres URL'; +tinyMCELang['lang_insert_link_target'] = 'Cel'; + diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/sv.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/sv.js new file mode 100644 index 0000000000..7ebbfa1f88 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/sv.js @@ -0,0 +1,20 @@ +// SE lang variables + +tinyMCELang['lang_insert_link_target_same'] = 'Öppna i samma fönster / ram'; +tinyMCELang['lang_insert_link_target_parent'] = 'Öppna i underliggande fönster / ram'; +tinyMCELang['lang_insert_link_target_top'] = 'Öppna i toppramen (ersätter alla ramar)'; +tinyMCELang['lang_insert_link_target_blank'] = 'Öppna i ett nytt fönster'; +tinyMCELang['lang_insert_link_target_named'] = 'Öppna i ett specifikt fönster'; +tinyMCELang['lang_insert_link_popup'] = 'JS-Popup'; +tinyMCELang['lang_insert_link_popup_url'] = 'Popup URL'; +tinyMCELang['lang_insert_link_popup_name'] = 'Fönstrets namn'; +tinyMCELang['lang_insert_link_popup_return'] = 'Sätt in \'return false\''; +tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Visa scrollbars'; +tinyMCELang['lang_insert_link_popup_statusbar'] = 'Visa statusbar'; +tinyMCELang['lang_insert_link_popup_toolbar'] = 'Visa toolbars'; +tinyMCELang['lang_insert_link_popup_menubar'] = 'Visa menubar'; +tinyMCELang['lang_insert_link_popup_location'] = 'Visa locationbar'; +tinyMCELang['lang_insert_link_popup_resizable'] = 'Gör fönstret skalbart'; +tinyMCELang['lang_insert_link_popup_size'] = 'Storlek'; +tinyMCELang['lang_insert_link_popup_position'] = 'Position (X/Y)'; +tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Var god skriv ett namn för fönstret eller välj ett annat val.'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/zh_cn.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/zh_cn.js new file mode 100644 index 0000000000..84c27bea68 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/langs/zh_cn.js @@ -0,0 +1,20 @@ +// Simplified Chinese lang variables contributed by cube316 (cube316@etang.com) + +tinyMCELang['lang_insert_link_target_same'] = 'ÔÚ±¾´°¿Ú/¿ò¼ÜÖдò¿ª'; +tinyMCELang['lang_insert_link_target_parent'] = 'ÔÚ¸¸´°¿Ú/¿ò¼ÜÖдò¿ª'; +tinyMCELang['lang_insert_link_target_top'] = 'ÔÚ¸ù¿ò¼ÜÖдò¿ª£¨Ìæ»»ËùÓпò¼Ü£©'; +tinyMCELang['lang_insert_link_target_blank'] = 'ÔÚд°¿ÚÖдò¿ª'; +tinyMCELang['lang_insert_link_target_named'] = 'ÔÚ´Ë´°¿ÚÖдò¿ª'; +tinyMCELang['lang_insert_link_popup'] = 'JS-Popup'; +tinyMCELang['lang_insert_link_popup_url'] = 'µ¯³ö´°¿ÚµØÖ·'; +tinyMCELang['lang_insert_link_popup_name'] = '´°¿ÚÃû³Æ'; +tinyMCELang['lang_insert_link_popup_return'] = '²åÈë \'return false\''; +tinyMCELang['lang_insert_link_popup_scrollbars'] = 'ÏÔʾ¹ö¶¯Ìõ'; +tinyMCELang['lang_insert_link_popup_statusbar'] = 'ÏÔʾ״̬À¸'; +tinyMCELang['lang_insert_link_popup_toolbar'] = 'ÏÔʾ¹¤¾ßÀ¸'; +tinyMCELang['lang_insert_link_popup_menubar'] = 'ÏÔʾ²Ëµ¥À¸'; +tinyMCELang['lang_insert_link_popup_location'] = 'ÏÔʾµØÖ·À¸'; +tinyMCELang['lang_insert_link_popup_resizable'] = '¿ÉÖض¨Òå´°¿Ú´óС'; +tinyMCELang['lang_insert_link_popup_size'] = '³ß´ç'; +tinyMCELang['lang_insert_link_popup_position'] = 'λÖÃ(X/Y)'; +tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Çë²åÈëÄ¿±êÃû³Æ»òÕßÑ¡ÔñÁíÍâµÄÑ¡Ïî¡£'; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm new file mode 100644 index 0000000000..a6461debe6 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm @@ -0,0 +1,448 @@ + + +{$lang_insert_link_title} + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
{$lang_insert_link_title}
{$lang_insert_link_url}: + + + + +
{$lang_theme_insert_link_titlefield}:
{$lang_insert_link_target}: + + + + + + + + + + + + + + + + + + + + + +
 ({$lang_insert_link_target_same})
 ({$lang_insert_link_target_parent})
 ({$lang_insert_link_target_top})
 ({$lang_insert_link_target_blank})
+ + + + + + +
 
+
+ + + + + + + + + + + + + + + + + +
{$lang_insert_link_popup_url}:  + + + + +
{$lang_insert_link_popup_name}: 
{$lang_insert_link_popup_size}:  + x + px +
{$lang_insert_link_popup_position}:  + / + (c /c = center) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  
 
   
 
+
+
+ + diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/readme.txt b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/readme.txt new file mode 100644 index 0000000000..ab554efc07 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/advlink/readme.txt @@ -0,0 +1,19 @@ + Advlink plugin for TinyMCE +----------------------------- + +About: + This is a more advanced link dialog mostly based on code contributed by Michael Keck. + This one supports popup windows and targets. + +Installation instructions: + * Copy the advlink directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins). + * Add plugin to TinyMCE plugin option list example: plugins : "advlink". + * Add this "a[name|href|target|title|onclick]" to extended_valid_elements option. + +Initialization example: + tinyMCE.init({ + theme : "advanced", + mode : "textareas", + plugins : "advlink", + extended_valid_elements : "a[name|href|target|title|onclick]" + }); diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/contextmenu.css b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/contextmenu.css new file mode 100644 index 0000000000..1466e0e892 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/contextmenu.css @@ -0,0 +1,60 @@ +.contextMenuIEPopup { + padding: 0px; + margin: 0px; + border: 0px; + overflow: hidden; +} + +.contextMenu { + position: absolute; + cursor: default; + z-index: 1000; + border: 1px solid #D4D0C8; + background-color: #FFFFFF; +} + +.contextMenuItem, .contextMenuItemOver { +} + +.contextMenuItemOver { + background-color: #B6BDD2; +} + +.contextMenuSeparator { + width: 100%; + background-color: #D4D0C8; + border: 0px; +} + +.contextMenuImage, .contextMenuItemDisabled { + border: 0px; +} + +.contextMenuIcon { + background-color: #F0F0EE; +} + +.contextMenuItemOver .contextMenuIcon { + background-color: #B6BDD2; +} + +.contextMenuIcon { + background-color: #F0F0EE; +} + +.contextMenuItemDisabled img { + filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); + -moz-opacity:0.3; + opacity: 0.3; +} + +.contextMenuText { + font-family: Tahoma, Verdana, Arial, Helvetica; + font-size: 11px; + margin-left: 5px; + margin-right: 10px; +} + +.contextMenuItemDisabled { + color: #AAAAAA; +} diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js new file mode 100644 index 0000000000..6a6f0785a5 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js @@ -0,0 +1,2 @@ +/* Import plugin specific language pack */ + if(!tinyMCE.settings['contextmenu_skip_plugin_css'])tinyMCE.loadCSS(tinyMCE.baseURL+"/plugins/contextmenu/contextmenu.css");var TinyMCE_contextmenu_contextMenu=null;function TinyMCE_contextmenu_initInstance(inst){if(tinyMCE.isMSIE5_0)return;tinyMCE.addEvent(inst.getDoc(),"click",TinyMCE_contextmenu_hideContextMenu);tinyMCE.addEvent(inst.getDoc(),"keypress",TinyMCE_contextmenu_hideContextMenu);tinyMCE.addEvent(inst.getDoc(),"keydown",TinyMCE_contextmenu_hideContextMenu);tinyMCE.addEvent(document,"click",TinyMCE_contextmenu_hideContextMenu);tinyMCE.addEvent(document,"keypress",TinyMCE_contextmenu_hideContextMenu);tinyMCE.addEvent(document,"keydown",TinyMCE_contextmenu_hideContextMenu);var contextMenu=new ContextMenu({commandhandler:"TinyMCE_contextmenu_commandHandler",spacer_image:tinyMCE.baseURL+"/plugins/contextmenu/images/spacer.gif"});TinyMCE_contextmenu_contextMenu=contextMenu;if(tinyMCE.isGecko){tinyMCE.addEvent(inst.getDoc(),"contextmenu",function(e){TinyMCE_contextmenu_showContextMenu(tinyMCE.isMSIE?inst.contentWindow.event:e,inst);});}else tinyMCE.addEvent(inst.getDoc(),"contextmenu",TinyMCE_contextmenu_onContextMenu);}function TinyMCE_contextmenu_onContextMenu(e){var elm=tinyMCE.isMSIE?e.srcElement:e.target;var targetInst,body;if((body=tinyMCE.getParentElement(elm,"body"))!=null){for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];if(body==inst.getBody()){targetInst=inst;break;}}return TinyMCE_contextmenu_showContextMenu(tinyMCE.isMSIE?targetInst.contentWindow.event:e,targetInst);}}function TinyMCE_contextmenu_showContextMenu(e,inst){function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):"";}var x,y,elm,contextMenu;var pos=tinyMCE.getAbsPosition(inst.iframeElement);x=tinyMCE.isMSIE?e.screenX:pos.absLeft+(e.pageX-inst.getBody().scrollLeft);y=tinyMCE.isMSIE?e.screenY:pos.absTop+(e.pageY-inst.getBody().scrollTop);elm=tinyMCE.isMSIE?e.srcElement:e.target;contextMenu=TinyMCE_contextmenu_contextMenu;contextMenu.inst=inst;window.setTimeout(function(){var theme=tinyMCE.getParam("theme");contextMenu.clearAll();var sel=inst.getSelectedText().length!=0||elm.nodeName=="IMG";contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/cut.gif","$lang_cut_desc","Cut","",!sel);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/copy.gif","$lang_copy_desc","Copy","",!sel);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_paste_desc","Paste","",false);elm=tinyMCE.getParentElement(elm,"img,table,td");if(elm){switch(elm.nodeName){case "IMG":contextMenu.addSeparator();if(tinyMCE.getAttrib(elm,'name','').indexOf('mce_plugin_flash')==0)contextMenu.addItem(tinyMCE.baseURL+"/plugins/flash/images/flash.gif","$lang_flash_props","mceFlash");else contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/image.gif","$lang_image_props_desc","mceImage");break;case "TABLE":case "TD":if(typeof(TinyMCE_table_getControlHTML)!="undefined"){var colspan=(elm.nodeName=="TABLE")?"":getAttrib(elm,"colspan");var rowspan=(elm.nodeName=="TABLE")?"":getAttrib(elm,"rowspan");colspan=colspan==""?"1":colspan;rowspan=rowspan==""?"1":rowspan;contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/cut.gif","$lang_table_cut_row_desc","mceTableCutRow");contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/copy.gif","$lang_table_copy_row_desc","mceTableCopyRow");contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_table_paste_row_before_desc","mceTablePasteRowBefore","",inst.tableRowClipboard==null);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_table_paste_row_after_desc","mceTablePasteRowAfter","",inst.tableRowClipboard==null);contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table.gif","$lang_table_props_desc","mceInsertTable");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_cell_props.gif","$lang_table_cell_desc","mceTableCellProps");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_row_props.gif","$lang_table_row_desc","mceTableRowProps");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_row_before.gif","$lang_table_insert_row_before_desc","mceTableInsertRowBefore");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_row_after.gif","$lang_table_insert_row_after_desc","mceTableInsertRowAfter");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_delete_row.gif","$lang_table_delete_row_desc","mceTableDeleteRow");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_col_before.gif","$lang_table_insert_col_before_desc","mceTableInsertColBefore");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_col_after.gif","$lang_table_insert_col_after_desc","mceTableInsertColAfter");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_delete_col.gif","$lang_table_delete_col_desc","mceTableDeleteCol");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_split_cells.gif","$lang_table_split_cells_desc","mceTableSplitCells","",(colspan=="1"&&rowspan=="1"));contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_merge_cells.gif","$lang_table_merge_cells_desc","mceTableMergeCells","",false);}break;}}contextMenu.show(x,y);},10);tinyMCE.cancelEvent(e);return false;}function TinyMCE_contextmenu_hideContextMenu(){TinyMCE_contextmenu_contextMenu.hide();return true;}function TinyMCE_contextmenu_commandHandler(command,value){TinyMCE_contextmenu_contextMenu.hide();var ui=false;if(command=="mceInsertTable"||command=="mceTableCellProps"||command=="mceTableRowProps"||command=="mceTableMergeCells")ui=true;TinyMCE_contextmenu_contextMenu.inst.execCommand(command,ui);}function ContextMenu(settings){function defParam(key,def_val){settings[key]=typeof(settings[key])!="undefined"?settings[key]:def_val;}var self=this;this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.contextMenuDiv=document.createElement("div");this.contextMenuDiv.className="contextMenu";this.contextMenuDiv.setAttribute("class","contextMenu");this.contextMenuDiv.style.display="none";this.contextMenuDiv.style.position='absolute';this.contextMenuDiv.style.zindex=1000;this.contextMenuDiv.style.left='0px';this.contextMenuDiv.style.top='0px';this.contextMenuDiv.unselectable="on";document.body.appendChild(this.contextMenuDiv);defParam("commandhandler","");defParam("spacer_image","images/spacer.gif");this.items=new Array();this.settings=settings;this.html="";if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0){this.pop=window.createPopup();doc=this.pop.document;doc.open();doc.write('');doc.close();}};ContextMenu.prototype.clearAll=function(){this.html="";this.contextMenuDiv.innerHTML="";};ContextMenu.prototype.addSeparator=function(){this.html+='';};ContextMenu.prototype.addItem=function(icon,title,command,value,disabled){if(title.charAt(0)=='$')title=tinyMCE.getLang(title.substring(1));var onMouseDown='';var html='';if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0)onMouseDown='contextMenu.execCommand(\''+command+'\', \''+value+'\');return false;';else onMouseDown=this.settings['commandhandler']+'(\''+command+'\', \''+value+'\');return false;';if(icon=="")icon=this.settings['spacer_image'];if(!disabled)html+='';else html+='';html+='';html+='
';html+=title;html+='
';html+='';this.html+=html;};ContextMenu.prototype.show=function(x,y){if(this.html=="")return;var html='';html+='';html+=this.html;html+='
';this.contextMenuDiv.innerHTML=html;if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0){var width,height;this.contextMenuDiv.style.display="block";width=this.contextMenuDiv.offsetWidth;height=this.contextMenuDiv.offsetHeight;this.contextMenuDiv.style.display="none";this.pop.document.body.innerHTML='
'+html+"
";this.pop.document.tinyMCE=tinyMCE;this.pop.document.contextMenu=this;this.pop.show(x,y,width,height);}else{this.contextMenuDiv.style.left=x+'px';this.contextMenuDiv.style.top=y+'px';this.contextMenuDiv.style.display="block";}};ContextMenu.prototype.hide=function(){if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0)this.pop.hide();else this.contextMenuDiv.style.display="none";};ContextMenu.prototype.execCommand=function(command,value){eval(this.settings['commandhandler']+"(command, value);");}; \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js new file mode 100644 index 0000000000..ab8be20dc4 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js @@ -0,0 +1,288 @@ +/* Import plugin specific language pack */ +//tinyMCE.importPluginLanguagePack('contextmenu', 'en,zh_cn,cs,fa,fr_ca,fr,de'); +if (!tinyMCE.settings['contextmenu_skip_plugin_css']) + tinyMCE.loadCSS(tinyMCE.baseURL + "/plugins/contextmenu/contextmenu.css"); + +// Global contextmenu class instance +var TinyMCE_contextmenu_contextMenu = null; + +function TinyMCE_contextmenu_initInstance(inst) { + // Is not working on MSIE 5.0 + if (tinyMCE.isMSIE5_0) + return; + + // Add hide event handles + tinyMCE.addEvent(inst.getDoc(), "click", TinyMCE_contextmenu_hideContextMenu); + tinyMCE.addEvent(inst.getDoc(), "keypress", TinyMCE_contextmenu_hideContextMenu); + tinyMCE.addEvent(inst.getDoc(), "keydown", TinyMCE_contextmenu_hideContextMenu); + tinyMCE.addEvent(document, "click", TinyMCE_contextmenu_hideContextMenu); + tinyMCE.addEvent(document, "keypress", TinyMCE_contextmenu_hideContextMenu); + tinyMCE.addEvent(document, "keydown", TinyMCE_contextmenu_hideContextMenu); + + var contextMenu = new ContextMenu({ + commandhandler : "TinyMCE_contextmenu_commandHandler", + spacer_image : tinyMCE.baseURL + "/plugins/contextmenu/images/spacer.gif" + }); + + // Register global reference + TinyMCE_contextmenu_contextMenu = contextMenu; + + // Attach contextmenu event + if (tinyMCE.isGecko) { + tinyMCE.addEvent(inst.getDoc(), "contextmenu", function(e) {TinyMCE_contextmenu_showContextMenu(tinyMCE.isMSIE ? inst.contentWindow.event : e, inst);}); + } else + tinyMCE.addEvent(inst.getDoc(), "contextmenu", TinyMCE_contextmenu_onContextMenu); +} + +function TinyMCE_contextmenu_onContextMenu(e) { + var elm = tinyMCE.isMSIE ? e.srcElement : e.target; + var targetInst, body; + + // Find instance + if ((body = tinyMCE.getParentElement(elm, "body")) != null) { + for (var n in tinyMCE.instances) { + var inst = tinyMCE.instances[n]; + + if (body == inst.getBody()) { + targetInst = inst; + break; + } + } + + return TinyMCE_contextmenu_showContextMenu(tinyMCE.isMSIE ? targetInst.contentWindow.event : e, targetInst); + } +} + +function TinyMCE_contextmenu_showContextMenu(e, inst) { + function getAttrib(elm, name) { + return elm.getAttribute(name) ? elm.getAttribute(name) : ""; + } + + var x, y, elm, contextMenu; + var pos = tinyMCE.getAbsPosition(inst.iframeElement); + + x = tinyMCE.isMSIE ? e.screenX : pos.absLeft + (e.pageX - inst.getBody().scrollLeft); + y = tinyMCE.isMSIE ? e.screenY : pos.absTop + (e.pageY - inst.getBody().scrollTop); + elm = tinyMCE.isMSIE ? e.srcElement : e.target; + contextMenu = TinyMCE_contextmenu_contextMenu; + contextMenu.inst = inst; + + // Mozilla needs some time + window.setTimeout(function () { + var theme = tinyMCE.getParam("theme"); + + contextMenu.clearAll(); + var sel = inst.getSelectedText().length != 0 || elm.nodeName == "IMG"; + + // Default items + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_cut_desc", "Cut", "", !sel); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_copy_desc", "Copy", "", !sel); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_paste_desc", "Paste", "", false); + + // Get element + elm = tinyMCE.getParentElement(elm, "img,table,td"); + if (elm) { + switch (elm.nodeName) { + case "IMG": + contextMenu.addSeparator(); + + // If flash + if (tinyMCE.getAttrib(elm, 'name', '').indexOf('mce_plugin_flash') == 0) + contextMenu.addItem(tinyMCE.baseURL + "/plugins/flash/images/flash.gif", "$lang_flash_props", "mceFlash"); + else + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/image.gif", "$lang_image_props_desc", "mceImage"); + break; + + case "TABLE": + case "TD": + // Is table plugin loaded + if (typeof(TinyMCE_table_getControlHTML) != "undefined") { + var colspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "colspan"); + var rowspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "rowspan"); + + colspan = colspan == "" ? "1" : colspan; + rowspan = rowspan == "" ? "1" : rowspan; + + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_table_cut_row_desc", "mceTableCutRow"); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_table_copy_row_desc", "mceTableCopyRow"); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_before_desc", "mceTablePasteRowBefore", "", inst.tableRowClipboard == null); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_after_desc", "mceTablePasteRowAfter", "", inst.tableRowClipboard == null); + +/* contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/left.gif", "$lang_justifyleft_desc", "JustifyLeft", "", false); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/center.gif", "$lang_justifycenter_desc", "JustifyCenter", "", false); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/right.gif", "$lang_justifyright_desc", "JustifyRight", "", false); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/full.gif", "$lang_justifyfull_desc", "JustifyFull", "", false);*/ + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_props_desc", "mceInsertTable"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_cell_props.gif", "$lang_table_cell_desc", "mceTableCellProps"); + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_row_props.gif", "$lang_table_row_desc", "mceTableRowProps"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_before.gif", "$lang_table_insert_row_before_desc", "mceTableInsertRowBefore"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_after.gif", "$lang_table_insert_row_after_desc", "mceTableInsertRowAfter"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_row.gif", "$lang_table_delete_row_desc", "mceTableDeleteRow"); + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_before.gif", "$lang_table_insert_col_before_desc", "mceTableInsertColBefore"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_after.gif", "$lang_table_insert_col_after_desc", "mceTableInsertColAfter"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_col.gif", "$lang_table_delete_col_desc", "mceTableDeleteCol"); + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_split_cells.gif", "$lang_table_split_cells_desc", "mceTableSplitCells", "", (colspan == "1" && rowspan == "1")); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_merge_cells.gif", "$lang_table_merge_cells_desc", "mceTableMergeCells", "", false); + } + break; + } + } + + contextMenu.show(x, y); + }, 10); + + // Cancel default handeling + tinyMCE.cancelEvent(e); + return false; +} + +function TinyMCE_contextmenu_hideContextMenu() { + TinyMCE_contextmenu_contextMenu.hide(); + + return true; +} + +function TinyMCE_contextmenu_commandHandler(command, value) { + TinyMCE_contextmenu_contextMenu.hide(); + + // UI must be true on these + var ui = false; + if (command == "mceInsertTable" || command == "mceTableCellProps" || command == "mceTableRowProps" || command == "mceTableMergeCells") + ui = true; + + TinyMCE_contextmenu_contextMenu.inst.execCommand(command, ui); +} + +// Context menu class + +function ContextMenu(settings) { + // Default value function + function defParam(key, def_val) { + settings[key] = typeof(settings[key]) != "undefined" ? settings[key] : def_val; + } + + var self = this; + + this.isMSIE = (navigator.appName == "Microsoft Internet Explorer"); + + // Setup contextmenu div + this.contextMenuDiv = document.createElement("div"); + this.contextMenuDiv.className = "contextMenu"; + this.contextMenuDiv.setAttribute("class", "contextMenu"); + this.contextMenuDiv.style.display = "none"; + this.contextMenuDiv.style.position = 'absolute'; + this.contextMenuDiv.style.zindex = 1000; + this.contextMenuDiv.style.left = '0px'; + this.contextMenuDiv.style.top = '0px'; + this.contextMenuDiv.unselectable = "on"; + + document.body.appendChild(this.contextMenuDiv); + + // Setup default values + defParam("commandhandler", ""); + defParam("spacer_image", "images/spacer.gif"); + + this.items = new Array(); + this.settings = settings; + this.html = ""; + + // IE Popup + if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0) { + this.pop = window.createPopup(); + doc = this.pop.document; + doc.open(); + doc.write(''); + doc.close(); + } +}; + +ContextMenu.prototype.clearAll = function() { + this.html = ""; + this.contextMenuDiv.innerHTML = ""; +}; + +ContextMenu.prototype.addSeparator = function() { + this.html += ''; +}; + +ContextMenu.prototype.addItem = function(icon, title, command, value, disabled) { + if (title.charAt(0) == '$') + title = tinyMCE.getLang(title.substring(1)); + + var onMouseDown = ''; + var html = ''; + + if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0) + onMouseDown = 'contextMenu.execCommand(\'' + command + '\', \'' + value + '\');return false;'; + else + onMouseDown = this.settings['commandhandler'] + '(\'' + command + '\', \'' + value + '\');return false;'; + + if (icon == "") + icon = this.settings['spacer_image']; + + if (!disabled) + html += ''; + else + html += ''; + + html += ''; + html += '
'; + + // Add text + html += title; + + html += '
'; + html += ''; + + // Add to main + this.html += html; +}; + +ContextMenu.prototype.show = function(x, y) { + if (this.html == "") + return; + + var html = ''; + + html += ''; + html += this.html; + html += '
'; + + this.contextMenuDiv.innerHTML = html; + + if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0) { + var width, height; + + // Get dimensions + this.contextMenuDiv.style.display = "block"; + width = this.contextMenuDiv.offsetWidth; + height = this.contextMenuDiv.offsetHeight; + this.contextMenuDiv.style.display = "none"; + + // Setup popup and show + this.pop.document.body.innerHTML = '
' + html + "
"; + this.pop.document.tinyMCE = tinyMCE; + this.pop.document.contextMenu = this; + this.pop.show(x, y, width, height); + } else { + this.contextMenuDiv.style.left = x + 'px'; + this.contextMenuDiv.style.top = y + 'px'; + this.contextMenuDiv.style.display = "block"; + } +}; + +ContextMenu.prototype.hide = function() { + if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0) + this.pop.hide(); + else + this.contextMenuDiv.style.display = "none"; +}; + +ContextMenu.prototype.execCommand = function(command, value) { + eval(this.settings['commandhandler'] + "(command, value);"); +}; diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js new file mode 100644 index 0000000000..fb26cdbafd --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js @@ -0,0 +1,2 @@ +/* Import plugin specific language pack */ + tinyMCE.importPluginLanguagePack('directionality','en,sv');function TinyMCE_directionality_getControlHTML(control_name){var safariPatch='" onclick="';if(tinyMCE.isSafari)safariPatch="";switch(control_name){case "ltr":return '';case "rtl":return '';}return "";}function TinyMCE_directionality_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceDirectionLTR":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","ltr");tinyMCE.triggerNodeChange(false);return true;case "mceDirectionRTL":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","rtl");tinyMCE.triggerNodeChange(false);return true;}return false;}function TinyMCE_directionality_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):"";}tinyMCE.switchClassSticky(editor_id+'_ltr','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_rtl','mceButtonNormal');if(node==null)return;var elm=tinyMCE.getParentElement(node,"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(!elm)return;var dir=getAttrib(elm,"dir");if(dir=="ltr"||dir=="")tinyMCE.switchClassSticky(editor_id+'_ltr','mceButtonSelected');else tinyMCE.switchClassSticky(editor_id+'_rtl','mceButtonSelected');return true;} \ No newline at end of file diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js new file mode 100644 index 0000000000..2f3fcbb894 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js @@ -0,0 +1,71 @@ +/* Import plugin specific language pack */ +tinyMCE.importPluginLanguagePack('directionality', 'en,sv'); + +function TinyMCE_directionality_getControlHTML(control_name) { + var safariPatch = '" onclick="'; + + if (tinyMCE.isSafari) + safariPatch = ""; + + switch (control_name) { + case "ltr": + return ''; + + case "rtl": + return ''; + } + + return ""; +} + +function TinyMCE_directionality_execCommand(editor_id, element, command, user_interface, value) { + // Handle commands + switch (command) { + case "mceDirectionLTR": + var inst = tinyMCE.getInstanceById(editor_id); + var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address"); + + if (elm) + elm.setAttribute("dir", "ltr"); + + tinyMCE.triggerNodeChange(false); + return true; + + case "mceDirectionRTL": + var inst = tinyMCE.getInstanceById(editor_id); + var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address"); + + if (elm) + elm.setAttribute("dir", "rtl"); + + tinyMCE.triggerNodeChange(false); + return true; + } + + // Pass to next handler in chain + return false; +} + +function TinyMCE_directionality_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) { + function getAttrib(elm, name) { + return elm.getAttribute(name) ? elm.getAttribute(name) : ""; + } + + tinyMCE.switchClassSticky(editor_id + '_ltr', 'mceButtonNormal'); + tinyMCE.switchClassSticky(editor_id + '_rtl', 'mceButtonNormal'); + + if (node == null) + return; + + var elm = tinyMCE.getParentElement(node, "p,div,td,h1,h2,h3,h4,h5,h6,pre,address"); + if (!elm) + return; + + var dir = getAttrib(elm, "dir"); + if (dir == "ltr" || dir == "") + tinyMCE.switchClassSticky(editor_id + '_ltr', 'mceButtonSelected'); + else + tinyMCE.switchClassSticky(editor_id + '_rtl', 'mceButtonSelected'); + + return true; +} diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/readme.txt b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/readme.txt new file mode 100644 index 0000000000..a93f857817 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/directionality/readme.txt @@ -0,0 +1,16 @@ + Directionality plugin for TinyMCE +------------------------------ + +This plugin adds directionality icons to TinyMCE that enables TinyMCE to better handle languages that is written from right to left. + +Installation instructions: + * Add plugin to TinyMCE plugin option list example: plugins : "directionality". + * Add the ltr, rtl button names to button list, example: theme_advanced_buttons3_add : "ltr,rtl". + +Initialization example: + tinyMCE.init({ + theme : "advanced", + mode : "textareas", + plugins : "directionality", + theme_advanced_buttons3_add : "ltr,rtl" + }); diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/readme.txt b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/readme.txt new file mode 100644 index 0000000000..9192b26a5a --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/plugins/readme.txt @@ -0,0 +1 @@ +This is the location you place TinyMCE plugins. diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/tiny_mce.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/tiny_mce.js new file mode 100644 index 0000000000..dbb80d9622 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/tiny_mce.js @@ -0,0 +1,12 @@ +/** + * $RCSfile$ + * $Revision$ + * $Date$ + * + * @author Moxiecode + * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved. + */ + function TinyMCE(){this.instances=new Array();this.stickyClassesLookup=new Array();this.windowArgs=new Array();this.loadedFiles=new Array();this.configs=new Array();this.currentConfig=0;this.eventHandlers=new Array();this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.isMSIE5=this.isMSIE&&(navigator.userAgent.indexOf('MSIE 5')!=-1);this.isMSIE5_0=this.isMSIE&&(navigator.userAgent.indexOf('MSIE 5.0')!=-1);this.isGecko=navigator.userAgent.indexOf('Gecko')!=-1;this.isSafari=navigator.userAgent.indexOf('Safari')!=-1;if(this.isSafari)alert("Safari support is very limited and should be considered experimental.\nSo there is no need to even submit bugreports on this early version.");this.idCounter=0;};TinyMCE.prototype.defParam=function(key,def_val){this.settings[key]=tinyMCE.getParam(key,def_val);};TinyMCE.prototype.init=function(settings){var theme;this.settings=settings;if(typeof(document.execCommand)=='undefined')return;if(!tinyMCE.baseURL){var elements=document.getElementsByTagName('script');for(var i=0;i');this.loadedFiles[this.loadedFiles.length]=url;};TinyMCE.prototype.loadCSS=function(url){for(var i=0;i');this.loadedFiles[this.loadedFiles.length]=url;};TinyMCE.prototype.importCSS=function(doc,css_file){if(tinyMCE.isMSIE)var styleSheet=doc.createStyleSheet(css_file);else{var elm=doc.createElement("link");elm.rel="stylesheet";elm.href=css_file;if(headArr=doc.getElementsByTagName("head"))headArr[0].appendChild(elm);}};TinyMCE.prototype.confirmAdd=function(e,settings){var elm=tinyMCE.isMSIE?event.srcElement:e.target;var elementId=elm.name?elm.name:elm.id;tinyMCE.settings=settings;if(!elm.getAttribute('mce_noask')&&confirm(tinyMCELang['lang_edit_confirm']))tinyMCE.addMCEControl(elm,elementId);elm.setAttribute('mce_noask','true');};TinyMCE.prototype.queryInstanceCommandValue=function(editor_id,command){var inst=tinyMCE.getInstanceById(editor_id);if(inst)return inst.getDoc().queryCommandValue(command);return null;};TinyMCE.prototype.queryInstanceCommandState=function(editor_id,command){var inst=tinyMCE.getInstanceById(editor_id);if(inst)return inst.getDoc().queryCommandState(command);return null;};TinyMCE.prototype.updateContent=function(form_element_name){var formElement=document.getElementById(form_element_name);for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];inst.switchSettings();if(inst.formElement==formElement){var doc=inst.getDoc();tinyMCE._setHTML(doc,inst.formElement.value);if(!tinyMCE.isMSIE)doc.body.innerHTML=tinyMCE._cleanupHTML(doc,this.settings,doc.body,inst.visualAid);}}};TinyMCE.prototype.addMCEControl=function(replace_element,form_element_name,target_document){var id="mce_editor_"+tinyMCE.idCounter++;var inst=new TinyMCEControl(tinyMCE.settings);inst.editorId=id;this.instances[id]=inst;inst.onAdd(replace_element,form_element_name,target_document);};TinyMCE.prototype.triggerSave=function(skip_cleanup,skip_callback){for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];inst.switchSettings();tinyMCE.settings['preformatted']=false;if(typeof(skip_cleanup)=="undefined")skip_cleanup=false;if(typeof(skip_callback)=="undefined")skip_callback=false;tinyMCE._setHTML(inst.getDoc(),inst.getBody().innerHTML);var htm=skip_cleanup?inst.getBody().innerHTML:tinyMCE._cleanupHTML(inst.getDoc(),this.settings,inst.getBody(),this.visualAid,true);if(tinyMCE.settings["encoding"]=="xml"||tinyMCE.settings["encoding"]=="html")htm=tinyMCE.convertStringToXML(htm);if(!skip_callback&&tinyMCE.settings['save_callback']!="")var content=eval(tinyMCE.settings['save_callback']+"(inst.formTargetElementId,htm,inst.getBody());");if((typeof(content)!="undefined")&&content!=null)htm=content;htm=tinyMCE.regexpReplace(htm,"(","(","gi");htm=tinyMCE.regexpReplace(htm,")",")","gi");htm=tinyMCE.regexpReplace(htm,";",";","gi");htm=tinyMCE.regexpReplace(htm,""",""","gi");htm=tinyMCE.regexpReplace(htm,"^","^","gi");if(inst.formElement)inst.formElement.value=htm;}};TinyMCE.prototype._convertOnClick=function(node){if(tinyMCE.isMSIE5)return;var elms=node.getElementsByTagName("a");for(var i=0;i","gi");content=tinyMCE.regexpReplace(content,"\r","
","gi");content=tinyMCE.regexpReplace(content,"\n","
","gi");}content=tinyMCE._customCleanup("insert_to_editor",content);if(tinyMCE.isMSIE){window.setInterval('try{tinyMCE.getCSSClasses(document.frames["'+editor_id+'"].document, "'+editor_id+'");}catch(e){}',500);if(tinyMCE.settings["force_br_newlines"])document.frames[editor_id].document.styleSheets[0].addRule("p","margin: 0px;");var body=document.frames[editor_id].document.body;tinyMCE.addEvent(body,"beforepaste",TinyMCE.prototype.eventPatch);tinyMCE.addEvent(body,"beforecut",TinyMCE.prototype.eventPatch);tinyMCE.addEvent(body,"paste",TinyMCE.prototype.eventPatch);body.editorId=editor_id;}if(!tinyMCE.isMSIE){var contentElement=inst.getDoc().createElement("body");var doc=inst.getDoc();contentElement.innerHTML=content;if(tinyMCE.settings['force_p_newlines'])content=content.replace(new RegExp('<>','g'),"");if(tinyMCE.settings['cleanup_on_startup'])inst.getBody().innerHTML=tinyMCE._cleanupHTML(doc,this.settings,contentElement);else{content=tinyMCE.regexpReplace(content,"","","gi");content=tinyMCE.regexpReplace(content,"","","gi");inst.getBody().innerHTML=content;}inst.convertAllRelativeURLs();}else{if(tinyMCE.settings['cleanup_on_startup']){tinyMCE._setHTML(inst.getDoc(),content);eval('try {inst.getBody().innerHTML = tinyMCE._cleanupHTML(inst.contentDocument, this.settings, inst.getBody());} catch(e) {}');}else inst.getBody().innerHTML=content;}tinyMCE._convertOnClick(inst.getBody());var parentElm=document.getElementById(inst.editorId+'_parent');if(parentElm.lastChild.nodeName.toLowerCase()=="input")inst.formElement=parentElm.lastChild;else inst.formElement=parentElm.nextSibling;tinyMCE.handleVisualAid(inst.getBody(),true,tinyMCE.settings['visual']);tinyMCE.executeCallback('setupcontent_callback','_setupContent',0,editor_id,inst.getBody(),inst.getDoc());if(!tinyMCE.isMSIE)TinyMCE.prototype.addEventHandlers(editor_id);inst.startContent=inst.getBody().innerHTML;tinyMCE.selectedInstance=inst;tinyMCE.selectedElement=inst.contentWindow.document.body;tinyMCE.triggerNodeChange(false,true);tinyMCE._customCleanup("insert_to_editor_dom",inst.contentWindow.document.body);};TinyMCE.prototype.cancelEvent=function(e){if(tinyMCE.isMSIE){e.returnValue=false;e.cancelBubble=true;}else e.preventDefault();};TinyMCE.prototype.removeTinyMCEFormElements=function(form_obj){for(var i=0;i");rng.collapse(false);rng.select();tinyMCE.triggerNodeChange(false);return false;}}if(e.keyCode==8||e.keyCode==46){tinyMCE.selectedElement=e.target;tinyMCE.linkElement=tinyMCE.getParentElement(e.target,"a");tinyMCE.imgElement=tinyMCE.getParentElement(e.target,"img");tinyMCE.triggerNodeChange(false);}return false;break;case "keyup":case "keydown":if(e.target.editorId)tinyMCE.selectedInstance=tinyMCE.instances[e.target.editorId];else return;if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.switchSettings();if(tinyMCE.isGecko&&tinyMCE.settings['force_p_newlines']&&(e.keyCode==8||e.keyCode==46)&&!e.shiftKey){if(tinyMCE.selectedInstance._handleBackSpace(e.type)){e.preventDefault();return false;}}tinyMCE.selectedElement=null;tinyMCE.selectedNode=null;var elm=tinyMCE.selectedInstance.getFocusElement();tinyMCE.linkElement=tinyMCE.getParentElement(elm,"a");tinyMCE.imgElement=tinyMCE.getParentElement(elm,"img");tinyMCE.selectedElement=elm;if(tinyMCE.isGecko&&e.type=="keyup"&&e.keyCode==9)tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(),true,tinyMCE.settings['visual']);if(tinyMCE.isGecko&&tinyMCE.settings['document_base_url']!=""+document.location.href&&e.type=="keyup"&&e.ctrlKey&&e.keyCode==86)tinyMCE.selectedInstance.fixBrokenURLs();if(tinyMCE.isMSIE&&tinyMCE.settings['custom_undo_redo']){var keys=new Array(13,45,36,35,33,34,37,38,39,40);var posKey=false;for(var i=0;i18&&e.keyCode!=255)){tinyMCE.selectedInstance.execCommand("mceAddUndoLevel");tinyMCE.selectedInstance.typing=true;tinyMCE.triggerNodeChange(false);}if(posKey&&e.type=="keyup")tinyMCE.triggerNodeChange(false);var keys=new Array(8,46);for(var i=0;i0){for(var i=0;i"+this.convertStringToXML(String.fromCharCode(160))+"";if(tinyMCE.isMSIE&&elementName=="script")return "<"+elementName+elementAttribs+">"+node.text+"";if(node.hasChildNodes()){if(elementName=="p"&&tinyMCE.cleanup_force_br_newlines)output+="";else output+="<"+elementName+elementAttribs+">";for(var i=0;i
";else output+="";}else{if(openTag)output+="<"+elementName+elementAttribs+">";else{output+="<"+elementName+elementAttribs+" />";}}return output;case 3:if(node.parentNode.nodeName.toLowerCase()=="script")return node.nodeValue;return this.convertStringToXML(node.nodeValue);case 8:return "";default:return "[UNKNOWN NODETYPE "+node.nodeType+"]";}};TinyMCE.prototype.convertStringToXML=function(html_data){var output="";for(var i=0;i127)output+='&#'+chr+";";else output+=String.fromCharCode(chr);continue;}if(tinyMCE.settings['entity_encoding']=="raw"){output+=String.fromCharCode(chr);continue;}if(typeof(tinyMCE.cleanup_entities["c"+chr])!='undefined'&&tinyMCE.cleanup_entities["c"+chr]!='')output+='&'+tinyMCE.cleanup_entities["c"+chr]+';';else output+=''+String.fromCharCode(chr);}return output;};TinyMCE.prototype._getCleanupElementName=function(chunk){var pos;if(chunk.charAt(0)=='+')chunk=chunk.substring(1);if((pos=chunk.indexOf('/'))!=-1)chunk=chunk.substring(0,pos);if((pos=chunk.indexOf('['))!=-1)chunk=chunk.substring(0,pos);return chunk;};TinyMCE.prototype._initCleanup=function(){var validElements=tinyMCE.settings["valid_elements"];validElements=validElements.split(',');var extendedValidElements=tinyMCE.settings["extended_valid_elements"];extendedValidElements=extendedValidElements.split(',');for(var i=0;i[ \n\r]*
[ \n\r]*

','
','gi');element.innerHTML=tinyMCE.regexpReplace(element.innerHTML,'','','gi');}var html=this.cleanupNode(element);if(tinyMCE.settings['debug'])alert("Cleanup process executed in: "+(new Date().getTime()-startTime)+" ms.");html=tinyMCE.regexpReplace(html,'


','
');html=tinyMCE.regexpReplace(html,'

 


 

','
');if(!tinyMCE.isMSIE)html=html.replace(new RegExp('','g'),"");if(tinyMCE.settings['apply_source_formatting']){html=html.replace(new RegExp('<(p|div)([^>]*)>','g'),"\n<$1$2>\n");html=html.replace(new RegExp('<\/(p|div)([^>]*)>','g'),"\n\n");html=html.replace(new RegExp('
','g'),"
\n");}if(tinyMCE.settings['force_br_newlines']){var re=new RegExp('

 

','g');html=html.replace(re,"
");}if(tinyMCE.settings['force_p_newlines']){var re=new RegExp('<>','g');html=html.replace(re,"");}if(tinyMCE.settings['remove_linebreaks'])html=html.replace(new RegExp('\r|\n','g'),' ');html=tinyMCE._customCleanup(on_save?"get_from_editor":"insert_to_editor",html);var chk=tinyMCE.regexpReplace(html,"[ \t\r\n]","");if(chk=="
"||chk=="
"||chk=="

 

"||chk=="

 

"||chk=="

")html="";if(tinyMCE.settings["preformatted"])return "
"+html+"
";return html;};TinyMCE.prototype.setAttrib=function(element,name,value,no_fix_value){if(!no_fix_value&&value!=null){var re=new RegExp('[^0-9%]','g');value=value.replace(re,'');}if(value!=null&&value!="")element.setAttribute(name,value);else element.removeAttribute(name);if(value!=null&&value!="")element.setAttribute(name,value);else element.removeAttribute(name);};TinyMCE.prototype.insertLink=function(href,target,title,onclick){this.execCommand("mceAddUndoLevel");if(this.selectedInstance&&this.selectedElement&&this.selectedElement.nodeName.toLowerCase()=="img"){var doc=this.selectedInstance.getDoc();var linkElement=tinyMCE.getParentElement(this.selectedElement,"a");var newLink=false;if(!linkElement){linkElement=doc.createElement("a");newLink=true;}href=eval(tinyMCE.settings['urlconverter_callback']+"(href, linkElement);");tinyMCE.setAttrib(linkElement,'href',href);tinyMCE.setAttrib(linkElement,'target',target);tinyMCE.setAttrib(linkElement,'title',title);tinyMCE.setAttrib(linkElement,'mce_onclick',onclick);if(newLink){linkElement.appendChild(this.selectedElement.cloneNode(true));this.selectedElement.parentNode.replaceChild(linkElement,this.selectedElement);}return;}if(!this.linkElement&&this.selectedInstance){this.selectedInstance.contentDocument.execCommand("createlink",false,"#mce_temp_url#");tinyMCE.linkElement=this.getElementByAttributeValue(this.selectedInstance.contentDocument.body,"a","href","#mce_temp_url#");var elementArray=this.getElementsByAttributeValue(this.selectedInstance.contentDocument.body,"a","href","#mce_temp_url#");for(var i=0;i=strTok2.length){for(var i=0;i=strTok2.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;break;}}}if(strTok1.length=strTok1.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;break;}}}if(breakPoint==1)return url_to_relative;for(var i=0;i<(strTok1.length-(breakPoint-1));i++)outputString+="../";for(var i=breakPoint-1;i=0;i--){if(baseURLParts[i].length==0)continue;newBaseURLParts[newBaseURLParts.length]=baseURLParts[i];}baseURLParts=newBaseURLParts.reverse();var newRelURLParts=new Array();var numBack=0;for(var i=relURLParts.length-1;i>=0;i--){if(relURLParts[i].length==0||relURLParts[i]==".")continue;if(relURLParts[i]=='..'){numBack++;continue;}if(numBack>0){numBack--;continue;}newRelURLParts[newRelURLParts.length]=relURLParts[i];}relURLParts=newRelURLParts.reverse();var len=baseURLParts.length-numBack;var absPath=(len<=0?"":"/")+baseURLParts.slice(0,len).join('/')+"/"+relURLParts.join('/');var start="",end="";if(baseURL['protocol'])start+=baseURL['protocol']+"://";if(baseURL['host'])start+=baseURL['host'];if(baseURL['port'])start+=":"+baseURL['port'];if(relURL['query'])end+="?"+relURL['query'];if(relURL['anchor'])end+="#"+relURL['anchor'];if(relative_url.charAt(relative_url.length-1)=="/")end+="/";return start+absPath+end;};TinyMCE.prototype.getParam=function(name,default_value,strip_whitespace,split_chr){var value=(typeof(this.settings[name])=="undefined")?default_value:this.settings[name];if(value=="true"||value=="false")return(value=="true");if(strip_whitespace)value=tinyMCE.regexpReplace(value,"[ \t\r\n]","");if(typeof(split_chr)!="undefined"&&split_chr!=null){value=value.split(split_chr);var outArray=new Array();for(var i=0;i0);if(tinyMCE.settings['custom_undo_redo']){undoIndex=inst.undoIndex;undoLevels=inst.undoLevels.length;}tinyMCE.executeCallback('handleNodeChangeCallback','_handleNodeChange',0,editorId,elm,undoIndex,undoLevels,inst.visualAid,anySelection);}}if(this.selectedInstance&&(typeof(focus)=="undefined"||focus))this.selectedInstance.contentWindow.focus();};TinyMCE.prototype._customCleanup=function(type,content){var customCleanup=tinyMCE.settings['cleanup_callback'];if(customCleanup!=""&&eval("typeof("+customCleanup+")")!="undefined")content=eval(customCleanup+"(type, content);");var plugins=tinyMCE.getParam('plugins','',true,',');for(var i=0;i0)className+=" ";className+=classNames[i];}return className;};TinyMCE.prototype.handleVisualAid=function(element,deep,state){if(!element)return;var tableElement=null;switch(element.nodeName.toLowerCase()){case "table":var oldW=element.style.width;var oldH=element.style.height;element.className=tinyMCE.getVisualAidClass(element.className,state&&element.getAttribute("border")==0);element.style.width=oldW;element.style.height=oldH;for(var y=0;y

','g');html_content=html_content.replace(re,"
");}doc.body.innerHTML=html_content;if(tinyMCE.isMSIE&&tinyMCE.settings['fix_content_duplication']){var paras=doc.getElementsByTagName("P");for(var i=0;i<\/o:p>","
");html=tinyMCE.regexpReplace(html," <\/o:p>","");html=tinyMCE.regexpReplace(html,"","");html=tinyMCE.regexpReplace(html,"

<\/p>","");html=tinyMCE.regexpReplace(html,"

<\/p>\r\n

<\/p>","");html=tinyMCE.regexpReplace(html,"

 <\/p>","
");html=tinyMCE.regexpReplace(html,"

\s*(

\s*)?","

");html=tinyMCE.regexpReplace(html,"<\/p>\s*(<\/p>\s*)?","

");}doc.body.innerHTML=html;}};TinyMCE.prototype.getImageSrc=function(str){var pos=-1;if(!str)return "";if((pos=str.indexOf('this.src='))!=-1){var src=str.substring(pos+10);src=src.substring(0,src.indexOf('\''));return src;}return "";};TinyMCE.prototype._getElementById=function(element_id){var elm=document.getElementById(element_id);if(!elm){for(var j=0;j0){var csses=null;eval("try {var csses = tinyMCE.isMSIE ? doc.styleSheets(0).rules : doc.styleSheets[0].cssRules;} catch(e) {}");if(!csses)return new Array();for(var i=0;i0)tinyMCE.cssClasses=output;return output;};TinyMCE.prototype.regexpReplace=function(in_str,reg_exp,replace_str,opts){if(typeof(opts)=="undefined")opts='g';var re=new RegExp(reg_exp,opts);return in_str.replace(re,replace_str);};TinyMCE.prototype.cleanupEventStr=function(str){str=""+str;str=str.replace('function anonymous()\n{\n','');str=str.replace('\n}','');return str;};TinyMCE.prototype.getAbsPosition=function(node){var pos=new Object();pos.absLeft=pos.absTop=0;var parentNode=node;while(parentNode){pos.absLeft+=parentNode.offsetLeft;pos.absTop+=parentNode.offsetTop;parentNode=parentNode.offsetParent;}return pos;};TinyMCE.prototype.openFileBrowser=function(field_name,url,type,win){var cb=tinyMCE.getParam("file_browser_callback");this.setWindowArg("window",win);if(eval('typeof('+cb+')')=="undefined")alert("Callback function: "+cb+" could not be found.");else eval(cb+"(field_name, url, type, win);");};TinyMCE.prototype.getControlHTML=function(control_name){var themePlugins=tinyMCE.getParam('plugins','',true,',');var templateFunction;for(var i=themePlugins.length;i>=0;i--){templateFunction='TinyMCE_'+themePlugins[i]+"_getControlHTML";if(eval("typeof("+templateFunction+")")!='undefined'){var html=eval(templateFunction+"('"+control_name+"');");if(html!="")return tinyMCE.replaceVar(html,"pluginurl",tinyMCE.baseURL+"/plugins/"+themePlugins[i]);}}return eval('TinyMCE_'+tinyMCE.settings['theme']+"_getControlHTML"+"('"+control_name+"');");};TinyMCE.prototype._themeExecCommand=function(editor_id,element,command,user_interface,value){var themePlugins=tinyMCE.getParam('plugins','',true,',');var templateFunction;for(var i=themePlugins.length;i>=0;i--){templateFunction='TinyMCE_'+themePlugins[i]+"_execCommand";if(eval("typeof("+templateFunction+")")!='undefined'){if(eval(templateFunction+"(editor_id, element, command, user_interface, value);"))return true;}}templateFunction='TinyMCE_'+tinyMCE.settings['theme']+"_execCommand";if(eval("typeof("+templateFunction+")")!='undefined')return eval(templateFunction+"(editor_id, element, command, user_interface, value);");return false;};TinyMCE.prototype._getThemeFunction=function(suffix,skip_plugins){if(skip_plugins)return 'TinyMCE_'+tinyMCE.settings['theme']+suffix;var themePlugins=tinyMCE.getParam('plugins','',true,',');var templateFunction;for(var i=themePlugins.length;i>=0;i--){templateFunction='TinyMCE_'+themePlugins[i]+suffix;if(eval("typeof("+templateFunction+")")!='undefined')return templateFunction;}return 'TinyMCE_'+tinyMCE.settings['theme']+suffix;};TinyMCE.prototype.isFunc=function(func_name){if(func_name==null||func_name=="")return false;return eval("typeof("+func_name+")")!="undefined";};TinyMCE.prototype.exec=function(func_name,args){var str=func_name+'(';for(var i=3;i1&&tinyMCE.currentConfig!=this.settings['index']){tinyMCE.settings=this.settings;tinyMCE.currentConfig=this.settings['index'];}};TinyMCEControl.prototype.fixBrokenURLs=function(){var body=this.getBody();var elms=body.getElementsByTagName("img");for(var i=0;i0)rng.selectNodeContents(nodes[0]);else rng.selectNodeContents(node);}else rng.selectNode(node);if(collapse){if(!to_start&&node.nodeType==3){rng.setStart(node,node.nodeValue.length);rng.setEnd(node,node.nodeValue.length);}else rng.collapse(to_start);}sel.removeAllRanges();sel.addRange(rng);}this.scrollToNode(node);tinyMCE.selectedElement=null;if(node.nodeType==1)tinyMCE.selectedElement=node;};TinyMCEControl.prototype.scrollToNode=function(node){var pos=tinyMCE.getAbsPosition(node);var doc=this.getDoc();var scrollX=doc.body.scrollLeft+doc.documentElement.scrollLeft;var scrollY=doc.body.scrollTop+doc.documentElement.scrollTop;var height=tinyMCE.isMSIE?document.getElementById(this.editorId).style.pixelHeight:this.targetElement.clientHeight;if(!tinyMCE.settings['auto_resize']&&!(node.absTop>scrollY&&node.absTop<(scrollY-25+height)))this.contentWindow.scrollTo(pos.absLeft,pos.absTop-height+25);};TinyMCEControl.prototype.getBody=function(){return this.getDoc().body;};TinyMCEControl.prototype.getDoc=function(){return this.contentWindow.document;};TinyMCEControl.prototype.getWin=function(){return this.contentWindow;};TinyMCEControl.prototype.getSel=function(){if(tinyMCE.isMSIE)return this.getDoc().selection;var sel=this.contentWindow.getSelection();if(tinyMCE.isSafari&&!sel.getRangeAt){var newSel=new Object();var doc=this.getDoc();function getRangeAt(idx){var rng=new Object();rng.startContainer=this.focusNode;rng.endContainer=this.anchorNode;rng.commonAncestorContainer=this.focusNode;rng.createContextualFragment=function(html){if(html.charAt(0)=='<'){var elm=doc.createElement("div");elm.innerHTML=html;return elm.firstChild;}return doc.createTextNode("UNSUPPORTED, DUE TO LIMITATIONS IN SAFARI!");};rng.deleteContents=function(){doc.execCommand("Delete",false,"");};return rng;}newSel.focusNode=sel.baseNode;newSel.focusOffset=sel.baseOffset;newSel.anchorNode=sel.extentNode;newSel.anchorOffset=sel.extentOffset;newSel.getRangeAt=getRangeAt;newSel.text=""+sel;newSel.realSelection=sel;newSel.toString=function(){return this.text;};return newSel;}return sel;};TinyMCEControl.prototype.getRng=function(){var sel=this.getSel();if(sel==null)return null;if(tinyMCE.isMSIE)return sel.createRange();return this.getSel().getRangeAt(0);};TinyMCEControl.prototype._insertPara=function(e){function isEmpty(para){function isEmptyHTML(html){return html.replace(new RegExp('[ \t\r\n]+','g'),'').toLowerCase()=="";}if(para.getElementsByTagName("img").length>0)return false;if(para.getElementsByTagName("table").length>0)return false;if(para.getElementsByTagName("hr").length>0)return false;var nodes=tinyMCE.getNodeTree(para,new Array(),3);for(var i=0;i <"+blockName+"> ";paraAfter=body.childNodes[1];}this.selectNode(paraAfter,true,true);return true;}if(startChop.nodeName==blockName)rngBefore.setStart(startChop,0);else rngBefore.setStartBefore(startChop);rngBefore.setEnd(startNode,startOffset);paraBefore.appendChild(rngBefore.cloneContents());rngAfter.setEndAfter(endChop);rngAfter.setStart(endNode,endOffset);var contents=rngAfter.cloneContents();if(contents.firstChild&&contents.firstChild.nodeName==blockName){var nodes=contents.firstChild.childNodes;for(var i=0;i0)rng.pasteHTML('
'+rng.htmlText+"
");tinyMCE.triggerNodeChange();return;}}}switch(command){case "mceSelectNode":this.selectNode(value);tinyMCE.triggerNodeChange();tinyMCE.selectedNode=value;break;case "mceSelectNodeDepth":var parentNode=this.getFocusElement();for(var i=0;parentNode;i++){if(parentNode.nodeName.toLowerCase()=="body")break;if(parentNode.nodeName.toLowerCase()=="#text"){i--;parentNode=parentNode.parentNode;continue;}if(i==value){this.selectNode(parentNode,false);tinyMCE.triggerNodeChange();tinyMCE.selectedNode=parentNode;return;}parentNode=parentNode.parentNode;}break;case "HiliteColor":if(tinyMCE.isGecko){this.getDoc().execCommand("useCSS",false,false);this.getDoc().execCommand('hilitecolor',false,value);this.getDoc().execCommand("useCSS",false,true);}else this.getDoc().execCommand('BackColor',false,value);break;case "Cut":case "Copy":case "Paste":var cmdFailed=false;eval('try {this.getDoc().execCommand(command, user_interface, value);} catch (e) {cmdFailed = true;}');if(tinyMCE.isGecko&&cmdFailed){if(confirm(tinyMCE.getLang('lang_clipboard_msg')))window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');return;}else tinyMCE.triggerNodeChange();break;case "mceSetContent":if(!value)value="";html_content=tinyMCE._customCleanup("insert_to_editor",value);tinyMCE._setHTML(doc,value);doc.body.innerHTML=tinyMCE._cleanupHTML(doc,tinyMCE.settings,doc.body);tinyMCE.handleVisualAid(doc.body,true,this.visualAid);return true;case "mceLink":var selectedText="";if(tinyMCE.isMSIE){var rng=doc.selection.createRange();selectedText=rng.text;}else selectedText=this.getSel().toString();if(!tinyMCE.linkElement){if((tinyMCE.selectedElement.nodeName.toLowerCase()!="img")&&(selectedText.length<=0))return;}var href="",target="",title="",onclick="",action="insert";if(tinyMCE.selectedElement.nodeName.toLowerCase()=="a")tinyMCE.linkElement=tinyMCE.selectedElement;if(tinyMCE.linkElement!=null&&tinyMCE.getAttrib(tinyMCE.linkElement,'href')=="")tinyMCE.linkElement=null;if(tinyMCE.linkElement){href=tinyMCE.getAttrib(tinyMCE.linkElement,'href');target=tinyMCE.getAttrib(tinyMCE.linkElement,'target');title=tinyMCE.getAttrib(tinyMCE.linkElement,'title');onclick=tinyMCE.getAttrib(tinyMCE.linkElement,'mce_onclick');if(onclick=="")onclick=tinyMCE.getAttrib(tinyMCE.linkElement,'onclick');onclick=tinyMCE.cleanupEventStr(onclick);mceRealHref=tinyMCE.getAttrib(tinyMCE.linkElement,'mce_real_href');if(mceRealHref!="")href=mceRealHref;href=eval(tinyMCE.settings['urlconverter_callback']+"(href, tinyMCE.linkElement, true);");action="update";}if(this.settings['insertlink_callback']){var returnVal=eval(this.settings['insertlink_callback']+"(href, target, title, onclick, action);");if(returnVal&&returnVal['href'])tinyMCE.insertLink(returnVal['href'],returnVal['target'],returnVal['title'],returnVal['onclick']);}else{tinyMCE.openWindow(this.insertLinkTemplate,{href:href,target:target,title:title,onclick:onclick,action:action});}break;case "mceImage":var src="",alt="",border="",hspace="",vspace="",width="",height="",align="";var title="",onmouseover="",onmouseout="",action="insert";var img=tinyMCE.imgElement;if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="img"){img=tinyMCE.selectedElement;tinyMCE.imgElement=img;}if(img){if(tinyMCE.getAttrib(img,'name').indexOf('mce_')==0)return;src=tinyMCE.getAttrib(img,'src');alt=tinyMCE.getAttrib(img,'alt');if(alt=="")alt=tinyMCE.getAttrib(img,'title');if(tinyMCE.isGecko){var w=img.style.width;if(w!=null&&w!="")img.setAttribute("width",w);var h=img.style.height;if(h!=null&&h!="")img.setAttribute("height",h);}border=tinyMCE.getAttrib(img,'border');hspace=tinyMCE.getAttrib(img,'hspace');vspace=tinyMCE.getAttrib(img,'vspace');width=tinyMCE.getAttrib(img,'width');height=tinyMCE.getAttrib(img,'height');align=tinyMCE.getAttrib(img,'align');onmouseover=tinyMCE.getAttrib(img,'onmouseover');onmouseout=tinyMCE.getAttrib(img,'onmouseout');title=tinyMCE.getAttrib(img,'title');if(tinyMCE.isMSIE){width=img.attributes['width'].specified?width:"";height=img.attributes['height'].specified?height:"";}onmouseover=tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseover));onmouseout=tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseout));mceRealSrc=tinyMCE.getAttrib(img,'mce_real_src');if(mceRealSrc!="")src=mceRealSrc;src=eval(tinyMCE.settings['urlconverter_callback']+"(src, img, true);");if(onmouseover!="")onmouseover=eval(tinyMCE.settings['urlconverter_callback']+"(onmouseover, img, true);");if(onmouseout!="")onmouseout=eval(tinyMCE.settings['urlconverter_callback']+"(onmouseout, img, true);");action="update";}if(this.settings['insertimage_callback']){var returnVal=eval(this.settings['insertimage_callback']+"(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action);");if(returnVal&&returnVal['src'])tinyMCE.insertImage(returnVal['src'],returnVal['alt'],returnVal['border'],returnVal['hspace'],returnVal['vspace'],returnVal['width'],returnVal['height'],returnVal['align'],returnVal['title'],returnVal['onmouseover'],returnVal['onmouseout']);}else tinyMCE.openWindow(this.insertImageTemplate,{src:src,alt:alt,border:border,hspace:hspace,vspace:vspace,width:width,height:height,align:align,title:title,onmouseover:onmouseover,onmouseout:onmouseout,action:action});break;case "mceCleanupWord":if(tinyMCE.isMSIE){var html=this.getBody().createTextRange().htmlText;if(html.indexOf('="mso')!=-1){tinyMCE._setHTML(this.contentDocument,this.getBody().innerHTML);html=tinyMCE._cleanupHTML(this.contentDocument,this.settings,this.getBody(),this.visualAid);}this.getBody().innerHTML=html;}break;case "mceCleanup":tinyMCE._setHTML(this.contentDocument,this.getBody().innerHTML);this.getBody().innerHTML=tinyMCE._cleanupHTML(this.contentDocument,this.settings,this.getBody(),this.visualAid);tinyMCE.handleVisualAid(this.getBody(),true,this.visualAid);this.repaint();tinyMCE.triggerNodeChange();break;case "mceAnchor":if(!user_interface){var aElm=tinyMCE.getParentElement(this.getFocusElement(),"a","name");if(aElm){if(value==null||value==""){if(tinyMCE.isMSIE){aElm.outerHTML=aElm.innerHTML;}else{var rng=aElm.ownerDocument.createRange();rng.setStartBefore(aElm);rng.setEndAfter(aElm);rng.deleteContents();rng.insertNode(rng.createContextualFragment(aElm.innerHTML));}}else aElm.setAttribute('name',value);}else{this.getDoc().execCommand("fontname",false,"#mce_temp_font#");var elementArray=tinyMCE.getElementsByAttributeValue(this.getBody(),"font","face","#mce_temp_font#");for(var x=0;x0){value=tinyMCE.replaceVar(value,"selection",selectedText);tinyMCE.execCommand('mceInsertContent',false,value);}tinyMCE.triggerNodeChange();break;case "mceSetAttribute":if(typeof(value)=='object'){var targetElms=(typeof(value['targets'])=="undefined")?"p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address":value['targets'];var targetNode=tinyMCE.getParentElement(this.getFocusElement(),targetElms);if(targetNode){targetNode.setAttribute(value['name'],value['value']);tinyMCE.triggerNodeChange();}}break;case "mceSetCSSClass":var selectedText=false;if(tinyMCE.isMSIE){var rng=doc.selection.createRange();selectedText=(rng.text&&rng.text.length>0);}else selectedText=(this.getSel().toString().length>0);if(tinyMCE.selectedNode)tinyMCE.selectedElement=tinyMCE.selectedNode;if(selectedText&&!tinyMCE.selectedNode){this.getDoc().execCommand("RemoveFormat",false,null);if(value==null)return this.execCommand("RemoveFormat",false,null);this.getDoc().execCommand("fontname",false,"#mce_temp_font#");var elementArray=tinyMCE.getElementsByAttributeValue(this.getBody(),"font","face","#mce_temp_font#");for(var x=0;xcustomUndoLevels){for(var i=0;i0){this.undoIndex--;this.getBody().innerHTML=this.undoLevels[this.undoIndex];}tinyMCE.triggerNodeChange();}else this.getDoc().execCommand(command,user_interface,value);break;case "Redo":if(tinyMCE.settings['custom_undo_redo']){if(this.undoIndex<(this.undoLevels.length-1)){this.undoIndex++;this.getBody().innerHTML=this.undoLevels[this.undoIndex];}tinyMCE.triggerNodeChange();}else this.getDoc().execCommand(command,user_interface,value);break;case "mceToggleVisualAid":this.visualAid=!this.visualAid;tinyMCE.handleVisualAid(this.getBody(),true,this.visualAid);tinyMCE.triggerNodeChange();break;case "removeformat":var text=this.getSelectedText();if(tinyMCE.isMSIE){try{win.focus();var rng=doc.selection.createRange();rng.execCommand("RemoveFormat",false,null);rng.pasteHTML(rng.text);}catch(e){}}else this.getDoc().execCommand(command,user_interface,value);if(text.length==0)this.execCommand("mceSetCSSClass",false,"");tinyMCE.triggerNodeChange();break;default:this.getDoc().execCommand(command,user_interface,value);tinyMCE.triggerNodeChange();}};TinyMCEControl.prototype.queryCommandValue=function(command){return this.getDoc().queryCommandValue(command);};TinyMCEControl.prototype.queryCommandState=function(command){return this.getDoc().queryCommandState(command);};TinyMCEControl.prototype.onAdd=function(replace_element,form_element_name,target_document){var targetDoc=target_document?target_document:document;this.targetDoc=targetDoc;tinyMCE.themeURL=tinyMCE.baseURL+"/themes/"+this.settings['theme'];this.settings['themeurl']=tinyMCE.themeURL;if(!replace_element){alert("Error: Could not find the target element.");return false;}var templateFunction=tinyMCE._getThemeFunction('_getInsertLinkTemplate');if(eval("typeof("+templateFunction+")")!='undefined')this.insertLinkTemplate=eval(templateFunction+'(this.settings);');var templateFunction=tinyMCE._getThemeFunction('_getInsertImageTemplate');if(eval("typeof("+templateFunction+")")!='undefined')this.insertImageTemplate=eval(templateFunction+'(this.settings);');var templateFunction=tinyMCE._getThemeFunction('_getEditorTemplate');if(eval("typeof("+templateFunction+")")=='undefined'){alert("Error: Could not find the template function: "+templateFunction);return false;}var editorTemplate=eval(templateFunction+'(this.settings, this.editorId);');var deltaWidth=editorTemplate['delta_width']?editorTemplate['delta_width']:0;var deltaHeight=editorTemplate['delta_height']?editorTemplate['delta_height']:0;var html=''+editorTemplate['html'];var templateFunction=tinyMCE._getThemeFunction('_handleNodeChange',true);if(eval("typeof("+templateFunction+")")!='undefined')this.settings['handleNodeChangeCallback']=templateFunction;html=tinyMCE.replaceVar(html,"editor_id",this.editorId);html=tinyMCE.replaceVar(html,"default_document",tinyMCE.baseURL+"/blank.htm");this.settings['default_document']=tinyMCE.baseURL+"/blank.htm";this.settings['old_width']=this.settings['width'];this.settings['old_height']=this.settings['height'];if(this.settings['width']==-1)this.settings['width']=replace_element.offsetWidth;if(this.settings['height']==-1)this.settings['height']=replace_element.offsetHeight;if(this.settings['width']==0)this.settings['width']=replace_element.style.width;if(this.settings['height']==0)this.settings['height']=replace_element.style.height;if(this.settings['width']==0)this.settings['width']=320;if(this.settings['height']==0)this.settings['height']=240;this.settings['area_width']=parseInt(this.settings['width']);this.settings['area_height']=parseInt(this.settings['height']);this.settings['area_width']+=deltaWidth;this.settings['area_height']+=deltaHeight;if((""+this.settings['width']).indexOf('%')!=-1)this.settings['area_width']="100%";if((""+this.settings['height']).indexOf('%')!=-1)this.settings['area_height']="100%";if((""+replace_element.style.width).indexOf('%')!=-1){this.settings['width']=replace_element.style.width;this.settings['area_width']="100%";}if((""+replace_element.style.height).indexOf('%')!=-1){this.settings['height']=replace_element.style.height;this.settings['area_height']="100%";}html=tinyMCE.applyTemplate(html);this.settings['width']=this.settings['old_width'];this.settings['height']=this.settings['old_height'];this.visualAid=this.settings['visual'];this.formTargetElementId=form_element_name;if(replace_element.nodeName.toLowerCase()=="textarea")this.startContent=replace_element.value;else this.startContent=replace_element.innerHTML;if(replace_element.nodeName.toLowerCase()!="textarea"){this.oldTargetElement=replace_element.cloneNode(true);if(tinyMCE.settings['debug'])html+='';else html+='';html+='';if(!tinyMCE.isMSIE){var rng=replace_element.ownerDocument.createRange();rng.setStartBefore(replace_element);var fragment=rng.createContextualFragment(html);replace_element.parentNode.replaceChild(fragment,replace_element);}else replace_element.outerHTML=html;}else{html+='';this.oldTargetElement=replace_element;if(!tinyMCE.settings['debug'])this.oldTargetElement.style.display="none";if(!tinyMCE.isMSIE){var rng=replace_element.ownerDocument.createRange();rng.setStartBefore(replace_element);var fragment=rng.createContextualFragment(html);replace_element.parentNode.insertBefore(fragment,replace_element);}else replace_element.insertAdjacentHTML("beforeBegin",html);}var dynamicIFrame=false;var tElm=targetDoc.getElementById(this.editorId);if(!tinyMCE.isMSIE){if(tElm&&tElm.nodeName.toLowerCase()=="span"){tElm=tinyMCE._createIFrame(tElm);dynamicIFrame=true;}this.targetElement=tElm;this.iframeElement=tElm;this.contentDocument=tElm.contentDocument;this.contentWindow=tElm.contentWindow;}else{if(tElm&&tElm.nodeName.toLowerCase()=="span")tElm=tinyMCE._createIFrame(tElm);else tElm=targetDoc.frames[this.editorId];this.targetElement=tElm;this.iframeElement=targetDoc.getElementById(this.editorId);this.contentDocument=tElm.window.document;this.contentWindow=tElm.window;this.getDoc().designMode="on";}var doc=this.contentDocument;if(dynamicIFrame){var html=""+''+''+''+''+'blank_page'+''+''+''+''+'';try{this.getDoc().designMode="on";doc.open();doc.write(html);doc.close();}catch(e){this.getDoc().location.href=tinyMCE.baseURL+"/blank.htm";}}if(tinyMCE.isMSIE)window.setTimeout("TinyMCE.prototype.addEventHandlers('"+this.editorId+"');",1);tinyMCE.setupContent(this.editorId,true);return true;};TinyMCEControl.prototype.getFocusElement=function(){if(tinyMCE.isMSIE){var doc=this.getDoc();var rng=doc.selection.createRange();if(rng.collapse)rng.collapse(true);var elm=rng.item?rng.item(0):rng.parentElement();}else{var sel=this.getSel();var elm=(sel&&sel.anchorNode)?sel.anchorNode:null;if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="img")elm=tinyMCE.selectedElement;}return elm;};var tinyMCE=new TinyMCE();var tinyMCELang=new Array();function debug(){var msg="";var elm=document.getElementById("tinymce_debug");if(!elm){var debugDiv=document.createElement("div");debugDiv.setAttribute("className","debugger");debugDiv.className="debugger";debugDiv.innerHTML='\ + Debug output:\ + ';document.body.appendChild(debugDiv);elm=document.getElementById("tinymce_debug");}var args=this.debug.arguments;for(var i=0;i 0 || window.scrollY > 0) { + window.resizeBy(window.innerWidth * 2, window.innerHeight * 2); + window.sizeToContent(); + window.scrollTo(0, 0); + var x = parseInt(screen.width / 2.0) - (window.outerWidth / 2.0); + var y = parseInt(screen.height / 2.0) - (window.outerHeight / 2.0); + window.moveTo(x, y); + } + } +} + +// Add onload trigger +tinyMCE.addEvent(window, "load", TinyMCEPlugin_onLoad); + +// Output Popup CSS class +document.write(''); diff --git a/phpgwapi/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js b/phpgwapi/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js new file mode 100644 index 0000000000..72cefb74f6 --- /dev/null +++ b/phpgwapi/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js @@ -0,0 +1,4738 @@ +/** + * $RCSfile$ + * $Revision$ + * $Date$ + * + * @author Moxiecode + * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved. + */ + +function TinyMCE() { + this.instances = new Array(); + this.stickyClassesLookup = new Array(); + this.windowArgs = new Array(); + this.loadedFiles = new Array(); + this.configs = new Array(); + this.currentConfig = 0; + this.eventHandlers = new Array(); + + // Browser check + this.isMSIE = (navigator.appName == "Microsoft Internet Explorer"); + this.isMSIE5 = this.isMSIE && (navigator.userAgent.indexOf('MSIE 5') != -1); + this.isMSIE5_0 = this.isMSIE && (navigator.userAgent.indexOf('MSIE 5.0') != -1); + this.isGecko = navigator.userAgent.indexOf('Gecko') != -1; + this.isSafari = navigator.userAgent.indexOf('Safari') != -1; + + if (this.isSafari) + alert("Safari support is very limited and should be considered experimental.\nSo there is no need to even submit bugreports on this early version."); + + // TinyMCE editor id instance counter + this.idCounter = 0; +}; + +TinyMCE.prototype.defParam = function(key, def_val) { + this.settings[key] = tinyMCE.getParam(key, def_val); +}; + +TinyMCE.prototype.init = function(settings) { + var theme; + + this.settings = settings; + + // Check if valid browser has execcommand support + if (typeof(document.execCommand) == 'undefined') + return; + + // Get script base path + if (!tinyMCE.baseURL) { + var elements = document.getElementsByTagName('script'); + + for (var i=0; i'); + + this.loadedFiles[this.loadedFiles.length] = url; +}; + +TinyMCE.prototype.loadCSS = function(url) { + for (var i=0; i'); + + this.loadedFiles[this.loadedFiles.length] = url; +}; + +TinyMCE.prototype.importCSS = function(doc, css_file) { + if (tinyMCE.isMSIE) + var styleSheet = doc.createStyleSheet(css_file); + else { + var elm = doc.createElement("link"); + + elm.rel = "stylesheet"; + elm.href = css_file; + + if (headArr = doc.getElementsByTagName("head")) + headArr[0].appendChild(elm); + } +}; + +TinyMCE.prototype.confirmAdd = function(e, settings) { + var elm = tinyMCE.isMSIE ? event.srcElement : e.target; + var elementId = elm.name ? elm.name : elm.id; + + tinyMCE.settings = settings; + + if (!elm.getAttribute('mce_noask') && confirm(tinyMCELang['lang_edit_confirm'])) + tinyMCE.addMCEControl(elm, elementId); + + elm.setAttribute('mce_noask', 'true'); +}; + +TinyMCE.prototype.queryInstanceCommandValue = function(editor_id, command) { + var inst = tinyMCE.getInstanceById(editor_id); + if (inst) + return inst.getDoc().queryCommandValue(command); + + return null; +}; + +TinyMCE.prototype.queryInstanceCommandState = function(editor_id, command) { + var inst = tinyMCE.getInstanceById(editor_id); + if (inst) + return inst.getDoc().queryCommandState(command); + + return null; +}; + +TinyMCE.prototype.updateContent = function(form_element_name) { + // Find MCE instance linked to given form element and copy it's value + var formElement = document.getElementById(form_element_name); + for (var n in tinyMCE.instances) { + var inst = tinyMCE.instances[n]; + + inst.switchSettings(); + + if (inst.formElement == formElement) { + var doc = inst.getDoc(); + + tinyMCE._setHTML(doc, inst.formElement.value); + + if (!tinyMCE.isMSIE) + doc.body.innerHTML = tinyMCE._cleanupHTML(doc, this.settings, doc.body, inst.visualAid); + } + } +}; + +TinyMCE.prototype.addMCEControl = function(replace_element, form_element_name, target_document) { + var id = "mce_editor_" + tinyMCE.idCounter++; + var inst = new TinyMCEControl(tinyMCE.settings); + + inst.editorId = id; + this.instances[id] = inst; + + inst.onAdd(replace_element, form_element_name, target_document); +}; + +TinyMCE.prototype.triggerSave = function(skip_cleanup, skip_callback) { + // Cleanup and set all form fields + for (var n in tinyMCE.instances) { + var inst = tinyMCE.instances[n]; + + inst.switchSettings(); + + tinyMCE.settings['preformatted'] = false; + + // Default to false + if (typeof(skip_cleanup) == "undefined") + skip_cleanup = false; + + // Default to false + if (typeof(skip_callback) == "undefined") + skip_callback = false; + + tinyMCE._setHTML(inst.getDoc(), inst.getBody().innerHTML); + + var htm = skip_cleanup ? inst.getBody().innerHTML : tinyMCE._cleanupHTML(inst.getDoc(), this.settings, inst.getBody(), this.visualAid, true); + + //var htm = tinyMCE._cleanupHTML(inst.getDoc(), tinyMCE.settings, inst.getBody(), false, true); + + if (tinyMCE.settings["encoding"] == "xml" || tinyMCE.settings["encoding"] == "html") + htm = tinyMCE.convertStringToXML(htm); + + if (!skip_callback && tinyMCE.settings['save_callback'] != "") + var content = eval(tinyMCE.settings['save_callback'] + "(inst.formTargetElementId,htm,inst.getBody());"); + + // Use callback content if available + if ((typeof(content) != "undefined") && content != null) + htm = content; + + // Replace some weird entities (Bug: #1056343) + htm = tinyMCE.regexpReplace(htm, "(", "(", "gi"); + htm = tinyMCE.regexpReplace(htm, ")", ")", "gi"); + htm = tinyMCE.regexpReplace(htm, ";", ";", "gi"); + htm = tinyMCE.regexpReplace(htm, """, """, "gi"); + htm = tinyMCE.regexpReplace(htm, "^", "^", "gi"); + + if (inst.formElement) + inst.formElement.value = htm; + } +}; + +TinyMCE.prototype._convertOnClick = function(node) { + // Skip on MSIE < 6+ + if (tinyMCE.isMSIE5) + return; + + // Convert all onclick to mce_onclick + var elms = node.getElementsByTagName("a"); + for (var i=0; i", "gi"); + content = tinyMCE.regexpReplace(content, "\r", "
", "gi"); + content = tinyMCE.regexpReplace(content, "\n", "
", "gi"); + } + + // Call custom cleanup code + content = tinyMCE._customCleanup("insert_to_editor", content); + + if (tinyMCE.isMSIE) { + // Ugly!!! + window.setInterval('try{tinyMCE.getCSSClasses(document.frames["' + editor_id + '"].document, "' + editor_id + '");}catch(e){}', 500); + + if (tinyMCE.settings["force_br_newlines"]) + document.frames[editor_id].document.styleSheets[0].addRule("p", "margin: 0px;"); + + var body = document.frames[editor_id].document.body; + + tinyMCE.addEvent(body, "beforepaste", TinyMCE.prototype.eventPatch); + tinyMCE.addEvent(body, "beforecut", TinyMCE.prototype.eventPatch); + tinyMCE.addEvent(body, "paste", TinyMCE.prototype.eventPatch); + + body.editorId = editor_id; + } + + // Fix for bug #958637 + if (!tinyMCE.isMSIE) { + var contentElement = inst.getDoc().createElement("body"); + var doc = inst.getDoc(); + + contentElement.innerHTML = content; + + // Remove weridness! + if (tinyMCE.settings['force_p_newlines']) + content = content.replace(new RegExp('<>', 'g'), ""); + + if (tinyMCE.settings['cleanup_on_startup']) + inst.getBody().innerHTML = tinyMCE._cleanupHTML(doc, this.settings, contentElement); + else { + // Convert all strong/em to b/i + content = tinyMCE.regexpReplace(content, "", "", "gi"); + content = tinyMCE.regexpReplace(content, "", "", "gi"); + inst.getBody().innerHTML = content; + } + + inst.convertAllRelativeURLs(); + } else { + if (tinyMCE.settings['cleanup_on_startup']) { + tinyMCE._setHTML(inst.getDoc(), content); + // Produces permission denied error in MSIE 5.5 + eval('try {inst.getBody().innerHTML = tinyMCE._cleanupHTML(inst.contentDocument, this.settings, inst.getBody());} catch(e) {}'); + } else + inst.getBody().innerHTML = content; + } + + tinyMCE._convertOnClick(inst.getBody()); + + // Fix for bug #957681 + //inst.getDoc().designMode = inst.getDoc().designMode; + + // Setup element references + var parentElm = document.getElementById(inst.editorId + '_parent'); + if (parentElm.lastChild.nodeName.toLowerCase() == "input") + inst.formElement = parentElm.lastChild; + else + inst.formElement = parentElm.nextSibling; + + tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings['visual']); + tinyMCE.executeCallback('setupcontent_callback', '_setupContent', 0, editor_id, inst.getBody(), inst.getDoc()); + + // Re-add design mode on mozilla + if (!tinyMCE.isMSIE) + TinyMCE.prototype.addEventHandlers(editor_id); + + inst.startContent = inst.getBody().innerHTML; + + // Trigger node change, this call locks buttons for tables and so forth + tinyMCE.selectedInstance = inst; + tinyMCE.selectedElement = inst.contentWindow.document.body; + tinyMCE.triggerNodeChange(false, true); + + // Call custom DOM cleanup + tinyMCE._customCleanup("insert_to_editor_dom", inst.contentWindow.document.body); +}; + +TinyMCE.prototype.cancelEvent = function(e) { + if (tinyMCE.isMSIE) { + e.returnValue = false; + e.cancelBubble = true; + } else + e.preventDefault(); +}; + +TinyMCE.prototype.removeTinyMCEFormElements = function(form_obj) { + // Disable all UI form elements that TinyMCE created + for (var i=0; i"); + rng.collapse(false); + rng.select(); + + tinyMCE.triggerNodeChange(false); + return false; + } + } + + // Backspace or delete + if (e.keyCode == 8 || e.keyCode == 46) { + tinyMCE.selectedElement = e.target; + tinyMCE.linkElement = tinyMCE.getParentElement(e.target, "a"); + tinyMCE.imgElement = tinyMCE.getParentElement(e.target, "img"); + tinyMCE.triggerNodeChange(false); + } + + return false; + break; + + case "keyup": + case "keydown": + if (e.target.editorId) + tinyMCE.selectedInstance = tinyMCE.instances[e.target.editorId]; + else + return; + + if (tinyMCE.selectedInstance) + tinyMCE.selectedInstance.switchSettings(); + + // Handle backspace + if (tinyMCE.isGecko && tinyMCE.settings['force_p_newlines'] && (e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey) { + // Insert P element instead of BR + if (tinyMCE.selectedInstance._handleBackSpace(e.type)) { + // Cancel event + e.preventDefault(); + return false; + } + } + + tinyMCE.selectedElement = null; + tinyMCE.selectedNode = null; + var elm = tinyMCE.selectedInstance.getFocusElement(); + tinyMCE.linkElement = tinyMCE.getParentElement(elm, "a"); + tinyMCE.imgElement = tinyMCE.getParentElement(elm, "img"); + tinyMCE.selectedElement = elm; + + // Update visualaids on tabs + if (tinyMCE.isGecko && e.type == "keyup" && e.keyCode == 9) + tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(), true, tinyMCE.settings['visual']); + + // Run image/link fix on Gecko if diffrent document base on paste + if (tinyMCE.isGecko && tinyMCE.settings['document_base_url'] != "" + document.location.href && e.type == "keyup" && e.ctrlKey && e.keyCode == 86) + tinyMCE.selectedInstance.fixBrokenURLs(); + + // Insert space instead of   +/* if (e.type == "keydown" && e.keyCode == 32) { + if (tinyMCE.selectedInstance._insertSpace()) { + // Cancel event + e.returnValue = false; + e.cancelBubble = true; + return false; + } + }*/ + + // MSIE custom key handling + if (tinyMCE.isMSIE && tinyMCE.settings['custom_undo_redo']) { + // Check if it's a position key press + var keys = new Array(13,45,36,35,33,34,37,38,39,40); + var posKey = false; + for (var i=0; i 18 && e.keyCode != 255)) { + tinyMCE.selectedInstance.execCommand("mceAddUndoLevel"); + tinyMCE.selectedInstance.typing = true; + tinyMCE.triggerNodeChange(false); + } + + if (posKey && e.type == "keyup") + tinyMCE.triggerNodeChange(false); + + var keys = new Array(8,46); // Backspace,Delete + for (var i=0; i 0) { + for (var i=0; i" + this.convertStringToXML(String.fromCharCode(160)) + ""; + + // Is MSIE script element + if (tinyMCE.isMSIE && elementName == "script") + return "<" + elementName + elementAttribs + ">" + node.text + ""; + + // Clean up children + if (node.hasChildNodes()) { + // Force BR + if (elementName == "p" && tinyMCE.cleanup_force_br_newlines) + output += ""; + else + output += "<" + elementName + elementAttribs + ">"; + + for (var i=0; i"; + } else { + // Allways leave anchor elements open + if (openTag) + output += "<" + elementName + elementAttribs + ">"; + else { + // No children + output += "<" + elementName + elementAttribs + " />"; + } + } + + return output; + + case 3: // Text + // Do not convert script elements + if (node.parentNode.nodeName.toLowerCase() == "script") + return node.nodeValue; + + return this.convertStringToXML(node.nodeValue); + + case 8: // Comment + return ""; + + default: // Unknown + return "[UNKNOWN NODETYPE " + node.nodeType + "]"; + } +}; + +TinyMCE.prototype.convertStringToXML = function(html_data) { + var output = ""; + + for (var i=0; i 127) + output += '&#' + chr + ";"; + else + output += String.fromCharCode(chr); + + continue; + } + + // Raw entities + if (tinyMCE.settings['entity_encoding'] == "raw") { + output += String.fromCharCode(chr); + continue; + } + + // Named entities + if (typeof(tinyMCE.cleanup_entities["c" + chr]) != 'undefined' && tinyMCE.cleanup_entities["c" + chr] != '') + output += '&' + tinyMCE.cleanup_entities["c" + chr] + ';'; + else + output += '' + String.fromCharCode(chr); + } + + return output; +}; + +TinyMCE.prototype._getCleanupElementName = function(chunk) { + var pos; + + if (chunk.charAt(0) == '+') + chunk = chunk.substring(1); + + if ((pos = chunk.indexOf('/')) != -1) + chunk = chunk.substring(0, pos); + + if ((pos = chunk.indexOf('[')) != -1) + chunk = chunk.substring(0, pos); + + return chunk; +}; + +TinyMCE.prototype._initCleanup = function() { + // Parse valid elements and attributes + var validElements = tinyMCE.settings["valid_elements"]; + validElements = validElements.split(','); + + // Handle extended valid elements + var extendedValidElements = tinyMCE.settings["extended_valid_elements"]; + extendedValidElements = extendedValidElements.split(','); + for (var i=0; i[ \n\r]*
[ \n\r]*

', '
', 'gi'); + element.innerHTML = tinyMCE.regexpReplace(element.innerHTML, '', '', 'gi'); + } + + var html = this.cleanupNode(element); + + if (tinyMCE.settings['debug']) + alert("Cleanup process executed in: " + (new Date().getTime()-startTime) + " ms."); + + // Remove pesky HR paragraphs + html = tinyMCE.regexpReplace(html, '


', '
'); + html = tinyMCE.regexpReplace(html, '

 


 

', '
'); + + // Remove some mozilla crap + if (!tinyMCE.isMSIE) + html = html.replace(new RegExp('', 'g'), ""); + + if (tinyMCE.settings['apply_source_formatting']) { + html = html.replace(new RegExp('<(p|div)([^>]*)>', 'g'), "\n<$1$2>\n"); + html = html.replace(new RegExp('<\/(p|div)([^>]*)>', 'g'), "\n\n"); + html = html.replace(new RegExp('
', 'g'), "
\n"); + } + + if (tinyMCE.settings['force_br_newlines']) { + var re = new RegExp('

 

', 'g'); + html = html.replace(re, "
"); + } + + if (tinyMCE.settings['force_p_newlines']) { + // Remove weridness! + var re = new RegExp('<>', 'g'); + html = html.replace(re, ""); + } + + if (tinyMCE.settings['remove_linebreaks']) + html = html.replace(new RegExp('\r|\n', 'g'), ' '); + + // Call custom cleanup code + html = tinyMCE._customCleanup(on_save ? "get_from_editor" : "insert_to_editor", html); + + // Emtpy node, return empty + var chk = tinyMCE.regexpReplace(html, "[ \t\r\n]", ""); + if (chk == "
" || chk == "
" || chk == "

 

" || chk == "

 

" || chk == "

") + html = ""; + + if (tinyMCE.settings["preformatted"]) + return "
" + html + "
"; + + return html; +}; + +TinyMCE.prototype.setAttrib = function(element, name, value, no_fix_value) { + if (!no_fix_value && value != null) { + var re = new RegExp('[^0-9%]', 'g'); + value = value.replace(re, ''); + } + + if (value != null && value != "") + element.setAttribute(name, value); + else + element.removeAttribute(name); + + if (value != null && value != "") + element.setAttribute(name, value); + else + element.removeAttribute(name); +}; + +TinyMCE.prototype.insertLink = function(href, target, title, onclick) { + this.execCommand("mceAddUndoLevel"); + + if (this.selectedInstance && this.selectedElement && this.selectedElement.nodeName.toLowerCase() == "img") { + var doc = this.selectedInstance.getDoc(); + var linkElement = tinyMCE.getParentElement(this.selectedElement, "a"); + var newLink = false; + + if (!linkElement) { + linkElement = doc.createElement("a"); + newLink = true; + } + + href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, linkElement);"); + tinyMCE.setAttrib(linkElement, 'href', href); + tinyMCE.setAttrib(linkElement, 'target', target); + tinyMCE.setAttrib(linkElement, 'title', title); + tinyMCE.setAttrib(linkElement, 'mce_onclick', onclick); + + if (newLink) { + linkElement.appendChild(this.selectedElement.cloneNode(true)); + this.selectedElement.parentNode.replaceChild(linkElement, this.selectedElement); + } + + return; + } + + if (!this.linkElement && this.selectedInstance) { + this.selectedInstance.contentDocument.execCommand("createlink", false, "#mce_temp_url#"); + tinyMCE.linkElement = this.getElementByAttributeValue(this.selectedInstance.contentDocument.body, "a", "href", "#mce_temp_url#"); + + var elementArray = this.getElementsByAttributeValue(this.selectedInstance.contentDocument.body, "a", "href", "#mce_temp_url#"); + + for (var i=0; i= strTok2.length) { + for (var i=0; i= strTok2.length || strTok1[i] != strTok2[i]) { + breakPoint = i + 1; + break; + } + } + } + + if (strTok1.length < strTok2.length) { + for (var i=0; i= strTok1.length || strTok1[i] != strTok2[i]) { + breakPoint = i + 1; + break; + } + } + } + + if (breakPoint == 1) + return url_to_relative; + + for (var i=0; i<(strTok1.length-(breakPoint-1)); i++) + outputString += "../"; + + for (var i=breakPoint-1; i=0; i--) { + if (baseURLParts[i].length == 0) + continue; + + newBaseURLParts[newBaseURLParts.length] = baseURLParts[i]; + } + baseURLParts = newBaseURLParts.reverse(); + + // Merge relURLParts chunks + var newRelURLParts = new Array(); + var numBack = 0; + for (var i=relURLParts.length-1; i>=0; i--) { + if (relURLParts[i].length == 0 || relURLParts[i] == ".") + continue; + + if (relURLParts[i] == '..') { + numBack++; + continue; + } + + if (numBack > 0) { + numBack--; + continue; + } + + newRelURLParts[newRelURLParts.length] = relURLParts[i]; + } + + relURLParts = newRelURLParts.reverse(); + + // Remove end from absolute path + var len = baseURLParts.length-numBack; + var absPath = (len <= 0 ? "" : "/") + baseURLParts.slice(0, len).join('/') + "/" + relURLParts.join('/'); + var start = "", end = ""; + + // Build start part + if (baseURL['protocol']) + start += baseURL['protocol'] + "://"; + + if (baseURL['host']) + start += baseURL['host']; + + if (baseURL['port']) + start += ":" + baseURL['port']; + + // Build end part + if (relURL['query']) + end += "?" + relURL['query']; + + if (relURL['anchor']) + end += "#" + relURL['anchor']; + + // Re-add trailing slash if it's removed + if (relative_url.charAt(relative_url.length-1) == "/") + end += "/"; + + return start + absPath + end; +}; + +TinyMCE.prototype.getParam = function(name, default_value, strip_whitespace, split_chr) { + var value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name]; + + // Fix bool values + if (value == "true" || value == "false") + return (value == "true"); + + if (strip_whitespace) + value = tinyMCE.regexpReplace(value, "[ \t\r\n]", ""); + + if (typeof(split_chr) != "undefined" && split_chr != null) { + value = value.split(split_chr); + var outArray = new Array(); + + for (var i=0; i 0); + + if (tinyMCE.settings['custom_undo_redo']) { + undoIndex = inst.undoIndex; + undoLevels = inst.undoLevels.length; + } + + tinyMCE.executeCallback('handleNodeChangeCallback', '_handleNodeChange', 0, editorId, elm, undoIndex, undoLevels, inst.visualAid, anySelection); + } + } + + if (this.selectedInstance && (typeof(focus) == "undefined" || focus)) + this.selectedInstance.contentWindow.focus(); +}; + +TinyMCE.prototype._customCleanup = function(type, content) { + // Call custom cleanup + var customCleanup = tinyMCE.settings['cleanup_callback']; + if (customCleanup != "" && eval("typeof(" + customCleanup + ")") != "undefined") + content = eval(customCleanup + "(type, content);"); + + // Trigger plugin cleanups + var plugins = tinyMCE.getParam('plugins', '', true, ','); + for (var i=0; i 0) + className += " "; + + className += classNames[i]; + } + + return className; +}; + +TinyMCE.prototype.handleVisualAid = function(element, deep, state) { + if (!element) + return; + + var tableElement = null; + + switch (element.nodeName.toLowerCase()) { + case "table": + var oldW = element.style.width; + var oldH = element.style.height; + + element.className = tinyMCE.getVisualAidClass(element.className, state && element.getAttribute("border") == 0); + + element.style.width = oldW; + element.style.height = oldH; + + for (var y=0; y'; + return; + } + + break;*/ + } + + if (deep && element.hasChildNodes()) { + for (var i=0; i

breaks runtime? + if (tinyMCE.isMSIE) { + var re = new RegExp('


', 'g'); + html_content = html_content.replace(re, "
"); + } + + doc.body.innerHTML = html_content; + + // Content duplication bug fix + if (tinyMCE.isMSIE && tinyMCE.settings['fix_content_duplication']) { + // Remove P elements in P elements + var paras = doc.getElementsByTagName("P"); + for (var i=0; i<\/o:p>", "
"); + html = tinyMCE.regexpReplace(html, " <\/o:p>", ""); + html = tinyMCE.regexpReplace(html, "", ""); + html = tinyMCE.regexpReplace(html, "

<\/p>", ""); + html = tinyMCE.regexpReplace(html, "

<\/p>\r\n

<\/p>", ""); + html = tinyMCE.regexpReplace(html, "

 <\/p>", "
"); + html = tinyMCE.regexpReplace(html, "

\s*(

\s*)?", "

"); + html = tinyMCE.regexpReplace(html, "<\/p>\s*(<\/p>\s*)?", "

"); + } + + // Always set the htmlText output + doc.body.innerHTML = html; + } +}; + +TinyMCE.prototype.getImageSrc = function(str) { + var pos = -1; + + if (!str) + return ""; + + if ((pos = str.indexOf('this.src=')) != -1) { + var src = str.substring(pos + 10); + + src = src.substring(0, src.indexOf('\'')); + + return src; + } + + return ""; +}; + +TinyMCE.prototype._getElementById = function(element_id) { + var elm = document.getElementById(element_id); + if (!elm) { + // Check for element in forms + for (var j=0; j 0) { + var csses = null; + + // Just ignore any errors + eval("try {var csses = tinyMCE.isMSIE ? doc.styleSheets(0).rules : doc.styleSheets[0].cssRules;} catch(e) {}"); + if (!csses) + return new Array(); + + for (var i=0; i 0) + tinyMCE.cssClasses = output; + + return output; +}; + +TinyMCE.prototype.regexpReplace = function(in_str, reg_exp, replace_str, opts) { + if (typeof(opts) == "undefined") + opts = 'g'; + + var re = new RegExp(reg_exp, opts); + return in_str.replace(re, replace_str); +}; + +TinyMCE.prototype.cleanupEventStr = function(str) { + str = "" + str; + str = str.replace('function anonymous()\n{\n', ''); + str = str.replace('\n}', ''); + + return str; +}; + +TinyMCE.prototype.getAbsPosition = function(node) { + var pos = new Object(); + + pos.absLeft = pos.absTop = 0; + + var parentNode = node; + while (parentNode) { + pos.absLeft += parentNode.offsetLeft; + pos.absTop += parentNode.offsetTop; + + parentNode = parentNode.offsetParent; + } + + return pos; +}; + +TinyMCE.prototype.openFileBrowser = function(field_name, url, type, win) { + var cb = tinyMCE.getParam("file_browser_callback"); + + this.setWindowArg("window", win); + + // Call to external callback + if(eval('typeof('+cb+')') == "undefined") + alert("Callback function: " + cb + " could not be found."); + else + eval(cb + "(field_name, url, type, win);"); +}; + +TinyMCE.prototype.getControlHTML = function(control_name) { + var themePlugins = tinyMCE.getParam('plugins', '', true, ','); + var templateFunction; + + // Is it defined in any plugins + for (var i=themePlugins.length; i>=0; i--) { + templateFunction = 'TinyMCE_' + themePlugins[i] + "_getControlHTML"; + if (eval("typeof(" + templateFunction + ")") != 'undefined') { + var html = eval(templateFunction + "('" + control_name + "');"); + if (html != "") + return tinyMCE.replaceVar(html, "pluginurl", tinyMCE.baseURL + "/plugins/" + themePlugins[i]); + } + } + + return eval('TinyMCE_' + tinyMCE.settings['theme'] + "_getControlHTML" + "('" + control_name + "');"); +}; + +TinyMCE.prototype._themeExecCommand = function(editor_id, element, command, user_interface, value) { + var themePlugins = tinyMCE.getParam('plugins', '', true, ','); + var templateFunction; + + // Is it defined in any plugins + for (var i=themePlugins.length; i>=0; i--) { + templateFunction = 'TinyMCE_' + themePlugins[i] + "_execCommand"; + if (eval("typeof(" + templateFunction + ")") != 'undefined') { + if (eval(templateFunction + "(editor_id, element, command, user_interface, value);")) + return true; + } + } + + // Theme funtion + templateFunction = 'TinyMCE_' + tinyMCE.settings['theme'] + "_execCommand"; + if (eval("typeof(" + templateFunction + ")") != 'undefined') + return eval(templateFunction + "(editor_id, element, command, user_interface, value);"); + + // Pass to normal + return false; +}; + +TinyMCE.prototype._getThemeFunction = function(suffix, skip_plugins) { + if (skip_plugins) + return 'TinyMCE_' + tinyMCE.settings['theme'] + suffix; + + var themePlugins = tinyMCE.getParam('plugins', '', true, ','); + var templateFunction; + + // Is it defined in any plugins + for (var i=themePlugins.length; i>=0; i--) { + templateFunction = 'TinyMCE_' + themePlugins[i] + suffix; + if (eval("typeof(" + templateFunction + ")") != 'undefined') + return templateFunction; + } + + return 'TinyMCE_' + tinyMCE.settings['theme'] + suffix; +}; + + +TinyMCE.prototype.isFunc = function(func_name) { + if (func_name == null || func_name == "") + return false; + + return eval("typeof(" + func_name + ")") != "undefined"; +}; + +TinyMCE.prototype.exec = function(func_name, args) { + var str = func_name + '('; + + // Add all arguments + for (var i=3; i 1 && tinyMCE.currentConfig != this.settings['index']) { + tinyMCE.settings = this.settings; + tinyMCE.currentConfig = this.settings['index']; + } +}; + +TinyMCEControl.prototype.fixBrokenURLs = function() { + var body = this.getBody(); + + var elms = body.getElementsByTagName("img"); + for (var i=0; i 0) + rng.selectNodeContents(nodes[0]); + else + rng.selectNodeContents(node); + } else + rng.selectNode(node); + + if (collapse) { + // Special treatment of textnode collapse + if (!to_start && node.nodeType == 3) { + rng.setStart(node, node.nodeValue.length); + rng.setEnd(node, node.nodeValue.length); + } else + rng.collapse(to_start); + } + + sel.removeAllRanges(); + sel.addRange(rng); + } + + this.scrollToNode(node); + + // Set selected element + tinyMCE.selectedElement = null; + if (node.nodeType == 1) + tinyMCE.selectedElement = node; +}; + +TinyMCEControl.prototype.scrollToNode = function(node) { + // Scroll to node position + var pos = tinyMCE.getAbsPosition(node); + var doc = this.getDoc(); + var scrollX = doc.body.scrollLeft + doc.documentElement.scrollLeft; + var scrollY = doc.body.scrollTop + doc.documentElement.scrollTop; + var height = tinyMCE.isMSIE ? document.getElementById(this.editorId).style.pixelHeight : this.targetElement.clientHeight; + + // Only scroll if out of visible area + if (!tinyMCE.settings['auto_resize'] && !(node.absTop > scrollY && node.absTop < (scrollY - 25 + height))) + this.contentWindow.scrollTo(pos.absLeft, pos.absTop - height + 25); +}; + +TinyMCEControl.prototype.getBody = function() { + return this.getDoc().body; +}; + +TinyMCEControl.prototype.getDoc = function() { + return this.contentWindow.document; +}; + +TinyMCEControl.prototype.getWin = function() { + return this.contentWindow; +}; + +TinyMCEControl.prototype.getSel = function() { + if (tinyMCE.isMSIE) + return this.getDoc().selection; + + var sel = this.contentWindow.getSelection(); + + // Fake getRangeAt + if (tinyMCE.isSafari && !sel.getRangeAt) { + var newSel = new Object(); + var doc = this.getDoc(); + + function getRangeAt(idx) { + var rng = new Object(); + + rng.startContainer = this.focusNode; + rng.endContainer = this.anchorNode; + rng.commonAncestorContainer = this.focusNode; + rng.createContextualFragment = function (html) { + // Seems to be a tag + if (html.charAt(0) == '<') { + var elm = doc.createElement("div"); + + elm.innerHTML = html; + + return elm.firstChild; + } + + return doc.createTextNode("UNSUPPORTED, DUE TO LIMITATIONS IN SAFARI!"); + }; + + rng.deleteContents = function () { + doc.execCommand("Delete", false, ""); + }; + + return rng; + } + + // Patch selection + + newSel.focusNode = sel.baseNode; + newSel.focusOffset = sel.baseOffset; + newSel.anchorNode = sel.extentNode; + newSel.anchorOffset = sel.extentOffset; + newSel.getRangeAt = getRangeAt; + newSel.text = "" + sel; + newSel.realSelection = sel; + + newSel.toString = function () {return this.text;}; + + return newSel; + } + + return sel; +}; + +TinyMCEControl.prototype.getRng = function() { + var sel = this.getSel(); + if (sel == null) + return null; + + if (tinyMCE.isMSIE) + return sel.createRange(); + + return this.getSel().getRangeAt(0); +}; + +TinyMCEControl.prototype._insertPara = function(e) { + function isEmpty(para) { + function isEmptyHTML(html) { + return html.replace(new RegExp('[ \t\r\n]+', 'g'), '').toLowerCase() == ""; + } + + // Check for images + if (para.getElementsByTagName("img").length > 0) + return false; + + // Check for tables + if (para.getElementsByTagName("table").length > 0) + return false; + + // Check for HRs + if (para.getElementsByTagName("hr").length > 0) + return false; + + // Check all textnodes + var nodes = tinyMCE.getNodeTree(para, new Array(), 3); + for (var i=0; i <" + blockName + "> "; + paraAfter = body.childNodes[1]; + } + + this.selectNode(paraAfter, true, true); + + return true; + } + + // Place first part within new paragraph + if (startChop.nodeName == blockName) + rngBefore.setStart(startChop, 0); + else + rngBefore.setStartBefore(startChop); + rngBefore.setEnd(startNode, startOffset); + paraBefore.appendChild(rngBefore.cloneContents()); + + // Place secound part within new paragraph + rngAfter.setEndAfter(endChop); + rngAfter.setStart(endNode, endOffset); + var contents = rngAfter.cloneContents(); + if (contents.firstChild && contents.firstChild.nodeName == blockName) { + var nodes = contents.firstChild.childNodes; + for (var i=0; i 0) + rng.pasteHTML('
' + rng.htmlText + "
"); + + tinyMCE.triggerNodeChange(); + return; + } + } + } + + switch (command) { + case "mceSelectNode": + this.selectNode(value); + tinyMCE.triggerNodeChange(); + tinyMCE.selectedNode = value; + break; + + case "mceSelectNodeDepth": + var parentNode = this.getFocusElement(); + for (var i=0; parentNode; i++) { + if (parentNode.nodeName.toLowerCase() == "body") + break; + + if (parentNode.nodeName.toLowerCase() == "#text") { + i--; + parentNode = parentNode.parentNode; + continue; + } + + if (i == value) { + this.selectNode(parentNode, false); + tinyMCE.triggerNodeChange(); + tinyMCE.selectedNode = parentNode; + return; + } + + parentNode = parentNode.parentNode; + } + + break; + + case "HiliteColor": + if (tinyMCE.isGecko) { + this.getDoc().execCommand("useCSS", false, false); + this.getDoc().execCommand('hilitecolor', false, value); + this.getDoc().execCommand("useCSS", false, true); + } else + this.getDoc().execCommand('BackColor', false, value); + + break; + + case "Cut": + case "Copy": + case "Paste": + var cmdFailed = false; + + // Try executing command + eval('try {this.getDoc().execCommand(command, user_interface, value);} catch (e) {cmdFailed = true;}'); + + // Alert error in gecko if command failed + if (tinyMCE.isGecko && cmdFailed) { + // Confirm more info + if (confirm(tinyMCE.getLang('lang_clipboard_msg'))) + window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html', 'mceExternal'); + + return; + } else + tinyMCE.triggerNodeChange(); + break; + + case "mceSetContent": + if (!value) + value = ""; + + // Call custom cleanup code + html_content = tinyMCE._customCleanup("insert_to_editor", value); + tinyMCE._setHTML(doc, value); + doc.body.innerHTML = tinyMCE._cleanupHTML(doc, tinyMCE.settings, doc.body); + tinyMCE.handleVisualAid(doc.body, true, this.visualAid); + return true; + + case "mceLink": + var selectedText = ""; + + if (tinyMCE.isMSIE) { + var rng = doc.selection.createRange(); + selectedText = rng.text; + } else + selectedText = this.getSel().toString(); + + if (!tinyMCE.linkElement) { + if ((tinyMCE.selectedElement.nodeName.toLowerCase() != "img") && (selectedText.length <= 0)) + return; + } + + var href = "", target = "", title = "", onclick = "", action = "insert"; + + if (tinyMCE.selectedElement.nodeName.toLowerCase() == "a") + tinyMCE.linkElement = tinyMCE.selectedElement; + + // Is anchor not a link + if (tinyMCE.linkElement != null && tinyMCE.getAttrib(tinyMCE.linkElement, 'href') == "") + tinyMCE.linkElement = null; + + if (tinyMCE.linkElement) { + href = tinyMCE.getAttrib(tinyMCE.linkElement, 'href'); + target = tinyMCE.getAttrib(tinyMCE.linkElement, 'target'); + title = tinyMCE.getAttrib(tinyMCE.linkElement, 'title'); + onclick = tinyMCE.getAttrib(tinyMCE.linkElement, 'mce_onclick'); + + // Try old onclick to if copy/pasted content + if (onclick == "") + onclick = tinyMCE.getAttrib(tinyMCE.linkElement, 'onclick'); + + onclick = tinyMCE.cleanupEventStr(onclick); + + // Fix for drag-drop/copy paste bug in Mozilla + mceRealHref = tinyMCE.getAttrib(tinyMCE.linkElement, 'mce_real_href'); + if (mceRealHref != "") + href = mceRealHref; + + href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, tinyMCE.linkElement, true);"); + action = "update"; + } + + if (this.settings['insertlink_callback']) { + var returnVal = eval(this.settings['insertlink_callback'] + "(href, target, title, onclick, action);"); + if (returnVal && returnVal['href']) + tinyMCE.insertLink(returnVal['href'], returnVal['target'], returnVal['title'], returnVal['onclick']); + } else { + tinyMCE.openWindow(this.insertLinkTemplate, {href : href, target : target, title : title, onclick : onclick, action : action}); + } + break; + + case "mceImage": + var src = "", alt = "", border = "", hspace = "", vspace = "", width = "", height = "", align = ""; + var title = "", onmouseover = "", onmouseout = "", action = "insert"; + var img = tinyMCE.imgElement; + + if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "img") { + img = tinyMCE.selectedElement; + tinyMCE.imgElement = img; + } + + if (img) { + // Is it a internal MCE visual aid image, then skip this one. + if (tinyMCE.getAttrib(img, 'name').indexOf('mce_') == 0) + return; + + src = tinyMCE.getAttrib(img, 'src'); + alt = tinyMCE.getAttrib(img, 'alt'); + + // Try polling out the title + if (alt == "") + alt = tinyMCE.getAttrib(img, 'title'); + + // Fix width/height attributes if the styles is specified + if (tinyMCE.isGecko) { + var w = img.style.width; + if (w != null && w != "") + img.setAttribute("width", w); + + var h = img.style.height; + if (h != null && h != "") + img.setAttribute("height", h); + } + + border = tinyMCE.getAttrib(img, 'border'); + hspace = tinyMCE.getAttrib(img, 'hspace'); + vspace = tinyMCE.getAttrib(img, 'vspace'); + width = tinyMCE.getAttrib(img, 'width'); + height = tinyMCE.getAttrib(img, 'height'); + align = tinyMCE.getAttrib(img, 'align'); + onmouseover = tinyMCE.getAttrib(img, 'onmouseover'); + onmouseout = tinyMCE.getAttrib(img, 'onmouseout'); + title = tinyMCE.getAttrib(img, 'title'); + + // Is realy specified? + if (tinyMCE.isMSIE) { + width = img.attributes['width'].specified ? width : ""; + height = img.attributes['height'].specified ? height : ""; + } + + onmouseover = tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseover)); + onmouseout = tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseout)); + + // Fix for drag-drop/copy paste bug in Mozilla + mceRealSrc = tinyMCE.getAttrib(img, 'mce_real_src'); + if (mceRealSrc != "") + src = mceRealSrc; + + src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, img, true);"); + + if (onmouseover != "") + onmouseover = eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseover, img, true);"); + + if (onmouseout != "") + onmouseout = eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseout, img, true);"); + + action = "update"; + } + + if (this.settings['insertimage_callback']) { + var returnVal = eval(this.settings['insertimage_callback'] + "(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action);"); + if (returnVal && returnVal['src']) + tinyMCE.insertImage(returnVal['src'], returnVal['alt'], returnVal['border'], returnVal['hspace'], returnVal['vspace'], returnVal['width'], returnVal['height'], returnVal['align'], returnVal['title'], returnVal['onmouseover'], returnVal['onmouseout']); + } else + tinyMCE.openWindow(this.insertImageTemplate, {src : src, alt : alt, border : border, hspace : hspace, vspace : vspace, width : width, height : height, align : align, title : title, onmouseover : onmouseover, onmouseout : onmouseout, action : action}); + break; + + case "mceCleanupWord": + if (tinyMCE.isMSIE) { + var html = this.getBody().createTextRange().htmlText; + + if (html.indexOf('="mso') != -1) { + tinyMCE._setHTML(this.contentDocument, this.getBody().innerHTML); + html = tinyMCE._cleanupHTML(this.contentDocument, this.settings, this.getBody(), this.visualAid); + } + + this.getBody().innerHTML = html; + } + break; + + case "mceCleanup": + tinyMCE._setHTML(this.contentDocument, this.getBody().innerHTML); + this.getBody().innerHTML = tinyMCE._cleanupHTML(this.contentDocument, this.settings, this.getBody(), this.visualAid); + tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid); + this.repaint(); + tinyMCE.triggerNodeChange(); + break; + + case "mceAnchor": + if (!user_interface) { + var aElm = tinyMCE.getParentElement(this.getFocusElement(), "a", "name"); + if (aElm) { + if (value == null || value == "") { + if (tinyMCE.isMSIE) { + aElm.outerHTML = aElm.innerHTML; + } else { + var rng = aElm.ownerDocument.createRange(); + rng.setStartBefore(aElm); + rng.setEndAfter(aElm); + rng.deleteContents(); + rng.insertNode(rng.createContextualFragment(aElm.innerHTML)); + } + } else + aElm.setAttribute('name', value); + } else { + this.getDoc().execCommand("fontname", false, "#mce_temp_font#"); + var elementArray = tinyMCE.getElementsByAttributeValue(this.getBody(), "font", "face", "#mce_temp_font#"); + for (var x=0; x 0) { + value = tinyMCE.replaceVar(value, "selection", selectedText); + tinyMCE.execCommand('mceInsertContent',false,value); + } + + tinyMCE.triggerNodeChange(); + break; + + case "mceSetAttribute": + if (typeof(value) == 'object') { + var targetElms = (typeof(value['targets']) == "undefined") ? "p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address" : value['targets']; + var targetNode = tinyMCE.getParentElement(this.getFocusElement(), targetElms); + + if (targetNode) { + targetNode.setAttribute(value['name'], value['value']); + tinyMCE.triggerNodeChange(); + } + } + break; + + case "mceSetCSSClass": + var selectedText = false; + + if (tinyMCE.isMSIE) { + var rng = doc.selection.createRange(); + selectedText = (rng.text && rng.text.length > 0); + } else + selectedText = (this.getSel().toString().length > 0); + + // Use selectedNode instead if defined + if (tinyMCE.selectedNode) + tinyMCE.selectedElement = tinyMCE.selectedNode; + + if (selectedText && !tinyMCE.selectedNode) { + this.getDoc().execCommand("RemoveFormat", false, null); + if (value == null) + return this.execCommand("RemoveFormat", false, null); + + this.getDoc().execCommand("fontname", false, "#mce_temp_font#"); + var elementArray = tinyMCE.getElementsByAttributeValue(this.getBody(), "font", "face", "#mce_temp_font#"); + + // Change them all + for (var x=0; x customUndoLevels) { + for (var i=0; i 0) { + this.undoIndex--; + this.getBody().innerHTML = this.undoLevels[this.undoIndex]; + } + + // debug("Undo - undo levels:" + this.undoLevels.length + ", undo index: " + this.undoIndex); + tinyMCE.triggerNodeChange(); + } else + this.getDoc().execCommand(command, user_interface, value); + break; + + case "Redo": + if (tinyMCE.settings['custom_undo_redo']) { + if (this.undoIndex < (this.undoLevels.length-1)) { + this.undoIndex++; + this.getBody().innerHTML = this.undoLevels[this.undoIndex]; + // debug("Redo - undo levels:" + this.undoLevels.length + ", undo index: " + this.undoIndex); + } + + tinyMCE.triggerNodeChange(); + } else + this.getDoc().execCommand(command, user_interface, value); + break; + + case "mceToggleVisualAid": + this.visualAid = !this.visualAid; + tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid); + tinyMCE.triggerNodeChange(); + break; + + case "removeformat": + var text = this.getSelectedText(); + + if (tinyMCE.isMSIE) { + try { + win.focus(); + var rng = doc.selection.createRange(); + rng.execCommand("RemoveFormat", false, null); + rng.pasteHTML(rng.text); + } catch (e) { + // Do nothing + } + } else + this.getDoc().execCommand(command, user_interface, value); + + // Remove class + if (text.length == 0) + this.execCommand("mceSetCSSClass", false, ""); + + tinyMCE.triggerNodeChange(); + break; + + default: + this.getDoc().execCommand(command, user_interface, value); + tinyMCE.triggerNodeChange(); + } +}; + +TinyMCEControl.prototype.queryCommandValue = function(command) { + return this.getDoc().queryCommandValue(command); +}; + +TinyMCEControl.prototype.queryCommandState = function(command) { + return this.getDoc().queryCommandState(command); +}; + +TinyMCEControl.prototype.onAdd = function(replace_element, form_element_name, target_document) { + var targetDoc = target_document ? target_document : document; + + this.targetDoc = targetDoc; + + tinyMCE.themeURL = tinyMCE.baseURL + "/themes/" + this.settings['theme']; + this.settings['themeurl'] = tinyMCE.themeURL; + + if (!replace_element) { + alert("Error: Could not find the target element."); + return false; + } + + var templateFunction = tinyMCE._getThemeFunction('_getInsertLinkTemplate'); + if (eval("typeof(" + templateFunction + ")") != 'undefined') + this.insertLinkTemplate = eval(templateFunction + '(this.settings);'); + + var templateFunction = tinyMCE._getThemeFunction('_getInsertImageTemplate'); + if (eval("typeof(" + templateFunction + ")") != 'undefined') + this.insertImageTemplate = eval(templateFunction + '(this.settings);'); + + var templateFunction = tinyMCE._getThemeFunction('_getEditorTemplate'); + if (eval("typeof(" + templateFunction + ")") == 'undefined') { + alert("Error: Could not find the template function: " + templateFunction); + return false; + } + + var editorTemplate = eval(templateFunction + '(this.settings, this.editorId);'); + + var deltaWidth = editorTemplate['delta_width'] ? editorTemplate['delta_width'] : 0; + var deltaHeight = editorTemplate['delta_height'] ? editorTemplate['delta_height'] : 0; + var html = '' + editorTemplate['html']; + + var templateFunction = tinyMCE._getThemeFunction('_handleNodeChange', true); + if (eval("typeof(" + templateFunction + ")") != 'undefined') + this.settings['handleNodeChangeCallback'] = templateFunction; + + html = tinyMCE.replaceVar(html, "editor_id", this.editorId); + html = tinyMCE.replaceVar(html, "default_document", tinyMCE.baseURL + "/blank.htm"); + this.settings['default_document'] = tinyMCE.baseURL + "/blank.htm"; + + this.settings['old_width'] = this.settings['width']; + this.settings['old_height'] = this.settings['height']; + + // Set default width, height + if (this.settings['width'] == -1) + this.settings['width'] = replace_element.offsetWidth; + + if (this.settings['height'] == -1) + this.settings['height'] = replace_element.offsetHeight; + + // Try the style width + if (this.settings['width'] == 0) + this.settings['width'] = replace_element.style.width; + + // Try the style height + if (this.settings['height'] == 0) + this.settings['height'] = replace_element.style.height; + + // If no width/height then default to 320x240, better than nothing + if (this.settings['width'] == 0) + this.settings['width'] = 320; + + if (this.settings['height'] == 0) + this.settings['height'] = 240; + + this.settings['area_width'] = parseInt(this.settings['width']); + this.settings['area_height'] = parseInt(this.settings['height']); + this.settings['area_width'] += deltaWidth; + this.settings['area_height'] += deltaHeight; + + // Special % handling + if (("" + this.settings['width']).indexOf('%') != -1) + this.settings['area_width'] = "100%"; + + if (("" + this.settings['height']).indexOf('%') != -1) + this.settings['area_height'] = "100%"; + + if (("" + replace_element.style.width).indexOf('%') != -1) { + this.settings['width'] = replace_element.style.width; + this.settings['area_width'] = "100%"; + } + + if (("" + replace_element.style.height).indexOf('%') != -1) { + this.settings['height'] = replace_element.style.height; + this.settings['area_height'] = "100%"; + } + + html = tinyMCE.applyTemplate(html); + + this.settings['width'] = this.settings['old_width']; + this.settings['height'] = this.settings['old_height']; + + this.visualAid = this.settings['visual']; + this.formTargetElementId = form_element_name; + + // Get replace_element contents + if (replace_element.nodeName.toLowerCase() == "textarea") + this.startContent = replace_element.value; + else + this.startContent = replace_element.innerHTML; + + // If not text area + if (replace_element.nodeName.toLowerCase() != "textarea") { + this.oldTargetElement = replace_element.cloneNode(true); + + // Debug mode + if (tinyMCE.settings['debug']) + html += ''; + else + html += ''; + + html += ''; + + // Output HTML and set editable + if (!tinyMCE.isMSIE) { + var rng = replace_element.ownerDocument.createRange(); + rng.setStartBefore(replace_element); + + var fragment = rng.createContextualFragment(html); + replace_element.parentNode.replaceChild(fragment, replace_element); + } else + replace_element.outerHTML = html; + } else { + html += ''; + + // Just hide the textarea element + this.oldTargetElement = replace_element; + + if (!tinyMCE.settings['debug']) + this.oldTargetElement.style.display = "none"; + + // Output HTML and set editable + if (!tinyMCE.isMSIE) { + var rng = replace_element.ownerDocument.createRange(); + rng.setStartBefore(replace_element); + + var fragment = rng.createContextualFragment(html); + replace_element.parentNode.insertBefore(fragment, replace_element); + } else + replace_element.insertAdjacentHTML("beforeBegin", html); + } + + // Setup iframe + var dynamicIFrame = false; + var tElm = targetDoc.getElementById(this.editorId); + + if (!tinyMCE.isMSIE) { + if (tElm && tElm.nodeName.toLowerCase() == "span") { + tElm = tinyMCE._createIFrame(tElm); + dynamicIFrame = true; + } + + this.targetElement = tElm; + this.iframeElement = tElm; + this.contentDocument = tElm.contentDocument; + this.contentWindow = tElm.contentWindow; + + //this.getDoc().designMode = "on"; + } else { + if (tElm && tElm.nodeName.toLowerCase() == "span") + tElm = tinyMCE._createIFrame(tElm); + else + tElm = targetDoc.frames[this.editorId]; + + this.targetElement = tElm; + this.iframeElement = targetDoc.getElementById(this.editorId); + this.contentDocument = tElm.window.document; + this.contentWindow = tElm.window; + this.getDoc().designMode = "on"; + } + + // Setup base HTML + var doc = this.contentDocument; + if (dynamicIFrame) { + var html = "" + + '' + + '' + + '' + + '' + + 'blank_page' + + '' + + '' + + '' + + '' + + ''; + + try { + this.getDoc().designMode = "on"; + doc.open(); + doc.write(html); + doc.close(); + } catch (e) { + // Failed Mozilla 1.3 + this.getDoc().location.href = tinyMCE.baseURL + "/blank.htm"; + } + } + + // This timeout is needed in MSIE 5.5 for some odd reason + // it seems that the document.frames isn't initialized yet? + if (tinyMCE.isMSIE) + window.setTimeout("TinyMCE.prototype.addEventHandlers('" + this.editorId + "');", 1); + + tinyMCE.setupContent(this.editorId, true); + + return true; +}; + +TinyMCEControl.prototype.getFocusElement = function() { + if (tinyMCE.isMSIE) { + var doc = this.getDoc(); + var rng = doc.selection.createRange(); + + if (rng.collapse) + rng.collapse(true); + + var elm = rng.item ? rng.item(0) : rng.parentElement(); + } else { + var sel = this.getSel(); + var elm = (sel && sel.anchorNode) ? sel.anchorNode : null; + + if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "img") + elm = tinyMCE.selectedElement; + } + + return elm; +}; + +// Global instances +var tinyMCE = new TinyMCE(); +var tinyMCELang = new Array(); + +function debug() { + var msg = ""; + + var elm = document.getElementById("tinymce_debug"); + if (!elm) { + var debugDiv = document.createElement("div"); + debugDiv.setAttribute("className", "debugger"); + debugDiv.className = "debugger"; + debugDiv.innerHTML = '\ + Debug output:\ + '; + + document.body.appendChild(debugDiv); + elm = document.getElementById("tinymce_debug"); + } + + var args = this.debug.arguments; + for (var i=0; i