<?php


namespace Nextend\SmartSlider3\Platform\WordPress\Integration\Elementor;


use Elementor\Plugin;
use Elementor\Widget_Base;
use Nextend\SmartSlider3\Platform\WordPress\Shortcode\Shortcode;

class ElementorWidgetSmartSlider extends Widget_Base {

    public function get_name() {
        return 'smartslider';
    }

    public function get_title() {
        return 'Smart Slider';
    }

    public function get_icon() {
        return 'eicon-slider-3d';
    }

    protected function register_controls() {

        $this->start_controls_section('section_smart_slider_elementor', [
            'label' => esc_html('Smart Slider'),
        ]);

        $this->add_control('smartsliderid', [
            'label'   => 'Slider ID or Alias',
            'type'    => 'smartsliderfield',
            'default' => '',
            'title'   => 'Slider ID or Alias',
        ]);

        $this->end_controls_section();

    }

    protected function render() {
        if (Plugin::instance()->editor->is_edit_mode() || Plugin::instance()->preview->is_preview_mode()) {

            // PHPCS - Content already escaped
            echo Shortcode::renderIframe($this->get_settings('smartsliderid')); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
        } else {
            $sliderIDorAlias = $this->get_settings('smartsliderid');
            if (is_numeric($sliderIDorAlias)) {
                echo do_shortcode('[smartslider3 slider=' . $sliderIDorAlias . ']');
            } else {
                echo do_shortcode('[smartslider3 alias="' . $sliderIDorAlias . '"]');
            }
        }
    }

    /**
     * Must be declared as empty method to prevent issues with SEO plugins.
     */
    public function render_plain_content() {
    }

    protected function content_template() {

        // PHPCS - Content already escaped
        echo Shortcode::renderIframe('{{{settings.smartsliderid}}}'); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
    }
}