X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/f9001779751f83dc8a10e478bfecb4d8dd5f964c..6c8f14c09105d0afa4c1574215c59b5021040e76:/wp-includes/class.wp-dependencies.php diff --git a/wp-includes/class.wp-dependencies.php b/wp-includes/class.wp-dependencies.php index de3630ad..eb075c85 100644 --- a/wp-includes/class.wp-dependencies.php +++ b/wp-includes/class.wp-dependencies.php @@ -25,17 +25,10 @@ class WP_Dependencies { var $groups = array(); var $group = 0; - function WP_Dependencies() { - $args = func_get_args(); - call_user_func_array( array(&$this, '__construct'), $args ); - } - - function __construct() {} - /** * 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 @@ -46,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; @@ -70,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 @@ -97,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 @@ -105,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 @@ -141,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 ) { @@ -181,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; } @@ -228,9 +246,9 @@ class _WP_Dependency { var $extra = array(); - function _WP_Dependency() { - @list($this->handle, $this->src, $this->deps, $this->ver, $this->args) = func_get_args(); - if ( !is_array($this->deps) ) + function __construct() { + @list( $this->handle, $this->src, $this->deps, $this->ver, $this->args ) = func_get_args(); + if ( ! is_array($this->deps) ) $this->deps = array(); }