Inheritance: extends Kirki_Init
 function google_link()
 {
     $fields = Kirki::fields()->get_all();
     // Early exit if no fields are found.
     if (!$fields || empty($fields)) {
         return;
     }
     // Get an array of all the google fonts
     $google_fonts = Kirki::fonts()->get_google_fonts();
     $fonts = array();
     foreach ($fields as $field) {
         if (isset($field['output'])) {
             // Check if this is a font-family control
             $is_font_family = isset($field['output']['property']) && 'font-family' == $field['output']['property'] ? true : false;
             // Check if this is a font-weight control
             $is_font_weight = isset($field['output']['property']) && 'font-weight' == $field['output']['property'] ? true : false;
             // Check if this is a font subset control
             $is_font_subset = isset($field['output']['property']) && 'font-subset' == $field['output']['property'] ? true : false;
             if ($is_font_family || $is_font_weight || $is_font_subset) {
                 // The value of this control
                 $value = kirki_get_option($field['settings_raw']);
                 if ($is_font_family) {
                     $fonts[]['font-family'] = $value;
                 } else {
                     if ($is_font_weight) {
                         $fonts[]['font-weight'] = $value;
                     } else {
                         if ($is_font_subset) {
                             $fonts[]['subsets'] = $value;
                         }
                     }
                 }
             }
         }
     }
     foreach ($fonts as $font) {
         if (isset($font['font-family'])) {
             $font_families = !isset($font_families) ? array() : $font_families;
             $font_families[] = $font['font-family'];
             if (Kirki::fonts()->is_google_font($font['font-family'])) {
                 $has_google_font = true;
             }
         }
         if (isset($font['font-weight'])) {
             $font_weights = !isset($font_weights) ? array() : $font_weights;
             $font_weights[] = $font['font-weight'];
         }
         if (isset($font['subsets'])) {
             $font_subsets = !isset($font_subsets) ? array() : $font_subsets;
             $font_subsets[] = $font['subsets'];
         }
     }
     $font_families = !isset($font_families) || empty($font_families) ? false : $font_families;
     $font_weights = !isset($font_weights) || empty($font_weights) ? '400' : $font_weights;
     $font_subsets = !isset($font_subsets) || empty($font_subsets) ? 'all' : $font_subsets;
     if (!isset($has_google_font) || !$has_google_font) {
         $font_families = false;
     }
     return $font_families ? Kirki::fonts()->get_google_font_uri($font_families, $font_weights, $font_subsets) : false;
 }
Exemple #2
0
 /**
  * Access the single instance of this class
  * @return Kirki
  */
 public static function get_instance()
 {
     if (self::$instance == null) {
         self::$instance = new Kirki();
     }
     return self::$instance;
 }
Exemple #3
0
 /**
  * The class constructor.
  *
  * @var 	string		the setting ID.
  * @var 	string		theme_mod / option
  * @var 	array 		an array of arrays of the output arguments.
  * @var 	mixed		a callable function.
  */
 public static function css($field)
 {
     /**
      * Make sure the field is sanitized before proceeding any further.
      */
     $field = Kirki_Field::sanitize_field($field);
     /**
      * Get the config ID used in the Kirki class.
      */
     $config_id = Kirki::get_config_id($field);
     /**
      * Set class vars
      */
     self::$settings = $field['settings'];
     self::$output = $field['output'];
     self::$callback = $field['sanitize_callback'];
     /**
      * Get the value of this field
      */
     if ('option' == Kirki::$config[$config_id]['option_type'] && '' != Kirki::$config[$config_id]['option_name']) {
         self::$value = Kirki::get_option($config_id, str_replace(array(']', Kirki::$config[$config_id]['option_name'] . '['), '', $field['settings']));
     } else {
         self::$value = Kirki::get_option($config_id, $field['settings']);
     }
     /**
      * Returns the styles
      */
     if (!is_array(self::$value)) {
         return self::styles();
     }
 }
 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();
 }
Exemple #5
0
/**
 * Adds custom classes to the array of body classes.
 * ================================================
 *
 * @param array $classes Classes for the body element.
 *
 * @return array
 */
