X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/38ca813a0e312e2768e5b9519f0415cd0aa84781..6c8f14c09105d0afa4c1574215c59b5021040e76:/wp-includes/class.wp-dependencies.php diff --git a/wp-includes/class.wp-dependencies.php b/wp-includes/class.wp-dependencies.php index 0e3f51ed..eb075c85 100644 --- a/wp-includes/class.wp-dependencies.php +++ b/wp-includes/class.wp-dependencies.php @@ -28,7 +28,7 @@ class WP_Dependencies { /** * Do the dependencies * - * Process the items passed to it or the queue. Processes all dependencies. + * Process the items passed to it or the queue. Processes all dependencies. * * @param mixed $handles (optional) items to be processed. (void) processes queue, (string) process that item, (array of strings) process those items * @return array Items that have been processed @@ -39,7 +39,7 @@ class WP_Dependencies { $this->all_deps( $handles ); foreach( $this->to_do as $key => $handle ) { - if ( !in_array($handle, $this->done) && isset($this->registered[$handle]) ) { + if ( !in_array($handle, $this->done, true) && isset($this->registered[$handle]) ) { if ( ! $this->registered[$handle]->src ) { // Defines a group. $this->done[] = $handle; @@ -63,7 +63,7 @@ class WP_Dependencies { /** * Determines dependencies * - * Recursively builds array of items to process taking dependencies into account. Does NOT catch infinite loops. + * Recursively builds array of items to process taking dependencies into account. Does NOT catch infinite loops. * * * @param mixed $handles Accepts (string) dep name or (array of strings) dep names @@ -90,7 +90,7 @@ class WP_Dependencies { if ( !isset($this->registered[$handle]) ) $keep_going = false; // Script doesn't exist elseif ( $this->registered[$handle]->deps && array_diff($this->registered[$handle]->deps, array_keys($this->registered)) ) - $keep_going = false; // Script requires deps which don't exist (not a necessary check. efficiency?) + $keep_going = false; // Script requires deps which don't exist (not a necessary check. efficiency?) elseif ( $this->registered[$handle]->deps && !$this->all_deps( $this->registered[$handle]->deps, true, $group ) ) $keep_going = false; // Script requires deps which don't exist @@ -98,7 +98,7 @@ class WP_Dependencies { if ( $recursion ) return false; // Abort this branch. else - continue; // We're at the top level. Move on to the next one. + continue; // We're at the top level. Move on to the next one. } if ( $queued ) // Already grobbed it and its deps @@ -134,17 +134,39 @@ class WP_Dependencies { /** * Adds extra data * - * Adds data only if script has already been added + * Adds data only if script has already been added. * * @param string $handle Script name - * @param string $data_name Name of object in which to store extra data - * @param array $data Array of extra data + * @param string $key + * @param mixed $value * @return bool success */ - function add_data( $handle, $data_name, $data ) { - if ( !isset($this->registered[$handle]) ) + function add_data( $handle, $key, $value ) { + if ( !isset( $this->registered[$handle] ) ) return false; - return $this->registered[$handle]->add_data( $data_name, $data ); + + return $this->registered[$handle]->add_data( $key, $value ); + } + + /** + * Get extra data + * + * Gets data associated with a certain handle. + * + * @since WP 3.3 + * + * @param string $handle Script name + * @param string $key + * @return mixed + */ + function get_data( $handle, $key ) { + if ( !isset( $this->registered[$handle] ) ) + return false; + + if ( !isset( $this->registered[$handle]->extra[$key] ) ) + return false; + + return $this->registered[$handle]->extra[$key]; } function remove( $handles ) { @@ -174,24 +196,27 @@ class WP_Dependencies { } } - function query( $handle, $list = 'registered' ) { // registered, queue, done, to_do - switch ( $list ) : - case 'registered': - case 'scripts': // back compat - if ( isset($this->registered[$handle]) ) - return $this->registered[$handle]; - break; - case 'to_print': // back compat - case 'printed': // back compat - if ( 'to_print' == $list ) - $list = 'to_do'; - else - $list = 'printed'; - default: - if ( in_array($handle, $this->$list) ) - return true; - break; - endswitch; + + function query( $handle, $list = 'registered' ) { + switch ( $list ) { + case 'registered' : + case 'scripts': // back compat + if ( isset( $this->registered[ $handle ] ) ) + return $this->registered[ $handle ]; + return false; + + case 'enqueued' : + case 'queue' : + return in_array( $handle, $this->queue ); + + case 'to_do' : + case 'to_print': // back compat + return in_array( $handle, $this->to_do ); + + case 'done' : + case 'printed': // back compat + return in_array( $handle, $this->done ); + } return false; } @@ -222,8 +247,8 @@ class _WP_Dependency { var $extra = array(); function __construct() { - @list($this->handle, $this->src, $this->deps, $this->ver, $this->args) = func_get_args(); - if ( !is_array($this->deps) ) + @list( $this->handle, $this->src, $this->deps, $this->ver, $this->args ) = func_get_args(); + if ( ! is_array($this->deps) ) $this->deps = array(); }