%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/lightco1/oldbackup/wp-content/themes/konte/inc/
Upload File :
Create Path :
Current File : /home/lightco1/oldbackup/wp-content/themes/konte/inc/customizer.php

<?php
/**
 * Konte Theme Customizer
 *
 * @package Konte
 */

/**
 * Class customizer
 */
class Konte_Customize {
	/**
	 * Customize settings
	 *
	 * @var array
	 */
	protected $config = array();

	/**
	 * The class constructor
	 *
	 * @param array $config Theme options fields.
	 */
	public function __construct( $config = array() ) {
		$this->config = apply_filters( 'konte_customize_config', $config );

		$this->register();

		add_action( 'customize_preview_init', array( $this, 'enqueue_preview_scripts' ) );
		add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
		add_action( 'customize_register', array( $this, 'customize_rearrange' ) );
	}

	/**
	 * Enqueues style and scripts for customizer controls
	 */
	public function enqueue_scripts() {
		wp_enqueue_style( 'font-awesome', get_template_directory_uri() . '/css/font-awesome.min.css', array(), '4.7.0' );

		wp_add_inline_style( 'customize-controls', '.customize-control-kirki-radio-image label {margin-right: 5px}' );
		wp_enqueue_script( 'konte-customize', get_template_directory_uri() . '/js/customizer.js', array( 'jquery' ), '', true );
	}

	/**
	 * Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
	 */
	public function enqueue_preview_scripts() {
		wp_add_inline_style( 'wp-admin', '.customize-control-kirki-radio-image label {margin-right: 5px;}' );
		wp_enqueue_script( 'konte-customizer-preview', get_template_directory_uri() . '/js/customizer-preview.js', array( 'customize-preview' ), '', true );
	}

	/**
	 * Register settings
	 */
	public function register() {
		if ( empty( $this->config['theme'] ) ) {
			return;
		}

		$theme = $this->config['theme'];

		// Add the theme configuration.
		Kirki::add_config( $theme, array(
			'capability'  => 'edit_theme_options',
			'option_type' => 'theme_mod',
		) );

		// Add panels.
		foreach ( $this->config['panels'] as $id => $panel ) {
			Kirki::add_panel( $id, $panel );
		}

		// Add sections.
		foreach ( $this->config['sections'] as $id => $section ) {
			Kirki::add_section( $id, $section );
		}

		// Add settings.
		foreach ( $this->config['settings'] as $section => $settings ) {
			foreach ( $settings as $name => $setting ) {
				if ( empty( $setting['section'] ) ) {
					$setting['section'] = $section;
				}

				if ( empty( $setting['settings'] ) ) {
					$setting['settings'] = $name;
				}

				Kirki::add_field( $theme, $setting );
			}
		}
	}

	/**
	 * Move some default sections to `general` panel that registered by theme
	 *
	 * @param object $wp_customize WP_Customize object.
	 */
	public function customize_rearrange( $wp_customize ) {
		$wp_customize->get_section( 'title_tagline' )->panel     = 'general';
		$wp_customize->get_section( 'static_front_page' )->panel = 'general';
	}

	/**
	 * Get config ID
	 *
	 * @return string
	 */
	public function get_theme() {
		return $this->config['theme'];
	}

	/**
	 * Get customize setting value
	 *
	 * @param string $name Option name.
	 *
	 * @return bool|string
	 */
	public function get_option( $name ) {
		$default = $this->get_option_default( $name );

		return get_theme_mod( $name, $default );
	}

	/**
	 * Get default option values
	 *
	 * @param string $name Option name.
	 *
	 * @return mixed
	 */
	public function get_option_default( $name ) {
		if ( isset( Kirki::$fields[ $name ] ) && isset( Kirki::$fields[ $name ]['default'] ) ) {
			$default = Kirki::$fields[ $name ]['default'];
		} else {
			$settings = array_reduce( $this->config['settings'], 'array_merge', array() );
			$default = isset( $settings[ $name ]['default'] ) ? $settings[ $name ]['default'] : false;
		}

		return $default;
	}
}

// Define theme option via filter.
add_filter( 'konte_customize_config', 'konte_get_customize_config' );

/**
 * Flush the transient of Instagram user data after the Access Token changed.
 */
function konte_flush_instagram_user_data() {
	delete_transient( 'konte_instagram_user' );
}

add_action( 'customize_save_api_instagram_token', 'konte_flush_instagram_user_data' );

$konte_customize = new Konte_Customize();

Zerion Mini Shell 1.0