File "social-vimeo.php"

Full Path: /var/www/bvnghean.vn/wp-content/plugins/sneeit-framework/includes/social/social-vimeo.php
File size: 2.46 KB
MIME-type: text/x-php
Charset: utf-8

<?php

// parse FIRST vimeo video ID in any $content
add_filter('sneeit_get_vimeo_id', 'sneeit_get_vimeo_id', 1, 1);
function sneeit_get_vimeo_id($content = '') {
	$vimeo_id = '';
	
	if (strlen($content)) {		
		// search and get vimeo ID
		$key = '//player.vimeo.com/video/';
		$start = strpos($content, $key);		
		if ($start === false) {
			$key = 'vimeo.com/';
			$start = strpos($content, $key);
		}
		if ($start !== false) {
			for ($i = $start + strlen($key); $i < strlen($content); $i++) {
				if (!sneeit_is_slug_name_character($content[$i])) {
					break;
				}
			}
			if ($i <= strlen($content)) {
				$vimeo_id = substr($content, $start + strlen($key), $i - ($start + strlen($key)));
				if (strlen($vimeo_id) > SNEEIT_MAX_VIMEO_VIDEO_ID_LENGTH) {
					$vimeo_id = '';
				}
			}
		}
	}
	
	return $vimeo_id;
}


// $code can be anything: full embed player, url, id, ...
add_filter('sneeit_get_vimeo_player', 'sneeit_get_get_vimeo_player', 1, 3);
function sneeit_get_get_vimeo_player($code, $width = 960, $height = 540) {
	$vimeo_id = sneeit_get_vimeo_id($code);
	$vimeo_player = '';
	
	if ($vimeo_id) {
		$vimeo_player = '<iframe src="https://player.vimeo.com/video/'.$vimeo_id.'" width="'.$width.'" height="'.$height.'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
	}
	
	return $vimeo_player;
}

function sneeit_get_vimeo_image($content) {
	if ( strpos( $content, 'vimeo' ) === false ) {
		return '';
	}
	// search and get vimeo ID
	$vimeo_id = sneeit_get_vimeo_id($content);
	
	if (!$vimeo_id) {			
		return '';
	}

	// check if we saved in cache
	$src = get_transient('sneeit_vimeo_thumb_'.$vimeo_id);
	if (!empty($src) && sneeit_is_image_src($src)) {		
		return $src;
	}	

	// if we can not found in cache, 
	// load vimeo thumbnail via API
	$vimeo_thumb_xml = wp_remote_get(esc_url('https://vimeo.com/api/v2/video/'.$vimeo_id.'.php'), array( 
		'sslverify' => false, 
		'compress'    => false,
		'decompress'  => false,
		'timeout'	=> SNEEIT_REMOTE_TIMEOUT)
	);

	// fail remote
	if ( is_wp_error($vimeo_thumb_xml) ) {
		// try to get in option
		$src = get_option('sneeit_vimeo_thumb_'.$vimeo_id, '');
		if (!empty($src) && sneeit_is_image_src($src)) {		
			return $src;
		}
		return $src;
	}
	$hash = unserialize(wp_remote_retrieve_body($vimeo_thumb_xml));
	$src = $hash[0]['thumbnail_large'];
	
	// update cache	
	set_transient('sneeit_vimeo_thumb_'.$vimeo_id, $src, 60*60*24*365);
	update_option('sneeit_vimeo_thumb_'.$vimeo_id, $src);				
	
	return ($src);	
}