Ticket #5735: fullscreen.diff
| File fullscreen.diff, 9.9 kB (added by andy, 7 months ago) |
|---|
-
wp-includes/js/tinymce/plugins/fullscreen/editor_plugin.js
old new 1 /** 2 * $Id: editor_plugin_src.js 544 2008-01-17 13:07:00Z spocke $ 3 * 4 * @author Moxiecode 5 * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved. 6 */ 7 8 (function() { 9 var DOM = tinymce.DOM; 10 11 tinymce.create('tinymce.plugins.FullScreenPlugin', { 12 init : function(ed, url) { 13 var t = this, s = {}, vp; 14 15 t.editor = ed; 16 17 // Register commands 18 ed.addCommand('mceFullScreen', function() { 19 var win, de = document.documentElement; 20 21 if (ed.getParam('fullscreen_is_enabled')) { 22 if (ed.getParam('fullscreen_new_window')) 23 closeFullscreen(); // Call to close in new window 24 else { 25 window.setTimeout(function() { 26 tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format : 'raw'}), {format : 'raw'}); 27 tinyMCE.remove(ed); 28 DOM.remove('mce_fullscreen_container'); 29 de.style.overflow = ed.getParam('fullscreen_html_overflow'); 30 DOM.setStyle(document.body, 'overflow', ed.getParam('fullscreen_overflow')); 31 window.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly')); 32 }, 10); 33 } 34 35 return; 36 } 37 38 if (ed.getParam('fullscreen_new_window')) { 39 win = window.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=no,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight); 40 try { 41 win.resizeTo(screen.availWidth, screen.availHeight); 42 } catch (e) { 43 // Ignore 44 } 45 } else { 46 s.fullscreen_overflow = DOM.getStyle(document.body, 'overflow', 1) || 'auto'; 47 s.fullscreen_html_overflow = DOM.getStyle(de, 'overflow', 1); 48 vp = DOM.getViewPort(); 49 s.fullscreen_scrollx = vp.x; 50 s.fullscreen_scrolly = vp.y; 51 52 // Fixes an Opera bug where the scrollbars doesn't reappear 53 if (tinymce.isOpera && s.fullscreen_overflow == 'visible') 54 s.fullscreen_overflow = 'auto'; 55 56 // Fixes an IE bug where horizontal scrollbars would appear 57 if (tinymce.isIE && s.fullscreen_overflow == 'scroll') 58 s.fullscreen_overflow = 'auto'; 59 60 if (s.fullscreen_overflow == '0px') 61 s.fullscreen_overflow = ''; 62 63 DOM.setStyle(document.body, 'overflow', 'hidden'); 64 de.style.overflow = 'hidden'; //Fix for IE6/7 65 vp = DOM.getViewPort(); 66 window.scrollTo(0, 0); 67 68 if (tinymce.isIE) 69 vp.h -= 1; 70 71 n = DOM.add(document.body, 'div', {id : 'mce_fullscreen_container', style : 'position:absolute;top:0;left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:150;'}); 72 DOM.add(n, 'div', {id : 'mce_fullscreen'}); 73 74 tinymce.each(ed.settings, function(v, n) { 75 s[n] = v; 76 }); 77 78 s.id = 'mce_fullscreen'; 79 s.width = n.clientWidth; 80 s.height = n.clientHeight - 15; 81 s.fullscreen_is_enabled = true; 82 s.fullscreen_editor_id = ed.id; 83 s.theme_advanced_resizing = false; 84 85 tinymce.each(ed.getParam('fullscreen_settings'), function(v, k) { 86 s[k] = v; 87 }); 88 89 if (s.theme_advanced_toolbar_location === 'external') 90 s.theme_advanced_toolbar_location = 'top'; 91 92 t.fullscreenEditor = new tinymce.Editor('mce_fullscreen', s); 93 t.fullscreenEditor.onInit.add(function() { 94 t.fullscreenEditor.setContent(ed.getContent({format : 'raw', no_events : 1}), {format : 'raw', no_events : 1}); 95 }); 96 97 t.fullscreenEditor.render(); 98 tinyMCE.add(t.fullscreenEditor); 99 100 t.fullscreenElement = new tinymce.dom.Element('mce_fullscreen_container'); 101 t.fullscreenElement.update(); 102 //document.body.overflow = 'hidden'; 103 } 104 }); 105 106 // Register buttons 107 ed.addButton('fullscreen', {title : 'fullscreen.desc', cmd : 'mceFullScreen'}); 108 109 ed.onNodeChange.add(function(ed, cm) { 110 cm.setActive('fullscreen', ed.getParam('fullscreen_is_enabled')); 111 }); 112 }, 113 114 getInfo : function() { 115 return { 116 longname : 'Fullscreen', 117 author : 'Moxiecode Systems AB', 118 authorurl : 'http://tinymce.moxiecode.com', 119 infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen', 120 version : tinymce.majorVersion + "." + tinymce.minorVersion 121 }; 122 } 123 }); 124 125 // Register plugin 126 tinymce.PluginManager.add('fullscreen', tinymce.plugins.FullScreenPlugin); 127 })(); -
wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm
old new 1 <html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <title>{$lang_fullscreen_title}</title> 4 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 5 <script type="text/javascript" src="../../tiny_mce.js"></script> 6 <script type="text/javascript"> 7 function patchCallback(settings, key) { 8 if (settings[key]) 9 settings[key] = "window.opener." + settings[key]; 10 } 11 12 var settings = {}, paSe = window.opener.tinyMCE.activeEditor.settings; 13 14 // Clone array 15 for (var n in paSe) 16 settings[n] = paSe[n]; 17 18 // Override options for fullscreen 19 for (var n in paSe.fullscreen_settings) 20 settings[n] = paSe.fullscreen_settings[n]; 21 22 // Patch callbacks, make them point to window.opener 23 patchCallback(settings, 'urlconverter_callback'); 24 patchCallback(settings, 'insertlink_callback'); 25 patchCallback(settings, 'insertimage_callback'); 26 patchCallback(settings, 'setupcontent_callback'); 27 patchCallback(settings, 'save_callback'); 28 patchCallback(settings, 'onchange_callback'); 29 patchCallback(settings, 'init_instance_callback'); 30 patchCallback(settings, 'file_browser_callback'); 31 patchCallback(settings, 'cleanup_callback'); 32 patchCallback(settings, 'execcommand_callback'); 33 patchCallback(settings, 'oninit'); 34 35 // Set options 36 delete settings.id; 37 settings['mode'] = 'exact'; 38 settings['elements'] = 'fullscreenarea'; 39 settings['add_unload_trigger'] = false; 40 settings['ask'] = false; 41 settings['document_base_url'] = window.opener.tinyMCE.activeEditor.documentBaseURI.getURI(); 42 settings['fullscreen_is_enabled'] = true; 43 settings['fullscreen_editor_id'] = window.opener.tinyMCE.activeEditor.id; 44 settings['theme_advanced_resizing'] = false; 45 46 function unloadHandler(e) { 47 moveContent(); 48 } 49 50 function moveContent() { 51 window.opener.tinyMCE.activeEditor.setContent(tinyMCE.activeEditor.getContent({format : 'raw'})); 52 } 53 54 function closeFullscreen() { 55 moveContent(); 56 window.close(); 57 } 58 59 // Add onunload 60 tinymce.dom.Event.add(window, "beforeunload", unloadHandler); 61 62 function doParentSubmit() { 63 moveContent(); 64 65 if (window.opener.tinyMCE.selectedInstance.formElement.form) 66 window.opener.tinyMCE.selectedInstance.formElement.form.submit(); 67 68 window.close(); 69 70 return false; 71 } 72 73 function init() { 74 var e = document.getElementById('fullscreenarea'); 75 e.value = window.opener.tinyMCE.activeEditor.getContent({format : 'raw'}); 76 settings['width'] = e.clientWidth; 77 settings['height'] = e.clientHeight; 78 tinyMCE.init(settings); 79 } 80 </script> 81 <base target="_self" /> 82 </head> 83 <body onload="init();" style="margin:0; overflow:hidden; height:100%;" scrolling="no" scroll="no"> 84 <form onsubmit="doParentSubmit();" style="height: 100%"> 85 <textarea id="fullscreenarea" style="width:100%; height:100%"></textarea> 86 </form> 87 </body> 88 </html> -
wp-includes/js/tinymce/tiny_mce_config.php
old new 27 27 28 28 $invalid_elements = apply_filters('mce_invalid_elements', ''); 29 29 30 $plugins = array( 'safari', 'inlinepopups', 'autosave', 'spellchecker', 'paste', 'wordpress', 'wphelp', 'media' );30 $plugins = array( 'safari', 'inlinepopups', 'autosave', 'spellchecker', 'paste', 'wordpress', 'wphelp', 'media', 'fullscreen' ); 31 31 $plugins = apply_filters('mce_plugins', $plugins); 32 32 $plugins = implode($plugins, ','); 33 33 34 34 $mce_buttons = apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', 'separator', 'bullist', 'numlist', 'outdent', 'indent', 'separator', 'justifyleft', 'justifycenter', 'justifyright', 'separator', 'link', 'unlink', 'image', 'wp_more', 'separator', 'spellchecker', 'separator', 'wp_help', 'wp_adv', 'wp_adv_start', 'wp_adv_end')); 35 35 $mce_buttons = implode($mce_buttons, ','); 36 36 37 $mce_buttons_2 = apply_filters('mce_buttons_2', array('formatselect', 'underline', 'justifyfull', 'forecolor', 'media', 'separator', 'pastetext', 'pasteword', 'separator', 'removeformat', 'cleanup', 'separator', 'charmap', 'separator', 'undo', 'redo' ));37 $mce_buttons_2 = apply_filters('mce_buttons_2', array('formatselect', 'underline', 'justifyfull', 'forecolor', 'media', 'separator', 'pastetext', 'pasteword', 'separator', 'removeformat', 'cleanup', 'separator', 'charmap', 'separator', 'undo', 'redo', 'fullscreen')); 38 38 $mce_buttons_2 = implode($mce_buttons_2, ','); 39 39 40 40 $mce_buttons_3 = apply_filters('mce_buttons_3', array());
