Changeset 19217
- Timestamp:
- 11/08/2011 06:05:59 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/js/wp-fullscreen.dev.js
r18828 r19217 139 139 140 140 // Settings can be added or changed by defining "wp_fullscreen_settings" JS object. 141 // This can be done by defining it as PHP a rrayand passing it to JS with:142 // add_script_data( 'wp-fullscreen', 'wp_fullscreen_settings', $settings_array )141 // This can be done by defining it as PHP associative array, json encoding it and passing it to JS with: 142 // wp_add_script_before( 'wp-fullscreen', 'wp_fullscreen_settings = ' . $json_encoded_array . ';' ); 143 143 if ( typeof(wp_fullscreen_settings) == 'object' ) 144 144 $.extend( s, wp_fullscreen_settings ); -
trunk/wp-includes/class.wp-scripts.php
r18813 r19217 48 48 } 49 49 50 // Deprecated since 3.3, see print_ script_data()50 // Deprecated since 3.3, see print_extra_script() 51 51 function print_scripts_l10n( $handle, $echo = true ) { 52 _deprecated_function( __FUNCTION__, '3.3', 'print_script_data()' ); 53 return $this->print_script_data( $handle, $echo, true ); 54 } 55 56 function print_script_data( $handle, $echo = true, $_l10n = false ) { 57 if ( $_l10n ) { 58 list( $name, $data ) = $this->get_data( $handle, 'l10n' ); 59 $after = ''; 60 61 if ( is_array($data) && isset($data['l10n_print_after']) ) { 62 $after = $data['l10n_print_after']; 63 unset($data['l10n_print_after']); 64 } 65 66 $data = $this->decode_html_entities($data); 67 $output = "var $name = " . json_encode( $data ) . "; $after\n"; 68 } else { 69 $data = $this->get_data( $handle, 'data' ); 70 71 if ( empty( $data ) ) 72 return false; 73 74 foreach ( (array) $data as $name => $value ) { 75 $value = $this->decode_html_entities($value); 76 $output = "var $name = " . json_encode( $value ) . ";\n"; 77 } 78 } 52 _deprecated_function( __FUNCTION__, '3.3', 'print_extra_script()' ); 53 return $this->print_extra_script( $handle, $echo ); 54 } 55 56 function print_extra_script( $handle, $echo = true ) { 57 if ( !$output = $this->get_data( $handle, 'data' ) ) 58 return; 79 59 80 60 if ( !$echo ) 81 61 return $output; 82 62 83 echo "<script type='text/javascript'>\n"; 84 echo "/* <![CDATA[ */\n"; // CDATA is not needed for HTML 585 echo $output;63 echo "<script type='text/javascript'>\n"; // CDATA and type='text/javascript' is not needed for HTML 5 64 echo "/* <![CDATA[ */\n"; 65 echo "$output\n"; 86 66 echo "/* ]]> */\n"; 87 67 echo "</script>\n"; … … 115 95 $srce = apply_filters( 'script_loader_src', $src, $handle ); 116 96 if ( $this->in_default_dir($srce) ) { 117 $this->print_code .= $this->print_ script_data( $handle, false );97 $this->print_code .= $this->print_extra_script( $handle, false ); 118 98 $this->concat .= "$handle,"; 119 99 $this->concat_version .= "$handle$ver"; … … 125 105 } 126 106 127 $this->print_ script_data( $handle );107 $this->print_extra_script( $handle ); 128 108 if ( !preg_match('|^https?://|', $src) && ! ( $this->content_url && 0 === strpos($src, $this->content_url) ) ) { 129 109 $src = $this->base_url . $src; … … 132 112 if ( !empty($ver) ) 133 113 $src = add_query_arg('ver', $ver, $src); 134 $src = esc_url(apply_filters( 'script_loader_src', $src, $handle )); 114 115 $src = esc_url( apply_filters( 'script_loader_src', $src, $handle ) ); 135 116 136 117 if ( $this->do_concat ) … … 143 124 144 125 /** 145 * Localizes a script (Deprecated) 146 * 147 * Localizes only if script has already been added 148 * 149 * @deprecated WP 3.3 126 * Localizes a script 127 * 128 * Localizes only if the script has already been added 150 129 */ 151 130 function localize( $handle, $object_name, $l10n ) { 152 _deprecated_function( __FUNCTION__, '3.3', 'add_script_data()' ); 153 return $this->add_script_data( $handle, $object_name, $l10n ); 131 if ( is_array($l10n) && isset($l10n['l10n_print_after']) ) { // back compat, preserve the code in 'l10n_print_after' if present 132 $after = $l10n['l10n_print_after']; 133 unset($l10n['l10n_print_after']); 134 } 135 136 foreach ( (array) $l10n as $key => $value ) { 137 if ( !is_scalar($value) ) 138 continue; 139 140 $l10n[$key] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8'); 141 } 142 143 $script = "var $object_name = " . json_encode($l10n) . ';'; 144 145 if ( !empty($after) ) 146 $script .= "\n$after"; 147 148 return $this->add_script_data( $handle, $script ); 154 149 } 155 150 … … 160 155 * 161 156 * @param string $handle Script name 162 * @param string $name Name of JS object to hold the data 163 * @param array $args Associative array of JS object attributes 157 * @param string $script Extra JS to add before the script 164 158 * @return bool Successful or not 165 159 */ 166 function add_script_data( $handle, $ name, $args) {167 if ( ! $name || !is_array( $args) )160 function add_script_data( $handle, $script ) { 161 if ( !is_string( $script ) ) 168 162 return false; 169 163 170 164 $data = $this->get_data( $handle, 'data' ); 171 165 172 if ( !empty( $data [$name]) )173 $ args = array_merge( $data[$name], $args );174 175 return $this->add_data( $handle, 'data', array( $name => $args ));166 if ( !empty( $data ) ) 167 $script = "$data;\n$script"; 168 169 return $this->add_data( $handle, 'data', $script ); 176 170 } 177 171 … … 218 212 } 219 213 return false; 220 }221 222 function decode_html_entities($data) {223 foreach ( (array) $data as $key => $value ) {224 if ( is_array($value) )225 $data[$key] = $this->decode_html_entities($value);226 elseif ( is_string($value) )227 $data[$key] = html_entity_decode($value, ENT_QUOTES, 'UTF-8');228 }229 return $data;230 214 } 231 215 -
trunk/wp-includes/functions.wp-scripts.php
r19054 r19217 65 65 66 66 /** 67 * Adds extra Javascript data. 68 * 67 * Wrapper for $wp_scripts->localize(). 68 * 69 * Used to localizes a script. 69 70 * Works only if the script has already been added. 70 * Accepts an associative array $ dataand creates JS object:71 * "$ name" = {71 * Accepts an associative array $l10n and creates JS object: 72 * "$object_name" = { 72 73 * key: value, 73 74 * key: value, 74 75 * ... 75 76 * } 76 * The $name is passed directly so it should be qualified JS variable /[a-zA-Z0-9_]+/ 77 * The $data array is JSON encoded. If called more than once for the same $handle with the same $name, 78 * the object would contain all values. In that case if two or more keys are the same, 79 * the last value overwrites the previous. The function is named "localize_script" because of historical reasons. 80 * 81 * @since r16 77 * See http://core.trac.wordpress.org/ticket/11520 for more information. 78 * 79 * @since r16 80 * 81 * @param string $handle The script handle that was registered or used in script-loader 82 * @param string $object_name Name for the created JS object. This is passed directly so it should be qualified JS variable /[a-zA-Z0-9_]+/ 83 * @param array $l10n Associative PHP array containing the translated strings. HTML entities will be converted and the array will be JSON encoded. 84 * @return bool Whether the localization was added successfully. 85 */ 86 function wp_localize_script( $handle, $object_name, $l10n ) { 87 global $wp_scripts; 88 if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) { 89 if ( ! did_action( 'init' ) ) 90 _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 91 '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 92 93 return false; 94 } 95 96 return $wp_scripts->localize( $handle, $object_name, $l10n ); 97 } 98 99 /** 100 * Adds extra Javascript. 101 * 102 * Works only if the script referenced by $handle has already been added. 103 * Accepts string $extra that will be printed as script before the main script tag. 104 * 105 * @since 3.3 82 106 * @see WP_Scripts::add_script_data() 83 107 */ 84 function wp_ localize_script( $handle, $name, $data) {108 function wp_add_script_before( $handle, $script ) { 85 109 global $wp_scripts; 86 110 if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) { … … 91 115 } 92 116 93 return $wp_scripts->add_script_data( $handle, $ name, $data);117 return $wp_scripts->add_script_data( $handle, $script ); 94 118 } 95 119 -
trunk/wp-includes/script-loader.php
r19215 r19217 63 63 64 64 $scripts->add( 'common', "/wp-admin/js/common$suffix.js", array('jquery', 'hoverIntent', 'utils'), '20111106a', 1 ); 65 $scripts-> add_script_data( 'common', 'commonL10n', array(65 $scripts->localize( 'common', 'commonL10n', array( 66 66 'warnDelete' => __("You are about to permanently delete the selected items.\n 'Cancel' to stop, 'OK' to delete.") 67 67 ) ); … … 70 70 71 71 $scripts->add( 'quicktags', "/wp-includes/js/quicktags$suffix.js", false, '20111108', 1 ); 72 $scripts-> add_script_data( 'quicktags', 'quicktagsL10n', array(72 $scripts->localize( 'quicktags', 'quicktagsL10n', array( 73 73 'wordLookup' => __('Enter a word to look up:'), 74 74 'dictionaryLookup' => esc_attr(__('Dictionary lookup')), … … 92 92 93 93 $scripts->add( 'wp-ajax-response', "/wp-includes/js/wp-ajax-response$suffix.js", array('jquery'), '20091119', 1 ); 94 $scripts-> add_script_data( 'wp-ajax-response', 'wpAjax', array(94 $scripts->localize( 'wp-ajax-response', 'wpAjax', array( 95 95 'noPerm' => __('You do not have permission to do that.'), 96 96 'broken' => __('An unidentified error has occurred.') … … 98 98 99 99 $scripts->add( 'wp-pointer', "/wp-includes/js/wp-pointer$suffix.js", array( 'jquery-ui-widget', 'jquery-ui-position' ), '20111017', 1 ); 100 $scripts-> add_script_data( 'wp-pointer', 'wpPointerL10n', array(100 $scripts->localize( 'wp-pointer', 'wpPointerL10n', array( 101 101 'close' => __('Close'), 102 102 ) ); … … 167 167 168 168 $scripts->add( 'thickbox', "/wp-includes/js/thickbox/thickbox.js", array('jquery'), '3.1-20110930', 1 ); 169 $scripts-> add_script_data( 'thickbox', 'thickboxL10n', array(169 $scripts->localize( 'thickbox', 'thickboxL10n', array( 170 170 'next' => __('Next >'), 171 171 'prev' => __('< Prev'), … … 222 222 223 223 $scripts->add( 'plupload-handlers', "/wp-includes/js/plupload/handlers$suffix.js", array('plupload-all', 'jquery'), '20111102'); 224 $scripts-> add_script_data( 'plupload-handlers', 'pluploadL10n', $uploader_l10n );224 $scripts->localize( 'plupload-handlers', 'pluploadL10n', $uploader_l10n ); 225 225 226 226 // keep 'swfupload' for back-compat. … … 238 238 239 239 $scripts->add( 'swfupload-handlers', "/wp-includes/js/swfupload/handlers$suffix.js", array('swfupload-all', 'jquery'), '2201-20110524'); 240 $scripts-> add_script_data( 'swfupload-handlers', 'swfuploadL10n', $uploader_l10n );240 $scripts->localize( 'swfupload-handlers', 'swfuploadL10n', $uploader_l10n ); 241 241 242 242 $scripts->add( 'comment-reply', "/wp-includes/js/comment-reply$suffix.js", false, '20090102'); … … 247 247 248 248 $scripts->add( 'password-strength-meter', "/wp-admin/js/password-strength-meter$suffix.js", array('jquery'), '20101027', 1 ); 249 $scripts-> add_script_data( 'password-strength-meter', 'pwsL10n', array(249 $scripts->localize( 'password-strength-meter', 'pwsL10n', array( 250 250 'empty' => __('Strength indicator'), 251 251 'short' => __('Very weak'), … … 262 262 263 263 $scripts->add( 'wplink', "/wp-includes/js/wplink$suffix.js", array( 'jquery', 'wpdialogs' ), '20110929', 1 ); 264 $scripts-> add_script_data( 'wplink', 'wpLinkL10n', array(264 $scripts->localize( 'wplink', 'wpLinkL10n', array( 265 265 'title' => __('Insert/edit link'), 266 266 'update' => __('Update'), … … 281 281 $scripts->add( 'ajaxcat', "/wp-admin/js/cat$suffix.js", array( 'wp-lists' ), '20090102' ); 282 282 $scripts->add_data( 'ajaxcat', 'group', 1 ); 283 $scripts-> add_script_data( 'ajaxcat', 'catL10n', array(283 $scripts->localize( 'ajaxcat', 'catL10n', array( 284 284 'add' => esc_attr(__('Add')), 285 285 'how' => __('Separate multiple categories with commas.') … … 289 289 290 290 $scripts->add( 'admin-tags', "/wp-admin/js/tags$suffix.js", array('jquery', 'wp-ajax-response'), '20110429', 1 ); 291 $scripts-> add_script_data( 'admin-tags', 'tagsl10n', array(291 $scripts->localize( 'admin-tags', 'tagsl10n', array( 292 292 'noPerm' => __('You do not have permission to do that.'), 293 293 'broken' => __('An unidentified error has occurred.') … … 297 297 298 298 $scripts->add( 'admin-comments', "/wp-admin/js/edit-comments$suffix.js", array('wp-lists', 'quicktags', 'jquery-query'), '20111026', 1 ); 299 $scripts-> add_script_data( 'admin-comments', 'adminCommentsL10n', array(299 $scripts->localize( 'admin-comments', 'adminCommentsL10n', array( 300 300 'hotkeys_highlight_first' => isset($_GET['hotkeys_highlight_first']), 301 301 'hotkeys_highlight_last' => isset($_GET['hotkeys_highlight_last']), … … 309 309 310 310 $scripts->add( 'post', "/wp-admin/js/post$suffix.js", array('suggest', 'wp-lists', 'postbox'), '20110524', 1 ); 311 $scripts-> add_script_data( 'post', 'postL10n', array(311 $scripts->localize( 'post', 'postL10n', array( 312 312 'ok' => __('OK'), 313 313 'cancel' => __('Cancel'), … … 334 334 $scripts->add( 'comment', "/wp-admin/js/comment$suffix.js", array('jquery'), '20110429' ); 335 335 $scripts->add_data( 'comment', 'group', 1 ); 336 $scripts-> add_script_data( 'comment', 'commentL10n', array(336 $scripts->localize( 'comment', 'commentL10n', array( 337 337 'submittedOn' => __('Submitted on:') 338 338 ) ); … … 347 347 348 348 $scripts->add( 'inline-edit-post', "/wp-admin/js/inline-edit-post$suffix.js", array( 'jquery', 'suggest' ), '20111107', 1 ); 349 $scripts-> add_script_data( 'inline-edit-post', 'inlineEditL10n', array(349 $scripts->localize( 'inline-edit-post', 'inlineEditL10n', array( 350 350 'error' => __('Error while saving the changes.'), 351 351 'ntdeltitle' => __('Remove From Bulk Edit'), … … 354 354 355 355 $scripts->add( 'inline-edit-tax', "/wp-admin/js/inline-edit-tax$suffix.js", array( 'jquery' ), '20110609', 1 ); 356 $scripts-> add_script_data( 'inline-edit-tax', 'inlineEditL10n', array(356 $scripts->localize( 'inline-edit-tax', 'inlineEditL10n', array( 357 357 'error' => __('Error while saving the changes.') 358 358 ) ); 359 359 360 360 $scripts->add( 'plugin-install', "/wp-admin/js/plugin-install$suffix.js", array( 'jquery', 'thickbox' ), '20110113', 1 ); 361 $scripts-> add_script_data( 'plugin-install', 'plugininstallL10n', array(361 $scripts->localize( 'plugin-install', 'plugininstallL10n', array( 362 362 'plugin_information' => __('Plugin Information:'), 363 363 'ays' => __('Are you sure you want to install this plugin?') … … 375 375 376 376 $scripts->add( 'image-edit', "/wp-admin/js/image-edit$suffix.js", array('jquery', 'json2', 'imgareaselect'), '20110927', 1 ); 377 $scripts-> add_script_data( 'image-edit', 'imageEditL10n', array(377 $scripts->localize( 'image-edit', 'imageEditL10n', array( 378 378 'error' => __( 'Could not load the preview image. Please reload the page and try again.' ) 379 379 )); 380 380 381 381 $scripts->add( 'set-post-thumbnail', "/wp-admin/js/set-post-thumbnail$suffix.js", array( 'jquery' ), '20100518', 1 ); 382 $scripts-> add_script_data( 'set-post-thumbnail', 'setPostThumbnailL10n', array(382 $scripts->localize( 'set-post-thumbnail', 'setPostThumbnailL10n', array( 383 383 'setThumbnail' => __( 'Use as featured image' ), 384 384 'saving' => __( 'Saving...' ), … … 389 389 // Navigation Menus 390 390 $scripts->add( 'nav-menu', "/wp-admin/js/nav-menu$suffix.js", array('jquery-ui-sortable'), '20110524' ); 391 $scripts-> add_script_data( 'nav-menu', 'navMenuL10n', array(391 $scripts->localize( 'nav-menu', 'navMenuL10n', array( 392 392 'noResultsFound' => _x('No results found.', 'search results'), 393 393 'warnDeleteMenu' => __( "You are about to permanently delete this menu. \n 'Cancel' to stop, 'OK' to delete." ),
Note: See TracChangeset
for help on using the changeset viewer.