PATH:
home
/
lab2454c
/
aficbgroup.com
/
wp-content
/
plugins
/
elementskit
/
widgets
/
audio-player
<?php namespace Elementor; use Elementor\Modules\DynamicTags\Module as TagsModule; use \Elementor\ElementsKit_Widget_Audio_Player_Handler as Handler; defined('ABSPATH') || exit; class ElementsKit_Widget_Audio_Player extends Widget_Base { use \ElementsKit_Lite\Widgets\Widget_Notice; public $base; public function __construct($data = [], $args = null) { parent::__construct($data, $args); } public function get_name() { return Handler::get_name(); } public function get_title() { return Handler::get_title(); } public function get_icon() { return Handler::get_icon(); } public function get_categories() { return Handler::get_categories(); } public function get_keywords() { return Handler::get_keywords(); } public function get_help_url() { return 'https://wpmet.com/doc/audio-player/'; } public function get_style_depends() { return ['wp-mediaelement']; } public function get_script_depends() { return ['wp-mediaelement']; } protected function register_controls() { $this->start_controls_section( 'ekit_audio_player_content_section', [ 'label' => esc_html__('Content', 'elementskit'), ] ); $this->add_control( 'ekit_audio_player_source', [ 'label' => esc_html__('Source', 'elementskit'), 'type' => Controls_Manager::SELECT, 'default' => 'self', 'options' => [ 'self' => esc_html__('Self Hosted', 'elementskit'), 'external' => esc_html__('External', 'elementskit'), ], ] ); $this->add_control( 'ekit_audio_player_self_url', [ 'label' => esc_html__('URL', 'elementskit'), 'type' => Controls_Manager::MEDIA, 'description' => esc_html__('Support MP3 audio format', 'elementskit'), 'media_type' => ['audio'], 'dynamic' => [ 'active' => true, 'categories' => [ TagsModule::URL_CATEGORY, TagsModule::MEDIA_CATEGORY, TagsModule::POST_META_CATEGORY, ], ], 'condition' => [ 'ekit_audio_player_source' => 'self', ], ] ); $this->add_control( 'ekit_audio_player_external_url', [ 'label' => esc_html__('URL', 'elementskit'), 'label_block' => true, 'placeholder' => esc_html__('Enter audio URL', 'elementskit'), 'description' => esc_html__('Input a valid audio url', 'elementskit'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, 'categories' => [ TagsModule::URL_CATEGORY, TagsModule::POST_META_CATEGORY, ], ], 'condition' => [ 'ekit_audio_player_source' => 'external', ], ] ); // Audio Options $this->add_control( 'ekit_audio_player_options_heading', [ 'label' => esc_html__('Audio Options', 'elementskit'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'ekit_audio_player_autoplay', [ 'label' => esc_html__('Autoplay', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'no', 'label_on' => esc_html__('Yes', 'elementskit'), 'label_off' => esc_html__('No', 'elementskit'), 'return_value' => 'yes', ] ); $this->add_control( 'ekit_audio_player_loop', [ 'label' => esc_html__('Loop', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'no', 'label_on' => esc_html__('Yes', 'elementskit'), 'label_off' => esc_html__('No', 'elementskit'), 'return_value' => 'yes', ] ); $this->add_control( 'ekit_audio_player_muted', [ 'label' => esc_html__('Muted', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'no', 'label_on' => esc_html__('Yes', 'elementskit'), 'label_off' => esc_html__('No', 'elementskit'), 'return_value' => 'yes', ] ); // Control Options $this->add_control( 'ekit_audio_player_control_options_heading', [ 'label' => esc_html__('Control Options', 'elementskit'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'ekit_audio_player_playpause', [ 'label' => esc_html__('Play Pause', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'label_on' => esc_html__('Yes', 'elementskit'), 'label_off' => esc_html__('No', 'elementskit'), 'return_value' => 'yes', ] ); $this->add_control( 'ekit_audio_player_progress', [ 'label' => esc_html__('Progress Bar', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'label_on' => esc_html__('Yes', 'elementskit'), 'label_off' => esc_html__('No', 'elementskit'), 'return_value' => 'yes', ] ); $this->add_control( 'ekit_audio_player_progress_handler', [ 'label' => esc_html__('Progress Handler', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'label_on' => esc_html__('Yes', 'elementskit'), 'label_off' => esc_html__('No', 'elementskit'), 'return_value' => 'yes', 'condition' => [ 'ekit_audio_player_progress' => ['yes'] ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total .mejs-time-handle::before' => 'content: "";', '{{WRAPPER}} .ekit-audio-player .mejs-controls .mejs-time-rail .mejs-time-total' => '--mejs-time-overflow: visible;', ] ] ); $this->add_control( 'ekit_audio_player_current', [ 'label' => esc_html__('Current Time', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'label_on' => esc_html__('Yes', 'elementskit'), 'label_off' => esc_html__('No', 'elementskit'), 'return_value' => 'yes', ] ); $this->add_control( 'ekit_audio_player_duration', [ 'label' => esc_html__('Total Duration', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'label_on' => esc_html__('Yes', 'elementskit'), 'label_off' => esc_html__('No', 'elementskit'), 'return_value' => 'yes', ] ); $this->add_control( 'ekit_audio_player_volume', [ 'label' => esc_html__('Volume Bar', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'label_on' => esc_html__('Yes', 'elementskit'), 'label_off' => esc_html__('No', 'elementskit'), ] ); $this->add_control( 'ekit_audio_player_hide_volume_touch_devices', [ 'label' => esc_html__('Hide Volume On Touch Devices', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'label_on' => esc_html__('Yes', 'elementskit'), 'label_off' => esc_html__('No', 'elementskit'), 'return_value' => 'yes', 'condition' => [ 'ekit_audio_player_volume' => ['yes'] ], ] ); $this->add_control( 'ekit_audio_player_volume_slider_layout', [ 'label' => esc_html__('Volume Slider Layout', 'elementskit'), 'type' => Controls_Manager::SELECT, 'default' => 'horizontal', 'options' => [ 'vertical' => esc_html__('Vertical', 'elementskit'), 'horizontal' => esc_html__('Horizontal', 'elementskit'), ], 'condition' => [ 'ekit_audio_player_volume' => ['yes'] ], ] ); $this->add_control( 'ekit_audio_player_start_volume', [ 'label' => esc_html__('Start Volume', 'elementskit'), 'description' => esc_html__('Initial volume when the player starts.', 'elementskit'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 1, 'step' => 0.1, ], ], 'default' => [ 'unit' => 'px', 'size' => 0.8, ], ] ); $this->end_controls_section(); // Player icon section $this->start_controls_section( 'ekit_audio_player_icon_section', [ 'label' => esc_html__('Player Icons', 'elementskit'), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'ekit_audio_player_play_icon', [ 'label' => esc_html__('Play Icon', 'elementskit'), 'type' => Controls_Manager::ICONS, 'label_block' => false, 'skin' => 'inline', 'exclude_inline_options' => ['svg'], 'default' => [ 'value' => 'icon icon-play-button', 'library' => 'ekiticons', ], 'recommended' => [ 'ekiticons' => [ 'play-button', 'play', ], 'fa-regular' => [ 'play-circle', ], 'fa-solid' => [ 'play', 'play-circle', ], ], ] ); $this->add_control( 'ekit_audio_player_pause_icon', [ 'label' => esc_html__('Pause Icon', 'elementskit'), 'type' => Controls_Manager::ICONS, 'label_block' => false, 'skin' => 'inline', 'exclude_inline_options' => ['svg'], 'default' => [ 'value' => 'icon icon-pause-dark', 'library' => 'ekiticons', ], 'recommended' => [ 'ekiticons' => [ 'pause-dark', 'pause', ], 'fa-regular' => [ 'pause-circle', ], 'fa-solid' => [ 'pause', 'pause-circle', ], ], ] ); $this->add_control( 'ekit_audio_player_replay_icon', [ 'label' => esc_html__('Replay Icon', 'elementskit'), 'type' => Controls_Manager::ICONS, 'label_block' => false, 'skin' => 'inline', 'exclude_inline_options' => ['svg'], 'default' => [ 'value' => 'icon icon-play-button', 'library' => 'ekiticons', ], 'recommended' => [ 'ekiticons' => [ 'reload', 'redo', 'play-button', 'play', ], 'fa-regular' => [ 'play-circle', ], 'fa-solid' => [ 'redo', 'redo-alt', 'play', 'play-circle', ], ], ] ); $this->add_control( 'ekit_audio_player_volume_unmute_icon', [ 'label' => esc_html__('Unmute Icon', 'elementskit'), 'type' => Controls_Manager::ICONS, 'label_block' => false, 'skin' => 'inline', 'exclude_inline_options' => ['svg'], 'default' => [ 'value' => 'icon icon-volume-high-dark', 'library' => 'ekiticons', ], 'recommended' => [ 'ekiticons' => [ 'volume-high-dark', ], 'fa-solid' => [ 'volume-up', ], ], ] ); $this->add_control( 'ekit_audio_player_volume_mute_icon', [ 'label' => esc_html__('Mute Icon', 'elementskit'), 'type' => Controls_Manager::ICONS, 'label_block' => false, 'skin' => 'inline', 'exclude_inline_options' => ['svg'], 'default' => [ 'value' => 'icon icon-volume-mute', 'library' => 'ekiticons', ], 'recommended' => [ 'ekiticons' => [ 'volume-mute', ], 'fa-solid' => [ 'volume-mute', ], ], ] ); $this->end_controls_section(); // Play pause button section $this->start_controls_section( 'ekit_audio_player_playpause_style_section', [ 'label' => esc_html__('Play Pause Button', 'elementskit'), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'ekit_audio_player_playpause' => ['yes'] ], ] ); $this->add_responsive_control( 'ekit_audio_player_playpause_font_size', [ 'label' => esc_html__('Size', 'elementskit'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px', 'em', 'rem'], 'range' => [ 'px' => [ 'min' => 1, 'max' => 100, ], ], 'default' => [ 'size' => 12, 'unit' => 'px', ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button button' => 'font-size: {{SIZE}}{{UNIT}};' ], ] ); $this->start_controls_tabs( 'ekit_audio_player_playpause_style_tabs' ); $this->start_controls_tab( 'ekit_audio_player_playpause_normal_style_tab', [ 'label' => esc_html__('Normal', 'elementskit'), ] ); $this->add_control( 'ekit_audio_player_playpause_color', [ 'label' => esc_html__('Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button button' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'ekit_audio_player_playpause_bg_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button button' => 'background: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'ekit_audio_player_playpause_box_shadow', 'label' => esc_html__('Box Shadow', 'elementskit'), 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button button', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'ekit_audio_player_playpause_border', 'label' => esc_html__('Border', 'elementskit'), 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button button', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'ekit_audio_player_playpause_hover_style_tab', [ 'label' => esc_html__('Hover', 'elementskit'), ] ); $this->add_control( 'ekit_audio_player_playpause_hover_color', [ 'label' => esc_html__('Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button button:hover' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'ekit_audio_player_playpause_bg_hover_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button button:hover' => 'background: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'ekit_audio_player_playpause_hover_box_shadow', 'label' => esc_html__('Box Shadow', 'elementskit'), 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button button:hover', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'ekit_audio_player_playpause_hover_border', 'label' => esc_html__('Border', 'elementskit'), 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button button:hover', ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_control( 'ekit_audio_player_playpause_border_radius', [ 'label' => esc_html__('Border Radius (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ], 'separator' => 'before', ] ); $this->add_responsive_control( 'ekit_audio_player_playpause_padding', [ 'label' => esc_html__('Padding (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px' ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'ekit_audio_player_playpause_margin', [ 'label' => esc_html__('Margin (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-playpause-button' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); // Progress bar section $this->start_controls_section( 'ekit_audio_player_progress_bar_style_section', [ 'label' => esc_html__('Progress Bar', 'elementskit'), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'ekit_audio_player_progress' => ['yes'] ], ] ); $this->add_responsive_control( 'ekit_audio_player_progress_bar_height', [ 'label' => esc_html__('Height', 'elementskit'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 1, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total' => 'height: {{SIZE}}{{UNIT}};' ], ] ); $this->add_control( 'ekit_audio_player_progress_bar_bg_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total' => 'background: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'ekit_audio_player_progress_bar_border', 'label' => esc_html__('Border', 'elementskit'), 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-time-total', ] ); $this->add_control( 'ekit_audio_player_progress_bar_border_radius', [ 'label' => esc_html__('Border Radius (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ], 'condition' => [ 'ekit_audio_player_progress_handler!' => ['yes'] ], ] ); $this->add_control( 'ekit_audio_player_progress_bar_loaded_heading', [ 'label' => esc_html__('Loaded Progress Bar', 'elementskit'), 'type' => Controls_Manager::HEADING, 'separator' => 'before' ] ); $this->add_control( 'ekit_audio_player_progress_bar_loaded_bg_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total .mejs-time-loaded' => 'background: {{VALUE}}', ], ] ); $this->add_control( 'ekit_audio_player_progress_bar_current_heading', [ 'label' => esc_html__('Current Progress Bar', 'elementskit'), 'type' => Controls_Manager::HEADING, 'separator' => 'before' ] ); $this->add_control( 'ekit_audio_player_progress_bar_current_bg_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total .mejs-time-current' => 'background: {{VALUE}}', ], ] ); $this->add_control( 'ekit_audio_player_progress_bar_current_border_radius', [ 'label' => esc_html__('Border Radius (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total .mejs-time-current' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ], 'condition' => [ 'ekit_audio_player_progress_handler!' => ['yes'] ], ] ); $this->add_control( 'ekit_audio_player_progress_bar_time_hover_heading', [ 'label' => esc_html__('Time Hover', 'elementskit'), 'type' => Controls_Manager::HEADING, 'separator' => 'before' ] ); $this->add_control( 'ekit_audio_player_progress_bar_time_hover_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => '#FFFFFF00', 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total .mejs-time-hovered' => 'background: {{VALUE}}', ], ] ); $this->end_controls_section(); // Progress handler section $this->start_controls_section( 'ekit_audio_player_progress_handler_style_section', [ 'label' => esc_html__('Progress Handler', 'elementskit'), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'ekit_audio_player_progress_handler' => ['yes'] ], ] ); $this->add_control( 'ekit_audio_player_progress_handler_bg_color', [ 'label' =>esc_html__( 'Background Color', 'elementskit' ), 'type' => Controls_Manager::COLOR, 'default' => '#0073aa', 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total .mejs-time-handle::before' => '--mejs-time-handle-bg: {{VALUE}};', ], ] ); $this->add_responsive_control( 'ekit_audio_player_progress_handler_width', [ 'label' => esc_html__( 'Width (px)', 'elementskit' ), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 500, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', 'size' => '15', ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total .mejs-time-handle::before' => '--mejs-time-handle-width: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'ekit_audio_player_progress_handler_height', [ 'label' => esc_html__( 'Height (px)', 'elementskit' ), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 500, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', 'size' => '15', ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total .mejs-time-handle::before' => '--mejs-time-handle-height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'ekit_audio_player_progress_handler_border', 'label' => esc_html__( 'Border', 'elementskit' ), 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-time-total .mejs-time-handle::before', ] ); $this->add_control( 'ekit_audio_player_progress_handler_border_radius', [ 'label' => esc_html__( 'Border Radius', 'elementskit' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'default' => [ 'top' => '100', 'right' => '100', 'bottom' => '100', 'left' => '100', 'unit' => '%', 'isLinked' => true, ], 'separator' => 'before', 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total .mejs-time-handle::before' => '--mejs-time-handle-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'ekit_audio_player_progress_handler_box_shadow', 'label' => esc_html__( 'Box Shadow', 'elementskit' ), 'fields_options' => [ 'box_shadow' => [ 'default' => [ 'color' => 'rgba(0, 0, 0, 0.32)', 'horizontal' => 0, 'vertical' => 1, 'blur' => 1, 'spread' => 0, ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time-total .mejs-time-handle::before' => '--mejs-time-handle-box-shadow: {{HORIZONTAL}}px {{VERTICAL}}px {{BLUR}}px {{SPREAD}}px {{COLOR}} {{box_shadow_position.VALUE}};', ] ], ], ] ); $this->end_controls_section(); // Time section $this->start_controls_section( 'ekit_audio_player_time_style_section', [ 'label' => esc_html__('Time', 'elementskit'), 'tab' => Controls_Manager::TAB_STYLE, 'conditions' => [ 'relation' => 'or', 'terms' => [ [ 'name' => 'ekit_audio_player_current', 'operator' => '==', 'value' => 'yes' ], [ 'name' => 'ekit_audio_player_duration', 'operator' => '==', 'value' => 'yes' ] ] ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'ekit_audio_player_time_typography', 'fields_options' => [ 'typography' => ['default' => 'yes'], 'font_size' => [ 'default' => [ 'size' => '12', 'unit' => 'px' ], 'label' => 'Font size', ], ], 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-time span', ] ); $this->add_control( 'ekit_audio_player_currenttime_heading', [ 'label' => esc_html__('Current Time', 'elementskit'), 'type' => Controls_Manager::HEADING, 'condition' => [ 'ekit_audio_player_current' => ['yes'] ], 'separator' => 'before', ] ); $this->add_control( 'ekit_audio_player_currenttime_color', [ 'label' => esc_html__('Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time.mejs-currenttime-container' => 'color: {{VALUE}}', ], 'condition' => [ 'ekit_audio_player_current' => ['yes'] ], ] ); $this->add_responsive_control( 'ekit_audio_player_currenttime_margin', [ 'label' => esc_html__('Margin (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time .mejs-currenttime' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'condition' => [ 'ekit_audio_player_current' => ['yes'] ], ] ); $this->add_control( 'ekit_audio_player_durationtime_heading', [ 'label' => esc_html__('Duration Time', 'elementskit'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', 'condition' => [ 'ekit_audio_player_duration' => ['yes'] ], ] ); $this->add_control( 'ekit_audio_player_durationtime_color', [ 'label' => esc_html__('Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time.mejs-duration-container' => 'color: {{VALUE}}', ], 'condition' => [ 'ekit_audio_player_duration' => ['yes'] ], ] ); $this->add_responsive_control( 'ekit_audio_player_durationtime_margin', [ 'label' => esc_html__('Margin (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-time .mejs-duration' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'condition' => [ 'ekit_audio_player_duration' => ['yes'] ], ] ); $this->end_controls_section(); // Volume Section $this->start_controls_section( 'ekit_audio_player_volume_style_section', [ 'label' => esc_html__('Volume', 'elementskit'), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'ekit_audio_player_volume' => ['yes'] ], ] ); $this->add_control( 'ekit_audio_player_volume_button_heading', [ 'label' => esc_html__('Volume Button', 'elementskit'), 'type' => Controls_Manager::HEADING, ] ); $this->add_responsive_control( 'ekit_audio_player_volume_size', [ 'label' => esc_html__('Size', 'elementskit'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px', 'em', 'rem'], 'range' => [ 'px' => [ 'min' => 1, 'max' => 100, ], ], 'default' => [ 'size' => 12, 'unit' => 'px', ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-volume-button button' => 'font-size: {{SIZE}}{{UNIT}};' ], ] ); $this->start_controls_tabs( 'ekit_audio_player_volume_btn_style_tabs' ); $this->start_controls_tab( 'ekit_audio_player_volume_btn_normal_style_tab', [ 'label' => esc_html__('Normal', 'elementskit'), ] ); $this->add_control( 'ekit_audio_player_volume_btn_color', [ 'label' => esc_html__('Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-volume-button button' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'ekit_audio_player_volume_btn_bg_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-volume-button button' => 'background: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'ekit_audio_player_volume_btn_box_shadow', 'label' => esc_html__('Box Shadow', 'elementskit'), 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-volume-button button', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'ekit_audio_player_volume_btn_border', 'label' => esc_html__('Border', 'elementskit'), 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-volume-button button', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'ekit_audio_player_volume_btn_hover_style_tab', [ 'label' => esc_html__('Hover', 'elementskit'), ] ); $this->add_control( 'ekit_audio_player_volume_btn_hover_color', [ 'label' => esc_html__('Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-volume-button button:hover' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'ekit_audio_player_volume_btn_bg_hover_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-volume-button button:hover' => 'background: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'ekit_audio_player_volume_btn_hover_box_shadow', 'label' => esc_html__('Box Shadow', 'elementskit'), 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-volume-button button:hover', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'ekit_audio_player_volume_btn_hover_border', 'label' => esc_html__('Border', 'elementskit'), 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-volume-button button:hover', ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_control( 'ekit_audio_player_volume_btn_border_radius', [ 'label' => esc_html__('Border Radius (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-volume-button button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ], 'separator' => 'before', ] ); $this->add_responsive_control( 'ekit_audio_player_volume_btn_padding', [ 'label' => esc_html__('Padding (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px' ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-volume-button button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'ekit_audio_player_volume_btn_margin', [ 'label' => esc_html__('Margin (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-volume-button' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); // Volume slider $this->add_control( 'ekit_audio_player_volume_slider_heading', [ 'label' => esc_html__('Volume Slider', 'elementskit'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', 'condition' => [ 'ekit_audio_player_volume_slider_layout' => ['vertical'] ], ] ); $this->add_control( 'ekit_audio_player_volume_slider_bg_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'condition' => [ 'ekit_audio_player_volume_slider_layout' => ['vertical'] ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-volume-slider' => 'background: {{VALUE}}', ], ] ); // Volume bar $this->add_control( 'ekit_audio_player_volume_bar_heading', [ 'label' => esc_html__('Volume Bar', 'elementskit'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_responsive_control( 'ekit_audio_player_volume_bar_width', [ 'label' => esc_html__('Width', 'elementskit'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 1, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player :is(.mejs-horizontal-volume-total, .mejs-volume-total)' => 'width: {{SIZE}}{{UNIT}};' ], 'condition' => [ 'ekit_audio_player_volume_slider_layout' => ['horizontal'] ], ] ); $this->add_responsive_control( 'ekit_audio_player_volume_bar_height', [ 'label' => esc_html__('Height', 'elementskit'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 1, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-horizontal-volume-total' => 'height: {{SIZE}}{{UNIT}};' ], 'condition' => [ 'ekit_audio_player_volume_slider_layout' => ['horizontal'] ], ] ); $this->add_control( 'ekit_audio_player_volume_bar_color', [ 'label' => esc_html__('Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player :is(.mejs-horizontal-volume-total, .mejs-volume-total)' => 'background: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'ekit_audio_player_volume_bar_border', 'label' => esc_html__('Border', 'elementskit'), 'selector' => '{{WRAPPER}} .ekit-audio-player .mejs-horizontal-volume-total', 'condition' => [ 'ekit_audio_player_volume_slider_layout' => ['horizontal'] ], ] ); $this->add_control( 'ekit_audio_player_volume_bar_border_radius', [ 'label' => esc_html__('Border Radius (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-horizontal-volume-total' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ], 'condition' => [ 'ekit_audio_player_volume_slider_layout' => ['horizontal'] ], 'condition' => [ 'ekit_audio_player_progress_handler!' => ['yes'] ], ] ); // Current volume bar $this->add_control( 'ekit_audio_player_current_volume_bar_heading', [ 'label' => esc_html__('Current Volume Bar', 'elementskit'), 'type' => Controls_Manager::HEADING, 'separator' => 'before' ] ); $this->add_control( 'ekit_audio_player_current_volume_bar_color', [ 'label' => esc_html__('Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player :is(.mejs-horizontal-volume-current, .mejs-volume-current)' => 'background: {{VALUE}}', ], ] ); $this->add_control( 'ekit_audio_player_current_volume_bar_border_radius', [ 'label' => esc_html__('Border Radius (px)', 'elementskit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-horizontal-volume-total .mejs-horizontal-volume-current' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ], 'condition' => [ 'ekit_audio_player_volume_slider_layout' => ['horizontal'], 'ekit_audio_player_progress_handler!' => ['yes'] ], ] ); // Current volume bar $this->add_control( 'ekit_audio_player_volume_handle_heading', [ 'label' => esc_html__('Volume Handle', 'elementskit'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', 'condition' => [ 'ekit_audio_player_volume_slider_layout' => ['vertical'] ], ] ); $this->add_control( 'ekit_audio_player_volume_handle_color', [ 'label' => esc_html__('Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ekit-audio-player .mejs-volume-handle' => 'background: {{VALUE}}', ], 'condition' => [ 'ekit_audio_player_volume_slider_layout' => ['vertical'] ], ] ); $this->end_controls_section(); } protected function render() { echo '<div class="ekit-wid-con">'; $this->render_raw(); echo '</div>'; } protected function get_icon_html( array $icon, array $attributes = [ 'aria-hidden' => 'true' ], $tag = 'i' ) { /** * When the library value is svg it means that it's a SVG media attachment uploaded by the user. * Otherwise, it's the name of the font family that the icon belongs to. */ if ( 'svg' === $icon['library'] ) { $output =\Elementor\Icons_Manager::render_uploaded_svg_icon( $icon['value'] ); } else { $output = \Elementor\Icons_Manager::render_font_icon( $icon, $attributes, $tag ); } return $output; } protected function render_raw() { $settings = $this->get_settings_for_display(); extract($settings); // set audio url $audio_url = ''; if($ekit_audio_player_source === 'self') { $audio_url = !empty($ekit_audio_player_self_url['url']) ? $ekit_audio_player_self_url['url'] : ''; } elseif($ekit_audio_player_source === 'external') { $audio_url = $ekit_audio_player_external_url; } // set player features $features = []; ($ekit_audio_player_playpause === 'yes') && array_push($features, 'playpause'); ($ekit_audio_player_current === 'yes') && array_push($features, 'current'); ($ekit_audio_player_progress === 'yes') && array_push($features, 'progress'); ($ekit_audio_player_duration === 'yes') && array_push($features, 'duration'); ($ekit_audio_player_volume === 'yes') && array_push($features, 'volume'); // set settings data attributes $data_settings['features'] = !empty($features) ? $features : ['playpause']; // playpause, current, progress, duration, volume $data_settings['hideVolumeOnTouchDevices'] = ($ekit_audio_player_hide_volume_touch_devices === 'yes') ? 'true' : 'false'; $data_settings['audioVolume'] = (!empty($ekit_audio_player_volume_slider_layout)) ? $ekit_audio_player_volume_slider_layout: 'horizontal'; $data_settings['startVolume'] = (!empty($ekit_audio_player_start_volume['size'])) ? $ekit_audio_player_start_volume['size']: 0.8; $data_settings['playerIcons'] = [ 'play' => !empty($ekit_audio_player_play_icon['value']) ? $ekit_audio_player_play_icon['value'] : 'icon icon-play-button', 'pause' => !empty($ekit_audio_player_pause_icon['value']) ? $ekit_audio_player_pause_icon['value'] : 'icon icon-pause-dark', 'replay' => !empty($ekit_audio_player_replay_icon['value']) ? $ekit_audio_player_replay_icon['value'] : 'icon icon-reload', 'unmute' => !empty($ekit_audio_player_volume_unmute_icon['value']) ? $ekit_audio_player_volume_unmute_icon['value'] : 'icon icon-volume-high-dark', 'mute' => !empty($ekit_audio_player_volume_mute_icon['value']) ? $ekit_audio_player_volume_mute_icon['value'] : 'icon icon-volume-mute', ]; // registering audio player wrapper default attributes $this->add_render_attribute( 'wrapper', [ 'class' => 'ekit-audio-player', 'data-audio-settings' => esc_attr(json_encode($data_settings)), ] ); // registering audio player default attributes. $this->add_render_attribute( 'player', [ 'class' => 'ekit-player', 'src' => esc_url($audio_url), 'preload' => 'none', 'controls' => '', 'poster' => '', 'width' => '100%', ] ); // audio options if (!empty($ekit_audio_player_autoplay) && $ekit_audio_player_autoplay === 'yes') { $this->add_render_attribute('player', 'autoplay', ''); } if (!empty($ekit_audio_player_loop) && $ekit_audio_player_loop === 'yes') { $this->add_render_attribute('player', 'loop', ''); } if (!empty($ekit_audio_player_muted) && $ekit_audio_player_muted === 'yes') { $this->add_render_attribute('player', 'muted', ''); } $this->add_render_attribute('player', 'hidden', ''); // final output if(!empty($audio_url)) : ?> <div <?php $this->print_render_attribute_string('wrapper'); ?>> <audio <?php $this->print_render_attribute_string('player'); ?>> <?php echo esc_html__('Your browser does not support the audio tag.', 'elementskit'); ?> </audio> </div> <?php else : ?> <div class="elemenetskit-alert-info"> <?php echo esc_html__('Upload/Select an audio or use external audio url to work this widget.', 'elementskit'); ?> </div> <?php endif; } }
[+]
..
[-] audio-player.php
[edit]
[-] .htaccess
[edit]
[-] audio-player-handler.php
[edit]