Support chromeless Vimeo via MEjs:

* Bump MediaElement script loader versions to 2.16.2 - missed in [30634], oops!
* Add `Froogaloop` to `js/mediaelement` scripts for Vimeo
* Check for Vimeo in the same locations that YouTube is checked
* Dynamically load Froogaloop script in admin when editing a TinyMCE view
* Edit MediaElement to call `mejs.$.extend` instead of `$.extend` in `mejs.HtmlMediaElementShim.createPlugin()`, since `$` is not available via WP's jQuery (I will report this upstream):
https://github.com/johndyer/mediaelement/blob/6f9a78e008de2de796a1797077a74a94763320f9/src/js/me-shim.js#L631

Fixes #29267.


git-svn-id: https://develop.svn.wordpress.org/trunk@31016 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Scott Taylor
2014-12-31 20:40:05 +00:00
parent bd03b2ead8
commit be8211beac
6 changed files with 54 additions and 16 deletions
+13 -2
View File
@@ -1754,16 +1754,25 @@ function wp_video_shortcode( $attr, $content = '' ) {
}
}
$is_vimeo = $is_youtube = false;
$yt_pattern = '#^https?://(?:www\.)?(?:youtube\.com/watch|youtu\.be/)#';
$vimeo_pattern = '#^https?://(.+\.)?vimeo\.com/.*#';
$primary = false;
if ( ! empty( $atts['src'] ) ) {
if ( ! preg_match( $yt_pattern, $atts['src'] ) ) {
$is_vimeo = ( preg_match( $vimeo_pattern, $atts['src'] ) );
$is_youtube = ( preg_match( $yt_pattern, $atts['src'] ) );
if ( ! $is_youtube && ! $is_vimeo ) {
$type = wp_check_filetype( $atts['src'], wp_get_mime_types() );
if ( ! in_array( strtolower( $type['ext'] ), $default_types ) ) {
return sprintf( '<a class="wp-embedded-video" href="%s">%s</a>', esc_url( $atts['src'] ), esc_html( $atts['src'] ) );
}
}
if ( $is_vimeo ) {
wp_enqueue_script( 'froogaloop' );
}
$primary = true;
array_unshift( $default_types, 'src' );
} else {
@@ -1848,8 +1857,10 @@ function wp_video_shortcode( $attr, $content = '' ) {
if ( empty( $fileurl ) ) {
$fileurl = $atts[ $fallback ];
}
if ( 'src' === $fallback && preg_match( $yt_pattern, $atts['src'] ) ) {
if ( 'src' === $fallback && $is_youtube ) {
$type = array( 'type' => 'video/youtube' );
} elseif ( 'src' === $fallback && $is_vimeo ) {
$type = array( 'type' => 'video/vimeo' );
} else {
$type = wp_check_filetype( $atts[ $fallback ], wp_get_mime_types() );
}