Wordpress 3.0-scripts
[autoinstalls/wordpress.git] / wp-includes / functions.wp-scripts.php
1 <?php
2 /**
3  * BackPress script procedural API.
4  *
5  * @package BackPress
6  * @since r16
7  */
8
9 /**
10  * Prints script tags in document head.
11  *
12  * Called by admin-header.php and by wp_head hook. Since it is called by wp_head
13  * on every page load, the function does not instantiate the WP_Scripts object
14  * unless script names are explicitly passed. Does make use of already
15  * instantiated $wp_scripts if present. Use provided wp_print_scripts hook to
16  * register/enqueue new scripts.
17  *
18  * @since r16
19  * @see WP_Dependencies::print_scripts()
20  */
21 function wp_print_scripts( $handles = false ) {
22         do_action( 'wp_print_scripts' );
23         if ( '' === $handles ) // for wp_head
24                 $handles = false;
25
26         global $wp_scripts;
27         if ( !is_a($wp_scripts, 'WP_Scripts') ) {
28                 if ( !$handles )
29                         return array(); // No need to instantiate if nothing's there.
30                 else
31                         $wp_scripts = new WP_Scripts();
32         }
33
34         return $wp_scripts->do_items( $handles );
35 }
36
37 /**
38  * Register new JavaScript file.
39  *
40  * @since r16
41  * @param string $handle Script name
42  * @param string $src Script url
43  * @param array $deps (optional) Array of script names on which this script depends
44  * @param string|bool $ver (optional) Script version (used for cache busting), set to NULL to disable
45  * @param bool (optional) Wether to enqueue the script before </head> or before </body>
46  * @return null
47  */
48 function wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_footer = false ) {
49         global $wp_scripts;
50         if ( !is_a($wp_scripts, 'WP_Scripts') )
51                 $wp_scripts = new WP_Scripts();
52
53         $wp_scripts->add( $handle, $src, $deps, $ver );
54         if ( $in_footer )
55                 $wp_scripts->add_data( $handle, 'group', 1 );
56 }
57
58 /**
59  * Localizes a script.
60  *
61  * Localizes only if script has already been added.
62  *
63  * @since r16
64  * @see WP_Scripts::localize()
65  */
66 function wp_localize_script( $handle, $object_name, $l10n ) {
67         global $wp_scripts;
68         if ( !is_a($wp_scripts, 'WP_Scripts') )
69                 return false;
70
71         return $wp_scripts->localize( $handle, $object_name, $l10n );
72 }
73
74 /**
75  * Remove a registered script.
76  *
77  * @since r16
78  * @see WP_Scripts::remove() For parameter information.
79  */
80 function wp_deregister_script( $handle ) {
81         global $wp_scripts;
82         if ( !is_a($wp_scripts, 'WP_Scripts') )
83                 $wp_scripts = new WP_Scripts();
84
85         $wp_scripts->remove( $handle );
86 }
87
88 /**
89  * Enqueues script.
90  *
91  * Registers the script if src provided (does NOT overwrite) and enqueues.
92  *
93  * @since r16
94  * @see wp_register_script() For parameter information.
95  */
96 function wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false, $in_footer = false ) {
97         global $wp_scripts;
98         if ( !is_a($wp_scripts, 'WP_Scripts') )
99                 $wp_scripts = new WP_Scripts();
100
101         if ( $src ) {
102                 $_handle = explode('?', $handle);
103                 $wp_scripts->add( $_handle[0], $src, $deps, $ver );
104                 if ( $in_footer )
105                         $wp_scripts->add_data( $_handle[0], 'group', 1 );
106         }
107         $wp_scripts->enqueue( $handle );
108 }
109
110 /**
111  * Check whether script has been added to WordPress Scripts.
112  *
113  * The values for list defaults to 'queue', which is the same as enqueue for
114  * scripts.
115  *
116  * @since WP unknown; BP unknown
117  *
118  * @param string $handle Handle used to add script.
119  * @param string $list Optional, defaults to 'queue'. Others values are 'registered', 'queue', 'done', 'to_do'
120  * @return bool
121  */
122 function wp_script_is( $handle, $list = 'queue' ) {
123         global $wp_scripts;
124         if ( !is_a($wp_scripts, 'WP_Scripts') )
125                 $wp_scripts = new WP_Scripts();
126
127         $query = $wp_scripts->query( $handle, $list );
128
129         if ( is_object( $query ) )
130                 return true;
131
132         return $query;
133 }