109
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
3 |
* BackPress Scripts enqueue. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
4 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
5 |
* These classes were refactored from the WordPress WP_Scripts and WordPress |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
6 |
* script enqueue API. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
7 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
8 |
* @package BackPress |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
9 |
* @since r74 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
10 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
11 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
12 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
13 |
* BackPress enqueued dependiences class. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
14 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
15 |
* @package BackPress |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
16 |
* @uses _WP_Dependency |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
17 |
* @since r74 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
18 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
19 |
class WP_Dependencies { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
20 |
var $registered = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
21 |
var $queue = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
22 |
var $to_do = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
23 |
var $done = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
24 |
var $args = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
25 |
var $groups = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
26 |
var $group = 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
27 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
28 |
function WP_Dependencies() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
29 |
$args = func_get_args(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
30 |
call_user_func_array( array(&$this, '__construct'), $args ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
31 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
32 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
33 |
function __construct() {} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
34 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
35 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
36 |
* Do the dependencies |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
37 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
38 |
* Process the items passed to it or the queue. Processes all dependencies. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
39 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
40 |
* @param mixed handles (optional) items to be processed. (void) processes queue, (string) process that item, (array of strings) process those items |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
41 |
* @return array Items that have been processed |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
42 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
43 |
function do_items( $handles = false, $group = false ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
44 |
// Print the queue if nothing is passed. If a string is passed, print that script. If an array is passed, print those scripts. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
45 |
$handles = false === $handles ? $this->queue : (array) $handles; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
46 |
$this->all_deps( $handles ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
47 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
48 |
foreach( $this->to_do as $key => $handle ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
49 |
if ( !in_array($handle, $this->done) && isset($this->registered[$handle]) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
50 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
51 |
if ( ! $this->registered[$handle]->src ) { // Defines a group. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
52 |
$this->done[] = $handle; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
53 |
continue; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
54 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
55 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
56 |
if ( $this->do_item( $handle, $group ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
57 |
$this->done[] = $handle; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
58 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
59 |
unset( $this->to_do[$key] ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
60 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
61 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
62 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
63 |
return $this->done; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
64 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
65 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
66 |
function do_item( $handle ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
67 |
return isset($this->registered[$handle]); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
68 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
69 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
70 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
71 |
* Determines dependencies |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
72 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
73 |
* Recursively builds array of items to process taking dependencies into account. Does NOT catch infinite loops. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
74 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
75 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
76 |
* @param mixed handles Accepts (string) dep name or (array of strings) dep names |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
77 |
* @param bool recursion Used internally when function calls itself |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
78 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
79 |
function all_deps( $handles, $recursion = false, $group = false ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
80 |
if ( !$handles = (array) $handles ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
81 |
return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
82 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
83 |
foreach ( $handles as $handle ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
84 |
$handle_parts = explode('?', $handle); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
85 |
$handle = $handle_parts[0]; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
86 |
$queued = in_array($handle, $this->to_do, true); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
87 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
88 |
if ( in_array($handle, $this->done, true) ) // Already done |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
89 |
continue; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
90 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
91 |
$moved = $this->set_group( $handle, $recursion, $group ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
92 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
93 |
if ( $queued && !$moved ) // already queued and in the right group |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
94 |
continue; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
95 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
96 |
$keep_going = true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
97 |
if ( !isset($this->registered[$handle]) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
98 |
$keep_going = false; // Script doesn't exist |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
99 |
elseif ( $this->registered[$handle]->deps && array_diff($this->registered[$handle]->deps, array_keys($this->registered)) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
100 |
$keep_going = false; // Script requires deps which don't exist (not a necessary check. efficiency?) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
101 |
elseif ( $this->registered[$handle]->deps && !$this->all_deps( $this->registered[$handle]->deps, true, $group ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
102 |
$keep_going = false; // Script requires deps which don't exist |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
103 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
104 |
if ( !$keep_going ) { // Either script or its deps don't exist. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
105 |
if ( $recursion ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
106 |
return false; // Abort this branch. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
107 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
108 |
continue; // We're at the top level. Move on to the next one. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
109 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
110 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
111 |
if ( $queued ) // Already grobbed it and its deps |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
112 |
continue; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
113 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
114 |
if ( isset($handle_parts[1]) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
115 |
$this->args[$handle] = $handle_parts[1]; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
116 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
117 |
$this->to_do[] = $handle; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
118 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
119 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
120 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
121 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
122 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
123 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
124 |
* Adds item |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
125 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
126 |
* Adds the item only if no item of that name already exists |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
127 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
128 |
* @param string handle Script name |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
129 |
* @param string src Script url |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
130 |
* @param array deps (optional) Array of script names on which this script depends |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
131 |
* @param string ver (optional) Script version (used for cache busting) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
132 |
* @return array Hierarchical array of dependencies |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
133 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
134 |
function add( $handle, $src, $deps = array(), $ver = false, $args = null ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
135 |
if ( isset($this->registered[$handle]) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
136 |
return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
137 |
$this->registered[$handle] = new _WP_Dependency( $handle, $src, $deps, $ver, $args ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
138 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
139 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
140 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
141 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
142 |
* Adds extra data |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
143 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
144 |
* Adds data only if script has already been added |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
145 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
146 |
* @param string handle Script name |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
147 |
* @param string data_name Name of object in which to store extra data |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
148 |
* @param array data Array of extra data |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
149 |
* @return bool success |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
150 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
151 |
function add_data( $handle, $data_name, $data ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
152 |
if ( !isset($this->registered[$handle]) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
153 |
return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
154 |
return $this->registered[$handle]->add_data( $data_name, $data ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
155 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
156 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
157 |
function remove( $handles ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
158 |
foreach ( (array) $handles as $handle ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
159 |
unset($this->registered[$handle]); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
160 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
161 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
162 |
function enqueue( $handles ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
163 |
foreach ( (array) $handles as $handle ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
164 |
$handle = explode('?', $handle); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
165 |
if ( !in_array($handle[0], $this->queue) && isset($this->registered[$handle[0]]) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
166 |
$this->queue[] = $handle[0]; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
167 |
if ( isset($handle[1]) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
168 |
$this->args[$handle[0]] = $handle[1]; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
169 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
170 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
171 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
172 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
173 |
function dequeue( $handles ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
174 |
foreach ( (array) $handles as $handle ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
175 |
unset( $this->queue[$handle] ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
176 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
177 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
178 |
function query( $handle, $list = 'registered' ) { // registered, queue, done, to_do |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
179 |
switch ( $list ) : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
180 |
case 'registered': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
181 |
case 'scripts': // back compat |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
182 |
if ( isset($this->registered[$handle]) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
183 |
return $this->registered[$handle]; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
184 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
185 |
case 'to_print': // back compat |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
186 |
case 'printed': // back compat |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
187 |
if ( 'to_print' == $list ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
188 |
$list = 'to_do'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
189 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
190 |
$list = 'printed'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
191 |
default: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
192 |
if ( in_array($handle, $this->$list) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
193 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
194 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
195 |
endswitch; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
196 |
return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
197 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
198 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
199 |
function set_group( $handle, $recursion, $group ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
200 |
$group = (int) $group; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
201 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
202 |
if ( $recursion ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
203 |
$group = min($this->group, $group); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
204 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
205 |
$this->group = $group; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
206 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
207 |
if ( isset($this->groups[$handle]) && $this->groups[$handle] <= $group ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
208 |
return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
209 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
210 |
$this->groups[$handle] = $group; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
211 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
212 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
213 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
214 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
215 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
216 |
class _WP_Dependency { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
217 |
var $handle; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
218 |
var $src; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
219 |
var $deps = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
220 |
var $ver = false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
221 |
var $args = null; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
222 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
223 |
var $extra = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
224 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
225 |
function _WP_Dependency() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
226 |
@list($this->handle, $this->src, $this->deps, $this->ver, $this->args) = func_get_args(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
227 |
if ( !is_array($this->deps) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
228 |
$this->deps = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
229 |
if ( !$this->ver ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
230 |
$this->ver = false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
231 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
232 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
233 |
function add_data( $name, $data ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
234 |
if ( !is_scalar($name) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
235 |
return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
236 |
$this->extra[$name] = $data; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
237 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
238 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
239 |
} |