function tm_polygon_body_classes($classes)
{
    // Adds a class of group-blog to blogs with more than 1 published author.
    if (is_multi_author()) {
        $classes[] = 'group-blog';
    }
    global $tm_polygon_custom_class;
    if ($tm_polygon_custom_class) {
        $classes[] = $tm_polygon_custom_class;
    }
    if (Kirki::get_option('tm-polygon', 'site_general_boxed') == 1) {
        $classes[] = 'boxed';
    }
    $classes[] = Kirki::get_option('tm-polygon', 'header_type');
    global $tm_polygon_page_layout_private;
    if ($tm_polygon_page_layout_private != 'default' && class_exists('cmb2_bootstrap_205')) {
        $tm_polygon_layout = get_post_meta(get_the_ID(), "tm_polygon_page_layout_private", true);
    } else {
        $tm_polygon_layout = Kirki::get_option('tm-polygon', 'page_layout');
    }
    $classes[] = $tm_polygon_layout;
    if (defined('TM_CORE_VERSION')) {
        $classes[] = 'core_' . str_replace(".", "", TM_CORE_VERSION);
    }
    return $classes;
}
 /**
  * Add custom CSS rules to the head, applying our custom styles
  */
 function custom_css()
 {
     $color = $this->get_admin_colors();
     $config = Kirki::config();
     $color_font = false;
     $color_accent = $config->get('color_accent', $color['icon_colors']['focus']);
     $color_back = $config->get('color_back', '#ffffff');
     $color_font = 170 > Kirki_Color::get_brightness($color_back) ? '#f2f2f2' : '#222';
     $styles = '<style>';
     // Background styles
     $styles .= '#customize-controls .wp-full-overlay-sidebar-content{background-color:' . $color_back . ';}';
     $styles .= '#customize-theme-controls .accordion-section-title, #customize-info .accordion-section-title,#customize-info .accordion-section-title:hover,#customize-info.open .accordion-section-title{background-color:' . $color_back . ';color:' . $color_font . ';}';
     $styles .= '#customize-theme-controls .control-section .accordion-section-title:hover,#customize-theme-controls .control-section .accordion-section-title:focus,.control-section.control-panel>.accordion-section-title:after{background-color:' . Kirki_Color::adjust_brightness($color_back, -10) . ';color:' . $color_font . ';}';
     $styles .= '#customize-theme-controls .control-section.control-panel>h3.accordion-section-title:focus:after, #customize-theme-controls .control-section.control-panel>h3.accordion-section-title:hover:after{background-color:' . Kirki_Color::adjust_brightness($color_back, -20) . ';color:' . $color_font . ';}';
     $styles .= '#customize-theme-controls .control-section.open .accordion-section-title{background-color:' . $color_accent . ' !important;color:' . $color_font . ' !important;}';
     // Tooltip styles
     // $styles .= 'li.customize-control a.button.tooltip.hint--left {color:' . $color_accent . ';}';
     // Image-Radio styles
     $styles .= '.customize-control-radio-image .image.ui-buttonset label.ui-state-active {border-color:' . $color_accent . ';}';
     // Buttonset-Radio styles
     $styles .= '.customize-control-radio-buttonset label.ui-state-active{background-color:' . $color_accent . ';color:' . $color_font . ';}';
     // Slider Controls
     $styles .= '.customize-control-slider .ui-slider .ui-slider-handle{background-color:' . $color_accent . ';border-color:' . $color_accent . ';}';
     // Switch Controls
     $styles .= '.customize-control-switch .Switch .On, .customize-control-toggle .Switch .On{color:' . $color_accent . ';}';
     // Toggle Controls
     $styles .= '.customize-control-switch .Switch.Round.On, .customize-control-toggle .Switch.Round.On{background-color:' . Kirki_Color::adjust_brightness($color_accent, -10) . ';}';
     // Sortable Controls
     $styles .= '.customize-control-sortable ul.ui-sortable li .dashicons.visibility{color:' . $color_accent . ';}';
     // Palette Controls
     $styles .= '.customize-control-palette label.ui-state-active.ui-button.ui-widget span.ui-button-text {border-color:' . $color_accent . ';}';
     $styles .= '</style>';
     echo $styles;
 }
 public function wp_footer()
 {
     global $wp_customize;
     // Early exit if we're not in the customizer
     if (!isset($wp_customize)) {
         return;
     }
     // Get an array of all the fields
     $fields = Kirki::fields()->get_all();
     $script = '';
     // Parse the fields and create the script.
     foreach ($fields as $field) {
         if (isset($field['transport']) && !is_null($field['js_vars']) && 'postMessage' == $field['transport']) {
             foreach ($field['js_vars'] as $js_vars) {
                 $script .= 'wp.customize( \'' . $field['settings'] . '\', function( value ) {';
                 $script .= 'value.bind( function( newval ) {';
                 if ('html' == $js_vars['function']) {
                     $script .= '$( \'' . esc_js($js_vars["element"]) . '\' ).html( newval );';
                 } elseif ('css' == $js_vars['function']) {
                     $script .= '$(\'' . esc_js($js_vars["element"]) . '\').css(\'' . esc_js($js_vars["property"]) . '\', newval );';
                 }
                 $script .= '}); });';
             }
         }
     }
     if ('' != $script) {
         echo Kirki_Scripts_Registry::prepare($script);
     }
 }
 function kirki_filtered_url()
 {
     $config = apply_filters('kirki/config', array());
     if (isset($config['url_path'])) {
         Kirki::$url = esc_url_raw($config['url_path']);
     }
 }
 public function test_add_section()
 {
     Kirki::add_section('test_empty', array());
     Kirki::add_section('test', array('priority' => 4, 'title' => 'Title', 'description' => 'My Description', 'panel' => 'my_panel'));
     $this->assertEquals(array('id' => 'test_empty', 'description' => '', 'priority' => 10, 'active_callback' => '__return_true', 'panel' => ''), Kirki::$sections['test_empty']);
     $this->assertEquals(array('id' => 'test', 'title' => 'Title', 'description' => 'My Description', 'priority' => '4', 'active_callback' => '__return_true', 'panel' => 'my_panel'), Kirki::$sections['test']);
     $this->assertEquals(2, count(Kirki::$sections));
 }
 public function test_config()
 {
     Kirki::add_config('test_empty', array());
     Kirki::add_config('test', array('capability' => 'manage_network_options', 'option_type' => 'option', 'option_name' => 'my_option_name', 'compiler' => array(), 'disable_output' => true, 'postMessage' => 'auto'));
     $this->assertEquals(array('capability' => 'edit_theme_options', 'option_type' => 'theme_mod', 'option_name' => '', 'compiler' => array(), 'disable_output' => false, 'postMessage' => ''), Kirki::$config['global']);
     $this->assertEquals(array('capability' => 'edit_theme_options', 'option_type' => 'theme_mod', 'option_name' => '', 'compiler' => array(), 'disable_output' => false, 'postMessage' => ''), Kirki::$config['test_empty']);
     $this->assertEquals(array('capability' => 'manage_network_options', 'option_type' => 'option', 'option_name' => 'my_option_name', 'compiler' => array(), 'disable_output' => true, 'postMessage' => 'auto'), Kirki::$config['test']);
     $this->assertEquals(3, count(Kirki::$config));
 }
 /**
  * Process fields added using the 'kirki/fields' and 'kirki/controls' filter.
  * These filters are no longer used, this is simply for backwards-compatibility
  */
 public function fields_from_filters()
 {
     $fields = apply_filters('kirki/controls', array());
     $fields = apply_filters('kirki/fields', $fields);
     if (!empty($fields)) {
         foreach ($fields as $field) {
             Kirki::add_field('global', $field);
         }
     }
 }
 /**
  * Enqueue the scripts required.
  */
 public function customize_controls_enqueue_scripts()
 {
     $config = Kirki::config()->get_all();
     $kirki_url = '' != $config['url_path'] ? $config['url_path'] : KIRKI_URL;
     wp_enqueue_script('kirki_customizer_js', trailingslashit($kirki_url) . 'assets/js/customizer.js', array('jquery', 'customize-controls'));
     wp_enqueue_script('serialize-js', trailingslashit($kirki_url) . 'assets/js/serialize.js');
     wp_enqueue_script('jquery-stepper-min-js', trailingslashit($kirki_url) . 'assets/js/jquery.fs.stepper.min.js', array('jquery'));
     wp_enqueue_script('jquery-ui-core');
     wp_enqueue_script('jquery-ui-tooltip');
     wp_enqueue_script('jquery-stepper-min-js');
 }
 /**
  * Build the customizer fields.
  * Parses all fields and creates the setting & control for each of them.
  */
 public function build($wp_customize)
 {
     include_once KIRKI_PATH . '/includes/class-kirki-control.php';
     include_once KIRKI_PATH . '/includes/class-kirki-controls.php';
     $fields = Kirki::fields()->get_all();
     // Early exit if controls are not set or if they're empty
     if (empty($fields)) {
         return;
     }
     foreach ($fields as $field) {
         $this->build_field($wp_customize, $field);
     }
 }
 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());
 }
 /**
  * If we've specified an image to be used as logo,
  * replace the default theme description with a div that will include our logo.
  */
 public function customize_controls_print_scripts()
 {
     $options = Kirki::config()->get_all();
     $script = '';
     if ('' != $options['logo_image'] || '' != $options['description']) {
         if ('' != $options['logo_image']) {
             $script .= '$( \'div#customize-info .preview-notice\' ).replaceWith( \'<img src="' . $options['logo_image'] . '">\' );';
         }
         if ('' != $options['description']) {
             $script .= '$( \'div#customize-info .accordion-section-content\' ).replaceWith( \'<div class="accordion-section-content"><div class="theme-description">' . $options['description'] . '</div></div>\' );';
         }
     }
     if ('' != $script) {
         echo Kirki_Scripts_Registry::prepare($script);
     }
 }
