tinyMCE updates from skeltoac. fixes #1991
git-svn-id: http://svn.automattic.com/wordpress/trunk@3265 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
38fbb47e77
commit
57ce56e8f4
|
@ -99,7 +99,7 @@ tinyMCE.init({
|
||||||
theme_advanced_toolbar_align : "left",
|
theme_advanced_toolbar_align : "left",
|
||||||
theme_advanced_path_location : "bottom",
|
theme_advanced_path_location : "bottom",
|
||||||
theme_advanced_resizing : true,
|
theme_advanced_resizing : true,
|
||||||
browsers : "msie,gecko",
|
browsers : "msie,gecko,opera",
|
||||||
dialog_type : "modal",
|
dialog_type : "modal",
|
||||||
theme_advanced_resize_horizontal : false,
|
theme_advanced_resize_horizontal : false,
|
||||||
entity_encoding : "raw",
|
entity_encoding : "raw",
|
||||||
|
@ -110,7 +110,7 @@ tinyMCE.init({
|
||||||
convert_newlines_to_brs : false,
|
convert_newlines_to_brs : false,
|
||||||
remove_linebreaks : true,
|
remove_linebreaks : true,
|
||||||
save_callback : "wp_save_callback",
|
save_callback : "wp_save_callback",
|
||||||
valid_elements : "-a[id|href|title|rel],-strong/b,-em/i,-strike,-del,-u,p[class|align|dir],-ol,-ul,-li,br,img[class|src|alt|title|width|height|align],-sub,-sup,-blockquote[dir],-table[border=0|cellspacing|cellpadding|width|height|class|align|dir],tr[class|rowspan|width|height|align|valign|dir],td[dir|class|colspan|rowspan|width|height|align|valign],-div[dir|class|align],-span[class|align],-pre[class],-code[class],-address,-h1[class|align|dir],-h2[class|align|dir],-h3[class|align|dir],-h4[class|align|dir],-h5[class|align|dir],-h6[class|align|dir],hr",
|
valid_elements : "-a[id|href|title|rel],-strong/b,-em/i,-strike,-del,-u,p[class|align|dir],-ol,-ul,-li,br,img[class|src|alt|title|width|height|align],-sub,-sup,-blockquote[dir],-table[border=0|cellspacing|cellpadding|width|height|class|align|dir],thead[class|rowspan|width|height|align|valign|dir],tr[class|rowspan|width|height|align|valign|dir],th[dir|class|colspan|rowspan|width|height|align|valign|scope],td[dir|class|colspan|rowspan|width|height|align|valign],-div[dir|class|align],-span[class|align],-pre[class],-code[class],-address,-h1[class|align|dir],-h2[class|align|dir],-h3[class|align|dir],-h4[class|align|dir],-h5[class|align|dir],-h6[class|align|dir],hr",
|
||||||
plugins : "<?php echo $mce_plugins; ?>"
|
plugins : "<?php echo $mce_plugins; ?>"
|
||||||
<?php do_action('mce_options'); ?>
|
<?php do_action('mce_options'); ?>
|
||||||
});
|
});
|
||||||
|
|
|
@ -200,15 +200,28 @@ function TinyMCE_wordpress_cleanup(type, content) {
|
||||||
|
|
||||||
// If it says & in the WYSIWYG editor, it should say & in the html.
|
// If it says & in the WYSIWYG editor, it should say & in the html.
|
||||||
content = content.replace(new RegExp('&', 'g'), '&');
|
content = content.replace(new RegExp('&', 'g'), '&');
|
||||||
|
content = content.replace(new RegExp('&nbsp;', 'g'), ' ');
|
||||||
|
|
||||||
|
// Remove anonymous, empty paragraphs.
|
||||||
|
content = content.replace(new RegExp('<p>(\\s| )*</p>', 'mg'), '');
|
||||||
|
|
||||||
|
// Handle table badness.
|
||||||
|
content = content.replace(new RegExp('<(table( [^>]*)?)>.*?<((tr|thead)( [^>]*)?)>', 'mg'), '<$1><$3>');
|
||||||
|
content = content.replace(new RegExp('<(tr|thead|tfoot)>.*?<((td|th)( [^>]*)?)>', 'mg'), '<$1><$2>');
|
||||||
|
content = content.replace(new RegExp('</(td|th)>.*?<(td( [^>]*)?|th( [^>]*)?|/tr|/thead|/tfoot)>', 'mg'), '</$1><$2>');
|
||||||
|
content = content.replace(new RegExp('</tr>.*?<(tr|/table)>', 'mg'), '</tr><$1>');
|
||||||
|
content = content.replace(new RegExp('<(/?(table|tbody|tr|th|td)[^>]*)>(\\s*|(<br ?/?>)*)*', 'g'), '<$1>');
|
||||||
|
|
||||||
// Pretty it up for the source editor.
|
// Pretty it up for the source editor.
|
||||||
var blocklist = 'blockquote|ul|ol|li|table|thead|tr|th|td|div|h\d|pre|p';
|
var blocklist = 'blockquote|ul|ol|li|table|thead|tr|th|td|div|h\\d|pre|p';
|
||||||
content = content.replace(new RegExp('\\s*</('+blocklist+')>\\s*', 'mg'), '</$1>\n');
|
content = content.replace(new RegExp('\\s*</('+blocklist+')>\\s*', 'mg'), '</$1>\n');
|
||||||
content = content.replace(new RegExp('\\s*<(('+blocklist+')[^>]*)>\\s*', 'mg'), '\n<$1>');
|
content = content.replace(new RegExp('\\s*<(('+blocklist+')[^>]*)>\\s*', 'mg'), '\n<$1>');
|
||||||
content = content.replace(new RegExp('<li>', 'g'), '\t<li>');
|
content = content.replace(new RegExp('<((li|/?tr|/?thead|/?tfoot)( [^>]*)?)>', 'g'), '\t<$1>');
|
||||||
|
content = content.replace(new RegExp('<((td|th)( [^>]*)?)>', 'g'), '\t\t<$1>');
|
||||||
content = content.replace(new RegExp('\\s*<br ?/?>\\s*', 'mg'), '<br />\n');
|
content = content.replace(new RegExp('\\s*<br ?/?>\\s*', 'mg'), '<br />\n');
|
||||||
content = content.replace(new RegExp('^\\s*', ''), '');
|
content = content.replace(new RegExp('^\\s*', ''), '');
|
||||||
content = content.replace(new RegExp('\\s*$', ''), '');
|
content = content.replace(new RegExp('\\s*$', ''), '');
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -37,6 +37,34 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function wp_compact_tinymce_js($text) {
|
||||||
|
// This function was custom-made for TinyMCE 2.0, not expected to work with any other JS.
|
||||||
|
|
||||||
|
echo "\n//" . strlen(gzdeflate($text)) . " bytes gzdeflated\n";
|
||||||
|
echo "//" . microtime() . " " . strlen($text) . " Micro Time Length\n";
|
||||||
|
|
||||||
|
// Strip comments
|
||||||
|
$text = preg_replace("!(^|\s+)//.*$!m", '', $text);
|
||||||
|
echo "//" . microtime() . " " . strlen($text) . " Stripped // comments\n";
|
||||||
|
$text = preg_replace("!/\*.*?\*/!s", '', $text);
|
||||||
|
echo "//" . microtime() . " " . strlen($text) . " Stripped /* */ comments\n";
|
||||||
|
|
||||||
|
// Strip leading tabs, carriage returns and unnecessary line breaks.
|
||||||
|
$text = preg_replace("!^\t+!m", '', $text);
|
||||||
|
echo "//" . microtime() . " " . strlen($text) . " Stripped leading tabs\n";
|
||||||
|
$text = str_replace("\r", '', $text);
|
||||||
|
echo "//" . microtime() . " " . strlen($text) . " Stripped returns\n";
|
||||||
|
$text = preg_replace("!(^|{|}|;|:|\))\n!m", '\\1', $text);
|
||||||
|
echo "//" . microtime() . " " . strlen($text) . " Stripped safe linebreaks\n";
|
||||||
|
|
||||||
|
// Strip spaces. This one is not generally economical.
|
||||||
|
//$text = preg_replace("!\s*(\=|\=\=|\!\=|\<\=|\>\=|\+=|\+|\s|:|,)\s*!", '\\1', $text);
|
||||||
|
//echo "//" . microtime() . " " . strlen($text) . " Stripped safe spaces\n";
|
||||||
|
|
||||||
|
echo "//" . strlen(gzdeflate($text)) . " bytes gzdeflated\n";
|
||||||
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
// General options
|
// General options
|
||||||
$suffix = ""; // Set to "_src" to use source version
|
$suffix = ""; // Set to "_src" to use source version
|
||||||
$expiresOffset = 3600 * 24 * 10; // 10 days util client cache expires
|
$expiresOffset = 3600 * 24 * 10; // 10 days util client cache expires
|
||||||
|
@ -51,7 +79,7 @@
|
||||||
// Only gzip the contents if clients and server support it
|
// Only gzip the contents if clients and server support it
|
||||||
$encodings = explode(',', strtolower($_SERVER['HTTP_ACCEPT_ENCODING']));
|
$encodings = explode(',', strtolower($_SERVER['HTTP_ACCEPT_ENCODING']));
|
||||||
if (in_array('gzip', $encodings) && function_exists('ob_gzhandler'))
|
if (in_array('gzip', $encodings) && function_exists('ob_gzhandler'))
|
||||||
ob_start("ob_gzhandler");
|
@ ob_start("ob_gzhandler"); // Don't let warnings foul up the JS
|
||||||
|
|
||||||
// Output rest of headers
|
// Output rest of headers
|
||||||
header("Content-type: text/javascript; charset: UTF-8");
|
header("Content-type: text/javascript; charset: UTF-8");
|
||||||
|
@ -62,7 +90,9 @@
|
||||||
if ($index > -1) {
|
if ($index > -1) {
|
||||||
// Write main script and patch some things
|
// Write main script and patch some things
|
||||||
if ($index == 0) {
|
if ($index == 0) {
|
||||||
echo file_get_contents(realpath("tiny_mce" . $suffix . ".js"));
|
// WP echo file_get_contents(realpath("tiny_mce" . $suffix . ".js"));
|
||||||
|
$tinymce = file_get_contents(realpath("tiny_mce.js"));
|
||||||
|
echo wp_compact_tinymce_js($tinymce);
|
||||||
echo "\n\n";
|
echo "\n\n";
|
||||||
echo "TinyMCE.prototype.loadScript = function() {};\n";
|
echo "TinyMCE.prototype.loadScript = function() {};\n";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue