����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
/**
* This class handles video related functionality.
*
* Class SiteOrigin_Video
*/
class SiteOrigin_Video {
var $src;
/**
* Check whether it's possible to oEmbed by testing if a provider URL can be obtained.
*
* @param string $url The URL of the video to be embedded.
*
* @return bool Whether it's possible to embed this video.
*/
function can_oembed( $url ) {
$wp_oembed = new WP_oEmbed();
$provider = $wp_oembed->get_provider( $url, array( 'discover' => false ) );
return ! empty( $provider );
}
/**
* Gets a video source embed
*
* @param string $src The URL of the video.
* @param bool $autoplay Whether to start playing the video automatically once loaded. ( YouTube only )
* @param bool $related_videos Deprecated.
*
* @return false|mixed|null|string|string[]
*/
function get_video_oembed( $src, $autoplay = false, $related_videos = false, $loop = false, $js_api = false ) {
if ( empty( $src ) ) {
return '';
}
global $content_width;
$video_width = ! empty( $content_width ) ? $content_width : 640;
$hash = md5( serialize( array(
'src' => $src,
'width' => $video_width,
'autoplay' => $autoplay,
'loop' => $loop,
) ) );
// Standardize YouTube video URL.
if ( strpos( $src, 'youtube.com/watch' ) !== false ) {
$src_parse = parse_url( $src, PHP_URL_QUERY );
// Check if the URL was encoded.
if ( strpos( $src_parse, '&' ) !== false ) {
$src_parse = str_replace( '&', '&', $src_parse );
}
parse_str( $src_parse, $src_parse );
$this->src = ! empty( $src_parse['v'] ) ? 'https://www.youtube.com/watch?v='. $src_parse['v'] : $src;
} else {
$this->src = $src;
}
$html = get_transient( 'sow-vid-embed[' . $hash . ']' );
if ( empty( $html ) ) {
$html = wp_oembed_get( $this->src, array( 'width' => $video_width ) );
if ( $autoplay ) {
$html = preg_replace_callback( '/src=["\'](http[^"\']*)["\']/', array(
$this,
'autoplay_callback'
), $html );
}
if ( $loop ) {
$html = preg_replace_callback( '/src=["\'](http[^"\']*)["\']/', array(
$this,
'loop_callback'
), $html );
}
if ( $js_api ) {
$html = preg_replace_callback( '/src=["\'](http[^"\']*)["\']/', array(
$this,
'js_api_callback'
), $html );
}
if ( ! empty( $html ) ) {
set_transient( 'sow-vid-embed[' . $hash . ']', $html, 30 * 86400 );
}
}
return $html;
}
/**
* The preg_replace callback that adds autoplay.
*
* @param $match
*
* @return mixed
*/
function autoplay_callback( $match ) {
return str_replace(
$match[1],
add_query_arg(
array(
'autoplay' => 1,
'mute' => 1,
),
$match[1]
),
$match[0]
);
}
/**
* The preg_replace callback that adds loop and playlist.
*
* @param $match
*
* @return mixed
*/
function loop_callback( $match ) {
// Extract video id.
parse_str( parse_url( $this->src, PHP_URL_QUERY ), $vars );
$new_url = add_query_arg(
array(
'loop' => 1,
// Adding the current video in a playlist allows for YouTube to loop the video.
'playlist' => ! empty( $vars['v'] ) ? $vars['v'] : '',
),
$match[1]
);
return str_replace( $match[1], $new_url, $match[0] );
}
/**
* The preg_replace callback that oEmbed JS API support.
*
* @param $match
*
* @return mixed
*/
function js_api_callback( $match ) {
if ( strpos( $match[0], 'vimeo' ) ) {
$js_arg = array(
'api' => 'true',
);
} else {
$js_arg = array(
'enablejsapi' => 1,
);
}
return str_replace(
$match[1],
add_query_arg(
array(
$js_arg
),
$match[1]
),
$match[0]
);
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| fields | Folder | 0755 |
|
|
| lib | Folder | 0755 |
|
|
| routes | Folder | 0755 |
|
|
| widgets | Folder | 0755 |
|
|
| Parsedown.php | File | 37.02 KB | 0644 |
|
| actions.php | File | 8.68 KB | 0644 |
|
| array-utils.php | File | 569 B | 0644 |
|
| attachments.php | File | 3.11 KB | 0644 |
|
| color.php | File | 10.98 KB | 0644 |
|
| fonts.php | File | 133.7 KB | 0644 |
|
| less-functions.php | File | 878 B | 0644 |
|
| lessc.inc.php | File | 7.06 KB | 0644 |
|
| meta-box-manager.php | File | 5.38 KB | 0644 |
|
| post-selector.php | File | 4.22 KB | 0644 |
|
| shortcode.php | File | 1.96 KB | 0644 |
|
| string-utils.php | File | 879 B | 0644 |
|
| video.php | File | 3.63 KB | 0644 |
|
| widget-manager.class.php | File | 4.5 KB | 0644 |
|