mirror of
https://github.com/WordPress/WordPress.git
synced 2024-08-25 23:33:22 +02:00
TinyMCE 3.4.x (shipped with WordPress 3.4.x) had an HTML4-based schema definition, with HTML5 elements added to it. TinyMCE 3.5.x (shipping, again coincidentally, with WordPress 3.5) allows for HTML5 schema support, which also provides for full HTML5 attribute support. The problem is its HTML5 schema excludes all HTML4 elements and attributes that were dropped in the HTML5 spec, which is unacceptable behavior. This "duck punch" of TinyMCE's Schema.js file creates a new, sane schema. It is TinyMCE's HTML4 and HTML5 schema definitions recursively merged. Objects are not whitelisted in either schema to allow for embed elements as child nodes, so object, param, and embed remain separately whitelisted in the WordPress TinyMCE plugin. Our attempts to add other attributes in said plugin is now superceded. props koopersmith, azaozz. fixes #22790. git-svn-id: http://core.svn.wordpress.org/trunk@23120 1a063a9b-81f0-0310-95a4-ce76da25c4cd
39 lines
1.0 KiB
PHP
39 lines
1.0 KiB
PHP
<?php
|
|
/**
|
|
* Disable error reporting
|
|
*
|
|
* Set this to error_reporting( E_ALL ) or error_reporting( E_ALL | E_STRICT ) for debugging
|
|
*/
|
|
error_reporting(0);
|
|
|
|
$basepath = dirname(__FILE__);
|
|
|
|
function get_file($path) {
|
|
|
|
if ( function_exists('realpath') )
|
|
$path = realpath($path);
|
|
|
|
if ( ! $path || ! @is_file($path) )
|
|
return false;
|
|
|
|
return @file_get_contents($path);
|
|
}
|
|
|
|
$expires_offset = 31536000; // 1 year
|
|
|
|
header('Content-Type: application/x-javascript; charset=UTF-8');
|
|
header('Vary: Accept-Encoding'); // Handle proxies
|
|
header('Expires: ' . gmdate( "D, d M Y H:i:s", time() + $expires_offset ) . ' GMT');
|
|
header("Cache-Control: public, max-age=$expires_offset");
|
|
|
|
if ( isset($_GET['c']) && 1 == $_GET['c'] && isset($_SERVER['HTTP_ACCEPT_ENCODING'])
|
|
&& false !== stripos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && ( $file = get_file($basepath . '/wp-tinymce.js.gz') ) ) {
|
|
|
|
header('Content-Encoding: gzip');
|
|
echo $file;
|
|
} else {
|
|
echo get_file($basepath . '/tiny_mce.js');
|
|
echo get_file($basepath . '/wp-tinymce-schema.js');
|
|
}
|
|
exit;
|