HEX
Server: nginx/1.24.0
System: Linux DGT-WORDPRESS-VM-SERVER 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.4.12
Disabled: NONE
Upload Files
File: /mnt/data/dreamstour-wp/wp-content/plugins/dreamstour-widgets/widgets/class-video-section.php
<?php
namespace Dreamstourelementor\Widgets;

use \Elementor\Widget_Base;
use \Elementor\Controls_Manager;

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

class DTS_video_section extends Widget_Base {

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

    public function get_title() {
        return __( 'Dreams Tour Video Section', 'dreamstour_elementor' );
    }

    public function get_icon() {
        return 'eicon-play';
    }

    public function get_categories() {
        return [ 'dreamstourelemetortheme' ];
    }

    protected function register_controls() {
        $this->start_controls_section(
            'section_content',
            [
                'label' => __( 'Content', 'dreamstour_elementor' ),
            ]
        );

        $this->add_control(
            'video_url',
            [
                'label' => __( 'YouTube Video URL', 'dreamstour_elementor' ),
                'type' => Controls_Manager::TEXT,
                'default' => 'https://youtu.be/NSAOrGb9orM',
            ]
        );

        $this->add_control(
            'icon_class',
            [
                'label' => __( 'Icon Class', 'dreamstour_elementor' ),
                'type' => Controls_Manager::TEXT,
                'default' => 'isax isax-play5',
            ]
        );

        $this->add_control(
            'extra_class',
            [
                'label' => __( 'Extra Class', 'dreamstour_elementor' ),
                'type' => Controls_Manager::TEXT,
            ]
        );

        $this->add_control(
            'background_image',
            [
                'label' => __( 'Background Image', 'dreamstour_elementor' ),
                'type' => Controls_Manager::MEDIA,
                'default' => [ 'url' => '' ],
            ]
        );

        $this->end_controls_section();
    }

    protected function render() {
        $settings = $this->get_settings();
        $video_url = esc_url( $settings['video_url'] );
        $icon_class = esc_attr( $settings['icon_class'] );
        $extra_class = !empty($settings['extra_class']) ? esc_attr($settings['extra_class']) : '';
        $bg_url = !empty($settings['background_image']['url']) ? esc_url($settings['background_image']['url']) : '';
        $bg_style = $bg_url ? "background: url('$bg_url') center top no-repeat; background-size: cover;" : '';
        ?>
        <!-- Video Section -->
        <div class="video-wrap <?php echo $extra_class; ?>" style="<?php echo $bg_style; ?>">
            <a class="video-btn video-effect" data-fancybox href="<?php echo $video_url; ?>">
                <i class="<?php echo $icon_class; ?>"></i>
            </a>
        </div>
        <!-- /Video Section -->
        <?php
    }

    protected function content_template() {
        ?>
        <# var bg_url = settings.background_image && settings.background_image.url ? settings.background_image.url : ''; #>
        <div class="video-wrap {{{ settings.extra_class }}}" style="background: url('{{ bg_url }}') center top no-repeat; background-size: cover;">
            <a class="video-btn video-effect" data-fancybox href="{{{ settings.video_url }}}">
                <i class="{{{ settings.icon_class }}}"></i>
            </a>
        </div>
        <?php
    }
}