wp/wp-includes/class.wp-dependencies.php
changeset 5 5e2f62d02dcd
parent 0 d970ebf37754
child 7 cf61fcea0001
--- a/wp/wp-includes/class.wp-dependencies.php	Mon Jun 08 16:11:51 2015 +0000
+++ b/wp/wp-includes/class.wp-dependencies.php	Tue Jun 09 03:35:32 2015 +0200
@@ -18,7 +18,7 @@
 	 * @since 2.6.8
 	 * @var array
 	 */
-	var $registered = array();
+	public $registered = array();
 
 	/**
 	 * An array of queued _WP_Dependency handle objects.
@@ -27,7 +27,7 @@
 	 * @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 @@
 	 * @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 @@
 	 * @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 @@
 	 * @since 2.6.0
 	 * @var array
 	 */
-	var $args = array();
+	public $args = array();
 
 	/**
 	 * An array of handle groups to enqueue.
@@ -65,7 +65,7 @@
 	 * @since 2.8.0
 	 * @var array
 	 */
-	var $groups = array();
+	public $groups = array();
 
 	/**
 	 * A handle group to enqueue.
@@ -74,7 +74,7 @@
 	 * @since 2.8.0
 	 * @var int
 	 */
-	var $group = 0;
+	public $group = 0;
 
 	/**
 	 * Process the items and dependencies.
@@ -89,7 +89,7 @@
 	 * @return array Handles of items that have been processed.
 	 */
 	public function do_items( $handles = false, $group = false ) {
-		/**
+		/*
 		 * If nothing is passed, print the queue. If a string is passed,
 		 * print that item. If an array is passed, print those items.
 		 */
@@ -99,7 +99,7 @@
 		foreach( $this->to_do as $key => $handle ) {
 			if ( !in_array($handle, $this->done, true) && isset($this->registered[$handle]) ) {
 
-				/**
+				/*
 				 * A single item may alias a set of items, by having dependencies,
 				 * but no source. Queuing the item queues the dependencies.
 				 *
@@ -107,13 +107,13 @@
 				 *   <code>add( 'scriptaculous', false, array( 'scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls' ) );</code>
 				 *
 				 * The src property is false.
-				**/
+				 */
 				if ( ! $this->registered[$handle]->src ) {
 					$this->done[] = $handle;
 					continue;
 				}
 
-				/**
+				/*
 				 * Attempt to process the item. If successful,
 				 * add the handle to the done array.
 				 *
@@ -325,6 +325,31 @@
 	}
 
 	/**
+	 * 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.
 	 *
 	 * @access public
@@ -344,7 +369,10 @@
 
 			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 @@
 	 * @since 2.6.0
 	 * @var null
 	 */
-	var $handle;
+	public $handle;
 
 	/**
 	 * The handle source.
@@ -410,7 +438,7 @@
 	 * @since 2.6.0
 	 * @var null
 	 */
-	var $src;
+	public $src;
 
 	/**
 	 * An array of handle dependencies.
@@ -419,7 +447,7 @@
 	 * @since 2.6.0
 	 * @var array
 	 */
-	var $deps = array();
+	public $deps = array();
 
 	/**
 	 * The handle version.
@@ -430,7 +458,7 @@
 	 * @since 2.6.0
 	 * @var bool|string
 	 */
-	var $ver = false;
+	public $ver = false;
 
 	/**
 	 * Additional arguments for the handle.
@@ -439,7 +467,7 @@
 	 * @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 @@
 	 * @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 @@
 	 * @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;