Astra_Addon_Builder_Customizer
Description
Customizer Configuration for Header Footer Builder.
Source
File: classes/builder/class-astra-addon-builder-customizer.php
final class Astra_Addon_Builder_Customizer { /** * Constructor * * @since 3.0.0 */ public function __construct() { add_action( 'customize_preview_init', array( $this, 'enqueue_customizer_preview_scripts' ) ); if ( false === astra_addon_builder_helper()->is_header_footer_builder_active ) { return; } add_action( 'astra_get_css_files', array( $this, 'add_styles' ) ); $this->load_base_components(); add_action( 'customize_register', array( $this, 'header_configs' ), 5 ); add_action( 'customize_register', array( $this, 'footer_configs' ), 5 ); add_filter( 'astra_flags_svgs', array( $this, 'astra_addon_flag_svgs' ), 1, 10 ); } /** * Register Base Components for Builder. */ public function load_base_components() { // @codingStandardsIgnoreStart WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound // Base Config Files. require_once ASTRA_EXT_DIR . 'classes/builder/type/base/configurations/class-astra-addon-base-configs.php'; require_once ASTRA_EXT_DIR . 'classes/builder/type/base/dynamic-css/class-astra-addon-base-dynamic-css.php'; require_once ASTRA_EXT_DIR . 'classes/builder/type/base/configurations/class-astra-divider-component-configs.php'; require_once ASTRA_EXT_DIR . 'classes/builder/type/base/configurations/class-astra-addon-button-component-configs.php'; require_once ASTRA_EXT_DIR . 'classes/builder/type/base/configurations/class-astra-social-component-configs.php'; require_once ASTRA_EXT_DIR . 'classes/builder/type/base/configurations/class-astra-language-switcher-component-configs.php'; // Base Dynamic CSS Files. require_once ASTRA_EXT_DIR . 'classes/builder/type/base/dynamic-css/divider/class-astra-divider-component-dynamic-css.php'; require_once ASTRA_EXT_DIR . 'classes/builder/type/base/dynamic-css/language-switcher/class-astra-language-switcher-component-dynamic-css.php'; require_once ASTRA_EXT_DIR . 'classes/builder/type/base/dynamic-css/social-icon/class-astra-social-icon-component-dynamic-css.php'; require_once ASTRA_EXT_DIR . 'classes/builder/type/base/dynamic-css/button/class-astra-addon-button-component-dynamic-css.php'; $this->load_header_components(); $this->load_footer_components(); // @codingStandardsIgnoreEnd WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } /** * Register controls for Header Builder. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. * @since 3.0.0 */ public function header_configs( $wp_customize ) { // @codingStandardsIgnoreStart WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound $header_config_path = ASTRA_EXT_DIR . 'classes/builder/type/header'; require_once $header_config_path . '/divider/class-astra-header-divider-component-configs.php'; require_once $header_config_path . '/account/class-astra-ext-header-account-component-configs.php'; require_once $header_config_path . '/menu/class-astra-addon-header-menu-component-configs.php'; require_once $header_config_path . '/button/class-astra-addon-header-button-component-configs.php'; require_once $header_config_path . '/social-icon/class-astra-header-social-component-configs.php'; require_once $header_config_path . '/language-switcher/class-astra-header-language-switcher-configs.php'; require_once $header_config_path . '/off-canvas/class-astra-addon-offcanvas-configs.php'; // @codingStandardsIgnoreEnd WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } /** * Register controls for Footer Builder. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. * @since 3.0.0 */ public function footer_configs( $wp_customize ) { // @codingStandardsIgnoreStart WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound $footer_config_path = ASTRA_EXT_DIR . 'classes/builder/type/footer'; require_once $footer_config_path . '/divider/class-astra-footer-divider-component-configs.php'; require_once $footer_config_path . '/button/class-astra-ext-footer-button-component-configs.php'; require_once $footer_config_path . '/social-icon/class-astra-footer-social-component-configs.php'; require_once $footer_config_path . '/language-switcher/class-astra-footer-language-switcher-configs.php'; // @codingStandardsIgnoreEnd WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } /** * Register Components for Header Builder. * * @since 3.0.0 */ public function load_header_components() { // @codingStandardsIgnoreStart WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound $header_components_path = ASTRA_EXT_DIR . 'classes/builder/type/header'; if ( ! class_exists( 'Astra_Header_Divider_Component' ) ) { require_once $header_components_path . '/divider/class-astra-header-divider-component.php'; } require_once $header_components_path . '/button/class-astra-addon-header-button-component.php'; require_once $header_components_path . '/account/class-astra-ext-header-account-component.php'; require_once $header_components_path . '/menu/class-astra-addon-header-menu-component.php'; require_once $header_components_path . '/social-icon/class-astra-header-social-component.php'; require_once $header_components_path . '/language-switcher/class-astra-header-language-switcher-component.php'; require_once $header_components_path . '/off-canvas/class-astra-addon-offcanvas-component.php'; // @codingStandardsIgnoreEnd WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } /** * Register Components for Footer Builder. * * @since 3.0.0 */ public function load_footer_components() { // @codingStandardsIgnoreStart WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound $footer_components_path = ASTRA_EXT_DIR . 'classes/builder/type/footer'; if ( ! class_exists( 'Astra_Footer_Divider_Component' ) ) { require_once $footer_components_path . '/divider/class-astra-footer-divider-component.php'; } require_once $footer_components_path . '/button/class-astra-ext-footer-button-component.php'; require_once $footer_components_path . '/social-icon/class-astra-footer-social-component.php'; require_once $footer_components_path . '/language-switcher/class-astra-footer-language-switcher-component.php'; // @codingStandardsIgnoreEnd WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } /** * Add Customizer preview script. * * @since 3.0.0 */ public function enqueue_customizer_preview_scripts() { // Base Dynamic CSS. wp_enqueue_script( 'ahfb-addon-base-customizer-preview', ASTRA_EXT_URI . 'classes/builder/type/base/assets/js/customizer-preview.js', array( 'customize-preview' ), ASTRA_EXT_VER, true ); // Localize variables for Astra Breakpoints JS. wp_localize_script( 'ahfb-addon-base-customizer-preview', 'astraBuilderPreview', array( 'tablet_break_point' => astra_addon_get_tablet_breakpoint(), 'mobile_break_point' => astra_addon_get_mobile_breakpoint(), ) ); } /** * Add Styles Callback * * @since 3.1.0 */ public function add_styles() { /*** Start Path Logic */ /* Define Variables */ $uri = ASTRA_EXT_URI . 'classes/builder/assets/css/'; $path = ASTRA_EXT_DIR . 'classes/builder/assets/css/'; $rtl = ''; if ( is_rtl() ) { $rtl = '-rtl'; } /* Directory and Extension */ $file_prefix = $rtl . '.min'; $dir_name = 'minified'; if ( SCRIPT_DEBUG ) { $file_prefix = $rtl; $dir_name = 'unminified'; } $css_uri = $uri . $dir_name . '/'; $css_dir = $path . $dir_name . '/'; if ( defined( 'ASTRA_THEME_HTTP2' ) && ASTRA_THEME_HTTP2 ) { $gen_path = $css_uri; } else { $gen_path = $css_dir; } /*** End Path Logic */ /* Add style.css */ Astra_Minify::add_css( $gen_path . 'style' . $file_prefix . '.css' ); } /** * Load Flags SVG Icon array from the JSON file. * * @param Array $svg_arr Array of svg icons. * @since 3.1.0 * @return Array addon svg icons. */ public function astra_addon_flag_svgs( $svg_arr = array() ) { ob_start(); // Include SVGs Json file. include_once ASTRA_EXT_DIR . 'assets/flags/svgs.json'; $svg_icon_arr = json_decode( ob_get_clean(), true ); $ast_flag_svgs = array_merge( $svg_arr, $svg_icon_arr ); return $ast_flag_svgs; } }
Expand full source code Collapse full source code View on Trac
Changelog
Version | Description |
---|---|
3.0.0 | Introduced. |
Methods
- __construct — Constructor
- add_styles — Add Styles Callback
- astra_addon_flag_svgs — Load Flags SVG Icon array from the JSON file.
- enqueue_customizer_preview_scripts — Add Customizer preview script.
- footer_configs — Register controls for Footer Builder.
- header_configs — Register controls for Header Builder.
- load_base_components — Register Base Components for Builder.
- load_footer_components — Register Components for Footer Builder.
- load_header_components — Register Components for Header Builder.