ldc-groupe/content/plugins/wpseo-video/post-analysis/supported-plugins/class-plugin-youtube-embed-plus.php
Vincent BRIDIER 134507db43 - Backup DEV
- Add DotEnv
- Fix Bato
- Etc..
2020-05-04 15:59:02 +02:00

89 lines
2.5 KiB
PHP

<?php
/**
* Yoast SEO Video plugin file.
*
* @package Internals
* @since 1.8.0
* @version 1.8.0
*/
// Avoid direct calls to this file.
if ( ! class_exists( 'WPSEO_Video_Sitemap' ) ) {
header( 'Status: 403 Forbidden' );
header( 'HTTP/1.1 403 Forbidden' );
exit();
}
/**
* Add support for the YouTube Embed Plus plugin
*
* @todo We may want to remove their og tags from the main class:
* remove_action( 'wp_head', array( 'YouTubePrefs', 'do_ogvideo' ) );
*
* @link https://wordpress.org/plugins/youtube-embed-plus/
*
* {@internal Last update: August 2014 based upon v 8.7.}
*/
if ( ! class_exists( 'WPSEO_Video_Plugin_Youtube_Embed_Plus' ) ) {
/**
* Class WPSEO_Video_Plugin_Youtube_Embed_Plus
*/
class WPSEO_Video_Plugin_Youtube_Embed_Plus extends WPSEO_Video_Supported_Plugin {
/**
* Conditionally add plugin features to analyse for video content
*/
public function __construct() {
if ( class_exists( 'YouTubePrefs' ) ) {
$this->shortcodes[] = 'embedyt';
}
}
/**
* Analyse a video shortcode from the plugin for usable video information
*
* @param string $full_shortcode Full shortcode as found in the post content.
* @param string $sc Shortcode found.
* @param array $atts Shortcode attributes - already decoded if needed.
* @param string $content The shortcode content, i.e. the bit between [sc]content[/sc].
*
* @return array An array with the usable information found or else an empty array.
*/
public function get_info_from_shortcode( $full_shortcode, $sc, $atts = array(), $content = '' ) {
$vid = array();
if ( isset( $content ) && ( is_string( $content ) && $content !== '' ) ) {
$vid['type'] = 'youtube';
$list = explode( '&', $content );
$vid['url'] = $list[0];
unset( $list[0] );
if ( $list !== array() ) {
// Retrieve width/height.
foreach ( $list as $key => $value ) {
$value = explode( '=', $value );
if ( in_array( $value[0], array( 'width', 'height', 'w', 'h' ), true ) ) {
if ( ! empty( $value[1] ) ) {
$atts[ $value[0] ] = $value[1];
}
unset( $list[ $key ] );
}
}
$vid = $this->maybe_get_dimensions( $vid, $atts, true );
/*
* Any attributes left over are partly real url parts, partly plugin settings, let's
* just put them back on...
*/
if ( $list !== array() ) {
$vid['url'] = $vid['url'] . '&' . implode( '&', $list );
}
}
}
return $vid;
}
}
}