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
}
}