<?php
/**
* Class: Jet_Elements_Slider
* Name: Slider
* Slug: jet-slider
*/
namespace Elementor;
use Elementor\Controls_Manager;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Repeater;
use Elementor\Scheme_Color;
use Elementor\Scheme_Typography;
use Elementor\Widget_Base;
use Elementor\Utils;
use Elementor\Modules\DynamicTags\Module as TagsModule;
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
class Jet_Elements_Slider extends Jet_Elements_Base {
public function get_name() {
return 'jet-slider';
}
public function get_title() {
return esc_html__( 'Slider', 'jet-elements' );
}
public function get_icon() {
return 'jet-elements-icon-slider';
}
public function get_jet_help_url() {
return 'https://crocoblock.com/knowledge-base/articles/how-to-create-a-slider-with-the-jetelements-slider-widget-for-elementor/';
}
public function get_categories() {
return array( 'cherry' );
}
public function get_script_depends() {
return array( 'imagesloaded', 'jet-slider-pro' );
}
public function get_style_depends() {
return array( 'jet-slider-pro-css' );
}
protected function _register_controls() {
$css_scheme = apply_filters(
'jet-elements/slider/css-scheme',
array(
'instance' => '.jet-slider',
'content_wrapper' => '.jet-slider__content',
'content_item' => '.jet-slider__content-item',
'content_inner' => '.jet-slider__content-inner',
'instance_slider' => '.jet-slider .slider-pro',
'navigation' => '.jet-slider .sp-arrows',
'pagination' => '.jet-slider .sp-buttons',
'icon' => '.jet-slider__icon',
'title' => '.jet-slider__title',
'subtitle' => '.jet-slider__subtitle',
'desc' => '.jet-slider__desc',
'buttons_wrapper' => '.jet-slider__button-wrapper',
'primary_button' => '.jet-slider__button--primary',
'secondary_button' => '.jet-slider__button--secondary',
'overlay' => '.jet-slider .sp-image-container:after',
'fullscreen' => '.jet-slider .sp-full-screen-button',
'thumbnails' => '.jet-slider .sp-thumbnails-container',
'thumbnail_container' => '.jet-slider .sp-thumbnail-container',
)
);
$this->start_controls_section(
'section_items_data',
array(
'label' => esc_html__( 'Items', 'jet-elements' ),
)
);
$repeater = new Repeater();
$repeater->add_control(
'item_image',
array(
'label' => esc_html__( 'Image', 'jet-elements' ),
'type' => Controls_Manager::MEDIA,
'default' => array(
'url' => Utils::get_placeholder_image_src(),
),
'dynamic' => array( 'active' => true ),
)
);
$repeater->add_control(
'item_content_type',
array(
'label' => esc_html__( 'Content Type', 'jet-elements' ),
'type' => Controls_Manager::SELECT,
'default' => 'default',
'options' => array(
'default' => esc_html__( 'Default', 'jet-elements' ),
'template' => esc_html__( 'Template', 'jet-elements' ),
),
)
);
$this->_add_advanced_icon_control(
'item_icon',
array(
'label' => esc_html__( 'Icon', 'jet-elements' ),
'type' => Controls_Manager::ICON,
'label_block' => true,
'file' => '',
'condition' => array(
'item_content_type' => 'default',
),
),
$repeater
);
$repeater->add_control(
'item_title',
array(
'label' => esc_html__( 'Title', 'jet-elements' ),
'type' => Controls_Manager::TEXT,
'dynamic' => array( 'active' => true ),
'condition' => array(
'item_content_type' => 'default',
),
)
);
$repeater->add_control(
'item_title_html_tag',
array(
'label' => esc_html__( 'Title HTML Tag', 'jet-elements' ),
'type' => Controls_Manager::SELECT,
'options' => jet_elements_tools()->get_available_title_html_tags(),
'default' => 'h5',
)
);
$repeater->add_control(
'item_subtitle',
array(
'label' => esc_html__( 'Subtitle', 'jet-elements' ),
'type' => Controls_Manager::TEXT,
'dynamic' => array( 'active' => true ),
'condition' => array(
'item_content_type' => 'default',
),
)
);
$repeater->add_control(
'item_subtitle_html_tag',
array(
'label' => esc_html__( 'Subtitle HTML Tag', 'jet-elements' ),
'type' => Controls_Manager::SELECT,
'options' => jet_elements_tools()->get_available_title_html_tags(),
'default' => 'h5',
)
);
$repeater->add_control(
'item_desc',
array(
'label' => esc_html__( 'Description', 'jet-elements' ),
'type' => Controls_Manager::TEXTAREA,
'dynamic' => array( 'active' => true ),
'condition' => array(
'item_content_type' => 'default',
),
)
);
$repeater->add_control(
'item_button_primary_url',
array(
'label' => esc_html__( 'Primary Button URL', 'jet-elements' ),
'type' => Controls_Manager::TEXT,
'default' => '',
'dynamic' => array(
'active' => true,
'categories' => array(
TagsModule::POST_META_CATEGORY,
TagsModule::URL_CATEGORY,
),
),
'condition' => array(
'item_content_type' => 'default',
),
)
);
$repeater->add_control(
'item_button_primary_target',
array(
'label' => esc_html__( 'Open link in new window', 'jet-elements' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => '_blank',
'condition' => array(
'item_content_type' => 'default',
'item_button_primary_url!' => '',
),
)
);
$repeater->add_control(
'item_button_primary_rel',
array(
'label' => esc_html__( 'Add nofollow', 'jet-elements' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'nofollow',
'condition' => array(
'item_content_type' => 'default',
'item_button_primary_url!' => '',
),
)
);
$repeater->add_control(
'item_button_primary_text',
array(
'label' => esc_html__( 'Primary Button Text', 'jet-elements' ),
'type' => Controls_Manager::TEXT,
'default' => esc_html__( 'More', 'jet-elements' ),
'dynamic' => array( 'active' => true ),
'condition' => array(
'item_content_type' => 'default',
),
)
);
$repeater->add_control(
'item_button_secondary_url',
array(
'label' => esc_html__( 'Secondary Button URL', 'jet-elements' ),
'type' => Controls_Manager::TEXT,
'default' => '',
'dynamic' => array(
'active' => true,
'categories' => array(
TagsModule::POST_META_CATEGORY,
TagsModule::URL_CATEGORY,
),
),
'condition' => array(
'item_content_type' => 'default',
),
)
);
$repeater->add_control(
'item_button_secondary_target',
array(
'label' => esc_html__( 'Open link in new window', 'jet-elements' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => '_blank',
'condition' => array(
'item_content_type' => 'default',
'item_button_secondary_url!' => '',
),
)
);
$repeater->add_control(
'item_button_secondary_rel',
array(
'label' => esc_html__( 'Add nofollow', 'jet-elements' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'nofollow',
'condition' => array(
'item_content_type' => 'default',
'item_button_secondary_url!' => '',
),
)
);
$repeater->add_control(
'item_button_secondary_text',
array(
'label' => esc_html__( 'Secondary Button Text', 'jet-elements' ),
'type' => Controls_Manager::TEXT,
'default' => esc_html__( 'More', 'jet-elements' ),
'dynamic' => array( 'active' => true ),
'condition' => array(
'item_content_type' => 'default',
),
)
);
$repeater->add_control(
'template_id',
array(
'label' => esc_html__( 'Choose Template', 'jet-elements' ),
'label_block' => 'true',
'type' => 'jet-query',
'query_type' => 'elementor_templates',
'condition' => array(
'item_content_type' => 'template',
),
)
);
$repeater->add_control(
'slide_id',
array(
'label' => esc_html__( 'Slide CSS ID', 'jet-elements' ),
'type' => Controls_Manager::TEXT,
'dynamic' => array( 'active' => true ),
)
);
$this->add_control(
'item_list',
array(
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'default' => array(
array(
'item_image' => array(
'url' => Utils::get_placeholder_image_src(),
),
'item_title' => esc_html__( 'Slide #1', 'jet-elements' ),
'item_subtitle' => esc_html__( 'SubTitle', 'jet-elements' ),
'item_desc' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'jet-elements' ),
'item_button_primary_url' => '#',
'item_button_primary_text' => esc_html__( 'Button #1', 'jet-elements' ),
'item_button_secondary_ulr' => '#',
'item_button_secondary_text' => esc_html__( 'Button #2', 'jet-elements' ),
),
array(
'item_image' => array(
'url' => Utils::get_placeholder_image_src(),
),
'item_title' => esc_html__( 'Slide #2', 'jet-elements' ),
'item_subtitle' => esc_html__( 'SubTitle', 'jet-elements' ),
'item_desc' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'jet-elements' ),
Loading ...