Exemple #16
0
function tm_polygon_js_custom_code()
{
    ?>
	<?php 
    if (Kirki::get_option('tm-polygon', 'custom_js_enable') == 1) {
        ?>
		<?php 
        echo html_entity_decode(Kirki::get_option('tm-polygon', 'custom_js'));
        ?>
	<?php 
    }
    ?>
	<?php 
    if (Kirki::get_option('tm-polygon', 'nav_sticky_enable') == 1 && has_nav_menu('primary')) {
        ?>
		<?php 
        if (Kirki::get_option('tm-polygon', 'header_type') == 'header02' || Kirki::get_option('tm-polygon', 'header_type') == 'header04') {
            ?>
			<script>
				jQuery(document).ready(function ($) {
					$(".sticky-menu").headroom(
						{
							offset: $(".site-top").innerHeight(),
						}
					);
				});
			</script>
		<?php 
        } else {
            ?>
			<script>
				jQuery(document).ready(function ($) {
					$(".sticky-menu").headroom(
						{
							offset: 0
						}
					);
				});
			</script>
		<?php 
        }
        ?>
	<?php 
    }
}
Exemple #17
0
function infinity_js_custom_code()
{
    ?>
  <?php 
    if (Kirki::get_option('infinity', 'custom_js_enable') == 1) {
        ?>
    <?php 
        echo html_entity_decode(Kirki::get_option('infinity', 'custom_js'));
        ?>
  <?php 
    }
    ?>
  <?php 
    if (Kirki::get_option('infinity', 'nav_sticky_enable') == 1 && has_nav_menu('primary')) {
        ?>
    <?php 
        if (Kirki::get_option('infinity', 'header_type') == 'header03' || Kirki::get_option('infinity', 'header_type') == 'header04') {
            ?>
      <script>
        jQuery(document).ready(function ($) {
          $(".header").headroom(
            {
              offset: 52
            }
          );
        });
      </script>
    <?php 
        } else {
            ?>
      <script>
        jQuery(document).ready(function ($) {
          $("#site-navigation").headroom(
            {
              offset: 160
            }
          );
        });
      </script>
    <?php 
        }
        ?>
  <?php 
    }
}
Exemple #18
0
 /**
  * Add fields using the Kirki API
  */
 public function add_fields_via_api()
 {
     $args = $this->field;
     $args['section'] = sanitize_key($this->field['type']);
     $args['capability'] = 'read';
     $args['settings'] = sanitize_key($this->field['type']) . '_demo_3';
     $args['label'] = sprintf(__('%s theme_mod via API', 'kirki'), $args['type']);
     $args['option_type'] = 'theme_mod';
     Kirki::add_field('', $args);
     $args['settings'] = sanitize_key($this->field['type']) . '_demo_4';
     $args['label'] = sprintf(__('%s single option via API', 'kirki'), $args['type']);
     $args['option_type'] = 'option';
     Kirki::add_field('', $args);
     $args['settings'] = sanitize_key($this->field['type']) . '_demo_5';
     $args['option_type'] = 'option';
     $args['label'] = sprintf(__('%s serialized option via API', 'kirki'), $args['type']);
     $args['option_name'] = 'kirki_test';
     Kirki::add_field('', $args);
 }
 /**
  * Add the script to the footer
  */
 function customize_controls_print_footer_scripts()
 {
     $fields = Kirki::fields()->get_all();
     $scripts = array();
     foreach ($fields as $field) {
         if ('number' == $field['type']) {
             $scripts[] = '$( "#customize-control-' . $field['settings'] . ' input[type=\'number\']").stepper();';
         }
     }
     // No need to echo anything if the script is empty
     if (empty($scripts)) {
         return;
     }
     // Make sure we don't add any duplicates
     $scripts = array_unique($scripts);
     // Convert array to string
     $script = implode('', $scripts);
     echo Kirki_Scripts_Registry::prepare($script);
 }
 public function test()
 {
     $this->assertEquals(kirki_get_option(), Kirki::get_option());
     $this->assertEquals(kirki_sanitize_hex('#ffffff'), Kirki_Color::sanitize_hex('#ffffff'));
     $this->assertEquals(kirki_get_rgb('#ffffff'), Kirki_Color::get_rgb('#ffffff'));
     $this->assertEquals(kirki_get_rgba('#ffffff'), Kirki_Color::get_rgba('#ffffff'));
     $this->assertEquals(kirki_get_brightness('#ffffff'), Kirki_Color::get_brightness('#ffffff'));
     $font_registry = Kirki_Toolkit::fonts();
     $this->assertEquals(Kirki_Fonts::get_all_fonts(), $font_registry->get_all_fonts());
     $this->assertEquals(Kirki_Fonts::get_font_choices(), $font_registry->get_font_choices());
     $this->assertEquals(Kirki_Fonts::is_google_font('foo'), $font_registry->is_google_font('foo'));
     $this->assertEquals(Kirki_Fonts::get_google_font_uri(array('foo')), $font_registry->get_google_font_uri(array('foo')));
     $this->assertEquals(Kirki_Fonts::get_google_font_subsets(), $font_registry->get_google_font_subsets());
     $this->assertEquals(Kirki_Fonts::choose_google_font_variants('Roboto'), $font_registry->choose_google_font_variants('Roboto'));
     $this->assertEquals(Kirki_Fonts::get_standard_fonts(), $font_registry->get_standard_fonts());
     $this->assertEquals(Kirki_Fonts::get_font_stack('foo'), $font_registry->get_font_stack('foo'));
     $this->assertEquals(Kirki_Fonts::sanitize_font_choice('foo'), $font_registry->sanitize_font_choice('foo'));
     $this->assertEquals(Kirki_Fonts::get_google_fonts(), $font_registry->get_google_fonts());
 }
    /**
     * Render the control's content.
     */
    protected function render_content()
    {
        ?>
		<?php 
        $i18n = Kirki::i18n();
        ?>
		<label>
			<div class="switch-info">
				<input style="display: none;" type="checkbox" value="<?php 
        echo esc_attr($this->value());
        ?>
" <?php 
        $this->link();
        checked($this->value());
        ?>
 />
			</div>
			<?php 
        $this->label();
        ?>
			<?php 
        $this->description();
        ?>
			<?php 
        $classes = esc_attr($this->value()) ? ' On' : ' Off';
        ?>
			<div class="Switch <?php 
        echo esc_attr($classes);
        ?>
">
				<div class="Toggle"></div>
				<span class="On"><?php 
        echo esc_html($i18n['ON']);
        ?>
</span>
				<span class="Off"><?php 
        echo esc_html($i18n['OFF']);
        ?>
</span>
			</div>
		</label>
		<?php 
    }
 /**
  * Add the help bubble
  */
 function customize_controls_print_footer_scripts()
 {
     $fields = Kirki::fields()->get_all();
     $scripts = array();
     $script = '';
     foreach ($fields as $field) {
         if (!empty($field['help'])) {
             $bubble_content = $field['help'];
             $content = "<a href='#' class='tooltip hint--left' data-hint='" . strip_tags(esc_html($bubble_content)) . "'><span class='dashicons dashicons-info'></span></a>";
             $scripts[] = '$( "' . $content . '" ).prependTo( "#customize-control-' . $field['settings'] . '" );';
         }
     }
     // No need to echo anything if the script is empty
     if (empty($scripts)) {
         return;
     }
     // Make sure we don't add any duplicates
     $scripts = array_unique($scripts);
     // Convert array to string
     $script = implode('', $scripts);
     echo Kirki_Scripts_Registry::prepare($script);
 }
