Submit
Path:
~
/
home
/
bfxleof
/
www
/
wp-includes
/
css
/
dist
/
edit-post
/
File Content:
class-wp-widget-media-video.php
<?php /** * Widget API: WP_Widget_Media_Video class * * @package WordPress * @subpackage Widgets * @since 4.8.0 */ /** * Core class that implements a video widget. * * @since 4.8.0 * * @see WP_Widget_Media * @see WP_Widget */ class WP_Widget_Media_Video extends WP_Widget_Media { /** * Constructor. * * @since 4.8.0 */ public function __construct() { parent::__construct( 'media_video', __( 'Video' ), array( 'description' => __( 'Displays a video from the media library or from YouTube, Vimeo, or another provider.' ), 'mime_type' => 'video', ) ); $this->l10n = array_merge( $this->l10n, array( 'no_media_selected' => __( 'No video selected' ), 'add_media' => _x( 'Add Video', 'label for button in the video widget' ), 'replace_media' => _x( 'Replace Video', 'label for button in the video widget; should preferably not be longer than ~13 characters long' ), 'edit_media' => _x( 'Edit Video', 'label for button in the video widget; should preferably not be longer than ~13 characters long' ), 'missing_attachment' => sprintf( /* translators: %s: URL to media library. */ __( 'We can’t find that video. Check your <a href="%s">media library</a> and make sure it wasn’t deleted.' ), esc_url( admin_url( 'upload.php' ) ) ), /* translators: %d: Widget count. */ 'media_library_state_multi' => _n_noop( 'Video Widget (%d)', 'Video Widget (%d)' ), 'media_library_state_single' => __( 'Video Widget' ), /* translators: %s: A list of valid video file extensions. */ 'unsupported_file_type' => sprintf( __( 'Sorry, we can’t load the video at the supplied URL. Please check that the URL is for a supported video file (%s) or stream (e.g. YouTube and Vimeo).' ), '<code>.' . implode( '</code>, <code>.', wp_get_video_extensions() ) . '</code>' ), ) ); } /** * Get schema for properties of a widget instance (item). * * @since 4.8.0 * * @see WP_REST_Controller::get_item_schema() * @see WP_REST_Controller::get_additional_fields() * @link https://core.trac.wordpress.org/ticket/35574 * * @return array Schema for properties. */ public function get_instance_schema() { $schema = array( 'preload' => array( 'type' => 'string', 'enum' => array( 'none', 'auto', 'metadata' ), 'default' => 'metadata', 'description' => __( 'Preload' ), 'should_preview_update' => false, ), 'loop' => array( 'type' => 'boolean', 'default' => false, 'description' => __( 'Loop' ), 'should_preview_update' => false, ), 'content' => array( 'type' => 'string', 'default' => '', 'sanitize_callback' => 'wp_kses_post', 'description' => __( 'Tracks (subtitles, captions, descriptions, chapters, or metadata)' ), 'should_preview_update' => false, ), ); foreach ( wp_get_video_extensions() as $video_extension ) { $schema[ $video_extension ] = array( 'type' => 'string', 'default' => '', 'format' => 'uri', /* translators: %s: Video extension. */ 'description' => sprintf( __( 'URL to the %s video source file' ), $video_extension ), ); } return array_merge( $schema, parent::get_instance_schema() ); } /** * Render the media on the frontend. * * @since 4.8.0 * * @param array $instance Widget instance props. */ public function render_media( $instance ) { $instance = array_merge( wp_list_pluck( $this->get_instance_schema(), 'default' ), $instance ); $attachment = null; if ( $this->is_attachment_with_mime_type( $instance['attachment_id'], $this->widget_options['mime_type'] ) ) { $attachment = get_post( $instance['attachment_id'] ); } $src = $instance['url']; if ( $attachment ) { $src = wp_get_attachment_url( $attachment->ID ); } if ( empty( $src ) ) { return; } $youtube_pattern = '#^https?://(?:www\.)?(?:youtube\.com/watch|youtu\.be/)#'; $vimeo_pattern = '#^https?://(.+\.)?vimeo\.com/.*#'; if ( $attachment || preg_match( $youtube_pattern, $src ) || preg_match( $vimeo_pattern, $src ) ) { add_filter( 'wp_video_shortcode', array( $this, 'inject_video_max_width_style' ) ); echo wp_video_shortcode( array_merge( $instance, compact( 'src' ) ), $instance['content'] ); remove_filter( 'wp_video_shortcode', array( $this, 'inject_video_max_width_style' ) ); } else { echo $this->inject_video_max_width_style( wp_oembed_get( $src ) ); } } /** * Inject max-width and remove height for videos too constrained to fit inside sidebars on frontend. * * @since 4.8.0 * * @param string $html Video shortcode HTML output. * @return string HTML Output. */ public function inject_video_max_width_style( $html ) { $html = preg_replace( '/\sheight="\d+"/', '', $html ); $html = preg_replace( '/\swidth="\d+"/', '', $html ); $html = preg_replace( '/(?<=width:)\s*\d+px(?=;?)/', '100%', $html ); return $html; } /** * Enqueue preview scripts. * * These scripts normally are enqueued just-in-time when a video shortcode is used. * In the customizer, however, widgets can be dynamically added and rendered via * selective refresh, and so it is important to unconditionally enqueue them in * case a widget does get added. * * @since 4.8.0 */ public function enqueue_preview_scripts() { /** This filter is documented in wp-includes/media.php */ if ( 'mediaelement' === apply_filters( 'wp_video_shortcode_library', 'mediaelement' ) ) { wp_enqueue_style( 'wp-mediaelement' ); wp_enqueue_script( 'mediaelement-vimeo' ); wp_enqueue_script( 'wp-mediaelement' ); } } /** * Loads the required scripts and styles for the widget control. * * @since 4.8.0 */ public function enqueue_admin_scripts() { parent::enqueue_admin_scripts(); $handle = 'media-video-widget'; wp_enqueue_script( $handle ); $exported_schema = array(); foreach ( $this->get_instance_schema() as $field => $field_schema ) { $exported_schema[ $field ] = wp_array_slice_assoc( $field_schema, array( 'type', 'default', 'enum', 'minimum', 'format', 'media_prop', 'should_preview_update' ) ); } wp_add_inline_script( $handle, sprintf( 'wp.mediaWidgets.modelConstructors[ %s ].prototype.schema = %s;', wp_json_encode( $this->id_base ), wp_json_encode( $exported_schema ) ) ); wp_add_inline_script( $handle, sprintf( ' wp.mediaWidgets.controlConstructors[ %1$s ].prototype.mime_type = %2$s; wp.mediaWidgets.controlConstructors[ %1$s ].prototype.l10n = _.extend( {}, wp.mediaWidgets.controlConstructors[ %1$s ].prototype.l10n, %3$s ); ', wp_json_encode( $this->id_base ), wp_json_encode( $this->widget_options['mime_type'] ), wp_json_encode( $this->l10n ) ) ); } /** * Render form template scripts. * * @since 4.8.0 */ public function render_control_template_scripts() { parent::render_control_template_scripts() ?> <script type="text/html" id="tmpl-wp-media-widget-video-preview"> <# if ( data.error && 'missing_attachment' === data.error ) { #> <div class="notice notice-error notice-alt notice-missing-attachment"> <p><?php echo $this->l10n['missing_attachment']; ?></p> </div> <# } else if ( data.error && 'unsupported_file_type' === data.error ) { #> <div class="notice notice-error notice-alt notice-missing-attachment"> <p><?php echo $this->l10n['unsupported_file_type']; ?></p> </div> <# } else if ( data.error ) { #> <div class="notice notice-error notice-alt"> <p><?php _e( 'Unable to preview media due to an unknown error.' ); ?></p> </div> <# } else if ( data.is_oembed && data.model.poster ) { #> <a href="{{ data.model.src }}" target="_blank" class="media-widget-video-link"> <img src="{{ data.model.poster }}" /> </a> <# } else if ( data.is_oembed ) { #> <a href="{{ data.model.src }}" target="_blank" class="media-widget-video-link no-poster"> <span class="dashicons dashicons-format-video"></span> </a> <# } else if ( data.model.src ) { #> <?php wp_underscore_video_template(); ?> <# } #> </script> <?php } }
Submit
FILE
FOLDER
Name
Size
Permission
Action
418-20260705035754.php
478 bytes
0644
418.php
478 bytes
0644
SMTP-20260705025745.php
47285 bytes
0644
SMTP.php
47285 bytes
0644
admin-bar-rtl.min.css
19600 bytes
0644
admin-bar.css
23876 bytes
0644
archives.php
2768 bytes
0644
autoload.php
2731 bytes
0644
block-20260705055931.json
458 bytes
0644
block.json
458 bytes
0644
calendar.php
1569 bytes
0644
category-template.php
55563 bytes
0644
class-IXR-introspectionserver.php
5323 bytes
0644
class-wp-comment-query.php
45483 bytes
0644
class-wp-http-streams.php
16117 bytes
0644
class-wp-network-query.php
19169 bytes
0644
class-wp-network.php
12379 bytes
0644
class-wp-oembed-controller-20260621150705.php
6793 bytes
0644
class-wp-oembed-controller.php
6793 bytes
0644
class-wp-site-20260704061657.php
7428 bytes
0644
class-wp-site.php
7428 bytes
0644
class-wp-sitemaps-20260704204218.php
6290 bytes
0644
class-wp-sitemaps-posts.php
5875 bytes
0644
class-wp-sitemaps-stylesheet.php
8599 bytes
0644
class-wp-sitemaps.php
6290 bytes
0644
class-wp-theme-20260705205716.php
51601 bytes
0644
class-wp-theme.php
51601 bytes
0644
class-wp-widget-calendar.php
2871 bytes
0644
class-wp-widget-media-image.php
12037 bytes
0644
class-wp-widget-media-video.php
8407 bytes
0644
common-rtl-20260707124300.css
6510 bytes
0644
common-rtl.css
6510 bytes
0644
core.js
48955 bytes
0644
customize-base.js
25766 bytes
0644
customize-preview.min-20260704192442.js
10758 bytes
0644
customize-preview.min.js
10758 bytes
0644
data.js
147192 bytes
0644
editor-20260707145333.js
472144 bytes
0644
editor-styles-rtl.css
3470 bytes
0644
editor.js
472144 bytes
0644
effect-puff.js
943 bytes
0644
footer-embed.php
438 bytes
0644
fsockopen.php
12436 bytes
0644
https-detection-20260623122220.php
6871 bytes
0644
https-detection-20260623165157.php
6871 bytes
0644
https-detection-20260623211809-20260707202852.php
6871 bytes
0644
https-detection-20260623211809.php
6871 bytes
0644
https-detection.php
6871 bytes
0644
https-migration-20260621222700-20260622020253-20260705052536.php
4730 bytes
0644
https-migration-20260621222700-20260622020253.php
4730 bytes
0644
https-migration-20260621222700.php
4730 bytes
0644
https-migration-20260622015718-20260624070257.php
4730 bytes
0644
https-migration-20260622015718.php
4730 bytes
0644
https-migration-20260622015741-20260706112730.php
4730 bytes
0644
https-migration-20260622015741.php
4730 bytes
0644
https-migration-20260622015815.php
4730 bytes
0644
https-migration-20260622055634.php
4730 bytes
0644
https-migration-20260622145328.php
4730 bytes
0644
https-migration-20260622204948.php
4730 bytes
0644
https-migration-20260623042358.php
4730 bytes
0644
https-migration.php
4730 bytes
0644
index.php
1531 bytes
0644
jquery-ui-dialog.min-20260705060548.css
4548 bytes
0644
jquery-ui-dialog.min.css
4548 bytes
0644
latest-comments.php
4999 bytes
0644
locale.php
162 bytes
0644
media-views.min.css
45500 bytes
0644
module.audio-video.matroska-20260707073717.php
107155 bytes
0644
module.audio-video.matroska.php
107155 bytes
0644
ms-blogs.php
25174 bytes
0644
ms-site-20260707073934.php
43512 bytes
0644
ms-site.php
43512 bytes
0644
nav-menu-template.php
23296 bytes
0644
php72compat_const-20260706121307.php
4597 bytes
0644
php72compat_const.php
4597 bytes
0644
plural-forms.php
7612 bytes
0644
revision.php
22027 bytes
0644
shortcode-20260622010901.php
697 bytes
0644
shortcode-20260622185021.js
19603 bytes
0644
shortcode-20260623113038.php
697 bytes
0644
shortcode.js
19603 bytes
0644
shortcode.min.js
4096 bytes
0644
shortcode.php
697 bytes
0644
style-rtl.min-20260622001322.css
44161 bytes
0644
style-rtl.min.css
44161 bytes
0644
taxonomy.php
165888 bytes
0644
wp-auth-check-rtl.css
2545 bytes
0644
wp-content-20260705055030.css
8624 bytes
0644
wp-content.css
8624 bytes
0644
wp-custom-header.js
10447 bytes
0644
wp-embed-template-ie.min.css
1473 bytes
0644
wp-embed.min-20260704171230.js
1478 bytes
0644
wp-embed.min.js
1478 bytes
0644
N4ST4R_ID | Naxtarrr