Tarea #928 -> Habilitar dedicatorias con videos Vimeo

git-svn-id: https://192.168.0.254/svn/Proyectos.ASong2U_Web/trunk@34 cd1a4ea2-8c7f-e448-aada-19d1fee9e1d6
This commit is contained in:
David Arranz 2012-07-26 10:09:46 +00:00
parent 8056c57123
commit 271ea08e86
4 changed files with 131 additions and 30 deletions

View File

@ -68,18 +68,36 @@ function bp_dedication_create_new_dedication() {
}
$videoData = array();
$videoID = getVideoID($video_url);
if (checkYoutubeId($videoID) == 1) {
$xml = getVideoDetails($videoID);
if ($xml->title != 'YouTube Videos') {
$videoData['videoURL'] = $video_url;
$videoData['title'] = $xml->title;
$videoData['description'] = $xml->content;
$videoData['thumbnail'] = "http://i.ytimg.com/vi/" . $videoID . "/hqdefault.jpg";
if (isYoutubeVideo($video_url)) {
$videoID = getYouTubeVideoID($video_url);
if (checkYoutubeId($videoID) == 1) {
$xml = getYouTubeVideoDetails($videoID);
if ($xml->title != 'YouTube Videos') {
$videoData['videoURL'] = $video_url;
$videoData['title'] = $xml->title;
$videoData['description'] = $xml->content;
$videoData['thumbnail'] = "http://i.ytimg.com/vi/" . $videoID . "/hqdefault.jpg";
}
}
}
if (isVimeoVideo($video_url)) {
$videoID = getVimeoVideoID($video_url);
if (checkVimeoId($videoID) == 1) {
$xml = getVimeoVideoDetails($videoID);
if ($xml) {
$videoData['videoURL'] = $video_url;
$videoData['title'] = $xml->video->title;
$videoData['description'] = $xml->video->description;
$videoData['thumbnail'] = $xml->video->thumbnail_large;
}
}
}
$category = get_category_by_slug(DEDICATION_CATEGORY_SLUG);
$new_post = array(

View File

@ -1,10 +1,32 @@
<?php
function getVideoID($url) {
$url = trim($url);
function isYoutubeVideo($url) {
$yt1 = strpos($url, "youtube.com");
$yt2 = strpos($url, "youtu.be");
preg_match('#(\.be/|/embed/|/v/|/watch\?v=)([A-Za-z0-9_-]{5,11})#', $url, $matches);
if(isset($matches[2]) && $matches[2] != '') {
return (($yt1) OR ($yt2));
}
function isVimeoVideo($url) {
return strpos($url, "vimeo.com");
}
function getVimeoVideoID($url) {
$url = trim($url);
$matches = array();
$result = preg_match('/(\d+)/', $url, $matches);
if($result && isset($matches[0]) && $matches[0] != '') {
return $matches[0];
}
}
function getYouTubeVideoID($url) {
$url = trim($url);
$matches = array();
$result = preg_match('#(\.be/|/embed/|/v/|/watch\?v=)([A-Za-z0-9_-]{5,11})#', $url, $matches);
if($result && isset($matches[2]) && $matches[2] != '') {
return $matches[2];
}
}
@ -17,16 +39,30 @@ function checkYoutubeId($id) {
return 1;
}
function getVideoDetails($id) {
// create an array to return
$videoDetails = Array();
function checkVimeoId($id) {
if (!$data = @file_get_contents("http://vimeo.com/api/v2/video/" . $id . ".json"))
return 0;
if ($data == "Video not found")
return 0;
return 1;
}
function getYouTubeVideoDetails($id) {
// get the xml data from youtube
$url = "http://gdata.youtube.com/feeds/api/videos/" . $id;
$xml = simplexml_load_file($url);
return $xml;
}
function getVimeoVideoDetails($id) {
// get the xml data from youtube
$url = "http://vimeo.com/api/v2/video/" . $id . ".xml";
$xml = simplexml_load_file($url);
return $xml;
}
function fetch_image($url) {
if (function_exists("curl_init")) {
return curl_fetch_image($url);

View File

@ -18,6 +18,15 @@ form.standard-form ul.acfb-holder li {
width: 100%;
}
#youtube_vimeo_links {
float: right;
margin-right: 30px;
}
#youtube_vimeo_links a {
display: inline-block;
margin-left: 10px;
}
#thumbs {
background: #ccc url(img/thumbnail.jpg) center no-repeat;
width: 320px;

View File

@ -72,25 +72,13 @@ jQuery(document).ready(function(){
}
});
var url = '';
j('#video_url').change(function(){
// Check for empty input field
if(j('#video_url').val() != ''){
// Get youtube video's thumbnail url
// using jYoutube jQuery plugin
url = j.jYoutube(j('#video_url').val());
title = getYouTubeInfo(j('#video_url').val(),
function(artist, song){
j('#artist_name').val(artist);
j('#song_name').val(song);
});
// Now append this image to <div id="thumbs">
j('#thumbs').html(j('<img src="'+url+'" />'));
processVideoURL(j('#video_url').val());
}
});
j('#video_url').keyup(function() { // works immediately when user press button inside of the input
if( j('#video_url').val() != j('#video_url').data('val') ){ // check if value changed
j('#video_url').data('val', j('#video_url').val() ); // save new value
@ -129,6 +117,56 @@ jQuery(document).ready(function(){
});
function processVideoURL(url){
var id;
var imgurl = '';
var j = jQuery;
if ((url.indexOf('youtube.com') > -1) || (url.indexOf('youtu.be') > -1)) {
imgurl = j.jYoutube(url);
j('#thumbs').html(j('<img src="'+imgurl+'" />'));
getYouTubeInfo(j('#video_url').val(),
function(artist, song){
j('#artist_name').val(artist);
j('#song_name').val(song);
});
} else if (url.indexOf('vimeo.com') > -1) {
if (url.match(/http:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/)) {
id = url.split('/')[3];
} else if (url.match(/^vimeo.com\/channels\/[\d\w]+#[0-9]+/)) {
id = url.split('#')[1];
} else if (url.match(/vimeo.com\/groups\/[\d\w]+\/videos\/[0-9]+/)) {
id = url.split('/')[6];
} else {
j('#thumbs').html('');
}
j.ajax({
url: 'http://vimeo.com/api/v2/video/' + id + '.json',
dataType: 'jsonp',
success: function(data) {
imgurl = data[0].thumbnail_medium;
j('#thumbs').html(j('<img src="'+imgurl+'" />'));
var otitle = data[0].title;
var ntitle = otitle.match('^(.*) - (.*)$');
var song = (ntitle && (ntitle[2].length > 0 )) ? ntitle[2] : "";
var artist = (ntitle && (ntitle[1].length > 0 )) ? ntitle[1] : otitle;
j('#artist_name').val(artist);
j('#song_name').val(song);
}
});
} else {
j('#thumbs').html('');
}
return imgurl;
}
function ia_on_autocomplete_select( value, data ) {
var j = jQuery;
var friendIDs;