Exemple #23
0
/**
 * Adds custom classes to the array of body classes.
 * ================================================
 * @param array $classes Classes for the body element.
 * @return array
 */
function infinity_body_classes($classes)
{
    // Adds a class of group-blog to blogs with more than 1 published author.
    if (is_multi_author()) {
        $classes[] = 'group-blog';
    }
    global $infinity_custom_class;
    if ($infinity_custom_class) {
        $classes[] = $infinity_custom_class;
    }
    if (Kirki::get_option('infinity', 'site_general_boxed') == 1) {
        $classes[] = 'boxed';
    }
    $classes[] = Kirki::get_option('infinity', 'header_type');
    global $infinity_page_layout_private;
    if ($infinity_page_layout_private != 'default' && class_exists('cmb2_bootstrap_205')) {
        $layout = get_post_meta(get_the_ID(), "infinity_page_layout_private", true);
    } else {
        $layout = Kirki::get_option('infinity', 'page_layout');
    }
    $classes[] = $layout;
    return $classes;
}
Exemple #24
0
 /**
  * Returns the Kirki object
  */
 function Kirki()
 {
     // Make sure the class is instanciated
     $kirki = Kirki_Toolkit::get_instance();
     $kirki->font_registry = new Kirki_Fonts_Font_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__);
     /**
      * The URL of the current Kirki instance
      */
     if (false !== strpos(dirname(__FILE__), WP_PLUGIN_DIR)) {
         /**
          * Kirki is activated as a plugin.
          */
         Kirki::$url = plugin_dir_url(__FILE__);
     } else {
         if (false !== strpos(dirname(__FILE__), get_template_directory())) {
             /**
              * Kirki is embedded in a theme
              */
             Kirki::$url = get_template_directory_uri() . str_replace(get_template_directory(), '', dirname(__FILE__));
         }
     }
     /**
      * Apply the filters to the Kirki::$url
      */
     $config = apply_filters('kirki/config', array());
     if (isset($config['url_path'])) {
         Kirki::$url = esc_url_raw($config['url_path']);
     }
     return $kirki;
 }
