Source of file functions.gb-styles.php
Size: 7,593 Bytes - Last Modified: 2017-07-17T16:46:02+00:00
/home/travis/build/Limych/GeniBase/src/gb/functions.gb-styles.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 | <?php /** * GeniBase Styles Procedural API * * @since 2.0.0 * * @package GeniBase * * @copyright Copyright © WordPress Team * @copyright Partially copyright © 2014–2015, Andrey Khrolenok (andrey@khrolenok.ru) */ // Direct execution forbidden for this script if (! defined('GB_VERSION') || count(get_included_files()) == 1) die('<b>ERROR:</b> Direct execution forbidden!'); /** * Return instance of GB_Style object. * * @since 2.0.0 * @access private * * @global GB_Styles $gb_styles The GB_Styles object. * * @return GB_Styles GB_Styles object for printing styles. */ function gb_styles() { if (! isset($GLOBALS['gb_styles']) || ! is_a($GLOBALS['gb_styles'], 'GB_Styles')) { if (class_exists('GB_Hooks') && ! GB_Hooks::did_action('init')) _doing_it_wrong(__FUNCTION__, sprintf(__('Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.'), '<code>gb_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>login_enqueue_scripts</code>'), '3.3'); $GLOBALS['gb_styles'] = new GB_Styles(); } return $GLOBALS['gb_styles']; } /** * Display styles that are in the $handles queue. * * Passing an empty array to $handles prints the queue, * passing an array with one string prints that style, * and passing an array of strings prints those styles. * * @since 2.0.0 * * @param string|bool|array $handles * Styles to be printed. Default 'false'. * @return array On success, a processed array of GB_Dependencies items; otherwise, an empty array. */ function gb_print_styles($handles = false) { if ('' === $handles) // for gb_head $handles = false; /** * Fires before styles in the $handles queue are printed. * * @since 2.1.0 */ if (class_exists('GB_Hooks') && ! $handles) GB_Hooks::do_action('gb_print_styles'); return gb_styles()->do_items($handles); } /** * Add extra CSS styles to a registered stylesheet. * * Styles will only be added if the stylesheet in already in the queue. * Accepts a string $data containing the CSS. If two or more CSS code blocks * are added to the same stylesheet $handle, they will be printed in the order * they were added, i.e. the latter added styles can redeclare the previous. * * @see GB_Styles::add_inline_style() * * @since 2.0.0 * * @param string $handle * Name of the stylesheet to add the extra styles to. Must be lowercase. * @param string $data * String containing the CSS styles to be added. * @return bool True on success, false on failure. */ function gb_add_inline_style($handle, $data) { if (false !== stripos($data, '</style>')) { _doing_it_wrong(__FUNCTION__, __('Do not pass style tags to gb_add_inline_style().'), '2.0'); $data = trim(preg_replace('#<style[^>]*>(.*)</style>#is', '$1', $data)); } return gb_styles()->add_inline_style($handle, $data); } /** * Register a CSS stylesheet. * * @see GB_Dependencies::add() * @link http://www.w3.org/TR/CSS2/media.html#media-types List of CSS media types. * * @since 2.0.0 * * @param string $handle * Name of the stylesheet. * @param string|bool $src * Path to the stylesheet from the GeniBase root directory. Example: '/css/mystyle.css'. * @param array $deps * An array of registered style handles this stylesheet depends on. Default empty array. * @param string|bool $ver * String specifying the stylesheet version number. Used to ensure that the correct version * is sent to the client regardless of caching. Default 'false'. Accepts 'false', 'null', or 'string'. * @param string $media * Optional. The media for which this stylesheet has been defined. * Default 'all'. Accepts 'all', 'aural', 'braille', 'handheld', 'projection', 'print', * 'screen', 'tty', or 'tv'. */ function gb_register_style($handle, $src, $deps = array(), $ver = false, $media = 'all') { gb_styles()->add($handle, $src, $deps, $ver, $media); } /** * Remove a registered stylesheet. * * @see GB_Dependencies::remove() * * @since 2.0.0 * * @param string $handle * Name of the stylesheet to be removed. */ function gb_deregister_style($handle) { gb_styles()->remove($handle); } /** * Enqueue a CSS stylesheet. * * Registers the style if source provided (does NOT overwrite) and enqueues. * * @see GB_Dependencies::add(), GB_Dependencies::enqueue() * @link http://www.w3.org/TR/CSS2/media.html#media-types List of CSS media types. * * @since 2.0.0 * * @param string $handle * Name of the stylesheet. * @param string|bool $src * Path to the stylesheet from the root directory of GeniBase. Example: '/css/mystyle.css'. * @param array $deps * An array of registered style handles this stylesheet depends on. Default empty array. * @param string|bool $ver * String specifying the stylesheet version number, if it has one. This parameter is used * to ensure that the correct version is sent to the client regardless of caching, and so * should be included if a version number is available and makes sense for the stylesheet. * @param string $media * Optional. The media for which this stylesheet has been defined. * Default 'all'. Accepts 'all', 'aural', 'braille', 'handheld', 'projection', 'print', * 'screen', 'tty', or 'tv'. */ function gb_enqueue_style($handle, $src = false, $deps = array(), $ver = false, $media = 'all') { if ($src) { $_handle = explode('?', $handle); gb_styles()->add($_handle[0], $src, $deps, $ver, $media); } gb_styles()->enqueue($handle); } /** * Remove a previously enqueued CSS stylesheet. * * @see GB_Dependencies::dequeue() * * @since 2.0.0 * * @param string $handle * Name of the stylesheet to be removed. */ function gb_dequeue_style($handle) { gb_styles()->dequeue($handle); } /** * Check whether a CSS stylesheet has been added to the queue. * * @since 2.0.0 * * @param string $handle * Name of the stylesheet. * @param string $list * Optional. Status of the stylesheet to check. Default 'enqueued'. * Accepts 'enqueued', 'registered', 'queue', 'to_do', and 'done'. * @return bool Whether style is queued. */ function gb_style_is($handle, $list = 'enqueued') { return (bool) gb_styles()->query($handle, $list); } /** * Add metadata to a CSS stylesheet. * * Works only if the stylesheet has already been added. * * Possible values for $key and $value: * 'conditional' string Comments for IE 6, lte IE 7 etc. * 'rtl' bool|string To declare an RTL stylesheet. * 'suffix' string Optional suffix, used in combination with RTL. * 'alt' bool For rel="alternate stylesheet". * 'title' string For preferred/alternate stylesheets. * * @see GB_Dependency::add_data() * * @since 2.0.0 * * @param string $handle * Name of the stylesheet. * @param string $key * Name of data point for which we're storing a value. * Accepts 'conditional', 'rtl' and 'suffix', 'alt' and 'title'. * @param mixed $value * String containing the CSS data to be added. * @return bool True on success, false on failure. */ function gb_style_add_data($handle, $key, $value) { return gb_styles()->add_data($handle, $key, $value); } |