Issues (2010)

Security Analysis    not enabled

This project does not seem to handle request data directly as such no vulnerable execution paths were found.

  Cross-Site Scripting
Cross-Site Scripting enables an attacker to inject code into the response of a web-request that is viewed by other users. It can for example be used to bypass access controls, or even to take over other users' accounts.
  File Exposure
File Exposure allows an attacker to gain access to local files that he should not be able to access. These files can for example include database credentials, or other configuration files.
  File Manipulation
File Manipulation enables an attacker to write custom data to files. This potentially leads to injection of arbitrary code on the server.
  Object Injection
Object Injection enables an attacker to inject an object into PHP code, and can lead to arbitrary code execution, file exposure, or file manipulation attacks.
  Code Injection
Code Injection enables an attacker to execute arbitrary code on the server.
  Response Splitting
Response Splitting can be used to send arbitrary responses.
  File Inclusion
File Inclusion enables an attacker to inject custom files into PHP's file loading mechanism, either explicitly passed to include, or for example via PHP's auto-loading mechanism.
  Command Injection
Command Injection enables an attacker to inject a shell command that is execute with the privileges of the web-server. This can be used to expose sensitive data, or gain access of your server.
  SQL Injection
SQL Injection enables an attacker to execute arbitrary SQL code on your database server gaining access to user data, or manipulating user data.
  XPath Injection
XPath Injection enables an attacker to modify the parts of XML document that are read. If that XML document is for example used for authentication, this can lead to further vulnerabilities similar to SQL Injection.
  LDAP Injection
LDAP Injection enables an attacker to inject LDAP statements potentially granting permission to run unauthorized queries, or modify content inside the LDAP tree.
  Header Injection
  Other Vulnerability
This category comprises other attack vectors such as manipulating the PHP runtime, loading custom extensions, freezing the runtime, or similar.
  Regex Injection
Regex Injection enables an attacker to execute arbitrary code in your PHP process.
  XML Injection
XML Injection enables an attacker to read files on your local filesystem including configuration files, or can be abused to freeze your web-server process.
  Variable Injection
Variable Injection enables an attacker to overwrite program variables with custom data, and can lead to further vulnerabilities.
Unfortunately, the security analysis is currently not available for your project. If you are a non-commercial open-source project, please contact support to gain access.