Exemple #25
0
/**
 * Get the value of a field.
 */
function kirki_get_option($option = '')
{
    // Make sure the class is instanciated
    Kirki::get_instance();
    // Get the array of all the fields.
    $fields = Kirki::fields()->get_all();
    // Get the config.
    $config = Kirki::config()->get_all();
    /**
     * If no setting has been defined then return all.
     */
    if ('' == $option) {
        if ('option' == $config['options_type']) {
            $values = array();
            foreach ($fields as $field) {
                $values[] = get_option($field['settings'], $field['default']);
            }
        } else {
            $values = get_theme_mods();
        }
        return $values;
    }
    // If a value has been defined then we proceed.
    // Early exit if this option does not exist
    if (!isset($fields[$option])) {
        return;
    }
    $option_name = $fields[$option]['settings'];
    $default = $fields[$option]['default'];
    if ('option' == $config['options_type']) {
        $value = get_option($option_name, $default);
    } else {
        $value = get_theme_mod($option_name, $default);
    }
    return $value;
}
Exemple #26
0
')">
		<div class="container">
			<div class="row middle">
				<div class="col-md-6">
					<?php 
the_archive_title('<h1 class="entry-title">', '</h1>');
the_archive_description('<div class="taxonomy-description">', '</div>');
?>
				</div>
			<?php 
