public static function get_kirki() { if (null === self::$kirki) { self::$kirki = Kirki(); } return self::$kirki; }
public function test_customize_controls_print_scripts() { Kirki::add_field('', array('settings' => 'foo', 'type' => 'text', 'section' => 'bar', 'help' => 'Lorem Ipsum')); $script = '$( "<a href=\'#\' class=\'tooltip hint--left\' data-hint=\'Lorem Ipsum\'><span class=\'dashicons dashicons-info\'></span></a>" ).prependTo( "#customize-control-foo" );'; $this->expectOutputString('<script>jQuery(document).ready(function($) { "use strict"; ' . $script . '});</script>'); Kirki()->scripts->tooltips->customize_controls_print_footer_scripts(); }
public function test_generate_script() { $js_vars = array('element' => 'body', 'function' => 'css', 'property' => 'color'); Kirki::add_field('', array('settings' => 'foo', 'type' => 'text', 'transport' => 'postMessage', 'js_vars' => $js_vars)); set_theme_mod('foo', '#333'); $wp_customize = $this->init_customizer(); $this->assertEquals('wp.customize( \'foo\', function( value ) {value.bind( function( newval ) {$(\'body\').css(\'color\', newval );}); });', Kirki()->scripts->postmessage->generate_script()); $js_vars = array('element' => 'body', 'function' => 'html'); Kirki::add_field('', array('settings' => 'foo', 'type' => 'text', 'transport' => 'postMessage', 'js_vars' => $js_vars)); set_theme_mod('foo', 'this is a string'); $wp_customize = $this->init_customizer(); $this->assertEquals('wp.customize( \'foo\', function( value ) {value.bind( function( newval ) {$(\'body\').html( newval );}); });', Kirki()->scripts->postmessage->generate_script()); }
public function test_custom_css() { add_filter('kirki/config', function ($config) { $config['color_accent'] = '#00bcd4'; $config['color_back'] = '#455a64'; $config['width'] = '20%'; return $config; }); do_action('customize_controls_print_styles'); $this->assertTrue(false !== strpos(Kirki()->styles['back']->custom_css(), '#00bcd4')); $this->assertTrue(false !== strpos(Kirki()->styles['back']->custom_css(), '#455a64')); $this->assertTrue(false !== strpos(Kirki()->styles['back']->custom_css(), '20%')); }
public function test_customize_controls_print_scripts() { add_filter('kirki/config', function () { return array(); }); $this->expectOutputString(''); print ''; add_filter('kirki/config', function () { return array('logo_image' => 'http://foo.com/bar.png', 'description' => 'Lorem ipsum dolor sit amet'); }); $script = '$( \'div#customize-info .preview-notice\' ).replaceWith( \'<img src="http://foo.com/bar.png">\' );$( \'div#customize-info .accordion-section-content\' ).replaceWith( \'<div class="accordion-section-content"><div class="theme-description">Lorem ipsum dolor sit amet</div></div>\' );'; $this->expectOutputString('<script>jQuery(document).ready(function($) { "use strict"; ' . $script . '});</script>'); Kirki()->scripts->branding->customize_controls_print_scripts(); }
public function test_google_font_enqueued() { $this->add_font_family_field(); $this->add_font_subsets_field(); $this->add_font_weight_field(); set_theme_mod('font_family', 'Open Sans'); set_theme_mod('subsets', 'devangari'); set_theme_mod('font_weight', 100); Kirki(); $this->go_to(home_url()); do_action('wp_enqueue_scripts'); $styles = $GLOBALS['wp_styles']->registered; $this->assertTrue(isset($styles['kirki_google_fonts'])); }
function Kirki() { // Make sure the class is instanciated $kirki = Kirki_Toolkit::get_instance(); $kirki->font_registry = new Kirki_Google_Fonts_Registry(); $kirki->api = new Kirki(); $kirki->scripts = new Kirki_Scripts_Registry(); $kirki->styles = array('back' => new Kirki_Styles_Customizer(), 'front' => new Kirki_Styles_Frontend()); /** * The path of the current Kirki instance */ Kirki::$path = dirname(__FILE__); return $kirki; } global $kirki; $kirki = Kirki(); } /** * Apply the filters to the Kirki::$url */ if (!function_exists('kirki_filtered_url')) { function kirki_filtered_url() { $config = apply_filters('kirki/config', array()); if (isset($config['url_path'])) { Kirki::$url = esc_url_raw($config['url_path']); } } add_action('after_setup_theme', 'kirki_filtered_url'); } include_once Kirki::$path . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'deprecated.php';
public function get_all_fonts() { $fonts = Kirki()->font_registry->get_all_fonts(); $fonts_array = array(); foreach ($fonts as $font => $properties) { $fonts_array[$font] = $font; } return $fonts_array; }
public function get_all_fonts() { $kirki = Kirki(); $fonts = $kirki->font_registry->get_all_fonts(); $fonts_array = array(); foreach ($fonts as $key => $font) { if (is_array($font)) { if (isset($font['label'])) { if (isset($font['stack'])) { $fonts_array[$font['stack']] = $font['label']; } else { $fonts_array[$key] = $font['label']; } } else { $fonts_array[$key] = $key; } } else { $fonts_array[$key] = $font; } } return $fonts_array; }
/** * Get the styles as an array. */ public static function styles() { $google_fonts_array = Kirki()->font_registry->get_google_fonts(); $backup_fonts = Kirki()->font_registry->get_backup_fonts(); $styles = array(); foreach (self::$output as $output) { if (!isset($output['element'])) { continue; } /** * Do we have units? */ $units = isset($output['units']) ? $output['units'] : ''; /** * Do we have a prefix? */ $prefix = isset($output['prefix']) ? $output['prefix'] : ''; /** * Do we have a suffix? */ $suffix = isset($output['suffix']) ? $output['suffix'] : ''; /** * Accept "callback" as short for "sanitize_callback". */ if (!isset($output['sanitize_callback']) && isset($output['callback'])) { $output['sanitize_callback'] = $output['callback']; } /** * Do we have a "media_query" defined? */ if (!isset($output['media_query'])) { $output['media_query'] = 'global'; } else { $output['media_query'] = esc_attr($output['media_query']); } /** * Do we need to run this through a callback action? */ $value = '' != self::$callback ? call_user_func(self::$callback, self::$value) : self::$value; if (isset($output['sanitize_callback']) && null !== $output['sanitize_callback']) { $value = call_user_func($output['sanitize_callback'], $value); } /** * Make sure the value is a string before proceeding * If all is ok, then populate the array. */ $element = $output['element']; /** * Allow using an array of elements */ if (is_array($output['element'])) { /** * Make sure our values are unique */ $elements = array_unique($element); /** * Sort elements alphabetically. * This way all duplicate items will be merged in the final CSS array. */ sort($elements); /** * Implode items */ $element = implode(',', $elements); } if (!is_array($value)) { if (!isset($output['property'])) { continue; } if ('font-family' == $output['property']) { // Add backup font if (Kirki()->font_registry->is_google_font($value)) { if (isset($google_fonts_array[$value]) && isset($google_fonts_array[$value]['category'])) { if (isset($backup_fonts[$google_fonts_array[$value]['category']])) { $value .= ', ' . $backup_fonts[$google_fonts_array[$value]['category']]; } } } } $styles[$output['media_query']][$element][$output['property']] = $prefix . $value . $units . $suffix; } else { /** * Take care of typography controls output */ if ('typography' == self::$field_type) { if (isset($value['bold']) && $value['bold']) { $styles[$output['media_query']][$element]['font-weight'] = 'bold'; } if (isset($value['italic']) && $value['italic']) { $styles[$output['media_query']][$element]['font-style'] = 'italic'; } if (isset($value['underline']) && $value['underline']) { $styles[$output['media_query']][$element]['text-decoration'] = 'underline'; } if (isset($value['strikethrough']) && $value['strikethrough']) { $styles[$output['media_query']][$element]['text-decoration'] = 'strikethrough'; } if (isset($value['font-family'])) { $styles[$output['media_query']][$element]['font-family'] = $value['font-family']; // Add backup font if (Kirki()->font_registry->is_google_font($value['font-family'])) { if (isset($google_fonts_array[$value['font-family']]) && isset($google_fonts_array[$value['font-family']]['category'])) { if (isset($backup_fonts[$google_fonts_array[$value['font-family']]['category']])) { $styles[$output['media_query']][$element]['font-family'] = $value['font-family'] . ', ' . $backup_fonts[$google_fonts_array[$value['font-family']]['category']]; } } } } if (isset($value['font-size'])) { $styles[$output['media_query']][$element]['font-size'] = $value['font-size']; } if (isset($value['font-weight'])) { $styles[$output['media_query']][$element]['font-weight'] = $value['font-weight']; } if (isset($value['line-height'])) { $styles[$output['media_query']][$element]['line-height'] = $value['line-height']; } if (isset($value['letter-spacing'])) { $styles[$output['media_query']][$element]['letter-spacing'] = $value['letter-spacing']; } if (isset($value['color'])) { $styles[$output['media_query']][$element]['color'] = $value['color']; } } /** * Take care of "spacing" controls output */ if ('spacing' == self::$field_type && isset($output['property'])) { foreach ($value as $key => $sub_value) { if (false !== strpos($output['property'], '%%')) { $property = str_replace('%%', $key, $output['property']); } else { $property = $output['property'] . '-' . $key; } $styles[$output['media_query']][$element][$property] = $sub_value; } } } } return $styles; }
function test_styles_front() { $this->assertTrue(is_object(Kirki()->styles['front'])); }