X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/fa11948979fd6a4ea5705dc613b239699a459db3..9e77185fafaf4e60e2b73821e0e4b9b1a11fb85f:/wp-includes/class.wp-dependencies.php diff --git a/wp-includes/class.wp-dependencies.php b/wp-includes/class.wp-dependencies.php index 158d3e03..c1bac65b 100644 --- a/wp-includes/class.wp-dependencies.php +++ b/wp-includes/class.wp-dependencies.php @@ -18,7 +18,7 @@ class WP_Dependencies { * @since 2.6.8 * @var array */ - var $registered = array(); + public $registered = array(); /** * An array of queued _WP_Dependency handle objects. @@ -27,7 +27,7 @@ class WP_Dependencies { * @since 2.6.8 * @var array */ - var $queue = array(); + public $queue = array(); /** * An array of _WP_Dependency handle objects to queue. @@ -36,7 +36,7 @@ class WP_Dependencies { * @since 2.6.0 * @var array */ - var $to_do = array(); + public $to_do = array(); /** * An array of _WP_Dependency handle objects already queued. @@ -45,7 +45,7 @@ class WP_Dependencies { * @since 2.6.0 * @var array */ - var $done = array(); + public $done = array(); /** * An array of additional arguments passed when a handle is registered. @@ -56,7 +56,7 @@ class WP_Dependencies { * @since 2.6.0 * @var array */ - var $args = array(); + public $args = array(); /** * An array of handle groups to enqueue. @@ -65,7 +65,7 @@ class WP_Dependencies { * @since 2.8.0 * @var array */ - var $groups = array(); + public $groups = array(); /** * A handle group to enqueue. @@ -74,7 +74,7 @@ class WP_Dependencies { * @since 2.8.0 * @var int */ - var $group = 0; + public $group = 0; /** * Process the items and dependencies. @@ -324,6 +324,31 @@ class WP_Dependencies { } } + /** + * Recursively search the passed dependency tree for $handle + * + * @since 4.0.0 + * + * @param array $queue An array of queued _WP_Dependency handle objects. + * @param string $handle Name of the item. Should be unique. + * @return boolean Whether the handle is found after recursively searching the dependency tree. + */ + protected function recurse_deps( $queue, $handle ) { + foreach ( $queue as $queued ) { + if ( ! isset( $this->registered[ $queued ] ) ) { + continue; + } + + if ( in_array( $handle, $this->registered[ $queued ]->deps ) ) { + return true; + } elseif ( $this->recurse_deps( $this->registered[ $queued ]->deps, $handle ) ) { + return true; + } + } + + return false; + } + /** * Query list for an item. * @@ -344,7 +369,10 @@ class WP_Dependencies { case 'enqueued' : case 'queue' : - return in_array( $handle, $this->queue ); + if ( in_array( $handle, $this->queue ) ) { + return true; + } + return $this->recurse_deps( $this->queue, $handle ); case 'to_do' : case 'to_print': // back compat @@ -401,7 +429,7 @@ class _WP_Dependency { * @since 2.6.0 * @var null */ - var $handle; + public $handle; /** * The handle source. @@ -410,7 +438,7 @@ class _WP_Dependency { * @since 2.6.0 * @var null */ - var $src; + public $src; /** * An array of handle dependencies. @@ -419,7 +447,7 @@ class _WP_Dependency { * @since 2.6.0 * @var array */ - var $deps = array(); + public $deps = array(); /** * The handle version. @@ -430,7 +458,7 @@ class _WP_Dependency { * @since 2.6.0 * @var bool|string */ - var $ver = false; + public $ver = false; /** * Additional arguments for the handle. @@ -439,7 +467,7 @@ class _WP_Dependency { * @since 2.6.0 * @var null */ - var $args = null; // Custom property, such as $in_footer or $media. + public $args = null; // Custom property, such as $in_footer or $media. /** * Extra data to supply to the handle. @@ -448,14 +476,14 @@ class _WP_Dependency { * @since 2.6.0 * @var array */ - var $extra = array(); + public $extra = array(); /** * Setup dependencies. * * @since 2.6.0 */ - function __construct() { + public function __construct() { @list( $this->handle, $this->src, $this->deps, $this->ver, $this->args ) = func_get_args(); if ( ! is_array($this->deps) ) $this->deps = array(); @@ -471,7 +499,7 @@ class _WP_Dependency { * @param mixed $data The data value to add. * @return bool False if not scalar, true otherwise. */ - function add_data( $name, $data ) { + public function add_data( $name, $data ) { if ( !is_scalar($name) ) return false; $this->extra[$name] = $data;