Changeset 6789
- Timestamp:
- 02/11/2008 05:45:18 PM (16 years ago)
- Location:
- trunk/wp-includes
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/default-filters.php
r6712 r6789 144 144 add_filter('option_home', '_config_wp_home'); 145 145 add_filter('option_siteurl', '_config_wp_siteurl'); 146 add_filter('mce_plugins', '_mce_load_rtl_plugin'); 147 add_filter('mce_buttons', '_mce_add_direction_buttons'); 146 add_filter('tiny_mce_before_init', '_mce_set_direction'); 148 147 add_filter('pre_kses', 'wp_pre_kses_less_than'); 149 148 add_filter('sanitize_title', 'sanitize_title_with_dashes'); … … 174 173 add_action('sanitize_comment_cookies', 'sanitize_comment_cookies'); 175 174 add_action('admin_print_scripts', 'wp_print_scripts', 20); 176 add_action('mce_options', '_mce_set_direction');177 175 add_action('init', 'smilies_init', 5); 178 176 add_action( 'plugins_loaded', 'wp_maybe_load_widgets', 0 ); -
trunk/wp-includes/functions.php
r6786 r6789 1383 1383 1384 1384 1385 function _mce_set_direction( ) {1385 function _mce_set_direction( $input ) { 1386 1386 global $wp_locale; 1387 1387 1388 1388 if ( 'rtl' == $wp_locale->text_direction ) { 1389 echo 'directionality : "rtl" ,'; 1390 echo 'theme_advanced_toolbar_align : "right" ,'; 1391 } 1392 } 1393 1394 1395 function _mce_load_rtl_plugin( $input ) { 1396 global $wp_locale; 1397 1398 if ( 'rtl' == $wp_locale->text_direction ) 1399 $input[] = 'directionality'; 1400 1401 return $input; 1402 } 1403 1404 1405 function _mce_add_direction_buttons( $input ) { 1406 global $wp_locale; 1407 1408 if ( 'rtl' == $wp_locale->text_direction ) { 1409 $new_buttons = array( 'separator', 'ltr', 'rtl' ); 1410 $input = array_merge( $input, $new_buttons ); 1389 $input['directionality'] = 'rtl'; 1390 $input['theme_advanced_toolbar_align'] = 'right'; 1391 $input['plugins'] .= ',directionality'; 1392 $input['theme_advanced_buttons2'] .= ',|,ltr,rtl'; 1411 1393 } 1412 1394 -
trunk/wp-includes/js/tinymce/tiny_mce_config.php
r6765 r6789 1 <?php 2 @ require('../../../wp-config.php'); 3 cache_javascript_headers(); 4 5 // deprecated 6 function wp_translate_tinymce_lang($text) { 7 if ( ! function_exists('__') ) { 8 return $text; 9 } else { 10 $search1 = "/^tinyMCELang\\[(['\"])(.*)\\1\]( ?= ?)(['\"])(.*)\\4/Uem"; 11 $replace1 = "'tinyMCELang[\\1\\2\\1]\\3'.stripslashes('\\4').__('\\5').stripslashes('\\4')"; 12 13 $search2 = "/ : (['\"])(.*)\\1/Uem"; 14 $replace2 = "' : '.stripslashes('\\1').__('\\2').stripslashes('\\1')"; 15 16 $search = array($search1, $search2); 17 $replace = array($replace1, $replace2); 18 19 $text = preg_replace($search, $replace, $text); 20 21 return $text; 1 <?php 2 // some code below is from: 3 /** 4 * $Id: tiny_mce_gzip.php 315 2007-10-25 14:03:43Z spocke $ 5 * 6 * @author Moxiecode 7 * @copyright Copyright © 2005-2006, Moxiecode Systems AB, All rights reserved. 8 * 9 * This file compresses the TinyMCE JavaScript using GZip. 10 **/ 11 12 @ require('../../../wp-config.php'); 13 14 function getFileContents($path) { 15 $path = realpath($path); 16 17 if ( ! $path || ! @is_file($path) ) 18 return ''; 19 20 if ( function_exists('file_get_contents') ) 21 return @file_get_contents($path); 22 23 $content = ''; 24 $fp = @fopen($path, 'r'); 25 if ( ! $fp ) 26 return ''; 27 28 while ( ! feof($fp) ) 29 $content .= fgets($fp); 30 31 fclose($fp); 32 return $content; 33 } 34 35 function putFileContents( $path, $content ) { 36 if ( function_exists('file_put_contents') ) 37 return @file_put_contents( $path, $content ); 38 39 $fp = @fopen( $path, 'wb' ); 40 if ($fp) { 41 fwrite( $fp, $content ); 42 fclose($fp); 43 } 44 } 45 46 // Set up init variables 47 $https = ( isset($_SERVER['HTTPS']) && 'on' == $_SERVER['HTTPS'] ) ? true : false; 48 49 $baseurl = get_option('siteurl') . '/wp-includes/js/tinymce'; 50 $baseurl = $https ? str_replace('http://', 'https://', $baseurl) : $baseurl; 51 52 $mce_css = $baseurl . '/wordpress.css'; 53 $mce_css = apply_filters('mce_css', $mce_css); 54 $mce_css = $https ? str_replace('http://', 'https://', $mce_css) : $mce_css; 55 56 $valid_elements = '*[*]'; 57 $valid_elements = apply_filters('mce_valid_elements', $valid_elements); 58 59 $invalid_elements = apply_filters('mce_invalid_elements', ''); 60 61 $plugins = array( 'safari', 'inlinepopups', 'autosave', 'spellchecker', 'paste', 'wordpress', 'media', 'fullscreen' ); 62 63 /* 64 The following filter takes an associative array of external plugins for TinyMCE in the form "name" => "url". 65 It adds the plugin's name (including the required dash) to TinyMCE's plugins init and the call to PluginManager to load the plugin. 66 The url should be absolute and should include the js file name to be loaded. 67 Example: array( 'myplugin' => 'http://my-site.com/wp-content/plugins/myfolder/mce_plugin.js' ). 68 If the plugin uses a button, it should be added with one of the "$mce_buttons" filters. 69 */ 70 $mce_external_plugins = apply_filters('mce_external_plugins', array()); 71 72 $ext_plugins = "\n"; 73 foreach ( $mce_external_plugins as $name => $url ) { 74 $plugins[] = '-' . $name; 75 $url = $https ? str_replace('http://', 'https://', $url) : $url; 76 77 $ext_plugins .= 'tinymce.PluginManager.load("' . $name . '", "' . $url . '");' . "\n"; 78 } 79 80 $plugins = implode($plugins, ','); 81 82 $mce_buttons = apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', '|', 'bullist', 'numlist', 'outdent', 'indent', '|', 'justifyleft', 'justifycenter', 'justifyright', '|', 'link', 'unlink', 'image', 'wp_more', '|', 'spellchecker', '|', 'wp_help', 'wp_adv' )); 83 $mce_buttons = implode($mce_buttons, ','); 84 85 $mce_buttons_2 = apply_filters('mce_buttons_2', array('formatselect', 'underline', 'justifyfull', 'forecolor', '|', 'pastetext', 'pasteword', '|', 'removeformat', 'cleanup', '|', 'media', 'charmap', 'blockquote', '|', 'undo', 'redo', 'fullscreen' )); 86 $mce_buttons_2 = implode($mce_buttons_2, ','); 87 88 $mce_buttons_3 = apply_filters('mce_buttons_3', array()); 89 $mce_buttons_3 = implode($mce_buttons_3, ','); 90 91 $mce_buttons_4 = apply_filters('mce_buttons_4', array()); 92 $mce_buttons_4 = implode($mce_buttons_4, ','); 93 94 // all these browsers are now 100% supported, no need for this 95 //$mce_browsers = apply_filters('mce_browsers', array('msie', 'gecko', 'opera', 'safari')); 96 //$mce_browsers = implode($mce_browsers, ','); 97 98 $mce_locale = ( '' == get_locale() ) ? 'en' : strtolower( substr(get_locale(), 0, 2) ); // only ISO 639-1 99 100 // TinyMCE init settings 101 $initArray = array ( 102 'mode' => 'none', 103 'onpageload' => 'wpEditorInit', 104 'width' => '100%', 105 'theme' => 'advanced', 106 'skin' => 'wp_theme', 107 'theme_advanced_buttons1' => "$mce_buttons", 108 'theme_advanced_buttons2' => "$mce_buttons_2", 109 'theme_advanced_buttons3' => "$mce_buttons_3", 110 'theme_advanced_buttons4' => "$mce_buttons_4", 111 'language' => "$mce_locale", 112 'theme_advanced_toolbar_location' => 'top', 113 'theme_advanced_toolbar_align' => 'left', 114 'theme_advanced_statusbar_location' => 'bottom', 115 'theme_advanced_resizing' => true, 116 'theme_advanced_resize_horizontal' => false, 117 // 'browsers' => "$mce_browsers", 118 'dialog_type' => 'modal', 119 'convert_urls' => false, 120 'relative_urls' => false, 121 'remove_script_host' => false, 122 'fix_list_elements' => true, 123 'fix_table_elements' => true, 124 'gecko_spellcheck' => true, 125 'entities' => '38,amp,60,lt,62,gt', 126 'accessibility_focus' => false, 127 'tab_focus' => ':next', 128 'content_css' => "$mce_css", 129 'save_callback' => 'switchEditors.saveCallback', 130 'plugins' => "$plugins", 131 // pass-through the settings for compression and caching, so they can be changed with "tiny_mce_before_init" 132 'disk_cache' => true, 133 'compress' => true, 134 'del_old_cache' => true 135 ); 136 137 if ( $valid_elements ) $initArray['valid_elements'] = $valid_elements; 138 if ( $invalid_elements ) $initArray['invalid_elements'] = $invalid_elements; 139 140 // For people who really REALLY know what they're doing with TinyMCE 141 // You can modify initArray to add, remove, change elements of the config before tinyMCE.init 142 $initArray = apply_filters('tiny_mce_before_init', $initArray); // changed from action to filter 143 144 // support for deprecated actions 145 ob_start(); 146 do_action('mce_options'); 147 $mce_deprecated1 = ob_get_contents() || ''; 148 ob_end_clean(); 149 150 /* 151 // Do we need to support this? Most likely will breal TinyMCE 3... 152 ob_start(); 153 do_action('tinymce_before_init'); 154 $mce_deprecated2 = ob_get_contents() || ''; 155 ob_end_clean(); 156 */ 157 158 // Settings for the gzip compression and cache 159 $cache_path = dirname(__FILE__); // Cache path, this is where the .gz files will be stored 160 $cache_ext = '.js'; 161 162 $disk_cache = ( ! isset($initArray['disk_cache']) || false == $initArray['disk_cache'] ) ? false : true; 163 $compress = ( ! isset($initArray['compress']) || false == $initArray['compress'] ) ? false : true; 164 $del_old_cache = ( ! isset($initArray['del_old_cache']) || false == $initArray['del_old_cache'] ) ? false : true; 165 166 $initArray['disk_cache'] = $initArray['compress'] = $initArray['del_old_cache'] = null; 167 unset( $initArray['disk_cache'], $initArray['compress'], $initArray['del_old_cache'] ); 168 169 $plugins = explode( ',', $initArray['plugins'] ); 170 $theme = ( 'simple' == $initArray['theme'] ) ? 'simple' : 'advanced'; 171 $language = isset($initArray['language']) ? substr( $initArray['language'], 0, 2 ) : 'en'; 172 $enc = $cacheKey = $suffix = $mce_options = ''; 173 174 // Custom extra javascripts to pack 175 $custom_js = array(); //$custom_js = apply_filters('tinymce_custom_js', array()); 176 177 // Check if supports gzip 178 if ( $compress && isset($_SERVER['HTTP_ACCEPT_ENCODING']) ) { 179 $encodings = explode( ',', strtolower( preg_replace('/\s+/', '', $_SERVER['HTTP_ACCEPT_ENCODING']) ) ); 180 181 if ( (in_array('gzip', $encodings) || in_array('x-gzip', $encodings) || isset($_SERVER['---------------']) ) && function_exists('ob_gzhandler') && !ini_get('zlib.output_compression') ) { 182 $enc = in_array('x-gzip', $encodings) ? 'x-gzip' : 'gzip'; 183 $cache_ext = '.gz'; 184 } 185 } 186 187 // Setup cache info 188 if ( $disk_cache && $cache_path ) { 189 190 $ver = isset($_GET['ver']) ? (int) $_GET['ver'] : ''; 191 $cacheKey = $initArray['plugins'] . $language . $theme . $suffix . $ver; 192 193 foreach ( $custom_js as $file ) 194 $cacheKey .= $file; 195 196 $cacheKey = md5( $cacheKey ); 197 $cache_file = $cache_path . '/tiny_mce_' . $cacheKey . $cache_ext; 198 } 199 200 cache_javascript_headers(); 201 202 // Use cached file if exists 203 if ( $disk_cache && file_exists($cache_file) ) { 204 if ( '.gz' == $cache_ext ) 205 header( 'Content-Encoding: ' . $enc ); 206 207 echo getFileContents( $cache_file ); 208 exit; 209 } 210 211 foreach ( $initArray as $k => $v ) 212 $mce_options .= $k . ':"' . $v . '", '; 213 214 $mce_options .= $mce_deprecated1; 215 $mce_options = rtrim( trim($mce_options), '\n\r,' ); 216 217 $content = 'var tinyMCEPreInit = { suffix : "' . $suffix . '", base : "' . $baseurl . '" };'; 218 $content .= 'var tinyMCE_GZ = { settings : { themes : "' . $theme . '", plugins : "' . $initArray['plugins'] . '", languages : "' . $language . '", debug : false, suffix : "' . $suffix . '" }, baseURL : "' . $baseurl . '" };'; 219 220 // Load patch 221 $content .= getFileContents( 'tiny_mce_ext.js' ); 222 223 // Add core 224 $content .= getFileContents( 'tiny_mce' . $suffix . '.js' ); 225 226 // Patch loading functions 227 $content .= 'tinyMCE_GZ.start();'; 228 229 // Add all languages (WP) 230 include_once( dirname(__FILE__).'/langs/wp-langs.php' ); 231 $content .= $strings; 232 233 // Add themes 234 $content .= getFileContents( 'themes/' . $theme . '/editor_template' . $suffix . '.js' ); 235 236 // Add plugins 237 foreach ( $plugins as $plugin ) 238 $content .= getFileContents( 'plugins/' . $plugin . '/editor_plugin' . $suffix . '.js' ); 239 240 // Add custom files 241 foreach ( $custom_js as $file ) 242 $content .= getFileContents($file); 243 244 // Add external plugins and init 245 $content .= $ext_plugins . 'tinyMCE.init({' . $mce_options . '});'; // $mce_deprecated2 . 246 247 // Generate GZIP'd content 248 if ( '.gz' == $cache_ext ) { 249 header('Content-Encoding: ' . $enc); 250 $cache_data = gzencode( $content, 9, FORCE_GZIP ); 251 } else 252 $cache_data = $content; 253 254 // Stream to client 255 echo $cache_data; 256 257 // Write file 258 if ( '' != $cacheKey ) { 259 if ( $del_old_cache ) { 260 $old_key = getFileContents('tiny_mce_compressed_key'); 261 262 if ( '' != $old_key ) { // && $old_key != $cacheKey 263 $old_cache = $cache_path . '/tiny_mce_' . $old_key . $cache_ext; 264 @unlink($old_cache); 22 265 } 266 267 putFileContents( 'tiny_mce_compressed_key', $cacheKey ); 23 268 } 24 25 // Set up init variables 26 $valid_elements = '*[*]'; 27 $valid_elements = apply_filters('mce_valid_elements', $valid_elements); 28 29 $invalid_elements = apply_filters('mce_invalid_elements', ''); 30 31 $plugins = array( 'safari', 'inlinepopups', 'autosave', 'spellchecker', 'paste', 'wordpress', 'media', 'fullscreen' ); 32 $plugins = apply_filters('mce_plugins', $plugins); 33 $plugins = implode($plugins, ','); 34 35 $mce_buttons = apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', '|', 'bullist', 'numlist', 'outdent', 'indent', '|', 'justifyleft', 'justifycenter', 'justifyright', '|', 'link', 'unlink', 'image', 'wp_more', '|', 'spellchecker', '|', 'wp_help', 'wp_adv' )); 36 $mce_buttons = implode($mce_buttons, ','); 37 38 39 $mce_buttons_2 = apply_filters('mce_buttons_2', array('formatselect', 'underline', 'justifyfull', 'forecolor', '|', 'pastetext', 'pasteword', '|', 'removeformat', 'cleanup', '|', 'media', 'charmap', 'blockquote', '|', 'undo', 'redo', 'fullscreen' )); 40 $mce_buttons_2 = implode($mce_buttons_2, ','); 41 42 $mce_buttons_3 = apply_filters('mce_buttons_3', array()); 43 $mce_buttons_3 = implode($mce_buttons_3, ','); 44 45 $mce_buttons_4 = apply_filters('mce_buttons_4', array()); 46 $mce_buttons_4 = implode($mce_buttons_4, ','); 47 48 $mce_browsers = apply_filters('mce_browsers', array('msie', 'gecko', 'opera', 'safari')); 49 $mce_browsers = implode($mce_browsers, ','); 50 51 $mce_css = get_option('siteurl') . '/wp-includes/js/tinymce/wordpress.css'; 52 $mce_css = apply_filters('mce_css', $mce_css); 53 if ( $_SERVER['HTTPS'] == 'on' ) 54 $mce_css = str_replace('http://', 'https://', $mce_css); 55 56 $mce_locale = ( '' == get_locale() ) ? 'en' : strtolower( substr(get_locale(), 0, 2) ); // only ISO 639-1 269 270 putFileContents( $cache_file, $cache_data ); 271 } 57 272 ?> 58 59 initArray = {60 mode : "none",61 onpageload : "wpEditorInit",62 width : "100%",63 theme : "advanced",64 skin : "wp_theme",65 theme_advanced_buttons1 : "<?php echo $mce_buttons; ?>",66 theme_advanced_buttons2 : "<?php echo $mce_buttons_2; ?>",67 theme_advanced_buttons3 : "<?php echo $mce_buttons_3; ?>",68 theme_advanced_buttons4 : "<?php echo $mce_buttons_4; ?>",69 language : "<?php echo $mce_locale; ?>",70 theme_advanced_toolbar_location : "top",71 theme_advanced_toolbar_align : "left",72 theme_advanced_statusbar_location : "bottom",73 theme_advanced_resizing : true,74 browsers : "<?php echo $mce_browsers; ?>",75 dialog_type : "modal",76 theme_advanced_resize_horizontal : false,77 convert_urls : false,78 relative_urls : false,79 remove_script_host : false,80 fix_list_elements : true,81 fix_table_elements : true,82 gecko_spellcheck : true,83 entities : "38,amp,60,lt,62,gt",84 accessibility_focus : false,85 tab_focus : ":next",86 content_css : "<?php echo $mce_css; ?>",87 <?php if ( $valid_elements ) echo 'valid_elements : "' . $valid_elements . '",' . "\n"; ?>88 <?php if ( $invalid_elements ) echo 'invalid_elements : "' . $invalid_elements . '",' . "\n"; ?>89 save_callback : "switchEditors.saveCallback",90 <?php do_action('mce_options'); ?>91 plugins : "<?php echo $plugins; ?>"92 };93 94 <?php95 // For people who really REALLY know what they're doing with TinyMCE96 // You can modify initArray to add, remove, change elements of the config before tinyMCE.init97 do_action('tinymce_before_init');98 ?>99 100 tinyMCE_GZ.init(initArray); -
trunk/wp-includes/js/tinymce/tiny_mce_gzip.php
r6765 r6789 1 <?php2 /** Based on:3 * $Id: tiny_mce_gzip.php 315 2007-10-25 14:03:43Z spocke $4 *5 * @author Moxiecode6 * @copyright Copyright © 2005-2006, Moxiecode Systems AB, All rights reserved.7 *8 * This file compresses the TinyMCE JavaScript using GZip and9 * enables the browser to do two requests instead of one for each .js file.10 * Notice: This script defaults the button_tile_map option to true for extra performance.11 */12 13 @require_once('../../../wp-config.php'); // For get_bloginfo().14 cache_javascript_headers();15 16 if ( isset($_GET['load']) ) {17 18 function getParam( $name, $def = false ) {19 if ( ! isset($_GET[$name]) )20 return $def;21 22 return preg_replace( "/[^0-9a-z\-_,]+/i", "", $_GET[$name] ); // Remove anything but 0-9,a-z,-_23 }24 25 function getFileContents($path) {26 $path = realpath($path);27 28 if ( ! $path || !@is_file($path) )29 return '';30 31 if ( function_exists('file_get_contents') )32 return @file_get_contents($path);33 34 $content = '';35 $fp = @fopen( $path, 'r' );36 if (!$fp)37 return '';38 39 while ( ! feof($fp) )40 $content .= fgets($fp);41 42 fclose($fp);43 44 return $content;45 }46 47 function putFileContents( $path, $content ) {48 if ( function_exists('file_put_contents') )49 return @file_put_contents( $path, $content );50 51 $fp = @fopen($path, 'wb');52 if ($fp) {53 fwrite($fp, $content);54 fclose($fp);55 }56 }57 58 // WP defaults59 $themes = explode( ',', getParam('themes', 'advanced') );60 61 $language = getParam( 'languages', 'en' );62 $language = strtolower( substr($language, 0, 2) ); // only ISO 639-163 64 $plugins = explode( ',', getParam('plugins', '') );65 $cachePath = realpath('.'); // Cache path, this is where the .gz files will be stored66 67 $encodings = array();68 $supportsGzip = $diskCache = false;69 $compress = $core = true;70 $suffix = $content = $enc = $cacheKey = '';71 72 // Custom extra javascripts to pack73 // WP - add a hook for external plugins to be compressed too?74 $custom = array(/*75 'some custom .js file',76 'some custom .js file'77 */);78 79 // Setup cache info80 if ( $diskCache ) {81 if ( ! $cachePath )82 die('Real path failed.');83 84 $cacheKey = getParam( 'plugins', '' ) . getParam( 'languages', '' ) . getParam( 'themes', '' ) . $suffix;85 86 foreach ( $custom as $file )87 $cacheKey .= $file;88 89 $cacheKey = md5($cacheKey);90 91 if ( $compress )92 $cacheFile = $cachePath . '/tiny_mce_' . $cacheKey . '.gz';93 else94 $cacheFile = $cachePath . '/tiny_mce_' . $cacheKey . '.js';95 }96 97 // Check if it supports gzip98 if ( isset( $_SERVER['HTTP_ACCEPT_ENCODING'] ) )99 $encodings = explode(',', strtolower(preg_replace( '/\s+/', '', $_SERVER['HTTP_ACCEPT_ENCODING']) ) );100 101 if ( ( in_array('gzip', $encodings ) || in_array( 'x-gzip', $encodings ) || isset($_SERVER['---------------']) ) && function_exists( 'ob_gzhandler' ) && ! ini_get('zlib.output_compression') ) {102 $enc = in_array( 'x-gzip', $encodings ) ? 'x-gzip' : 'gzip';103 $supportsGzip = true;104 }105 106 // Use cached file disk cache107 if ( $diskCache && $supportsGzip && file_exists($cacheFile) ) {108 if ( $compress )109 header('Content-Encoding: ' . $enc);110 111 echo getFileContents( $cacheFile );112 die();113 }114 115 // Add core116 if ( $core == 'true' ) {117 $content .= getFileContents( 'tiny_mce' . $suffix . '.js' );118 119 // Patch loading functions120 $content .= 'tinyMCE_GZ.start();';121 }122 123 // Add all languages (WP)124 include_once( dirname(__file__).'/langs/wp-langs.php' );125 $content .= $strings;126 127 // Add themes128 foreach ( $themes as $theme )129 $content .= getFileContents( 'themes/' . $theme . '/editor_template' . $suffix . '.js' );130 131 // Add plugins132 foreach ( $plugins as $plugin )133 $content .= getFileContents( 'plugins/' . $plugin . '/editor_plugin' . $suffix . '.js' );134 135 // Add custom files136 foreach ( $custom as $file )137 $content .= getFileContents($file);138 139 // Restore loading functions140 if ( $core == 'true' )141 $content .= 'tinyMCE_GZ.end();';142 143 // Generate GZIP'd content144 if ( $supportsGzip ) {145 if ( $compress ) {146 header('Content-Encoding: ' . $enc);147 $cacheData = gzencode( $content, 9, FORCE_GZIP );148 } else149 $cacheData = $content;150 151 // Write gz file152 if ( $diskCache && '' != $cacheKey )153 putFileContents( $cacheFile, $cacheData );154 155 // Stream to client156 echo $cacheData;157 } else {158 // Stream uncompressed content159 echo $content;160 }161 162 exit;163 }164 ?>165 166 var tinyMCEPreInit = {suffix : ''};167 168 var tinyMCE_GZ = {169 settings : {170 themes : '',171 plugins : '',172 languages : '',173 disk_cache : false,174 page_name : 'tiny_mce_gzip.php',175 debug : false,176 suffix : ''177 },178 179 opt : {},180 181 init : function(o, cb) {182 var t = this, n, s = t.settings, nl = document.getElementsByTagName('script');183 184 t.opt = o;185 186 s.themes = o.theme;187 s.plugins = o.plugins;188 s.languages = o.language;189 t.settings = s;190 191 t.cb = cb || '';192 193 for (i=0; i<nl.length; i++) {194 n = nl[i];195 196 if (n.src && n.src.indexOf('tiny_mce') != -1)197 t.baseURL = n.src.substring(0, n.src.lastIndexOf('/'));198 }199 tinyMCEPreInit.base = t.baseURL;200 201 if (!t.coreLoaded)202 t.loadScripts(1, s.themes, s.plugins, s.languages);203 },204 205 loadScripts : function(co, th, pl, la, cb, sc) {206 var t = this, x, w = window, q, c = 0, ti, s = t.settings;207 208 function get(s) {209 x = 0;210 211 try {212 x = new ActiveXObject(s);213 } catch (s) {214 }215 216 return x;217 };218 219 // Build query string220 q = 'load=true&js=true&diskcache=' + (s.disk_cache ? 'true' : 'false') + '&core=' + (co ? 'true' : 'false') + '&suffix=' + escape(s.suffix) + '&themes=' + escape(th) + '&plugins=' + escape(pl) + '&languages=' + escape(la);221 222 if (co)223 t.coreLoaded = 1;224 225 // document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + t.baseURL + '/' + s.page_name + '?' + q + '"></script>');226 227 // Send request228 x = w.XMLHttpRequest ? new XMLHttpRequest() : get('Msxml2.XMLHTTP') || get('Microsoft.XMLHTTP');229 x.overrideMimeType && x.overrideMimeType('text/javascript');230 x.open('GET', t.baseURL + '/' + s.page_name + '?' + q, !!cb);231 // x.setRequestHeader('Content-Type', 'text/javascript');232 x.send('');233 234 // Handle asyncronous loading235 if (cb) {236 // Wait for response237 ti = w.setInterval(function() {238 if (x.readyState == 4 || c++ > 10000) {239 w.clearInterval(ti);240 241 if (c < 10000 && x.status == 200) {242 t.loaded = 1;243 t.eval(x.responseText);244 tinymce.dom.Event.domLoaded = true;245 // cb.call(sc || t, x);246 }247 248 ti = x = null;249 }250 }, 10);251 } else252 t.eval(x.responseText);253 },254 255 start : function() {256 var t = this, each = tinymce.each, s = t.settings, sl, ln = s.languages.split(',');257 258 tinymce.suffix = s.suffix;259 260 // Extend script loader261 tinymce.create('tinymce.compressor.ScriptLoader:tinymce.dom.ScriptLoader', {262 loadScripts : function(sc, cb, s) {263 var ti = this, th = [], pl = [], la = [];264 265 each(sc, function(o) {266 var u = o.url;267 268 if ((!ti.lookup[u] || ti.lookup[u].state != 2) && u.indexOf(t.baseURL) === 0) {269 // Collect theme270 if (u.indexOf('editor_template') != -1) {271 th.push(/\/themes\/([^\/]+)/.exec(u)[1]);272 load(u, 1);273 }274 275 // Collect plugin276 if (u.indexOf('editor_plugin') != -1) {277 pl.push(/\/plugins\/([^\/]+)/.exec(u)[1]);278 load(u, 1);279 }280 281 // Collect language282 if (u.indexOf('/langs/') != -1) {283 la.push(/\/langs\/([^.]+)/.exec(u)[1]);284 load(u, 1);285 }286 }287 });288 289 if (th.length + pl.length + la.length > 0) {290 if (sl.settings.strict_mode) {291 // Async292 t.loadScripts(0, th.join(','), pl.join(','), la.join(','), cb, s);293 return;294 } else295 t.loadScripts(0, th.join(','), pl.join(','), la.join(','), cb, s);296 }297 298 return ti.parent(sc, cb, s);299 }300 });301 302 sl = tinymce.ScriptLoader = new tinymce.compressor.ScriptLoader();303 304 function load(u, sp) {305 var o;306 307 if (!sp)308 u = t.baseURL + u;309 310 o = {url : u, state : 2};311 sl.queue.push(o);312 sl.lookup[o.url] = o;313 };314 315 // Add core languages316 each (ln, function(c) {317 if (c)318 load('/langs/' + c + '.js');319 });320 321 // Add themes with languages322 each(s.themes.split(','), function(n) {323 if (n) {324 load('/themes/' + n + '/editor_template' + s.suffix + '.js');325 326 each (ln, function(c) {327 if (c)328 load('/themes/' + n + '/langs/' + c + '.js');329 });330 }331 });332 333 // Add plugins with languages334 each(s.plugins.split(','), function(n) {335 if (n) {336 load('/plugins/' + n + '/editor_plugin' + s.suffix + '.js');337 338 each (ln, function(c) {339 if (c)340 load('/plugins/' + n + '/langs/' + c + '.js');341 });342 }343 });344 },345 346 end : function() {347 tinyMCE.init(this.opt);348 },349 350 eval : function(co) {351 var w = window;352 353 // Evaluate script354 if (!w.execScript) {355 try {356 eval.call(w, co);357 } catch (ex) {358 eval(co, w); // Firefox 3.0a8359 }360 } else361 w.execScript(co); // IE362 }363 }; -
trunk/wp-includes/script-loader.php
r6770 r6789 31 31 32 32 // Modify this version when tinyMCE plugins are changed 33 $this->add( 'tiny_mce', '/wp-includes/js/tinymce/tiny_mce_gzip.php', false, '20080208' );34 35 33 $mce_config = apply_filters('tiny_mce_config_url', '/wp-includes/js/tinymce/tiny_mce_config.php'); 36 $this->add( ' wp_tiny_mce', $mce_config, array('tiny_mce'), '20080208' );34 $this->add( 'tiny_mce', $mce_config, false, '20080209' ); 37 35 38 36 $this->add( 'prototype', '/wp-includes/js/prototype.js', false, '1.6'); … … 479 477 // These localizations require information that may not be loaded even by init 480 478 function wp_just_in_time_script_localization() { 481 wp_localize_script( ' wp_tiny_mce', 'wpTinyMCEConfig', array( 'defaultEditor' => wp_default_editor() ) );479 wp_localize_script( 'tiny_mce', 'wpTinyMCEConfig', array( 'defaultEditor' => wp_default_editor() ) ); 482 480 } 483 481
Note: See TracChangeset
for help on using the changeset viewer.