<?php
/**
* Banner Four Widget
*/
namespace Elementor;
class Cyarb_Banner_Four extends Widget_Base {
public function get_name() {
return 'Cyarb_BannerFour';
}
public function get_title() {
return __( 'Banner Four', 'cyarb-toolkit' );
}
public function get_icon() {
return 'eicon-banner';
}
public function get_categories() {
return [ 'cyarb-elements' ];
}
protected function register_controls() {
$this->start_controls_section(
'Cyarb_Banner_Area',
[
'label' => __( 'Banner Four', 'cyarb-toolkit' ),
'tab' => Controls_Manager::TAB_CONTENT,
]
);
$this->add_control(
'title_type',
[
'label' => __( 'Choose Heading Type', 'cyarb-toolkit' ),
'type' => Controls_Manager::SELECT,
'label_block' => true,
'options' => [
'h1' => __( 'h1', 'cyarb-toolkit' ),
'h2' => __( 'h2', 'cyarb-toolkit' ),
'h3' => __( 'h3', 'cyarb-toolkit' ),
'h4' => __( 'h4', 'cyarb-toolkit' ),
'h5' => __( 'h5', 'cyarb-toolkit' ),
'h6' => __( 'h6', 'cyarb-toolkit' ),
],
'default' => 'h1'
]
);
$repeater = new Repeater();
$repeater->add_control(
'banner_title', [
'label' => __( 'Add Banner Title', 'cyarb-toolkit' ),
'type' => Controls_Manager:: TEXTAREA,
]
);
$repeater->add_control(
'banner_desc',
[
'label' =>__('Banner Description', 'cyarb-toolkit'),
'type' => Controls_Manager:: WYSIWYG,
'description' => __('This text editor for p','cyarb-toolkit'),
]
);
$repeater->add_control(
'add_image',
[
'label' => __('Add Banner Image', 'cyarb-toolkit' ),
'type' => Controls_Manager::MEDIA,
'default' => [
'url' => Utils::get_placeholder_image_src(),
]
]
);
$repeater->add_control(
'btn_text1',
[
'label' => esc_html__('Button One Title', 'cyarb-toolkit'),
'type' => Controls_Manager:: TEXT,
]
);
$repeater->add_control(
'link_type',
[
'label' => esc_html__( 'Link Type', 'cyarb-toolkit' ),
'type' => Controls_Manager::SELECT,
'label_block' => true,
'options' => [
'1' => esc_html__( 'Link To Page', 'cyarb-toolkit' ),
'2' => esc_html__( 'External Link', 'cyarb-toolkit' ),
],
]
);
$repeater->add_control(
'link_to_page',
[
'label' => esc_html__( 'Link Page', 'cyarb-toolkit' ),
'type' => Controls_Manager::SELECT,
'label_block' => true,
'options' => cyarb_toolkit_get_page_as_list(),
'condition' => [
'link_type' => '1',
]
]
);
$repeater->add_control(
'external_link',
[
'label' => esc_html__('External Link', 'cyarb-toolkit'),
'type' => Controls_Manager:: TEXT,
'condition' => [
'link_type' => '2',
]
]
);
// Button Two
$repeater->add_control(
'btn_text2',
[
'label' => esc_html__('Button Two Title', 'cyarb-toolkit'),
'type' => Controls_Manager:: TEXT,
]
);
$repeater->add_control(
'link_type2',
[
'label' => esc_html__( 'Link Type 2', 'cyarb-toolkit' ),
'type' => Controls_Manager::SELECT,
'label_block' => true,
'options' => [
'1' => esc_html__( 'Link To Page', 'cyarb-toolkit' ),
'2' => esc_html__( 'External Link', 'cyarb-toolkit' ),
],
]
);
$repeater->add_control(
'link_to_page2',
[
'label' => esc_html__( 'Link Page', 'cyarb-toolkit' ),
'type' => Controls_Manager::SELECT,
'label_block' => true,
'options' => cyarb_toolkit_get_page_as_list(),
'condition' => [
'link_type2' => '1',
]
]
);
$repeater->add_control(
'external_link2',
[
'label' => esc_html__('External Link', 'cyarb-toolkit'),
'type' => Controls_Manager:: TEXT,
'condition' => [
'link_type2' => '2',
]
]
);
$this->add_control(
'cyarb_slider_items',
[
'label' => esc_html__('Slider Item', 'cyarb-toolkit'),
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
]
);
//Shape Images
$this->add_control(
'image_shape',
[
'label' => esc_html__( 'Hide Shapes?', 'cyarb-toolkit' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => esc_html__( 'Show', 'cyarb-toolkit' ),
'label_off' => esc_html__( 'Hide', 'cyarb-toolkit' ),
'return_value' => 'yes',
'default' => 'yes',
]
);
$this->add_control(
'shape1',
[
'label' => __('Shape 1', 'cyarb-toolkit' ),
'type' => Controls_Manager::MEDIA,
'condition' => [
'image_shape' => 'yes',
]
]
);
$this->add_control(
'shape2',
[
'label' => __('Shape 2', 'cyarb-toolkit' ),
'type' => Controls_Manager::MEDIA,
'condition' => [
'image_shape' => 'yes',
]
]
);
$this->add_control(
'shape3',
[
'label' => __('Shape 3', 'cyarb-toolkit' ),
'type' => Controls_Manager::MEDIA,
'condition' => [
'image_shape' => 'yes',
]
]
);
$this->add_control(
'shape4',
[
'label' => __('Shape 4', 'cyarb-toolkit' ),
'type' => Controls_Manager::MEDIA,
'condition' => [
'image_shape' => 'yes',
]
]
);
$this->add_control(
'shape5',
[
'label' => __('Shape 5', 'cyarb-toolkit' ),
'type' => Controls_Manager::MEDIA,
'condition' => [
'image_shape' => 'yes',
]
]
);
$this->add_control(
'shape6',
[
'label' => __('Shape 6', 'cyarb-toolkit' ),
'type' => Controls_Manager::MEDIA,
'condition' => [
'image_shape' => 'yes',
]
]
);
$this->end_controls_section();
$this->start_controls_section(
'section_style',
[
'label' => __( 'Style', 'cyarb-toolkit' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_control(
'title_color',
[
'label' => __( 'Title Color', 'cyarb-toolkit' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .banner-content h1, .banner-content h2, .banner-content h3, .banner-content h4, .banner-content h5, .banner-content h6' => 'color: {{VALUE}}',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'title_type_typography',
'label' => __( 'Title Type Typography', 'cyarb-toolkit' ),
'selector' => '{{WRAPPER}} .banner-content h1, .banner-content h2, .banner-content h3, .banner-content h4, .banner-content h5, .banner-content h6',
]
);
$this->add_control(
'content_color',
[
'label' => __( 'Content Color', 'cyarb-toolkit' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .banner-content p, .banner-content ul li, .banner-content ol li' => 'color: {{VALUE}}',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'content_type_typography',
'label' => __( 'Content Type Typography', 'cyarb-toolkit' ),
'selector' => '{{WRAPPER}} .banner-content p, .banner-content ul li, .banner-content ol li',
]
);
$this->add_control(
'btn_color',
[
'label' => __( 'Button One Color', 'cyarb-toolkit' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .default-btn' => 'color: {{VALUE}}',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'btn_type_typography',
'label' => __( 'Button One Typography', 'cyarb-toolkit' ),
'selector' => '{{WRAPPER}} .default-btn',
]
);
$this->add_control(
'btn2_color',
[
'label' => __( 'Button Two Color', 'cyarb-toolkit' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .banner-content .btn-box .link-btn' => 'color: {{VALUE}}',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'btn2_type_typography',
'label' => __( 'Button Two Typography', 'cyarb-toolkit' ),
'selector' => '{{WRAPPER}} .banner-content .btn-box .link-btn',
]
);
$this->end_controls_section();
}
protected function render() {
$settings = $this->get_settings_for_display();
$slider = $settings['cyarb_slider_items']; ?>
<div class="banner-area">
<div class="container-fluid">
<div class="home-slides owl-carousel owl-theme">
<?php foreach ($slider as $key => $value):
$link_one = '';
if($value['link_type'] == 1){
$link_one = get_page_link($value['link_to_page']);
} else {
$link_one = $value['external_link'];
}
$link_two = '';
if($value['link_type2'] == 1){
$link_two = get_page_link($value['link_to_page2']);
} else {
$link_two = $value['external_link2'];
}
?>
<div class="banner-item">
<div class="row align-items-center">
<div class="col-lg-6 col-md-12">
<div class="banner-content">
<<?php echo esc_attr($settings['title_type']);?>><?php echo esc_html( $value['banner_title'] ); ?></<?php echo esc_attr($settings['title_type']);?>>
<?php echo wp_kses_post( $value['banner_desc'] ); ?>
<?php if( $value['btn_text1'] != '' || $value['btn_text2'] != '' ): ?>
<div class="btn-box d-flex align-items-center">
<?php if( $value['btn_text1'] != '' ): ?>
<a href="<?php echo esc_url( $link_one ); ?>" class="default-btn"><span><?php echo esc_html( $value['btn_text1'] ) ?></span></a>
<?php endif; ?>
<?php if( $value['btn_text2'] != '' ): ?>
<a href="<?php echo esc_url( $link_two ); ?>" class="link-btn"><?php echo esc_html( $value['btn_text2'] ) ?> <i class="lni lni-chevron-right"></i></a>
<?php endif; ?>
</div>
<?php endif; ?>
</div>
</div>
<?php if( $value['add_image']['url'] != '' ) :?>
<div class="col-lg-6 col-md-12">
<div class="banner-image">
<img src="<?php echo esc_url($value['add_image']['url']) ?>" alt="<?php echo esc_attr('Banner image','cyarb-toolkit'); ?>">
</div>
</div>
<?php endif; ?>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<?php if ( 'yes' === $settings['image_shape'] ) : ?>
<?php if( $settings['shape1']['url'] != '' ) :?>
<div class="shape1"> <img src="<?php echo esc_url($settings['shape1']['url']) ?>" alt="<?php echo esc_attr('Shape','cyarb-toolkit'); ?>"> </div>
<?php endif; ?>
<?php if( $settings['shape2']['url'] != '' ) :?>
<div class="shape2"><img src="<?php echo esc_url($settings['shape2']['url']) ?>" alt="<?php echo esc_attr('Shape','cyarb-toolkit'); ?>"></div>
<?php endif; ?>
<?php if( $settings['shape3']['url'] != '' ) :?>
<div class="shape3"><img src="<?php echo esc_url($settings['shape3']['url']) ?>" alt="<?php echo esc_attr('Shape','cyarb-toolkit'); ?>"></div>
<?php endif; ?>
<?php if( $settings['shape4']['url'] != '' ) :?>
<div class="shape4"><img src="<?php echo esc_url($settings['shape4']['url']) ?>" alt="<?php echo esc_attr('Shape','cyarb-toolkit'); ?>"></div>
<?php endif; ?>
<?php if( $settings['shape5']['url'] != '' ) :?>
<div class="shape5"><img src="<?php echo esc_url($settings['shape5']['url']) ?>" alt="<?php echo esc_attr('Shape','cyarb-toolkit'); ?>"></div>
<?php endif; ?>
<?php if( $settings['shape6']['url'] != '' ) :?>
<div class="shape12"><img src="<?php echo esc_url($settings['shape6']['url']) ?>" alt="<?php echo esc_attr('Shape','cyarb-toolkit'); ?>"></div>
<?php endif; ?>
<?php endif; ?>
</div>
<?php
}
}
Plugin::instance()->widgets_manager->register_widget_type( new Cyarb_Banner_Four );