if (function_exists('tm_bread_crumb')) {
    ?>
				<div class="breadcrumb col-md-6 end">
					<div class="container">
						<?php 
    echo tm_bread_crumb(array('home_label' => Kirki::get_option('tm-polygon', 'site_general_breadcrumb_home_text')));
    ?>
					</div>
				</div>
			<?php 
}
?>
			</div>
		</div>
	</header>
	<div class="container">
		<div class="row">
			<?php 
if ($tm_polygon_layout == 'sidebar-content') {
    ?>
				<?php 
Exemple #27
0
<?php

/**
 * The signup header partial for the Page Builder
 *
 * @package FlatBook
 */
$title = get_sub_field('header_title');
$descr = get_sub_field('header_descr', false, false);
$small = get_sub_field('header_small');
$signup = get_sub_field('header_signup_form');
$sanim = get_sub_field('header_signup_anim');
$tanim = get_sub_field('header_title_anim');
$bgimg = Kirki::get_option('fb', 'layout_header_home_header_background_image');
?>


<header id="site-header" class="signup-header" 

	<?php 
if ($bgimg) {
    echo 'data-image-src="' . $bgimg . '" ' . 'data-parallax="scroll"';
} else {
    echo 'style="background-color: #444;"';
}
?>
>

    <div class="container">

		<div class="row"> 
Exemple #28
0
<?php

/**
 * Woo Layout
 * ================
 */
$section = 'woo_layout';
$priority = 1;
Kirki::add_field('infinity', array('type' => 'radio-image', 'setting' => 'woo_layout_category', 'label' => __('Category Product Page Layout', 'infinity'), 'description' => __('Choose the category product page layout you want', 'infinity'), 'help' => __('Choose the category product page layout you want', 'infinity'), 'section' => $section, 'priority' => $priority++, 'default' => 'sidebar-content', 'choices' => array('full-width' => THEME_ROOT . '/core/customizer/images/1c.png', 'content-sidebar' => THEME_ROOT . '/core/customizer/images/2cr.png', 'sidebar-content' => THEME_ROOT . '/core/customizer/images/2cl.png')));
Kirki::add_field('infinity', array('type' => 'radio-image', 'setting' => 'woo_layout_single_product', 'label' => __('Single Product Page Layout', 'infinity'), 'description' => __('Choose the product page layout you want', 'infinity'), 'help' => __('Choose the product page layout you want', 'infinity'), 'section' => $section, 'priority' => $priority++, 'default' => 'sidebar-content', 'choices' => array('full-width' => THEME_ROOT . '/core/customizer/images/1c.png', 'content-sidebar' => THEME_ROOT . '/core/customizer/images/2cr.png', 'sidebar-content' => THEME_ROOT . '/core/customizer/images/2cl.png')));
Exemple #29
0
 public static function add_field($config_id, $args)
 {
     if (is_array($config_id) && empty($args)) {
         $args = $config_id;
         $config_id = 'global';
     }
     $config_id = '' == $config_id ? 'global' : $config_id;
     /**
      * Get the configuration options
      */
     if (!isset(Kirki::$config[$config_id])) {
         $config_id = 'global';
     }
     $config = Kirki::$config[$config_id];
     /**
      * If we've set an option in the configuration
      * then make sure we're using options and not theme_mods
      */
     if ('' != $config['option_name']) {
         $config['option_type'] = 'option';
     }
     /**
      * If no option name has been set for the field,
      * use the one from the configuration
      */
     if (!isset($args['option_name'])) {
         $args['option_name'] = $config['option_name'];
     }
     /**
      * If no capability has been set for the field,
      * use the one from the configuration
      */
     if (!isset($args['capability'])) {
         $args['capability'] = $config['capability'];
     }
     /**
      * Check if [settings] is set.
      * If not set, check for [setting].
      * After this check is complete, we'll do some additional tweaking
      * based on whether this is an option or a theme_mod.
      * If an option and option_name is also defined,
      * then we'll have to change the setting.
      */
     if (!isset($args['settings']) && isset($args['setting'])) {
         $args['settings'] = $args['setting'];
     }
     if (is_array($args['settings'])) {
         $settings = array();
         foreach ($args['settings'] as $setting_key => $setting_value) {
             $settings[sanitize_key($setting_key)] = esc_attr($setting_value);
             if ('option' == $config['option_type'] && '' != $config['option_name'] && false === strpos($setting_key, '[')) {
                 $settings[sanitize_key($setting_key)] = esc_attr($config['option_name']) . '[' . esc_attr($setting_value) . ']';
             }
         }
         $args['settings'] = $settings;
     } else {
         if ('option' == $config['option_type'] && '' != $config['option_name'] && false === strpos($args['settings'], '[')) {
             $args['settings'] = esc_attr($args['option_name']) . '[' . esc_attr($args['settings']) . ']';
         } else {
             $args['settings'] = esc_attr($args['settings']);
         }
     }
     /**
      * If no option-type has been set for the field,
      * use the one from the configuration
      */
     if (!isset($args['option_type'])) {
         $args['option_type'] = $config['option_type'];
     }
     /**
      * Add the field to the static $fields variable properly indexed
      */
     Kirki::$fields[$args['settings']] = $args;
     if ('background' == $args['type']) {
         /**
          * Build the background fields
          */
         Kirki::$fields = Kirki_Explode_Background_Field::process_fields(Kirki::$fields);
     }
 }
 /**
  * loop through all fields and create an array of style definitions
  */
 public function loop_controls()
 {
     $fields = Kirki::fields()->get_all();
     $styles = array();
     // Early exit if no fields are found.
     if (!$fields || empty($fields)) {
         return;
     }
     foreach ($fields as $field) {
         $element = '';
         $property = '';
         $units = '';
         $prefix = '';
         $suffix = '';
         $callback = '';
         // Only continue if $field['output'] is set
         if (isset($field['output'])) {
             // Check if this is an array of style definitions
             $multiple_styles = isset($field['output'][0]['element']) ? true : false;
             if (!$multiple_styles) {
                 // single style
                 // If $field['output'] is not an array, then use the string as the target element
                 if (is_string($field['output'])) {
                     $element = $field['output'];
                 } else {
                     $element = isset($field['output']['element']) ? $field['output']['element'] : '';
                     $property = isset($field['output']['property']) ? $field['output']['property'] : '';
                     $units = isset($field['output']['units']) ? $field['output']['units'] : '';
                     $prefix = isset($field['output']['prefix']) ? $field['output']['prefix'] : '';
                     $suffix = isset($field['output']['suffix']) ? $field['output']['suffix'] : '';
                     $callback = isset($field['output']['callback']) ? $field['output']['callback'] : '';
                 }
                 $styles = $this->setting_styles($field, $styles, $element, $property, $units, $prefix, $suffix, $callback);
             } else {
                 // Multiple styles set
                 foreach ($field['output'] as $style) {
                     if (!array($style)) {
                         $element = $style;
                     } else {
                         $element = isset($style['element']) ? $style['element'] : '';
                         $property = isset($style['property']) ? $style['property'] : '';
                         $units = isset($style['units']) ? $style['units'] : '';
                         $prefix = isset($style['prefix']) ? $style['prefix'] : '';
                         $suffix = isset($style['suffix']) ? $style['suffix'] : '';
                         $callback = isset($style['callback']) ? $style['callback'] : '';
                     }
                     $styles = $this->setting_styles($field, $styles, $element, $property, $units, $prefix, $suffix, $callback);
                 }
             }
         }
     }
     return $styles;
 }