wp-includes/script-loader.php (11 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * WordPress scripts and styles default loader.
4
 *
5
 * Several constants are used to manage the loading, concatenating and compression of scripts and CSS:
6
 * define('SCRIPT_DEBUG', true); loads the development (non-minified) versions of all scripts and CSS, and disables compression and concatenation,
7
 * define('CONCATENATE_SCRIPTS', false); disables compression and concatenation of scripts and CSS,
8
 * define('COMPRESS_SCRIPTS', false); disables compression of scripts,
9
 * define('COMPRESS_CSS', false); disables compression of CSS,
10
 * define('ENFORCE_GZIP', true); forces gzip for compression (default is deflate).
11
 *
12
 * The globals $concatenate_scripts, $compress_scripts and $compress_css can be set by plugins
13
 * to temporarily override the above settings. Also a compression test is run once and the result is saved
14
 * as option 'can_compress_scripts' (0/1). The test will run again if that option is deleted.
15
 *
16
 * @package WordPress
17
 */
18
19
/** WordPress Dependencies Class */
20
require( ABSPATH . WPINC . '/class.wp-dependencies.php' );
21
22
/** WordPress Scripts Class */
23
require( ABSPATH . WPINC . '/class.wp-scripts.php' );
24
25
/** WordPress Scripts Functions */
26
require( ABSPATH . WPINC . '/functions.wp-scripts.php' );
27
28
/** WordPress Styles Class */
29
require( ABSPATH . WPINC . '/class.wp-styles.php' );
30
31
/** WordPress Styles Functions */
32
require( ABSPATH . WPINC . '/functions.wp-styles.php' );
33
34
/**
35
 * Register all WordPress scripts.
36
 *
37
 * Localizes some of them.
38
 * args order: `$scripts->add( 'handle', 'url', 'dependencies', 'query-string', 1 );`
39
 * when last arg === 1 queues the script for the footer
40
 *
41
 * @since 2.6.0
42
 *
43
 * @param WP_Scripts $scripts WP_Scripts object.
44
 */
45
function wp_default_scripts( &$scripts ) {
46
	include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
47
48
	$develop_src = false !== strpos( $wp_version, '-src' );
0 ignored issues
show
The variable $wp_version does not exist. Did you forget to declare it?

This check marks access to variables or properties that have not been declared yet. While PHP has no explicit notion of declaring a variable, accessing it before a value is assigned to it is most likely a bug.

Loading history...
49
50
	if ( ! defined( 'SCRIPT_DEBUG' ) ) {
51
		define( 'SCRIPT_DEBUG', $develop_src );
52
	}
53
54
	if ( ! $guessurl = site_url() ) {
55
		$guessed_url = true;
56
		$guessurl = wp_guess_url();
57
	}
58
59
	$scripts->base_url = $guessurl;
60
	$scripts->content_url = defined('WP_CONTENT_URL')? WP_CONTENT_URL : '';
61
	$scripts->default_version = get_bloginfo( 'version' );
62
	$scripts->default_dirs = array('/wp-admin/js/', '/wp-includes/js/');
63
64
	$suffix = SCRIPT_DEBUG ? '' : '.min';
65
	$dev_suffix = $develop_src ? '' : '.min';
66
67
	$scripts->add( 'utils', "/wp-includes/js/utils$suffix.js" );
68
	did_action( 'init' ) && $scripts->localize( 'utils', 'userSettings', array(
69
		'url' => (string) SITECOOKIEPATH,
70
		'uid' => (string) get_current_user_id(),
71
		'time' => (string) time(),
72
		'secure' => (string) ( 'https' === parse_url( site_url(), PHP_URL_SCHEME ) ),
73
	) );
74
75
	$scripts->add( 'common', "/wp-admin/js/common$suffix.js", array('jquery', 'hoverIntent', 'utils'), false, 1 );
76
	did_action( 'init' ) && $scripts->localize( 'common', 'commonL10n', array(
77
		'warnDelete' => __( "You are about to permanently delete these items.\n  'Cancel' to stop, 'OK' to delete." ),
78
		'dismiss'    => __( 'Dismiss this notice.' ),
79
	) );
80
81
	$scripts->add( 'wp-a11y', "/wp-includes/js/wp-a11y$suffix.js", array( 'jquery' ), false, 1 );
82
83
	$scripts->add( 'sack', "/wp-includes/js/tw-sack$suffix.js", array(), '1.6.1', 1 );
84
85
	$scripts->add( 'quicktags', "/wp-includes/js/quicktags$suffix.js", array(), false, 1 );
86
	did_action( 'init' ) && $scripts->localize( 'quicktags', 'quicktagsL10n', array(
87
		'closeAllOpenTags'      => __( 'Close all open tags' ),
88
		'closeTags'             => __( 'close tags' ),
89
		'enterURL'              => __( 'Enter the URL' ),
90
		'enterImageURL'         => __( 'Enter the URL of the image' ),
91
		'enterImageDescription' => __( 'Enter a description of the image' ),
92
		'textdirection'         => __( 'text direction' ),
93
		'toggleTextdirection'   => __( 'Toggle Editor Text Direction' ),
94
		'dfw'                   => __( 'Distraction-free writing mode' ),
95
		'strong'          => __( 'Bold' ),
96
		'strongClose'     => __( 'Close bold tag' ),
97
		'em'              => __( 'Italic' ),
98
		'emClose'         => __( 'Close italic tag' ),
99
		'link'            => __( 'Insert link' ),
100
		'blockquote'      => __( 'Blockquote' ),
101
		'blockquoteClose' => __( 'Close blockquote tag' ),
102
		'del'             => __( 'Deleted text (strikethrough)' ),
103
		'delClose'        => __( 'Close deleted text tag' ),
104
		'ins'             => __( 'Inserted text' ),
105
		'insClose'        => __( 'Close inserted text tag' ),
106
		'image'           => __( 'Insert image' ),
107
		'ul'              => __( 'Bulleted list' ),
108
		'ulClose'         => __( 'Close bulleted list tag' ),
109
		'ol'              => __( 'Numbered list' ),
110
		'olClose'         => __( 'Close numbered list tag' ),
111
		'li'              => __( 'List item' ),
112
		'liClose'         => __( 'Close list item tag' ),
113
		'code'            => __( 'Code' ),
114
		'codeClose'       => __( 'Close code tag' ),
115
		'more'            => __( 'Insert Read More tag' ),
116
	) );
117
118
	$scripts->add( 'colorpicker', "/wp-includes/js/colorpicker$suffix.js", array('prototype'), '3517m' );
119
120
	$scripts->add( 'editor', "/wp-admin/js/editor$suffix.js", array('utils','jquery'), false, 1 );
121
122
	// Back-compat for old DFW. To-do: remove at the end of 2016.
123
	$scripts->add( 'wp-fullscreen-stub', "/wp-admin/js/wp-fullscreen-stub$suffix.js", array(), false, 1 );
124
125
	$scripts->add( 'wp-ajax-response', "/wp-includes/js/wp-ajax-response$suffix.js", array('jquery'), false, 1 );
126
	did_action( 'init' ) && $scripts->localize( 'wp-ajax-response', 'wpAjax', array(
127
		'noPerm' => __('Sorry, you are not allowed to do that.'),
128
		'broken' => __('An unidentified error has occurred.')
129
	) );
130
131
	$scripts->add( 'wp-pointer', "/wp-includes/js/wp-pointer$suffix.js", array( 'jquery-ui-widget', 'jquery-ui-position' ), '20111129a', 1 );
132
	did_action( 'init' ) && $scripts->localize( 'wp-pointer', 'wpPointerL10n', array(
133
		'dismiss' => __('Dismiss'),
134
	) );
135
136
	$scripts->add( 'autosave', "/wp-includes/js/autosave$suffix.js", array('heartbeat'), false, 1 );
137
138
	$scripts->add( 'heartbeat', "/wp-includes/js/heartbeat$suffix.js", array('jquery'), false, 1 );
139
	did_action( 'init' ) && $scripts->localize( 'heartbeat', 'heartbeatSettings',
140
		/**
141
		 * Filters the Heartbeat settings.
142
		 *
143
		 * @since 3.6.0
144
		 *
145
		 * @param array $settings Heartbeat settings array.
146
		 */
147
		apply_filters( 'heartbeat_settings', array() )
148
	);
149
150
	$scripts->add( 'wp-auth-check', "/wp-includes/js/wp-auth-check$suffix.js", array('heartbeat'), false, 1 );
151
	did_action( 'init' ) && $scripts->localize( 'wp-auth-check', 'authcheckL10n', array(
152
		'beforeunload' => __('Your session has expired. You can log in again from this page or go to the login page.'),
153
154
		/**
155
		 * Filters the authentication check interval.
156
		 *
157
		 * @since 3.6.0
158
		 *
159
		 * @param int $interval The interval in which to check a user's authentication.
160
		 *                      Default 3 minutes in seconds, or 180.
161
		 */
162
		'interval' => apply_filters( 'wp_auth_check_interval', 3 * MINUTE_IN_SECONDS ),
163
	) );
164
165
	$scripts->add( 'wp-lists', "/wp-includes/js/wp-lists$suffix.js", array( 'wp-ajax-response', 'jquery-color' ), false, 1 );
166
167
	// WordPress no longer uses or bundles Prototype or script.aculo.us. These are now pulled from an external source.
168
	$scripts->add( 'prototype', 'https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js', array(), '1.7.1');
169
	$scripts->add( 'scriptaculous-root', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/scriptaculous.js', array('prototype'), '1.9.0');
170
	$scripts->add( 'scriptaculous-builder', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/builder.js', array('scriptaculous-root'), '1.9.0');
171
	$scripts->add( 'scriptaculous-dragdrop', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/dragdrop.js', array('scriptaculous-builder', 'scriptaculous-effects'), '1.9.0');
172
	$scripts->add( 'scriptaculous-effects', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/effects.js', array('scriptaculous-root'), '1.9.0');
173
	$scripts->add( 'scriptaculous-slider', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/slider.js', array('scriptaculous-effects'), '1.9.0');
174
	$scripts->add( 'scriptaculous-sound', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/sound.js', array( 'scriptaculous-root' ), '1.9.0' );
175
	$scripts->add( 'scriptaculous-controls', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/controls.js', array('scriptaculous-root'), '1.9.0');
176
	$scripts->add( 'scriptaculous', false, array('scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls') );
0 ignored issues
show
false is of type boolean, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
177
178
	// not used in core, replaced by Jcrop.js
179
	$scripts->add( 'cropper', '/wp-includes/js/crop/cropper.js', array('scriptaculous-dragdrop') );
180
181
	// jQuery
182
	$scripts->add( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ), '1.12.4' );
0 ignored issues
show
false is of type boolean, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
183
	$scripts->add( 'jquery-core', '/wp-includes/js/jquery/jquery.js', array(), '1.12.4' );
184
	$scripts->add( 'jquery-migrate', "/wp-includes/js/jquery/jquery-migrate$suffix.js", array(), '1.4.1' );
185
186
	// full jQuery UI
187
	$scripts->add( 'jquery-ui-core', "/wp-includes/js/jquery/ui/core$dev_suffix.js", array('jquery'), '1.11.4', 1 );
188
	$scripts->add( 'jquery-effects-core', "/wp-includes/js/jquery/ui/effect$dev_suffix.js", array('jquery'), '1.11.4', 1 );
189
190
	$scripts->add( 'jquery-effects-blind', "/wp-includes/js/jquery/ui/effect-blind$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
191
	$scripts->add( 'jquery-effects-bounce', "/wp-includes/js/jquery/ui/effect-bounce$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
192
	$scripts->add( 'jquery-effects-clip', "/wp-includes/js/jquery/ui/effect-clip$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
193
	$scripts->add( 'jquery-effects-drop', "/wp-includes/js/jquery/ui/effect-drop$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
194
	$scripts->add( 'jquery-effects-explode', "/wp-includes/js/jquery/ui/effect-explode$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
195
	$scripts->add( 'jquery-effects-fade', "/wp-includes/js/jquery/ui/effect-fade$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
196
	$scripts->add( 'jquery-effects-fold', "/wp-includes/js/jquery/ui/effect-fold$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
197
	$scripts->add( 'jquery-effects-highlight', "/wp-includes/js/jquery/ui/effect-highlight$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
198
	$scripts->add( 'jquery-effects-puff', "/wp-includes/js/jquery/ui/effect-puff$dev_suffix.js", array('jquery-effects-core', 'jquery-effects-scale'), '1.11.4', 1 );
199
	$scripts->add( 'jquery-effects-pulsate', "/wp-includes/js/jquery/ui/effect-pulsate$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
200
	$scripts->add( 'jquery-effects-scale', "/wp-includes/js/jquery/ui/effect-scale$dev_suffix.js", array('jquery-effects-core', 'jquery-effects-size'), '1.11.4', 1 );
201
	$scripts->add( 'jquery-effects-shake', "/wp-includes/js/jquery/ui/effect-shake$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
202
	$scripts->add( 'jquery-effects-size', "/wp-includes/js/jquery/ui/effect-size$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
203
	$scripts->add( 'jquery-effects-slide', "/wp-includes/js/jquery/ui/effect-slide$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
204
	$scripts->add( 'jquery-effects-transfer', "/wp-includes/js/jquery/ui/effect-transfer$dev_suffix.js", array('jquery-effects-core'), '1.11.4', 1 );
205
206
	$scripts->add( 'jquery-ui-accordion', "/wp-includes/js/jquery/ui/accordion$dev_suffix.js", array('jquery-ui-core', 'jquery-ui-widget'), '1.11.4', 1 );
207
	$scripts->add( 'jquery-ui-autocomplete', "/wp-includes/js/jquery/ui/autocomplete$dev_suffix.js", array( 'jquery-ui-menu', 'wp-a11y' ), '1.11.4', 1 );
208
	$scripts->add( 'jquery-ui-button', "/wp-includes/js/jquery/ui/button$dev_suffix.js", array('jquery-ui-core', 'jquery-ui-widget'), '1.11.4', 1 );
209
	$scripts->add( 'jquery-ui-datepicker', "/wp-includes/js/jquery/ui/datepicker$dev_suffix.js", array('jquery-ui-core'), '1.11.4', 1 );
210
	$scripts->add( 'jquery-ui-dialog', "/wp-includes/js/jquery/ui/dialog$dev_suffix.js", array('jquery-ui-resizable', 'jquery-ui-draggable', 'jquery-ui-button', 'jquery-ui-position'), '1.11.4', 1 );
211
	$scripts->add( 'jquery-ui-draggable', "/wp-includes/js/jquery/ui/draggable$dev_suffix.js", array('jquery-ui-mouse'), '1.11.4', 1 );
212
	$scripts->add( 'jquery-ui-droppable', "/wp-includes/js/jquery/ui/droppable$dev_suffix.js", array('jquery-ui-draggable'), '1.11.4', 1 );
213
	$scripts->add( 'jquery-ui-menu', "/wp-includes/js/jquery/ui/menu$dev_suffix.js", array( 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-position' ), '1.11.4', 1 );
214
	$scripts->add( 'jquery-ui-mouse', "/wp-includes/js/jquery/ui/mouse$dev_suffix.js", array( 'jquery-ui-core', 'jquery-ui-widget' ), '1.11.4', 1 );
215
	$scripts->add( 'jquery-ui-position', "/wp-includes/js/jquery/ui/position$dev_suffix.js", array('jquery'), '1.11.4', 1 );
216
	$scripts->add( 'jquery-ui-progressbar', "/wp-includes/js/jquery/ui/progressbar$dev_suffix.js", array('jquery-ui-core', 'jquery-ui-widget'), '1.11.4', 1 );
217
	$scripts->add( 'jquery-ui-resizable', "/wp-includes/js/jquery/ui/resizable$dev_suffix.js", array('jquery-ui-mouse'), '1.11.4', 1 );
218
	$scripts->add( 'jquery-ui-selectable', "/wp-includes/js/jquery/ui/selectable$dev_suffix.js", array('jquery-ui-mouse'), '1.11.4', 1 );
219
	$scripts->add( 'jquery-ui-selectmenu', "/wp-includes/js/jquery/ui/selectmenu$dev_suffix.js", array('jquery-ui-menu'), '1.11.4', 1 );
220
	$scripts->add( 'jquery-ui-slider', "/wp-includes/js/jquery/ui/slider$dev_suffix.js", array('jquery-ui-mouse'), '1.11.4', 1 );
221
	$scripts->add( 'jquery-ui-sortable', "/wp-includes/js/jquery/ui/sortable$dev_suffix.js", array('jquery-ui-mouse'), '1.11.4', 1 );
222
	$scripts->add( 'jquery-ui-spinner', "/wp-includes/js/jquery/ui/spinner$dev_suffix.js", array( 'jquery-ui-button' ), '1.11.4', 1 );
223
	$scripts->add( 'jquery-ui-tabs', "/wp-includes/js/jquery/ui/tabs$dev_suffix.js", array('jquery-ui-core', 'jquery-ui-widget'), '1.11.4', 1 );
224
	$scripts->add( 'jquery-ui-tooltip', "/wp-includes/js/jquery/ui/tooltip$dev_suffix.js", array( 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-position' ), '1.11.4', 1 );
225
	$scripts->add( 'jquery-ui-widget', "/wp-includes/js/jquery/ui/widget$dev_suffix.js", array('jquery'), '1.11.4', 1 );
226
227
	// Strings for 'jquery-ui-autocomplete' live region messages
228
	did_action( 'init' ) && $scripts->localize( 'jquery-ui-autocomplete', 'uiAutocompleteL10n', array(
229
		'noResults' => __( 'No search results.' ),
230
		/* translators: Number of results found when using jQuery UI Autocomplete */
231
		'oneResult' => __( '1 result found. Use up and down arrow keys to navigate.' ),
232
		/* translators: %d: Number of results found when using jQuery UI Autocomplete */
233
		'manyResults' => __( '%d results found. Use up and down arrow keys to navigate.' ),
234
	) );
235
236
	// deprecated, not used in core, most functionality is included in jQuery 1.3
237
	$scripts->add( 'jquery-form', "/wp-includes/js/jquery/jquery.form$suffix.js", array('jquery'), '3.37.0', 1 );
238
239
	// jQuery plugins
240
	$scripts->add( 'jquery-color', "/wp-includes/js/jquery/jquery.color.min.js", array('jquery'), '2.1.1', 1 );
241
	$scripts->add( 'suggest', "/wp-includes/js/jquery/suggest$suffix.js", array('jquery'), '1.1-20110113', 1 );
242
	$scripts->add( 'schedule', '/wp-includes/js/jquery/jquery.schedule.js', array('jquery'), '20m', 1 );
243
	$scripts->add( 'jquery-query', "/wp-includes/js/jquery/jquery.query.js", array('jquery'), '2.1.7', 1 );
244
	$scripts->add( 'jquery-serialize-object', "/wp-includes/js/jquery/jquery.serialize-object.js", array('jquery'), '0.2', 1 );
245
	$scripts->add( 'jquery-hotkeys', "/wp-includes/js/jquery/jquery.hotkeys$suffix.js", array('jquery'), '0.0.2m', 1 );
246
	$scripts->add( 'jquery-table-hotkeys', "/wp-includes/js/jquery/jquery.table-hotkeys$suffix.js", array('jquery', 'jquery-hotkeys'), false, 1 );
247
	$scripts->add( 'jquery-touch-punch', "/wp-includes/js/jquery/jquery.ui.touch-punch.js", array('jquery-ui-widget', 'jquery-ui-mouse'), '0.2.2', 1 );
248
249
	// Masonry v2 depended on jQuery. v3 does not. The older jquery-masonry handle is a shiv.
250
	// It sets jQuery as a dependency, as the theme may have been implicitly loading it this way.
251
	$scripts->add( 'imagesloaded', "/wp-includes/js/imagesloaded.min.js", array(), '3.2.0', 1 );
252
	$scripts->add( 'masonry', "/wp-includes/js/masonry.min.js", array( 'imagesloaded' ), '3.3.2', 1 );
253
	$scripts->add( 'jquery-masonry', "/wp-includes/js/jquery/jquery.masonry$dev_suffix.js", array( 'jquery', 'masonry' ), '3.1.2b', 1 );
254
255
	$scripts->add( 'thickbox', "/wp-includes/js/thickbox/thickbox.js", array('jquery'), '3.1-20121105', 1 );
256
	did_action( 'init' ) && $scripts->localize( 'thickbox', 'thickboxL10n', array(
257
		'next' => __('Next &gt;'),
258
		'prev' => __('&lt; Prev'),
259
		'image' => __('Image'),
260
		'of' => __('of'),
261
		'close' => __('Close'),
262
		'noiframes' => __('This feature requires inline frames. You have iframes disabled or your browser does not support them.'),
263
		'loadingAnimation' => includes_url('js/thickbox/loadingAnimation.gif'),
264
	) );
265
266
	$scripts->add( 'jcrop', "/wp-includes/js/jcrop/jquery.Jcrop.min.js", array('jquery'), '0.9.12');
267
268
	$scripts->add( 'swfobject', "/wp-includes/js/swfobject.js", array(), '2.2-20120417');
269
270
	// error message for both plupload and swfupload
271
	$uploader_l10n = array(
272
		'queue_limit_exceeded' => __('You have attempted to queue too many files.'),
273
		'file_exceeds_size_limit' => __('%s exceeds the maximum upload size for this site.'),
274
		'zero_byte_file' => __('This file is empty. Please try another.'),
275
		'invalid_filetype' => __('This file type is not allowed. Please try another.'),
276
		'not_an_image' => __('This file is not an image. Please try another.'),
277
		'image_memory_exceeded' => __('Memory exceeded. Please try another smaller file.'),
278
		'image_dimensions_exceeded' => __('This is larger than the maximum size. Please try another.'),
279
		'default_error' => __('An error occurred in the upload. Please try again later.'),
280
		'missing_upload_url' => __('There was a configuration error. Please contact the server administrator.'),
281
		'upload_limit_exceeded' => __('You may only upload 1 file.'),
282
		'http_error' => __('HTTP error.'),
283
		'upload_failed' => __('Upload failed.'),
284
		'big_upload_failed' => __('Please try uploading this file with the %1$sbrowser uploader%2$s.'),
285
		'big_upload_queued' => __('%s exceeds the maximum upload size for the multi-file uploader when used in your browser.'),
286
		'io_error' => __('IO error.'),
287
		'security_error' => __('Security error.'),
288
		'file_cancelled' => __('File canceled.'),
289
		'upload_stopped' => __('Upload stopped.'),
290
		'dismiss' => __('Dismiss'),
291
		'crunching' => __('Crunching&hellip;'),
292
		'deleted' => __('moved to the trash.'),
293
		'error_uploading' => __('&#8220;%s&#8221; has failed to upload.')
294
	);
295
296
	$scripts->add( 'plupload', '/wp-includes/js/plupload/plupload.full.min.js', array(), '2.1.8' );
297
	// Back compat handles:
298
	foreach ( array( 'all', 'html5', 'flash', 'silverlight', 'html4' ) as $handle ) {
299
		$scripts->add( "plupload-$handle", false, array( 'plupload' ), '2.1.1' );
0 ignored issues
show
false is of type boolean, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
300
	}
301
302
	$scripts->add( 'plupload-handlers', "/wp-includes/js/plupload/handlers$suffix.js", array( 'plupload', 'jquery' ) );
303
	did_action( 'init' ) && $scripts->localize( 'plupload-handlers', 'pluploadL10n', $uploader_l10n );
304
305
	$scripts->add( 'wp-plupload', "/wp-includes/js/plupload/wp-plupload$suffix.js", array( 'plupload', 'jquery', 'json2', 'media-models' ), false, 1 );
306
	did_action( 'init' ) && $scripts->localize( 'wp-plupload', 'pluploadL10n', $uploader_l10n );
307
308
	// keep 'swfupload' for back-compat.
309
	$scripts->add( 'swfupload', '/wp-includes/js/swfupload/swfupload.js', array(), '2201-20110113');
310
	$scripts->add( 'swfupload-swfobject', '/wp-includes/js/swfupload/plugins/swfupload.swfobject.js', array('swfupload', 'swfobject'), '2201a');
311
	$scripts->add( 'swfupload-queue', '/wp-includes/js/swfupload/plugins/swfupload.queue.js', array('swfupload'), '2201');
312
	$scripts->add( 'swfupload-speed', '/wp-includes/js/swfupload/plugins/swfupload.speed.js', array('swfupload'), '2201');
313
	$scripts->add( 'swfupload-all', false, array('swfupload', 'swfupload-swfobject', 'swfupload-queue'), '2201');
0 ignored issues
show
false is of type boolean, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
314
	$scripts->add( 'swfupload-handlers', "/wp-includes/js/swfupload/handlers$suffix.js", array('swfupload-all', 'jquery'), '2201-20110524');
315
	did_action( 'init' ) && $scripts->localize( 'swfupload-handlers', 'swfuploadL10n', $uploader_l10n );
316
317
	$scripts->add( 'comment-reply', "/wp-includes/js/comment-reply$suffix.js", array(), false, 1 );
318
319
	$scripts->add( 'json2', "/wp-includes/js/json2$suffix.js", array(), '2015-05-03' );
320
	did_action( 'init' ) && $scripts->add_data( 'json2', 'conditional', 'lt IE 8' );
321
322
	$scripts->add( 'underscore', "/wp-includes/js/underscore$dev_suffix.js", array(), '1.8.3', 1 );
323
	$scripts->add( 'backbone', "/wp-includes/js/backbone$dev_suffix.js", array( 'underscore','jquery' ), '1.2.3', 1 );
324
325
	$scripts->add( 'wp-util', "/wp-includes/js/wp-util$suffix.js", array('underscore', 'jquery'), false, 1 );
326
	did_action( 'init' ) && $scripts->localize( 'wp-util', '_wpUtilSettings', array(
327
		'ajax' => array(
328
			'url' => admin_url( 'admin-ajax.php', 'relative' ),
329
		),
330
	) );
331
332
	$scripts->add( 'wp-backbone', "/wp-includes/js/wp-backbone$suffix.js", array('backbone', 'wp-util'), false, 1 );
333
334
	$scripts->add( 'revisions', "/wp-admin/js/revisions$suffix.js", array( 'wp-backbone', 'jquery-ui-slider', 'hoverIntent' ), false, 1 );
335
336
	$scripts->add( 'imgareaselect', "/wp-includes/js/imgareaselect/jquery.imgareaselect$suffix.js", array('jquery'), false, 1 );
337
338
	$scripts->add( 'mediaelement', "/wp-includes/js/mediaelement/mediaelement-and-player.min.js", array('jquery'), '2.22.0', 1 );
339
	did_action( 'init' ) && $scripts->localize( 'mediaelement', 'mejsL10n', array(
340
		'language' => get_bloginfo( 'language' ),
341
		'strings'  => array(
342
			'Close'                   => __( 'Close' ),
343
			'Fullscreen'              => __( 'Fullscreen' ),
344
			'Turn off Fullscreen'     => __( 'Turn off Fullscreen' ),
345
			'Go Fullscreen'           => __( 'Go Fullscreen' ),
346
			'Download File'           => __( 'Download File' ),
347
			'Download Video'          => __( 'Download Video' ),
348
			'Play'                    => __( 'Play' ),
349
			'Pause'                   => __( 'Pause' ),
350
			'Captions/Subtitles'      => __( 'Captions/Subtitles' ),
351
			'None'                    => __( 'None', 'no captions/subtitles' ),
352
			'Time Slider'             => __( 'Time Slider' ),
353
			/* translators: %1: number of seconds (30 by default) */
354
			'Skip back %1 seconds'    => __( 'Skip back %1 seconds' ),
355
			'Video Player'            => __( 'Video Player' ),
356
			'Audio Player'            => __( 'Audio Player' ),
357
			'Volume Slider'           => __( 'Volume Slider' ),
358
			'Mute Toggle'             => __( 'Mute Toggle' ),
359
			'Unmute'                  => __( 'Unmute' ),
360
			'Mute'                    => __( 'Mute' ),
361
			'Use Up/Down Arrow keys to increase or decrease volume.' => __( 'Use Up/Down Arrow keys to increase or decrease volume.' ),
362
			'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.' => __( 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.' ),
363
		),
364
	) );
365
366
367
	$scripts->add( 'wp-mediaelement', "/wp-includes/js/mediaelement/wp-mediaelement$suffix.js", array('mediaelement'), false, 1 );
368
	$mejs_settings = array(
369
		'pluginPath' => includes_url( 'js/mediaelement/', 'relative' ),
370
	);
371
	did_action( 'init' ) && $scripts->localize( 'mediaelement', '_wpmejsSettings',
372
		/**
373
		 * Filters the MediaElement configuration settings.
374
		 *
375
		 * @since 4.4.0
376
		 *
377
		 * @param array $mejs_settings MediaElement settings array.
378
		 */
379
		apply_filters( 'mejs_settings', $mejs_settings )
380
	);
381
382
	$scripts->add( 'froogaloop',  "/wp-includes/js/mediaelement/froogaloop.min.js", array(), '2.0' );
383
	$scripts->add( 'wp-playlist', "/wp-includes/js/mediaelement/wp-playlist$suffix.js", array( 'wp-util', 'backbone', 'mediaelement' ), false, 1 );
384
385
	$scripts->add( 'zxcvbn-async', "/wp-includes/js/zxcvbn-async$suffix.js", array(), '1.0' );
386
	did_action( 'init' ) && $scripts->localize( 'zxcvbn-async', '_zxcvbnSettings', array(
387
		'src' => empty( $guessed_url ) ? includes_url( '/js/zxcvbn.min.js' ) : $scripts->base_url . '/wp-includes/js/zxcvbn.min.js',
388
	) );
389
390
	$scripts->add( 'password-strength-meter', "/wp-admin/js/password-strength-meter$suffix.js", array( 'jquery', 'zxcvbn-async' ), false, 1 );
391
	did_action( 'init' ) && $scripts->localize( 'password-strength-meter', 'pwsL10n', array(
392
		'unknown'  => _x( 'Password strength unknown', 'password strength' ),
393
		'short'    => _x( 'Very weak', 'password strength' ),
394
		'bad'      => _x( 'Weak', 'password strength' ),
395
		'good'     => _x( 'Medium', 'password strength' ),
396
		'strong'   => _x( 'Strong', 'password strength' ),
397
		'mismatch' => _x( 'Mismatch', 'password mismatch' ),
398
	) );
399
400
	$scripts->add( 'user-profile', "/wp-admin/js/user-profile$suffix.js", array( 'jquery', 'password-strength-meter', 'wp-util' ), false, 1 );
401
	did_action( 'init' ) && $scripts->localize( 'user-profile', 'userProfileL10n', array(
402
		'warn'     => __( 'Your new password has not been saved.' ),
403
		'warnWeak' => __( 'Confirm use of weak password' ),
404
		'show'     => __( 'Show' ),
405
		'hide'     => __( 'Hide' ),
406
		'cancel'   => __( 'Cancel' ),
407
		'ariaShow' => esc_attr__( 'Show password' ),
408
		'ariaHide' => esc_attr__( 'Hide password' ),
409
	) );
410
411
	$scripts->add( 'language-chooser', "/wp-admin/js/language-chooser$suffix.js", array( 'jquery' ), false, 1 );
412
413
	$scripts->add( 'user-suggest', "/wp-admin/js/user-suggest$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 );
414
415
	$scripts->add( 'admin-bar', "/wp-includes/js/admin-bar$suffix.js", array(), false, 1 );
416
417
	$scripts->add( 'wplink', "/wp-includes/js/wplink$suffix.js", array( 'jquery', 'wp-a11y' ), false, 1 );
418
	did_action( 'init' ) && $scripts->localize( 'wplink', 'wpLinkL10n', array(
419
		'title' => __('Insert/edit link'),
420
		'update' => __('Update'),
421
		'save' => __('Add Link'),
422
		'noTitle' => __('(no title)'),
423
		'noMatchesFound' => __('No results found.'),
424
		'linkSelected' => __( 'Link selected.' ),
425
		'linkInserted' => __( 'Link inserted.' ),
426
	) );
427
428
	$scripts->add( 'wpdialogs', "/wp-includes/js/wpdialog$suffix.js", array( 'jquery-ui-dialog' ), false, 1 );
429
430
	$scripts->add( 'word-count', "/wp-admin/js/word-count$suffix.js", array(), false, 1 );
431
	did_action( 'init' ) && $scripts->localize( 'word-count', 'wordCountL10n', array(
432
		/*
433
		 * translators: If your word count is based on single characters (e.g. East Asian characters),
434
		 * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
435
		 * Do not translate into your own language.
436
		 */
437
		'type' => _x( 'words', 'Word count type. Do not translate!' ),
438
		'shortcodes' => ! empty( $GLOBALS['shortcode_tags'] ) ? array_keys( $GLOBALS['shortcode_tags'] ) : array()
439
	) );
440
441
	$scripts->add( 'media-upload', "/wp-admin/js/media-upload$suffix.js", array( 'thickbox', 'shortcode' ), false, 1 );
442
443
	$scripts->add( 'hoverIntent', "/wp-includes/js/hoverIntent$suffix.js", array('jquery'), '1.8.1', 1 );
444
445
	$scripts->add( 'customize-base',     "/wp-includes/js/customize-base$suffix.js",     array( 'jquery', 'json2', 'underscore' ), false, 1 );
446
	$scripts->add( 'customize-loader',   "/wp-includes/js/customize-loader$suffix.js",   array( 'customize-base' ), false, 1 );
447
	$scripts->add( 'customize-preview',  "/wp-includes/js/customize-preview$suffix.js",  array( 'customize-base' ), false, 1 );
448
	$scripts->add( 'customize-models',   "/wp-includes/js/customize-models.js", array( 'underscore', 'backbone' ), false, 1 );
449
	$scripts->add( 'customize-views',    "/wp-includes/js/customize-views.js",  array( 'jquery', 'underscore', 'imgareaselect', 'customize-models', 'media-editor', 'media-views' ), false, 1 );
450
	$scripts->add( 'customize-controls', "/wp-admin/js/customize-controls$suffix.js", array( 'customize-base', 'wp-a11y' ), false, 1 );
451
	did_action( 'init' ) && $scripts->localize( 'customize-controls', '_wpCustomizeControlsL10n', array(
452
		'activate'           => __( 'Save &amp; Activate' ),
453
		'save'               => __( 'Save &amp; Publish' ),
454
		'saveAlert'          => __( 'The changes you made will be lost if you navigate away from this page.' ),
455
		'saved'              => __( 'Saved' ),
456
		'cancel'             => __( 'Cancel' ),
457
		'close'              => __( 'Close' ),
458
		'cheatin'            => __( 'Cheatin&#8217; uh?' ),
459
		'notAllowed'         => __( 'Sorry, you are not allowed to customize this site.' ),
460
		'previewIframeTitle' => __( 'Site Preview' ),
461
		'loginIframeTitle'   => __( 'Session expired' ),
462
		'collapseSidebar'    => __( 'Collapse Sidebar' ),
463
		'expandSidebar'      => __( 'Expand Sidebar' ),
464
		'untitledBlogName'   => __( '(Untitled)' ),
465
		// Used for overriding the file types allowed in plupload.
466
		'allowedFiles'       => __( 'Allowed Files' ),
467
	) );
468
	$scripts->add( 'customize-selective-refresh', "/wp-includes/js/customize-selective-refresh$suffix.js", array( 'jquery', 'wp-util', 'customize-preview' ), false, 1 );
469
470
	$scripts->add( 'customize-widgets', "/wp-admin/js/customize-widgets$suffix.js", array( 'jquery', 'jquery-ui-sortable', 'jquery-ui-droppable', 'wp-backbone', 'customize-controls' ), false, 1 );
471
	$scripts->add( 'customize-preview-widgets', "/wp-includes/js/customize-preview-widgets$suffix.js", array( 'jquery', 'wp-util', 'customize-preview', 'customize-selective-refresh' ), false, 1 );
472
473
	$scripts->add( 'customize-nav-menus', "/wp-admin/js/customize-nav-menus$suffix.js", array( 'jquery', 'wp-backbone', 'customize-controls', 'accordion', 'nav-menu' ), false, 1 );
474
	$scripts->add( 'customize-preview-nav-menus', "/wp-includes/js/customize-preview-nav-menus$suffix.js", array( 'jquery', 'wp-util', 'customize-preview', 'customize-selective-refresh' ), false, 1 );
475
476
	$scripts->add( 'accordion', "/wp-admin/js/accordion$suffix.js", array( 'jquery' ), false, 1 );
477
478
	$scripts->add( 'shortcode', "/wp-includes/js/shortcode$suffix.js", array( 'underscore' ), false, 1 );
479
	$scripts->add( 'media-models', "/wp-includes/js/media-models$suffix.js", array( 'wp-backbone' ), false, 1 );
480
	did_action( 'init' ) && $scripts->localize( 'media-models', '_wpMediaModelsL10n', array(
481
		'settings' => array(
482
			'ajaxurl' => admin_url( 'admin-ajax.php', 'relative' ),
483
			'post' => array( 'id' => 0 ),
484
		),
485
	) );
486
487
	$scripts->add( 'wp-embed', "/wp-includes/js/wp-embed$suffix.js" );
488
489
	// To enqueue media-views or media-editor, call wp_enqueue_media().
490
	// Both rely on numerous settings, styles, and templates to operate correctly.
491
	$scripts->add( 'media-views',  "/wp-includes/js/media-views$suffix.js",  array( 'utils', 'media-models', 'wp-plupload', 'jquery-ui-sortable', 'wp-mediaelement' ), false, 1 );
492
	$scripts->add( 'media-editor', "/wp-includes/js/media-editor$suffix.js", array( 'shortcode', 'media-views' ), false, 1 );
493
	$scripts->add( 'media-audiovideo', "/wp-includes/js/media-audiovideo$suffix.js", array( 'media-editor' ), false, 1 );
494
	$scripts->add( 'mce-view', "/wp-includes/js/mce-view$suffix.js", array( 'shortcode', 'jquery', 'media-views', 'media-audiovideo' ), false, 1 );
495
496
	if ( is_admin() ) {
497
		$scripts->add( 'admin-tags', "/wp-admin/js/tags$suffix.js", array( 'jquery', 'wp-ajax-response' ), false, 1 );
498
		did_action( 'init' ) && $scripts->localize( 'admin-tags', 'tagsl10n', array(
499
			'noPerm' => __('Sorry, you are not allowed to do that.'),
500
			'broken' => __('An unidentified error has occurred.')
501
		));
502
503
		$scripts->add( 'admin-comments', "/wp-admin/js/edit-comments$suffix.js", array('wp-lists', 'quicktags', 'jquery-query'), false, 1 );
504
		did_action( 'init' ) && $scripts->localize( 'admin-comments', 'adminCommentsL10n', array(
505
			'hotkeys_highlight_first' => isset($_GET['hotkeys_highlight_first']),
506
			'hotkeys_highlight_last' => isset($_GET['hotkeys_highlight_last']),
507
			'replyApprove' => __( 'Approve and Reply' ),
508
			'reply' => __( 'Reply' ),
509
			'warnQuickEdit' => __( "Are you sure you want to edit this comment?\nThe changes you made will be lost." ),
510
			'warnCommentChanges' => __( "Are you sure you want to do this?\nThe comment changes you made will be lost." ),
511
			'docTitleComments' => __( 'Comments' ),
512
			/* translators: %s: comments count */
513
			'docTitleCommentsCount' => __( 'Comments (%s)' ),
514
		) );
515
516
		$scripts->add( 'xfn', "/wp-admin/js/xfn$suffix.js", array('jquery'), false, 1 );
517
518
		$scripts->add( 'postbox', "/wp-admin/js/postbox$suffix.js", array('jquery-ui-sortable'), false, 1 );
519
		did_action( 'init' ) && $scripts->localize( 'postbox', 'postBoxL10n', array(
520
			'postBoxEmptyString' => __( 'Drag boxes here' ),
521
		) );
522
523
		$scripts->add( 'tags-box', "/wp-admin/js/tags-box$suffix.js", array( 'jquery', 'suggest' ), false, 1 );
524
		did_action( 'init' ) && $scripts->localize( 'tags-box', 'tagsBoxL10n', array(
525
			'tagDelimiter' => _x( ',', 'tag delimiter' ),
526
		) );
527
528
		$scripts->add( 'post', "/wp-admin/js/post$suffix.js", array( 'suggest', 'wp-lists', 'postbox', 'tags-box', 'underscore', 'word-count', 'wp-a11y' ), false, 1 );
529
		did_action( 'init' ) && $scripts->localize( 'post', 'postL10n', array(
530
			'ok' => __('OK'),
531
			'cancel' => __('Cancel'),
532
			'publishOn' => __('Publish on:'),
533
			'publishOnFuture' =>  __('Schedule for:'),
534
			'publishOnPast' => __('Published on:'),
535
			/* translators: 1: month, 2: day, 3: year, 4: hour, 5: minute */
536
			'dateFormat' => __('%1$s %2$s, %3$s @ %4$s:%5$s'),
537
			'showcomm' => __('Show more comments'),
538
			'endcomm' => __('No more comments found.'),
539
			'publish' => __('Publish'),
540
			'schedule' => __('Schedule'),
541
			'update' => __('Update'),
542
			'savePending' => __('Save as Pending'),
543
			'saveDraft' => __('Save Draft'),
544
			'private' => __('Private'),
545
			'public' => __('Public'),
546
			'publicSticky' => __('Public, Sticky'),
547
			'password' => __('Password Protected'),
548
			'privatelyPublished' => __('Privately Published'),
549
			'published' => __('Published'),
550
			'saveAlert' => __('The changes you made will be lost if you navigate away from this page.'),
551
			'savingText' => __('Saving Draft&#8230;'),
552
			'permalinkSaved' => __( 'Permalink saved' ),
553
		) );
554
555
		$scripts->add( 'press-this', "/wp-admin/js/press-this$suffix.js", array( 'jquery', 'tags-box' ), false, 1 );
556
		did_action( 'init' ) && $scripts->localize( 'press-this', 'pressThisL10n', array(
557
			'newPost' => __( 'Title' ),
558
			'serverError' => __( 'Connection lost or the server is busy. Please try again later.' ),
559
			'saveAlert' => __( 'The changes you made will be lost if you navigate away from this page.' ),
560
			/* translators: %d: nth embed found in a post */
561
			'suggestedEmbedAlt' => __( 'Suggested embed #%d' ),
562
			/* translators: %d: nth image found in a post */
563
			'suggestedImgAlt' => __( 'Suggested image #%d' ),
564
		) );
565
566
		$scripts->add( 'editor-expand', "/wp-admin/js/editor-expand$suffix.js", array( 'jquery' ), false, 1 );
567
568
		$scripts->add( 'link', "/wp-admin/js/link$suffix.js", array( 'wp-lists', 'postbox' ), false, 1 );
569
570
		$scripts->add( 'comment', "/wp-admin/js/comment$suffix.js", array( 'jquery', 'postbox' ) );
571
		$scripts->add_data( 'comment', 'group', 1 );
572
		did_action( 'init' ) && $scripts->localize( 'comment', 'commentL10n', array(
573
			'submittedOn' => __( 'Submitted on:' ),
574
			/* translators: 1: month, 2: day, 3: year, 4: hour, 5: minute */
575
			'dateFormat' => __( '%1$s %2$s, %3$s @ %4$s:%5$s' )
576
		) );
577
578
		$scripts->add( 'admin-gallery', "/wp-admin/js/gallery$suffix.js", array( 'jquery-ui-sortable' ) );
579
580
		$scripts->add( 'admin-widgets', "/wp-admin/js/widgets$suffix.js", array( 'jquery-ui-sortable', 'jquery-ui-draggable', 'jquery-ui-droppable' ), false, 1 );
581
582
		$scripts->add( 'theme', "/wp-admin/js/theme$suffix.js", array( 'wp-backbone', 'wp-a11y' ), false, 1 );
583
584
		$scripts->add( 'inline-edit-post', "/wp-admin/js/inline-edit-post$suffix.js", array( 'jquery', 'suggest', 'wp-a11y' ), false, 1 );
585
		did_action( 'init' ) && $scripts->localize( 'inline-edit-post', 'inlineEditL10n', array(
586
			'error'      => __( 'Error while saving the changes.' ),
587
			'ntdeltitle' => __( 'Remove From Bulk Edit' ),
588
			'notitle'    => __( '(no title)' ),
589
			'comma'      => trim( _x( ',', 'tag delimiter' ) ),
590
			'saved'      => __( 'Changes saved.' ),
591
		) );
592
593
		$scripts->add( 'inline-edit-tax', "/wp-admin/js/inline-edit-tax$suffix.js", array( 'jquery', 'wp-a11y' ), false, 1 );
594
		did_action( 'init' ) && $scripts->localize( 'inline-edit-tax', 'inlineEditL10n', array(
595
			'error' => __( 'Error while saving the changes.' ),
596
			'saved' => __( 'Changes saved.' ),
597
		) );
598
599
		$scripts->add( 'plugin-install', "/wp-admin/js/plugin-install$suffix.js", array( 'jquery', 'jquery-ui-core', 'thickbox' ), false, 1 );
600
		did_action( 'init' ) && $scripts->localize( 'plugin-install', 'plugininstallL10n', array(
601
			'plugin_information' => __( 'Plugin:' ),
602
			'plugin_modal_label' => __( 'Plugin details' ),
603
			'ays' => __('Are you sure you want to install this plugin?')
604
		) );
605
606
		$scripts->add( 'updates', "/wp-admin/js/updates$suffix.js", array( 'jquery', 'wp-util', 'wp-a11y' ) );
607
		did_action( 'init' ) && $scripts->localize( 'updates', '_wpUpdatesSettings', array(
608
			'ajax_nonce' => wp_create_nonce( 'updates' ),
609
			'l10n'       => array(
610
				/* translators: %s: Search string */
611
				'searchResults'              => __( 'Search results for &#8220;%s&#8221;' ),
612
				'searchResultsLabel'         => __( 'Search Results' ),
613
				'noPlugins'                  => __( 'You do not appear to have any plugins available at this time.' ),
614
				'noItemsSelected'            => __( 'Please select at least one item to perform this action on.' ),
615
				'updating'                   => __( 'Updating...' ), // No ellipsis.
616
				'updated'                    => __( 'Updated!' ),
617
				'update'                     => __( 'Update' ),
618
				'updateNow'                  => __( 'Update Now' ),
619
				/* translators: %s: Plugin name and version */
620
				'updateNowLabel'             => __( 'Update %s now' ),
621
				'updateFailedShort'          => __( 'Update Failed!' ),
622
				/* translators: %s: Error string for a failed update */
623
				'updateFailed'               => __( 'Update Failed: %s' ),
624
				/* translators: %s: Plugin name and version */
625
				'updatingLabel'              => __( 'Updating %s...' ), // No ellipsis.
626
				/* translators: %s: Plugin name and version */
627
				'updatedLabel'               => __( '%s updated!' ),
628
				/* translators: %s: Plugin name and version */
629
				'updateFailedLabel'          => __( '%s update failed' ),
630
				/* translators: JavaScript accessible string */
631
				'updatingMsg'                => __( 'Updating... please wait.' ), // No ellipsis.
632
				/* translators: JavaScript accessible string */
633
				'updatedMsg'                 => __( 'Update completed successfully.' ),
634
				/* translators: JavaScript accessible string */
635
				'updateCancel'               => __( 'Update canceled.' ),
636
				'beforeunload'               => __( 'Updates may not complete if you navigate away from this page.' ),
637
				'installNow'                 => __( 'Install Now' ),
638
				/* translators: %s: Plugin name */
639
				'installNowLabel'            => __( 'Install %s now' ),
640
				'installing'                 => __( 'Installing...' ),
641
				'installed'                  => __( 'Installed!' ),
642
				'installFailedShort'         => __( 'Install Failed!' ),
643
				/* translators: %s: Error string for a failed installation */
644
				'installFailed'              => __( 'Installation failed: %s' ),
645
				/* translators: %s: Plugin name and version */
646
				'pluginInstallingLabel'      => _x( 'Installing %s...', 'plugin' ), // no ellipsis
647
				/* translators: %s: Theme name and version */
648
				'themeInstallingLabel'       => _x( 'Installing %s...', 'theme' ), // no ellipsis
649
				/* translators: %s: Plugin name and version */
650
				'pluginInstalledLabel'       => _x( '%s installed!', 'plugin' ),
651
				/* translators: %s: Theme name and version */
652
				'themeInstalledLabel'        => _x( '%s installed!', 'theme' ),
653
				/* translators: %s: Plugin name and version */
654
				'pluginInstallFailedLabel'   => _x( '%s installation failed', 'plugin' ),
655
				/* translators: %s: Theme name and version */
656
				'themeInstallFailedLabel'    => _x( '%s installation failed', 'theme' ),
657
				'installingMsg'              => __( 'Installing... please wait.' ),
658
				'installedMsg'               => __( 'Installation completed successfully.' ),
659
				/* translators: %s: Activation URL */
660
				'importerInstalledMsg'       => __( 'Importer installed successfully. <a href="%s">Run importer</a>' ),
661
				/* translators: %s: Theme name */
662
				'aysDelete'                  => __( 'Are you sure you want to delete %s?' ),
663
				/* translators: %s: Plugin name */
664
				'aysDeleteUninstall'         => __( 'Are you sure you want to delete %s and its data?' ),
665
				'aysBulkDelete'              => __( 'Are you sure you want to delete the selected plugins and their data?' ),
666
				'aysBulkDeleteThemes'        => __( 'Caution: These themes may be active on other sites in the network. Are you sure you want to proceed?' ),
667
				'deleting'                   => __( 'Deleting...' ),
668
				/* translators: %s: Error string for a failed deletion */
669
				'deleteFailed'               => __( 'Deletion failed: %s' ),
670
				'deleted'                    => __( 'Deleted!' ),
671
				'livePreview'                => __( 'Live Preview' ),
672
				'activatePlugin'             => is_network_admin() ? __( 'Network Activate' ) : __( 'Activate' ),
673
				'activateTheme'              => is_network_admin() ? __( 'Network Enable' ) : __( 'Activate' ),
674
				/* translators: %s: Plugin name */
675
				'activatePluginLabel'        => is_network_admin() ? _x( 'Network Activate %s', 'plugin' ) : _x( 'Activate %s', 'plugin' ),
676
				/* translators: %s: Theme name */
677
				'activateThemeLabel'         => is_network_admin() ? _x( 'Network Activate %s', 'theme' ) : _x( 'Activate %s', 'theme' ),
678
				'activateImporter'           => __( 'Run Importer' ),
679
				/* translators: %s: Importer name */
680
				'activateImporterLabel'      => __( 'Run %s' ),
681
				'unknownError'               => __( 'An unknown error occurred' ),
682
				'connectionError'            => __( 'Connection lost or the server is busy. Please try again later.' ),
683
				'nonceError'                 => __( 'An error has occurred. Please reload the page and try again.' ),
684
				'pluginsFound'               => __( 'Number of plugins found: %d' ),
685
				'noPluginsFound'             => __( 'No plugins found. Try a different search.' ),
686
			),
687
		) );
688
689
		$scripts->add( 'farbtastic', '/wp-admin/js/farbtastic.js', array('jquery'), '1.2' );
690
691
		$scripts->add( 'iris', '/wp-admin/js/iris.min.js', array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), '1.0.7', 1 );
692
		$scripts->add( 'wp-color-picker', "/wp-admin/js/color-picker$suffix.js", array( 'iris' ), false, 1 );
693
		did_action( 'init' ) && $scripts->localize( 'wp-color-picker', 'wpColorPickerL10n', array(
694
			'clear' => __( 'Clear' ),
695
			'defaultString' => __( 'Default' ),
696
			'pick' => __( 'Select Color' ),
697
			'current' => __( 'Current Color' ),
698
		) );
699
700
		$scripts->add( 'dashboard', "/wp-admin/js/dashboard$suffix.js", array( 'jquery', 'admin-comments', 'postbox' ), false, 1 );
701
702
		$scripts->add( 'list-revisions', "/wp-includes/js/wp-list-revisions$suffix.js" );
703
704
		$scripts->add( 'media-grid', "/wp-includes/js/media-grid$suffix.js", array( 'media-editor' ), false, 1 );
705
		$scripts->add( 'media', "/wp-admin/js/media$suffix.js", array( 'jquery' ), false, 1 );
706
		did_action( 'init' ) && $scripts->localize( 'media', 'attachMediaBoxL10n', array(
707
			'error' => __( 'An error has occurred. Please reload the page and try again.' ),
708
		));
709
710
		$scripts->add( 'image-edit', "/wp-admin/js/image-edit$suffix.js", array('jquery', 'json2', 'imgareaselect'), false, 1 );
711
		did_action( 'init' ) && $scripts->localize( 'image-edit', 'imageEditL10n', array(
712
			'error' => __( 'Could not load the preview image. Please reload the page and try again.' )
713
		));
714
715
		$scripts->add( 'set-post-thumbnail', "/wp-admin/js/set-post-thumbnail$suffix.js", array( 'jquery' ), false, 1 );
716
		did_action( 'init' ) && $scripts->localize( 'set-post-thumbnail', 'setPostThumbnailL10n', array(
717
			'setThumbnail' => __( 'Use as featured image' ),
718
			'saving' => __( 'Saving...' ), // no ellipsis
719
			'error' => __( 'Could not set that as the thumbnail image. Try a different attachment.' ),
720
			'done' => __( 'Done' )
721
		) );
722
723
		// Navigation Menus
724
		$scripts->add( 'nav-menu', "/wp-admin/js/nav-menu$suffix.js", array( 'jquery-ui-sortable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'wp-lists', 'postbox', 'json2' ) );
725
		did_action( 'init' ) && $scripts->localize( 'nav-menu', 'navMenuL10n', array(
726
			'noResultsFound' => __( 'No results found.' ),
727
			'warnDeleteMenu' => __( "You are about to permanently delete this menu. \n 'Cancel' to stop, 'OK' to delete." ),
728
			'saveAlert' => __( 'The changes you made will be lost if you navigate away from this page.' ),
729
			'untitled' => _x( '(no label)', 'missing menu item navigation label' )
730
		) );
731
732
		$scripts->add( 'custom-header', "/wp-admin/js/custom-header.js", array( 'jquery-masonry' ), false, 1 );
733
		$scripts->add( 'custom-background', "/wp-admin/js/custom-background$suffix.js", array( 'wp-color-picker', 'media-views' ), false, 1 );
734
		$scripts->add( 'media-gallery', "/wp-admin/js/media-gallery$suffix.js", array('jquery'), false, 1 );
735
736
		$scripts->add( 'svg-painter', '/wp-admin/js/svg-painter.js', array( 'jquery' ), false, 1 );
737
	}
738
}
739
740
/**
741
 * Assign default styles to $styles object.
742
 *
743
 * Nothing is returned, because the $styles parameter is passed by reference.
744
 * Meaning that whatever object is passed will be updated without having to
745
 * reassign the variable that was passed back to the same value. This saves
746
 * memory.
747
 *
748
 * Adding default styles is not the only task, it also assigns the base_url
749
 * property, the default version, and text direction for the object.
750
 *
751
 * @since 2.6.0
752
 *
753
 * @param WP_Styles $styles
754
 */
755
function wp_default_styles( &$styles ) {
756
	include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
757
758
	if ( ! defined( 'SCRIPT_DEBUG' ) )
759
		define( 'SCRIPT_DEBUG', false !== strpos( $wp_version, '-src' ) );
0 ignored issues
show
The variable $wp_version does not exist. Did you forget to declare it?

This check marks access to variables or properties that have not been declared yet. While PHP has no explicit notion of declaring a variable, accessing it before a value is assigned to it is most likely a bug.

Loading history...
760
761
	if ( ! $guessurl = site_url() )
762
		$guessurl = wp_guess_url();
763
764
	$styles->base_url = $guessurl;
765
	$styles->content_url = defined('WP_CONTENT_URL')? WP_CONTENT_URL : '';
766
	$styles->default_version = get_bloginfo( 'version' );
767
	$styles->text_direction = function_exists( 'is_rtl' ) && is_rtl() ? 'rtl' : 'ltr';
768
	$styles->default_dirs = array('/wp-admin/', '/wp-includes/css/');
769
770
	// Open Sans is no longer used by core, but may be relied upon by themes and plugins.
771
	$open_sans_font_url = '';
772
773
	/* translators: If there are characters in your language that are not supported
774
	 * by Open Sans, translate this to 'off'. Do not translate into your own language.
775
	 */
776
	if ( 'off' !== _x( 'on', 'Open Sans font: on or off' ) ) {
777
		$subsets = 'latin,latin-ext';
778
779
		/* translators: To add an additional Open Sans character subset specific to your language,
780
		 * translate this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your own language.
781
		 */
782
		$subset = _x( 'no-subset', 'Open Sans font: add new subset (greek, cyrillic, vietnamese)' );
783
784
		if ( 'cyrillic' == $subset ) {
785
			$subsets .= ',cyrillic,cyrillic-ext';
786
		} elseif ( 'greek' == $subset ) {
787
			$subsets .= ',greek,greek-ext';
788
		} elseif ( 'vietnamese' == $subset ) {
789
			$subsets .= ',vietnamese';
790
		}
791
792
		// Hotlink Open Sans, for now
793
		$open_sans_font_url = "https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets";
794
	}
795
796
	// Register a stylesheet for the selected admin color scheme.
797
	$styles->add( 'colors', true, array( 'wp-admin', 'buttons' ) );
0 ignored issues
show
true is of type boolean, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
798
799
	$suffix = SCRIPT_DEBUG ? '' : '.min';
800
801
	// Admin CSS
802
	$styles->add( 'common',              "/wp-admin/css/common$suffix.css" );
803
	$styles->add( 'forms',               "/wp-admin/css/forms$suffix.css" );
804
	$styles->add( 'admin-menu',          "/wp-admin/css/admin-menu$suffix.css" );
805
	$styles->add( 'dashboard',           "/wp-admin/css/dashboard$suffix.css" );
806
	$styles->add( 'list-tables',         "/wp-admin/css/list-tables$suffix.css" );
807
	$styles->add( 'edit',                "/wp-admin/css/edit$suffix.css" );
808
	$styles->add( 'revisions',           "/wp-admin/css/revisions$suffix.css" );
809
	$styles->add( 'media',               "/wp-admin/css/media$suffix.css" );
810
	$styles->add( 'themes',              "/wp-admin/css/themes$suffix.css" );
811
	$styles->add( 'about',               "/wp-admin/css/about$suffix.css" );
812
	$styles->add( 'nav-menus',           "/wp-admin/css/nav-menus$suffix.css" );
813
	$styles->add( 'widgets',             "/wp-admin/css/widgets$suffix.css" );
814
	$styles->add( 'site-icon',           "/wp-admin/css/site-icon$suffix.css" );
815
	$styles->add( 'l10n',                "/wp-admin/css/l10n$suffix.css" );
816
817
	$styles->add( 'wp-admin', false, array( 'dashicons', 'common', 'forms', 'admin-menu', 'dashboard', 'list-tables', 'edit', 'revisions', 'media', 'themes', 'about', 'nav-menus', 'widgets', 'site-icon', 'l10n' ) );
0 ignored issues
show
false is of type boolean, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
818
819
	$styles->add( 'login',               "/wp-admin/css/login$suffix.css", array( 'dashicons', 'buttons', 'forms', 'l10n' ) );
820
	$styles->add( 'install',             "/wp-admin/css/install$suffix.css", array( 'buttons' ) );
821
	$styles->add( 'wp-color-picker',     "/wp-admin/css/color-picker$suffix.css" );
822
	$styles->add( 'customize-controls',  "/wp-admin/css/customize-controls$suffix.css", array( 'wp-admin', 'colors', 'ie', 'imgareaselect' ) );
823
	$styles->add( 'customize-widgets',   "/wp-admin/css/customize-widgets$suffix.css", array( 'wp-admin', 'colors' ) );
824
	$styles->add( 'customize-nav-menus', "/wp-admin/css/customize-nav-menus$suffix.css", array( 'wp-admin', 'colors' ) );
825
	$styles->add( 'press-this',          "/wp-admin/css/press-this$suffix.css", array( 'buttons' ) );
826
827
	$styles->add( 'ie', "/wp-admin/css/ie$suffix.css" );
828
	$styles->add_data( 'ie', 'conditional', 'lte IE 7' );
829
830
	// Common dependencies
831
	$styles->add( 'buttons',   "/wp-includes/css/buttons$suffix.css" );
832
	$styles->add( 'dashicons', "/wp-includes/css/dashicons$suffix.css" );
833
834
	// Includes CSS
835
	$styles->add( 'admin-bar',            "/wp-includes/css/admin-bar$suffix.css", array( 'dashicons' ) );
836
	$styles->add( 'wp-auth-check',        "/wp-includes/css/wp-auth-check$suffix.css", array( 'dashicons' ) );
837
	$styles->add( 'editor-buttons',       "/wp-includes/css/editor$suffix.css", array( 'dashicons' ) );
838
	$styles->add( 'media-views',          "/wp-includes/css/media-views$suffix.css", array( 'buttons', 'dashicons', 'wp-mediaelement' ) );
839
	$styles->add( 'wp-pointer',           "/wp-includes/css/wp-pointer$suffix.css", array( 'dashicons' ) );
840
	$styles->add( 'customize-preview',    "/wp-includes/css/customize-preview$suffix.css" );
841
	$styles->add( 'wp-embed-template-ie', "/wp-includes/css/wp-embed-template-ie$suffix.css" );
842
	$styles->add_data( 'wp-embed-template-ie', 'conditional', 'lte IE 8' );
843
844
	// External libraries and friends
845
	$styles->add( 'imgareaselect',       '/wp-includes/js/imgareaselect/imgareaselect.css', array(), '0.9.8' );
846
	$styles->add( 'wp-jquery-ui-dialog', "/wp-includes/css/jquery-ui-dialog$suffix.css", array( 'dashicons' ) );
847
	$styles->add( 'mediaelement',        "/wp-includes/js/mediaelement/mediaelementplayer.min.css", array(), '2.22.0' );
848
	$styles->add( 'wp-mediaelement',     "/wp-includes/js/mediaelement/wp-mediaelement$suffix.css", array( 'mediaelement' ) );
849
	$styles->add( 'thickbox',            '/wp-includes/js/thickbox/thickbox.css', array( 'dashicons' ) );
850
851
	// Deprecated CSS
852
	$styles->add( 'deprecated-media', "/wp-admin/css/deprecated-media$suffix.css" );
853
	$styles->add( 'farbtastic',       "/wp-admin/css/farbtastic$suffix.css", array(), '1.3u1' );
854
	$styles->add( 'jcrop',            "/wp-includes/js/jcrop/jquery.Jcrop.min.css", array(), '0.9.12' );
855
	$styles->add( 'colors-fresh', false, array( 'wp-admin', 'buttons' ) ); // Old handle.
0 ignored issues
show
false is of type boolean, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
856
	$styles->add( 'open-sans', $open_sans_font_url ); // No longer used in core as of 4.6
857
858
	// RTL CSS
859
	$rtl_styles = array(
860
		// wp-admin
861
		'common', 'forms', 'admin-menu', 'dashboard', 'list-tables', 'edit', 'revisions', 'media', 'themes', 'about', 'nav-menus',
862
		'widgets', 'site-icon', 'l10n', 'install', 'wp-color-picker', 'customize-controls', 'customize-widgets', 'customize-nav-menus',
863
		'ie', 'login', 'press-this',
864
		// wp-includes
865
		'buttons', 'admin-bar', 'wp-auth-check', 'editor-buttons', 'media-views', 'wp-pointer',
866
		'wp-jquery-ui-dialog',
867
		// deprecated
868
		'deprecated-media', 'farbtastic',
869
	);
870
871
	foreach ( $rtl_styles as $rtl_style ) {
872
		$styles->add_data( $rtl_style, 'rtl', 'replace' );
873
		if ( $suffix ) {
874
			$styles->add_data( $rtl_style, 'suffix', $suffix );
875
		}
876
	}
877
}
878
879
/**
880
 * Reorder JavaScript scripts array to place prototype before jQuery.
881
 *
882
 * @since 2.3.1
883
 *
884
 * @param array $js_array JavaScript scripts array
885
 * @return array Reordered array, if needed.
886
 */
887
function wp_prototype_before_jquery( $js_array ) {
888
	if ( false === $prototype = array_search( 'prototype', $js_array, true ) )
889
		return $js_array;
890
891
	if ( false === $jquery = array_search( 'jquery', $js_array, true ) )
892
		return $js_array;
893
894
	if ( $prototype < $jquery )
895
		return $js_array;
896
897
	unset($js_array[$prototype]);
898
899
	array_splice( $js_array, $jquery, 0, 'prototype' );
900
901
	return $js_array;
902
}
903
904
/**
905
 * Load localized data on print rather than initialization.
906
 *
907
 * These localizations require information that may not be loaded even by init.
908
 *
909
 * @since 2.5.0
910
 */
911
function wp_just_in_time_script_localization() {
912
913
	wp_localize_script( 'autosave', 'autosaveL10n', array(
914
		'autosaveInterval' => AUTOSAVE_INTERVAL,
915
		'blog_id' => get_current_blog_id(),
916
	) );
917
}
918
919
/**
920
 * Localizes the jQuery UI datepicker.
921
 *
922
 * @since 4.6.0
923
 *
924
 * @link http://api.jqueryui.com/datepicker/#options
925
 *
926
 * @global WP_Locale $wp_locale The WordPress date and time locale object.
927
 */
928
function wp_localize_jquery_ui_datepicker() {
929
	global $wp_locale;
930
931
	if ( ! wp_script_is( 'jquery-ui-datepicker', 'enqueued' ) ) {
932
		return;
933
	}
934
935
	// Convert the PHP date format into jQuery UI's format.
936
	$datepicker_date_format = str_replace(
937
		array(
938
			'd', 'j', 'l', 'z', // Day.
939
			'F', 'M', 'n', 'm', // Month.
940
			'Y', 'y'            // Year.
941
		),
942
		array(
943
			'dd', 'd', 'DD', 'o',
944
			'MM', 'M', 'm', 'mm',
945
			'yy', 'y'
946
		),
947
		get_option( 'date_format' )
948
	);
949
950
	$datepicker_defaults = wp_json_encode( array(
951
		'closeText'       => __( 'Close' ),
952
		'currentText'     => __( 'Today' ),
953
		'monthNames'      => array_values( $wp_locale->month ),
954
		'monthNamesShort' => array_values( $wp_locale->month_abbrev ),
955
		'nextText'        => __( 'Next' ),
956
		'prevText'        => __( 'Previous' ),
957
		'dayNames'        => array_values( $wp_locale->weekday ),
958
		'dayNamesShort'   => array_values( $wp_locale->weekday_abbrev ),
959
		'dayNamesMin'     => array_values( $wp_locale->weekday_initial ),
960
		'dateFormat'      => $datepicker_date_format,
961
		'firstDay'        => absint( get_option( 'start_of_week' ) ),
962
		'isRTL'           => $wp_locale->is_rtl(),
963
	) );
964
965
	wp_add_inline_script( 'jquery-ui-datepicker', "jQuery(document).ready(function(jQuery){jQuery.datepicker.setDefaults({$datepicker_defaults});});" );
966
}
967
968
/**
969
 * Administration Screen CSS for changing the styles.
970
 *
971
 * If installing the 'wp-admin/' directory will be replaced with './'.
972
 *
973
 * The $_wp_admin_css_colors global manages the Administration Screens CSS
974
 * stylesheet that is loaded. The option that is set is 'admin_color' and is the
975
 * color and key for the array. The value for the color key is an object with
976
 * a 'url' parameter that has the URL path to the CSS file.
977
 *
978
 * The query from $src parameter will be appended to the URL that is given from
979
 * the $_wp_admin_css_colors array value URL.
980
 *
981
 * @since 2.6.0
982
 * @global array $_wp_admin_css_colors
983
 *
984
 * @param string $src    Source URL.
985
 * @param string $handle Either 'colors' or 'colors-rtl'.
986
 * @return string|false URL path to CSS stylesheet for Administration Screens.
987
 */
988
function wp_style_loader_src( $src, $handle ) {
989
	global $_wp_admin_css_colors;
990
991
	if ( wp_installing() )
992
		return preg_replace( '#^wp-admin/#', './', $src );
993
994
	if ( 'colors' == $handle ) {
995
		$color = get_user_option('admin_color');
996
997
		if ( empty($color) || !isset($_wp_admin_css_colors[$color]) )
998
			$color = 'fresh';
999
1000
		$color = $_wp_admin_css_colors[$color];
1001
		$url = $color->url;
1002
1003
		if ( ! $url ) {
1004
			return false;
1005
		}
1006
1007
		$parsed = parse_url( $src );
1008
		if ( isset($parsed['query']) && $parsed['query'] ) {
1009
			wp_parse_str( $parsed['query'], $qv );
1010
			$url = add_query_arg( $qv, $url );
1011
		}
1012
1013
		return $url;
1014
	}
1015
1016
	return $src;
1017
}
1018
1019
/**
1020
 * Prints the script queue in the HTML head on admin pages.
1021
 *
1022
 * Postpones the scripts that were queued for the footer.
1023
 * print_footer_scripts() is called in the footer to print these scripts.
1024
 *
1025
 * @since 2.8.0
1026
 *
1027
 * @see wp_print_scripts()
1028
 *
1029
 * @global bool $concatenate_scripts
1030
 *
1031
 * @return array
1032
 */
1033
function print_head_scripts() {
1034
	global $concatenate_scripts;
1035
1036
	if ( ! did_action('wp_print_scripts') ) {
1037
		/** This action is documented in wp-includes/functions.wp-scripts.php */
1038
		do_action( 'wp_print_scripts' );
1039
	}
1040
1041
	$wp_scripts = wp_scripts();
1042
1043
	script_concat_settings();
1044
	$wp_scripts->do_concat = $concatenate_scripts;
1045
	$wp_scripts->do_head_items();
1046
1047
	/**
1048
	 * Filters whether to print the head scripts.
1049
	 *
1050
	 * @since 2.8.0
1051
	 *
1052
	 * @param bool $print Whether to print the head scripts. Default true.
1053
	 */
1054
	if ( apply_filters( 'print_head_scripts', true ) ) {
1055
		_print_scripts();
1056
	}
1057
1058
	$wp_scripts->reset();
1059
	return $wp_scripts->done;
1060
}
1061
1062
/**
1063
 * Prints the scripts that were queued for the footer or too late for the HTML head.
1064
 *
1065
 * @since 2.8.0
1066
 *
1067
 * @global WP_Scripts $wp_scripts
1068
 * @global bool       $concatenate_scripts
1069
 *
1070
 * @return array
1071
 */
1072 View Code Duplication
function print_footer_scripts() {
0 ignored issues
show
This function seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
1073
	global $wp_scripts, $concatenate_scripts;
1074
1075
	if ( ! ( $wp_scripts instanceof WP_Scripts ) ) {
1076
		return array(); // No need to run if not instantiated.
1077
	}
1078
	script_concat_settings();
1079
	$wp_scripts->do_concat = $concatenate_scripts;
1080
	$wp_scripts->do_footer_items();
1081
1082
	/**
1083
	 * Filters whether to print the footer scripts.
1084
	 *
1085
	 * @since 2.8.0
1086
	 *
1087
	 * @param bool $print Whether to print the footer scripts. Default true.
1088
	 */
1089
	if ( apply_filters( 'print_footer_scripts', true ) ) {
1090
		_print_scripts();
1091
	}
1092
1093
	$wp_scripts->reset();
1094
	return $wp_scripts->done;
1095
}
1096
1097
/**
1098
 * Print scripts (internal use only)
1099
 *
1100
 * @ignore
1101
 *
1102
 * @global WP_Scripts $wp_scripts
1103
 * @global bool       $compress_scripts
1104
 */
1105
function _print_scripts() {
1106
	global $wp_scripts, $compress_scripts;
1107
1108
	$zip = $compress_scripts ? 1 : 0;
1109
	if ( $zip && defined('ENFORCE_GZIP') && ENFORCE_GZIP )
1110
		$zip = 'gzip';
1111
1112
	if ( $concat = trim( $wp_scripts->concat, ', ' ) ) {
1113
1114
		if ( !empty($wp_scripts->print_code) ) {
1115
			echo "\n<script type='text/javascript'>\n";
1116
			echo "/* <![CDATA[ */\n"; // not needed in HTML 5
1117
			echo $wp_scripts->print_code;
1118
			echo "/* ]]> */\n";
1119
			echo "</script>\n";
1120
		}
1121
1122
		$concat = str_split( $concat, 128 );
1123
		$concat = 'load%5B%5D=' . implode( '&load%5B%5D=', $concat );
1124
1125
		$src = $wp_scripts->base_url . "/wp-admin/load-scripts.php?c={$zip}&" . $concat . '&ver=' . $wp_scripts->default_version;
1126
		echo "<script type='text/javascript' src='" . esc_attr($src) . "'></script>\n";
1127
	}
1128
1129
	if ( !empty($wp_scripts->print_html) )
1130
		echo $wp_scripts->print_html;
1131
}
1132
1133
/**
1134
 * Prints the script queue in the HTML head on the front end.
1135
 *
1136
 * Postpones the scripts that were queued for the footer.
1137
 * wp_print_footer_scripts() is called in the footer to print these scripts.
1138
 *
1139
 * @since 2.8.0
1140
 *
1141
 * @global WP_Scripts $wp_scripts
1142
 *
1143
 * @return array
1144
 */
1145
function wp_print_head_scripts() {
1146
	if ( ! did_action('wp_print_scripts') ) {
1147
		/** This action is documented in wp-includes/functions.wp-scripts.php */
1148
		do_action( 'wp_print_scripts' );
1149
	}
1150
1151
	global $wp_scripts;
1152
1153
	if ( ! ( $wp_scripts instanceof WP_Scripts ) ) {
1154
		return array(); // no need to run if nothing is queued
1155
	}
1156
	return print_head_scripts();
1157
}
1158
1159
/**
1160
 * Private, for use in *_footer_scripts hooks
1161
 *
1162
 * @since 3.3.0
1163
 */
1164
function _wp_footer_scripts() {
1165
	print_late_styles();
1166
	print_footer_scripts();
1167
}
1168
1169
/**
1170
 * Hooks to print the scripts and styles in the footer.
1171
 *
1172
 * @since 2.8.0
1173
 */
1174
function wp_print_footer_scripts() {
1175
	/**
1176
	 * Fires when footer scripts are printed.
1177
	 *
1178
	 * @since 2.8.0
1179
	 */
1180
	do_action( 'wp_print_footer_scripts' );
1181
}
1182
1183
/**
1184
 * Wrapper for do_action('wp_enqueue_scripts')
1185
 *
1186
 * Allows plugins to queue scripts for the front end using wp_enqueue_script().
1187
 * Runs first in wp_head() where all is_home(), is_page(), etc. functions are available.
1188
 *
1189
 * @since 2.8.0
1190
 */
1191
function wp_enqueue_scripts() {
1192
	/**
1193
	 * Fires when scripts and styles are enqueued.
1194
	 *
1195
	 * @since 2.8.0
1196
	 */
1197
	do_action( 'wp_enqueue_scripts' );
1198
}
1199
1200
/**
1201
 * Prints the styles queue in the HTML head on admin pages.
1202
 *
1203
 * @since 2.8.0
1204
 *
1205
 * @global bool $concatenate_scripts
1206
 *
1207
 * @return array
1208
 */
1209
function print_admin_styles() {
1210
	global $concatenate_scripts;
1211
1212
	$wp_styles = wp_styles();
1213
1214
	script_concat_settings();
1215
	$wp_styles->do_concat = $concatenate_scripts;
1216
	$wp_styles->do_items(false);
1217
1218
	/**
1219
	 * Filters whether to print the admin styles.
1220
	 *
1221
	 * @since 2.8.0
1222
	 *
1223
	 * @param bool $print Whether to print the admin styles. Default true.
1224
	 */
1225
	if ( apply_filters( 'print_admin_styles', true ) ) {
1226
		_print_styles();
1227
	}
1228
1229
	$wp_styles->reset();
1230
	return $wp_styles->done;
1231
}
1232
1233
/**
1234
 * Prints the styles that were queued too late for the HTML head.
1235
 *
1236
 * @since 3.3.0
1237
 *
1238
 * @global WP_Styles $wp_styles
1239
 * @global bool      $concatenate_scripts
1240
 *
1241
 * @return array|void
1242
 */
1243 View Code Duplication
function print_late_styles() {
0 ignored issues
show
This function seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
1244
	global $wp_styles, $concatenate_scripts;
1245
1246
	if ( ! ( $wp_styles instanceof WP_Styles ) ) {
1247
		return;
1248
	}
1249
1250
	script_concat_settings();
1251
	$wp_styles->do_concat = $concatenate_scripts;
1252
	$wp_styles->do_footer_items();
1253
1254
	/**
1255
	 * Filters whether to print the styles queued too late for the HTML head.
1256
	 *
1257
	 * @since 3.3.0
1258
	 *
1259
	 * @param bool $print Whether to print the 'late' styles. Default true.
1260
	 */
1261
	if ( apply_filters( 'print_late_styles', true ) ) {
1262
		_print_styles();
1263
	}
1264
1265
	$wp_styles->reset();
1266
	return $wp_styles->done;
1267
}
1268
1269
/**
1270
 * Print styles (internal use only)
1271
 *
1272
 * @ignore
1273
 * @since 3.3.0
1274
 *
1275
 * @global bool $compress_css
1276
 */
1277
function _print_styles() {
1278
	global $compress_css;
1279
1280
	$wp_styles = wp_styles();
1281
1282
	$zip = $compress_css ? 1 : 0;
1283
	if ( $zip && defined('ENFORCE_GZIP') && ENFORCE_GZIP )
1284
		$zip = 'gzip';
1285
1286
	if ( $concat = trim( $wp_styles->concat, ', ' ) ) {
1287
		$dir = $wp_styles->text_direction;
1288
		$ver = $wp_styles->default_version;
1289
1290
		$concat = str_split( $concat, 128 );
1291
		$concat = 'load%5B%5D=' . implode( '&load%5B%5D=', $concat );
1292
1293
		$href = $wp_styles->base_url . "/wp-admin/load-styles.php?c={$zip}&dir={$dir}&" . $concat . '&ver=' . $ver;
1294
		echo "<link rel='stylesheet' href='" . esc_attr($href) . "' type='text/css' media='all' />\n";
1295
1296
		if ( !empty($wp_styles->print_code) ) {
1297
			echo "<style type='text/css'>\n";
1298
			echo $wp_styles->print_code;
1299
			echo "\n</style>\n";
1300
		}
1301
	}
1302
1303
	if ( !empty($wp_styles->print_html) )
1304
		echo $wp_styles->print_html;
1305
}
1306
1307
/**
1308
 * Determine the concatenation and compression settings for scripts and styles.
1309
 *
1310
 * @since 2.8.0
1311
 *
1312
 * @global bool $concatenate_scripts
1313
 * @global bool $compress_scripts
1314
 * @global bool $compress_css
1315
 */
1316
function script_concat_settings() {
1317
	global $concatenate_scripts, $compress_scripts, $compress_css;
1318
1319
	$compressed_output = ( ini_get('zlib.output_compression') || 'ob_gzhandler' == ini_get('output_handler') );
1320
1321
	if ( ! isset($concatenate_scripts) ) {
1322
		$concatenate_scripts = defined('CONCATENATE_SCRIPTS') ? CONCATENATE_SCRIPTS : true;
1323
		if ( ( ! is_admin() && ! did_action( 'login_init' ) ) || ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) )
1324
			$concatenate_scripts = false;
1325
	}
1326
1327 View Code Duplication
	if ( ! isset($compress_scripts) ) {
1328
		$compress_scripts = defined('COMPRESS_SCRIPTS') ? COMPRESS_SCRIPTS : true;
1329
		if ( $compress_scripts && ( ! get_site_option('can_compress_scripts') || $compressed_output ) )
1330
			$compress_scripts = false;
1331
	}
1332
1333 View Code Duplication
	if ( ! isset($compress_css) ) {
1334
		$compress_css = defined('COMPRESS_CSS') ? COMPRESS_CSS : true;
1335
		if ( $compress_css && ( ! get_site_option('can_compress_scripts') || $compressed_output ) )
1336
			$compress_css = false;
1337
	}
1338
}
1339