name = esc_html__( 'Video', 'et_builder' ); $this->slug = 'et_pb_video_slider_item'; $this->fb_support = true; $this->type = 'child'; $this->custom_css_tab = false; $this->child_title_var = 'admin_title'; $this->advanced_setting_title_text = esc_html__( 'New Video', 'et_builder' ); $this->settings_text = esc_html__( 'Video Settings', 'et_builder' ); $this->whitelisted_fields = array( 'admin_title', 'src', 'src_webm', 'image_src', 'background_layout', ); $this->options_toggles = array( 'general' => array( 'toggles' => array( 'main_content' => esc_html__( 'Video', 'et_builder' ), 'overlay' => esc_html__( 'Overlay', 'et_builder' ), 'admin_label' => esc_html__( 'Admin Label', 'et_builder' ), ), ), 'advanced' => array( 'toggles' => array( 'arrows_color' => esc_html__( 'Arrows Color', 'et_builder' ), ), ), ); $this->advanced_options = array( 'filters' => array(), ); $this->fields_defaults = array( 'background_layout' => array( 'dark' ), ); } function get_fields() { $fields = array( 'admin_title' => array( 'label' => esc_html__( 'Admin Label', 'et_builder' ), 'type' => 'text', 'description' => esc_html__( 'This will change the label of the video in the builder for easy identification.', 'et_builder' ), 'toggle_slug' => 'admin_label', ), 'src' => array( 'label' => esc_html__( 'Video MP4/URL', 'et_builder' ), 'type' => 'upload', 'option_category' => 'basic_option', 'data_type' => 'video', 'upload_button_text' => esc_attr__( 'Upload a video', 'et_builder' ), 'choose_text' => esc_attr__( 'Choose a Video MP4 File', 'et_builder' ), 'update_text' => esc_attr__( 'Set As Video', 'et_builder' ), 'description' => esc_html__( 'Upload your desired video in .MP4 format, or type in the URL to the video you would like to display', 'et_builder' ), 'toggle_slug' => 'main_content', 'computed_affects' => array( '__get_oembed', '__oembed_thumbnail', '__is_oembed', ), ), 'src_webm' => array( 'label' => esc_html__( 'Video Webm', 'et_builder' ), 'type' => 'upload', 'option_category' => 'basic_option', 'data_type' => 'video', 'upload_button_text' => esc_attr__( 'Upload a video', 'et_builder' ), 'choose_text' => esc_attr__( 'Choose a Video WEBM File', 'et_builder' ), 'update_text' => esc_attr__( 'Set As Video', 'et_builder' ), 'description' => esc_html__( 'Upload the .WEBM version of your video here. All uploaded videos should be in both .MP4 .WEBM formats to ensure maximum compatibility in all browsers.', 'et_builder' ), 'toggle_slug' => 'main_content', ), 'image_src' => array( 'label' => esc_html__( 'Image Overlay URL', 'et_builder' ), 'type' => 'upload', 'option_category' => 'basic_option', 'upload_button_text' => esc_attr__( 'Upload an image', 'et_builder' ), 'choose_text' => esc_attr__( 'Choose an Image', 'et_builder' ), 'update_text' => esc_attr__( 'Set As Image', 'et_builder' ), 'additional_button' => sprintf( '', esc_attr__( 'Generate From Video', 'et_builder' ) ), 'additional_button_type' => 'generate_image_url_from_video', 'additional_button_attrs' => array( 'video_source' => 'src', ), 'classes' => 'et_pb_video_overlay', 'description' => esc_html__( 'Upload your desired image, or type in the URL to the image you would like to display over your video. You can also generate a still image from your video.', 'et_builder' ), 'toggle_slug' => 'overlay', ), 'background_layout' => array( 'label' => esc_html__( 'Slider Arrows Color', 'et_builder' ), 'type' => 'select', 'option_category' => 'color_option', 'options' => array( 'dark' => esc_html__( 'Light', 'et_builder' ), 'light' => esc_html__( 'Dark', 'et_builder' ), ), 'tab_slug' => 'advanced', 'toggle_slug' => 'arrows_color', 'description' => esc_html__( 'This setting will make your slider arrows either light or dark in color.', 'et_builder' ), ), '__oembed_thumbnail' => array( 'type' => 'computed', 'computed_callback' => array( 'ET_Builder_Module_Video_Slider_Item', 'get_oembed_thumbnail' ), 'computed_depends_on' => array( 'src', 'image_src', ), 'computed_minimum' => array( 'src', ), ), '__is_oembed' => array( 'type' => 'computed', 'computed_callback' => array( 'ET_Builder_Module_Video_Slider_Item', 'is_oembed' ), 'computed_depends_on' => array( 'src', ), 'computed_minimum' => array( 'src', ), ), '__get_oembed' => array( 'type' => 'computed', 'computed_callback' => array( 'ET_Builder_Module_Video_Slider_Item', 'get_oembed' ), 'computed_depends_on' => array( 'src', ), 'computed_minimum' => array( 'src', ), ), ); return $fields; } static function get_oembed_thumbnail( $args = array(), $conditional_tags = array(), $current_page = array() ) { $defaults = array( 'image_src' => '', 'src' => '', ); $args = wp_parse_args( $args, $defaults ); if ( '' !== $args['image_src'] ) { return et_pb_set_video_oembed_thumbnail_resolution( $args['image_src'], 'high' ); } else { if ( false !== et_pb_check_oembed_provider( esc_url( $args['src'] ) ) ) { add_filter( 'oembed_dataparse', 'et_pb_video_oembed_data_parse', 10, 3 ); // Save thumbnail $thumbnail_track_output = wp_oembed_get( esc_url( $args['src'] ) ); // Set back to normal remove_filter( 'oembed_dataparse', 'et_pb_video_oembed_data_parse', 10, 3 ); return $thumbnail_track_output; } else { return ''; } } } static function is_oembed( $args = array(), $conditional_tags = array(), $current_page = array() ){ $defaults = array( 'src' ); $args = wp_parse_args( $args, $defaults ); return et_pb_check_oembed_provider( esc_url( $args['src'] ) ); } static function get_oembed( $args = array(), $conditional_tags = array(), $current_page = array() ) { $defaults = array( 'src' => '', ); $args = wp_parse_args( $args, $defaults ); // Save thumbnail $thumbnail_track_output = wp_oembed_get( esc_url( $args['src'] ) ); return $thumbnail_track_output; } function shortcode_callback( $atts, $content = null, $function_name ) { $src = $this->shortcode_atts['src']; $src_webm = $this->shortcode_atts['src_webm']; $image_src = $this->shortcode_atts['image_src']; $background_layout = $this->shortcode_atts['background_layout']; $video_src = ''; global $et_pb_slider_image_overlay; $class = ET_Builder_Element::add_module_order_class( '', $function_name ); $class .= " et_pb_bg_layout_{$background_layout}"; if ( '' !== $image_src ) { $image_overlay_output = et_pb_set_video_oembed_thumbnail_resolution( $image_src, 'high' ); $thumbnail_track_output = $image_src; } else { $image_overlay_output = ''; if ( false !== et_pb_check_oembed_provider( esc_url( $src ) ) ) { add_filter( 'oembed_dataparse', 'et_pb_video_oembed_data_parse', 10, 3 ); // Save thumbnail $thumbnail_track_output = wp_oembed_get( esc_url( $src ) ); // Set back to normal remove_filter( 'oembed_dataparse', 'et_pb_video_oembed_data_parse', 10, 3 ); } else { $thumbnail_track_output = ''; } } if ( '' !== $src ) { if ( false !== et_pb_check_oembed_provider( esc_url( $src ) ) ) { $video_src = wp_oembed_get( esc_url( $src ) ); } else { $video_src = sprintf( ' ', ( '' !== $src ? sprintf( '', esc_url( $src ) ) : '' ), ( '' !== $src_webm ? sprintf( '', esc_url( $src_webm ) ) : '' ) ); wp_enqueue_style( 'wp-mediaelement' ); wp_enqueue_script( 'wp-mediaelement' ); } } $video_output = sprintf( '