<?php
/**
* @author RadiusTheme
* @since 1.0
* @version 1.0
*/
namespace radiustheme\Digeco_Core;
use Elementor\Controls_Manager;
if ( ! defined( 'ABSPATH' ) ) exit;
class Slider extends Custom_Widget_Base {
public function __construct( $data = [], $args = null ){
$this->rt_name = esc_html__( 'FullScreen Slider', 'digeco-core' );
$this->rt_base = 'rt-slider';
parent::__construct( $data, $args );
}
private function rt_load_scripts(){
wp_enqueue_style( 'nivo-slider' );
wp_enqueue_script( 'nivo-slider' );
}
public function rt_fields(){
$repeater = new \Elementor\Repeater();
$repeater->add_control(
'image',
[
'type' => Controls_Manager::MEDIA,
'label' => esc_html__( 'Image', 'digeco-core' ),
'description' => esc_html__( 'Image size should be 1920x820 px', 'digeco-core' ),
'label_block' => true,
]
);
$repeater->add_control(
'title',
[
'type' => Controls_Manager::TEXTAREA,
'label' => esc_html__( 'Title', 'digeco-core' ),
'default' => 'LOREM IPSUM DUMMY TEXT',
'label_block' => true,
]
);
$repeater->add_control(
'content',
[
'type' => Controls_Manager::TEXTAREA,
'label' => esc_html__( 'Content (For desktop and tab)', 'digeco-core' ),
'default' => 'Mimply dummy text of the printing type setting area lead spsum dolor onsecte dipiscing. Mimply dummy text printing apsum dolor onsecte dipiscing.',
'label_block' => true,
]
);
$repeater->add_control(
'content_mob',
[
'type' => Controls_Manager::TEXTAREA,
'label' => esc_html__( 'Content (For mobile)', 'digeco-core' ),
'default' => 'Dorem ipsum dolor sit amet, consectetur adipisicing',
'label_block' => true,
]
);
$repeater->add_control(
'title_color',
[
'type' => Controls_Manager::COLOR,
'label' => esc_html__( 'Title Color', 'digeco-core' ),
'default' => '',
'selectors' => array(
'{{WRAPPER}} .rt-el-slider .rtin-content .rtin-content-inner .rtin-content-wrap .rtin-title' => 'color: {{VALUE}}',
),
'label_block' => true,
]
);
$repeater->add_control(
'sub_title_color',
[
'type' => Controls_Manager::COLOR,
'label' => esc_html__( 'Sub Title Color', 'digeco-core' ),
'default' => '',
'selectors' => array(
'{{WRAPPER}} .rt-el-slider .rtin-content .rtin-content-inner .rtin-content-wrap .rtin-sub-title' => 'color: {{VALUE}}',
),
'label_block' => true,
]
);
$repeater->add_control(
'content_color',
[
'type' => Controls_Manager::COLOR,
'label' => esc_html__( 'Content Color', 'digeco-core' ),
'default' => '',
'selectors' => array(
'{{WRAPPER}} .rt-el-slider .rtin-content .rtin-content-inner .rtin-content-wrap .rtin-content-desk' => 'color: {{VALUE}}',
'{{WRAPPER}} .rt-el-slider .rtin-content .rtin-content-inner .rtin-content-wrap .rtin-content-mob' => 'color: {{VALUE}}',
),
'label_block' => true,
]
);
$repeater->add_control(
'buttontext',
[
'type' => Controls_Manager::TEXT,
'label' => esc_html__( 'Button Text', 'digeco-core' ),
'default' => 'LOREM IPSUM',
'label_block' => true,
]
);
$repeater->add_control(
'buttonurl',
[
'type' => Controls_Manager::TEXT,
'label' => esc_html__( 'Button URL', 'digeco-core' ),
'label_block' => true,
]
);
$fields = array(
array(
'mode' => 'section_start',
'id' => 'sec_general',
'label' => esc_html__( 'General', 'digeco-core' ),
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'layout',
'label' => esc_html__( 'Slider Layout', 'digeco-core' ),
'options' => array(
'slider1' => esc_html__( 'Slider Layout 1', 'digeco-core' ),
'slider2' => esc_html__( 'Slider Layout 2', 'digeco-core' ),
),
'default' => 'slider1',
),
array(
'type' => Controls_Manager::REPEATER,
'id' => 'slides',
'label' => esc_html__( 'Add as many slides as you want', 'digeco-core' ),
'fields' => $repeater->get_controls(),
),
array(
'mode' => 'section_end',
),
array(
'mode' => 'section_start',
'id' => 'sec_slider',
'label' => esc_html__( 'Slider Options', 'digeco-core' ),
),
array(
'type' => Controls_Manager::SWITCHER,
'id' => 'slider_nav',
'label' => esc_html__( 'Navigation Arrow', 'digeco-core' ),
'label_on' => esc_html__( 'On', 'digeco-core' ),
'label_off' => esc_html__( 'Off', 'digeco-core' ),
'default' => 'yes',
'description' => esc_html__( 'Enable or disable navigation arrow. Default: On', 'digeco-core' ),
),
array(
'type' => Controls_Manager::SWITCHER,
'id' => 'slider_dots',
'label' => esc_html__( 'Navigation Dot', 'digeco-core' ),
'label_on' => esc_html__( 'On', 'digeco-core' ),
'label_off' => esc_html__( 'Off', 'digeco-core' ),
'default' => '',
'description' => esc_html__( 'Enable or disable navigation dot. Default: Off', 'digeco-core' ),
),
array(
'type' => Controls_Manager::SWITCHER,
'id' => 'slider_autoplay',
'label' => esc_html__( 'Autoplay', 'digeco-core' ),
'label_on' => esc_html__( 'On', 'digeco-core' ),
'label_off' => esc_html__( 'Off', 'digeco-core' ),
'default' => 'yes',
'description' => esc_html__( 'Enable or disable autoplay. Default: On', 'digeco-core' ),
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'slider_effect',
'label' => esc_html__( 'Slider Effect', 'digeco-core' ),
'options' => array(
'sliceDown' => esc_html__( 'SliceDown', 'blogxer-core' ),
'sliceDownLeft' => esc_html__( 'SliceDownLeft', 'blogxer-core' ),
'sliceUp' => esc_html__( 'SliceUp', 'blogxer-core' ),
'sliceUpLeft' => esc_html__( 'SliceUpLeft', 'blogxer-core' ),
'sliceUpDown' => esc_html__( 'SliceUpDown', 'blogxer-core' ),
'SliceUpDownLeft' => esc_html__( 'SliceUpDownLeft', 'blogxer-core' ),
'fade' => esc_html__( 'Fade', 'blogxer-core' ),
'slideInRight' => esc_html__( 'SlideInRight', 'blogxer-core' ),
'slideInLeft' => esc_html__( 'SlideInLeft', 'blogxer-core' ),
'boxRainReverse' => esc_html__( 'BoxRainReverse', 'blogxer-core' ),
),
'default' => 'boxRainReverse',
'description' => esc_html__( 'Slider Effect. Default: boxRainReverse', 'digeco-core' ),
),
array(
'type' => Controls_Manager::NUMBER,
'id' => 'slider_anim_speed',
'label' => esc_html__( 'Slider Animatin Speed', 'digeco-core' ),
'default' => 500,
'description' => esc_html__( 'Slide speed in milliseconds. Default: 500', 'digeco-core' ),
),
array(
'type' => Controls_Manager::NUMBER,
'id' => 'slider_pause_time',
'label' => esc_html__( 'Slider Pause Time', 'digeco-core' ),
'default' => 3000,
'description' => esc_html__( 'Slide Pause Time. Default: 3000', 'digeco-core' ),
),
array(
'mode' => 'section_end',
),
);
return $fields;
}
protected function render() {
$data = $this->get_settings();
$this->rt_load_scripts();
$template = 'slider';
return $this->rt_template( $template, $data );
}
}