File "slider.php"

Full Path: /home/tekvhqgl/public_html/wp-content/plugins/digeco-core/elementor/widgets/slider.php
File size: 7.68 KB
MIME-type: text/x-php
Charset: utf-8

<?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 );
	}
}