diff --git a/wp-includes/class.wp-dependencies.php b/wp-includes/class.wp-dependencies.php
index c1bac65..6a91e53 100644
a
|
b
|
class WP_Dependencies { |
174 | 174 | continue; |
175 | 175 | |
176 | 176 | $keep_going = true; |
177 | | if ( !isset($this->registered[$handle]) ) |
| 177 | if ( !isset($this->registered[$handle]) ) { |
178 | 178 | $keep_going = false; // Item doesn't exist. |
179 | | elseif ( $this->registered[$handle]->deps && array_diff($this->registered[$handle]->deps, array_keys($this->registered)) ) |
| 179 | } |
| 180 | elseif ( $this->registered[$handle]->deps && $missing = array_diff($this->registered[$handle]->deps, array_keys($this->registered)) ) { |
180 | 181 | $keep_going = false; // Item requires dependencies that don't exist. |
181 | | elseif ( $this->registered[$handle]->deps && !$this->all_deps( $this->registered[$handle]->deps, true, $group ) ) |
| 182 | $this->missing_dependencies( $handle, $missing ); |
| 183 | } |
| 184 | elseif ( $this->registered[$handle]->deps && !$this->all_deps( $this->registered[$handle]->deps, true, $group ) ) { |
182 | 185 | $keep_going = false; // Item requires dependencies that don't exist. |
| 186 | } |
183 | 187 | |
184 | 188 | if ( ! $keep_going ) { // Either item or its dependencies don't exist. |
185 | 189 | if ( $recursion ) |
… |
… |
class WP_Dependencies { |
201 | 205 | } |
202 | 206 | |
203 | 207 | /** |
| 208 | * Report missing dependencies for an item. |
| 209 | * |
| 210 | * @param string $handle Item handle. |
| 211 | * @param array $missing Handles of missing dependencies (array of strings). |
| 212 | */ |
| 213 | public function missing_dependencies( $handle, $missing ) { |
| 214 | // No-op by default, override this in subclasses. |
| 215 | } |
| 216 | |
| 217 | /** |
204 | 218 | * Register an item. |
205 | 219 | * |
206 | 220 | * Registers the item if no item of that name already exists. |
diff --git a/wp-includes/class.wp-scripts.php b/wp-includes/class.wp-scripts.php
index 89a9ec9..43eb53e 100644
a
|
b
|
class WP_Scripts extends WP_Dependencies { |
47 | 47 | } |
48 | 48 | |
49 | 49 | /** |
| 50 | * Report missing dependencies for an item. |
| 51 | * |
| 52 | * @param string $handle Item handle. |
| 53 | * @param array $missing Handles of missing dependencies (array of strings). |
| 54 | */ |
| 55 | public function missing_dependencies( $handle, $missing ) { |
| 56 | /** |
| 57 | * Allow reporting of missing dependencies |
| 58 | * |
| 59 | * @param string $handle Script/style handle |
| 60 | * @param array $missing List of missing dependencies |
| 61 | * @param array $registered Dependencies registered |
| 62 | */ |
| 63 | do_action( 'wp_scripts_missing_dependency', $handle, $missing, $this->registered[$handle] ); |
| 64 | |
| 65 | if ( WP_DEBUG && apply_filters( 'scripts_missing_dependency_trigger_error', true ) ) { |
| 66 | trigger_error( sprintf( __('Could not solve dependencies for script %1$s: missing %2$s'), $handle, implode( ', ', $missing ) ) ); |
| 67 | } |
| 68 | } |
| 69 | |
| 70 | /** |
50 | 71 | * Prints scripts |
51 | 72 | * |
52 | 73 | * Prints the scripts passed to it or the print queue. Also prints all necessary dependencies. |
diff --git a/wp-includes/class.wp-styles.php b/wp-includes/class.wp-styles.php
index 1a017ac..f49491a 100644
a
|
b
|
class WP_Styles extends WP_Dependencies { |
39 | 39 | do_action_ref_array( 'wp_default_styles', array(&$this) ); |
40 | 40 | } |
41 | 41 | |
| 42 | /** |
| 43 | * Report missing dependencies for an item. |
| 44 | * |
| 45 | * @param string $handle Item handle. |
| 46 | * @param array $missing Handles of missing dependencies (array of strings). |
| 47 | */ |
| 48 | public function missing_dependencies( $handle, $missing ) { |
| 49 | /** |
| 50 | * Allow reporting of missing dependencies |
| 51 | * |
| 52 | * @param string $handle Script/style handle |
| 53 | * @param array $missing List of missing dependencies |
| 54 | * @param array $registered Dependencies registered |
| 55 | */ |
| 56 | do_action( 'wp_styles_missing_dependency', $handle, $missing, $this->registered[$handle] ); |
| 57 | |
| 58 | if ( WP_DEBUG && apply_filters( 'styles_missing_dependency_trigger_error', true ) ) { |
| 59 | trigger_error( sprintf( __('Could not solve dependencies for style %1$s: missing %2$s'), $handle, implode( ', ', $missing ) ) ); |
| 60 | } |
| 61 | } |
| 62 | |
42 | 63 | public function do_item( $handle ) { |
43 | 64 | if ( !parent::do_item($handle) ) |
44 | 65 | return false; |