'big_title',
'title' => esc_html__( 'Big Title Section', 'hestia' ),
'priority' => 55,
'section' => 'sidebar-widgets-sidebar-big-title',
'controls' => array(
'hide',
'title',
),
);
}
/**
* Initialize the control. Add all the hooks necessary.
*/
public function init() {
parent::init();
add_filter( 'customizer_widgets_section_args', array( $this, 'move_widgets_section' ), 10, 3 );
}
/**
* Filter to move widgets section to Fronptage section panel.
*
* @param array $section_args Sections args.
* @param string $section_id Section id.
* @param string $sidebar_id Sidebar id.
*
* @return mixed
*/
public function move_widgets_section( $section_args, $section_id, $sidebar_id ) {
if ( $sidebar_id === 'sidebar-big-title' ) {
$section_args['panel'] = 'hestia_frontpage_sections';
}
return $section_args;
}
/**
* Add controls.
*/
public function add_controls() {
$this->add_section_tabs();
$this->add_general_controls();
$this->add_background_image_control();
$this->add_content_controls();
$this->add_button_controls();
$this->add_parallax_controls();
$this->add_alignment_control();
}
/**
* Change controls.
*/
public function change_controls() {
$this->change_customizer_object( 'control', 'hestia_big_title_title', 'priority', 20 );
$this->change_customizer_object( 'control', 'hestia_big_title_title', 'label', esc_html__( 'Title', 'hestia' ) );
$this->change_customizer_object( 'control', 'hestia_big_title_hide', 'priority', -2 );
$this->maybe_add_defaults_for_big_title();
}
/**
* Add drop-down for header type.
*/
private function add_general_controls() {
$this->add_control(
new Hestia_Customizer_Control(
'hestia_slider_type',
array(
'sanitize_callback' => 'hestia_sanitize_big_title_type',
'default' => apply_filters( 'hestia_slider_type_default', 'image' ),
),
array(
'priority' => -1,
'section' => 'sidebar-widgets-sidebar-big-title', // Add a default or your own section
'label' => esc_html__( 'Big Title Background', 'hestia' ),
'choices' => array(
'image' => esc_html__( 'Image', 'hestia' ),
'parallax' => esc_html__( 'Parallax', 'hestia' ),
),
'subcontrols' => array(
'image' => array(
'hestia_big_title_background',
'hestia_big_title_title',
'hestia_big_title_text',
'hestia_big_title_button_text',
'hestia_big_title_button_link',
),
'parallax' => array(
'hestia_parallax_layer1',
'hestia_parallax_layer2',
'hestia_big_title_title',
'hestia_big_title_text',
'hestia_big_title_button_text',
'hestia_big_title_button_link',
),
),
),
'Hestia_Select_Hiding'
)
);
$this->add_control(
new Hestia_Customizer_Control(
'hestia_big_title_widgets_title',
array(
'sanitize_callback' => 'wp_kses',
),
array(
'label' => esc_html__( 'Big Title Section', 'hestia' ) . ' ' . esc_html__( 'Sidebar', 'hestia' ),
'section' => 'sidebar-widgets-sidebar-big-title',
'priority' => -1,
),
'Hestia_Customizer_Heading'
)
);
}
/**
* Add background control.
*/
public function add_background_image_control() {
$this->add_control(
new Hestia_Customizer_Control(
'hestia_big_title_background',
array(
'sanitize_callback' => 'esc_url_raw',
'transport' => $this->selective_refresh,
),
array(
'label' => esc_html__( 'Image', 'hestia' ),
'section' => 'sidebar-widgets-sidebar-big-title',
'priority' => 10,
),
'WP_Customize_Image_Control',
array(
'selector' => '.big-title-image',
'settings' => 'hestia_big_title_background',
'render_callback' => array( $this, 'background_render_callback' ),
)
)
);
}
/**
* Add title subtitle.
*/
public function add_content_controls() {
$this->add_control(
new Hestia_Customizer_Control(
'hestia_big_title_title',
array(
'sanitize_callback' => 'wp_kses_post',
'transport' => $this->selective_refresh,
),
array(
'label' => esc_html__( 'Title', 'hestia' ),
'section' => 'sidebar-widgets-sidebar-big-title',
'priority' => 15,
),
null,
array(
'selector' => '.carousel .hestia-title',
'settings' => 'hestia_big_title_title',
'render_callback' => array( $this, 'title_render_callback' ),
)
)
);
$this->add_control(
new Hestia_Customizer_Control(
'hestia_big_title_text',
array(
'sanitize_callback' => 'wp_kses_post',
'transport' => $this->selective_refresh,
),
array(
'label' => esc_html__( 'Text', 'hestia' ),
'section' => 'sidebar-widgets-sidebar-big-title',
'priority' => 25,
),
null,
array(
'selector' => '.carousel .sub-title',
'settings' => 'hestia_big_title_text',
'render_callback' => array( $this, 'text_render_callback' ),
)
)
);
}
/**
* Add button controls.
*/
public function add_button_controls() {
$this->add_control(
new Hestia_Customizer_Control(
'hestia_big_title_button_text',
array(
'sanitize_callback' => 'sanitize_text_field',
'transport' => $this->selective_refresh,
),
array(
'label' => esc_html__( 'Button text', 'hestia' ),
'section' => 'sidebar-widgets-sidebar-big-title',
'priority' => 30,
)
)
);
$this->add_control(
new Hestia_Customizer_Control(
'hestia_big_title_button_link',
array(
'sanitize_callback' => 'esc_url_raw',
'transport' => $this->selective_refresh,
),
array(
'label' => esc_html__( 'Button URL', 'hestia' ),
'section' => 'sidebar-widgets-sidebar-big-title',
'priority' => 35,
)
)
);
$this->add_partial(
new Hestia_Customizer_Partial(
'hestia_big_title_button_text',
array(
'selector' => '.carousel .buttons',
'settings' => 'hestia_big_title_button_text',
'render_callback' => array( $this, 'button_render_callback' ),
)
)
);
}
/**
* Add alignment control.
*/
protected function add_alignment_control() {
$this->add_control(
new Hestia_Customizer_Control(
'hestia_slider_alignment',
array(
'default' => 'center',
'sanitize_callback' => 'hestia_sanitize_alignment_options',
'transport' => $this->selective_refresh,
),
array(
'label' => esc_html__( 'Layout', 'hestia' ),
'priority' => -2,
'section' => 'sidebar-widgets-sidebar-big-title',
'choices' => array(
'left' => array(
'url' => 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABqBAMAAACsf7WzAAAAD1BMVEX////V1dUAhbo+yP/u9/pRM+FMAAAAZElEQVR42u3WsQ2AIBRFUd0AV3AFV3D/mSwsBI2BRIofPKchobjVK/7EQJZSit+az5/aq/WjVs99AQAjWxs8L4ZL0hqutTcoWt0OSa2orfdVaWl9b/XcqpbWvbXltLQCtwCA3AHhDKjAJvDMEwAAAABJRU5ErkJggg==',
),
'center' => array(
'url' => 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABqBAMAAACsf7WzAAAAD1BMVEX///8AhbrV1dU+yP/u9/q7NurVAAAAV0lEQVR42u3SsQ2AMAxFwYBYgA0QK7AC+89EQQOiIIoogn3XWHLxql8IZL1b+m+N5+ftaiVqfbkvACC8YW6iFbg17U0KCVQNTUvr0YK+bFdaWklaAPAXB4dWiADE72glAAAAAElFTkSuQmCC',
),
'right' => array(
'url' => 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABqBAMAAACsf7WzAAAAD1BMVEX////V1dUAhbo+yP/u9/pRM+FMAAAAYElEQVR42u3SuQ2AMBBFQaAC3AIt0AL910RAAkICS1xrPJOstMGLfsOPpK0+fqtdPmdXq6LWnfsCAKJJe4+0hhxaVbWmHB9sVStCq7u8Ly2td7aqpXVsXNPSKrAFAOWbASNgr0b3Lh1kAAAAAElFTkSuQmCC',
),
),
'subcontrols' => array(
'left' => array(
'hestia_big_title_widgets_title',
'widgets',
),
'center' => array(),
'right' => array(
'hestia_big_title_widgets_title',
'widgets',
),
),
),
'Hestia_Customize_Control_Radio_Image',
array(
'selector' => '#carousel-hestia-generic',
'settings' => 'hestia_slider_alignment',
'render_callback' => array( $this, 'alignment_render_callback' ),
)
)
);
}
/**
* Add controls for parallax.
*/
private function add_parallax_controls() {
$this->add_control(
new Hestia_Customizer_Control(
'hestia_parallax_layer1',
array(
'sanitize_callback' => 'esc_url_raw',
'default' => apply_filters( 'hestia_parallax_layer1_default', false ),
),
array(
'label' => esc_html__( 'First Layer', 'hestia' ),
'section' => 'sidebar-widgets-sidebar-big-title',
'priority' => 10,
),
'WP_Customize_Image_Control'
)
);
$this->add_control(
new Hestia_Customizer_Control(
'hestia_parallax_layer2',
array(
'sanitize_callback' => 'esc_url_raw',
'default' => apply_filters( 'hestia_parallax_layer2_default', false ),
),
array(
'label' => esc_html__( 'Second Layer', 'hestia' ),
'section' => 'sidebar-widgets-sidebar-big-title',
'priority' => 15,
),
'WP_Customize_Image_Control'
)
);
}
/**
* Add tabs control in hestia_big_title section.
*/
public function add_section_tabs() {
$this->add_control(
new Hestia_Customizer_Control(
'hestia_slider_tabs',
array(
'transport' => $this->selective_refresh,
),
array(
'section' => 'sidebar-widgets-sidebar-big-title',
'priority' => -3,
'tabs' => array(
'slider' => array(
'label' => esc_html__( 'Big Title Section', 'hestia' ),
'icon' => 'picture-o',
),
'extra' => array(
'label' => esc_html__( 'Extra', 'hestia' ),
'icon' => 'user-plus',
),
),
'controls' => array(
'slider' => array(
'hestia_big_title_upsell' => array(),
'hestia_big_title_hide' => array(),
'hestia_slider_type' => array(
'image' => array(
'hestia_big_title_background',
'hestia_big_title_title',
'hestia_big_title_text',
'hestia_big_title_button_text',
'hestia_big_title_button_link',
),
'parallax' => array(
'hestia_parallax_layer1',
'hestia_parallax_layer2',
'hestia_big_title_title',
'hestia_big_title_text',
'hestia_big_title_button_text',
'hestia_big_title_button_link',
),
),
),
'extra' => array(
'hestia_slider_alignment' => array(
'left' => array(
'hestia_big_title_widgets_title',
'widgets',
),
'center' => array(),
'right' => array(
'hestia_big_title_widgets_title',
'widgets',
),
),
),
),
),
'Hestia_Customize_Control_Tabs'
)
);
}
/**
* Maybe throw in some defaults.
*/
private function maybe_add_defaults_for_big_title() {
$hestia_slider_content = get_theme_mod( 'hestia_slider_content' );
if ( ! empty( $hestia_slider_content ) ) {
return;
}
$this->change_customizer_object( 'setting', 'hestia_big_title_background', 'default', esc_url( apply_filters( 'hestia_big_title_background_default', get_template_directory_uri() . '/assets/img/slider2.jpg' ) ) );
$this->change_customizer_object( 'setting', 'hestia_big_title_title', 'default', esc_html__( 'Change in the Customizer', 'hestia' ) );
$this->change_customizer_object( 'setting', 'hestia_big_title_text', 'default', esc_html__( 'Change in the Customizer', 'hestia' ) );
$this->change_customizer_object( 'setting', 'hestia_big_title_button_text', 'default', esc_html__( 'Change in the Customizer', 'hestia' ) );
$this->change_customizer_object( 'setting', 'hestia_big_title_button_link', 'default', esc_url( '#' ) );
}
/**
* Callback for title.
*
* @return string
*/
public function title_render_callback() {
return get_theme_mod( 'hestia_big_title_title' );
}
/**
* Callback for subtitle.
*
* @return string
*/
public function text_render_callback() {
return get_theme_mod( 'hestia_big_title_text' );
}
/**
* Callback for button.
*
* @return bool|string
*/
public function button_render_callback() {
$button_text = get_theme_mod( 'hestia_big_title_button_text' );
$button_link = get_theme_mod( 'hestia_big_title_button_link' );
if ( empty( $button_text ) ) {
return false;
}
if ( empty( $button_link ) ) {
return false;
}
$output = '' . $button_text . '';
return wp_kses_post( $output );
}
/**
* Alignment callback.
*/
public function alignment_render_callback() {
$big_title_section_view = new Hestia_Big_Title_Section();
$big_title_section_view->render_big_title_content();
}
/**
* Background callback.
*/
public function background_render_callback() {
$hestia_parallax_layer1 = get_theme_mod( 'hestia_parallax_layer1' );
$hestia_parallax_layer2 = get_theme_mod( 'hestia_parallax_layer2' );
if ( empty( $hestia_parallax_layer1 ) || empty( $hestia_parallax_layer2 ) ) {
$hestia_big_title_background = get_theme_mod( 'hestia_big_title_background' );
echo '';
}
}
}