Server IP : 180.180.241.3 / Your IP : 216.73.216.252 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /AppServ/www/news/components/com_youtubegallery/includes/ |
Upload File : |
<?php /** * YoutubeGallery * @version 3.8.3 * @author DesignCompass corp< <support@joomlaboat.com> * @link http://www.joomlaboat.com * @GNU General Public License **/ // No direct access to this file defined('_JEXEC') or die('Restricted access'); if(!defined('DS')) define('DS',DIRECTORY_SEPARATOR); require_once(JPATH_SITE.DS.'components'.DS.'com_youtubegallery'.DS.'includes'.DS.'misc.php'); class VideoSource_YouTube { public static function extractYouTubeID($youtubeURL) { if(!(strpos($youtubeURL,'://youtu.be')===false) or !(strpos($youtubeURL,'://www.youtu.be')===false)) { //youtu.be $list=explode('/',$youtubeURL); if(isset($list[3])) return $list[3]; else return ''; } else { //youtube.com $arr=YouTubeGalleryMisc::parse_query($youtubeURL); return $arr['v']; } } public static function getVideoData($videoid,$customimage,$customtitle,$customdescription, $thumbnailcssstyle, $getinfomethod) { //blank array $blankArray=array( 'videosource'=>'youtube', 'videoid'=>$videoid, 'imageurl'=>'', 'title'=>'', 'description'=>'', 'publisheddate'=>'', 'duration'=>0, 'rating_average'=>0, 'rating_max'=>0, 'rating_min'=>0, 'rating_numRaters'=>0, 'statistics_favoriteCount'=>0, 'statistics_viewCount'=>0, 'keywords'=>'', 'likes'=>0, 'dislikes'=>'', 'commentcount'=>'', 'channel_username'=>'', 'channel_title'=>'', 'channel_subscribers'=>0, 'channel_subscribed'=>0, 'channel_location'=>'', 'channel_commentcount'=>0, 'channel_viewcount'=>0, 'channel_videocount'=>0, 'channel_description'=>'' ); $answer=VideoSource_YouTube::getYouTubeVideoData($videoid,$blankArray, $getinfomethod); if($answer!='') { $blankArray['title']='***Video not found*** ('.$answer.')'; $blankArray['description']=$answer; return $blankArray; } if($customtitle!='') $blankArray['title']=$customtitle; if($customdescription!='') $blankArray['description']=$customdescription; if($customimage!='' and strpos($customimage, '#')===false) { $blankArray['imageurl']=$customimage; } else { if($blankArray['imageurl']=='') $blankArray['imageurl']=VideoSource_YouTube::getYouTubeImageURL($videoid,$thumbnailcssstyle); } return $blankArray; } public static function getYouTubeImageURL($videoid,$thumbnailcssstyle) { if($thumbnailcssstyle == null) return 'http://img.youtube.com/vi/'.$videoid.'/default.jpg'; //get bigger image if size of the thumbnail set; $a=str_replace(' ','',$thumbnailcssstyle); if(strpos($a,'width:')===false and strpos($a,'height:')===false) return 'http://img.youtube.com/vi/'.$videoid.'/default.jpg'; else return 'http://img.youtube.com/vi/'.$videoid.'/0.jpg'; } public static function getYouTubeVideoData($videoid, &$blankArray, $getinfomethod) { if(phpversion()<5) return "Update to PHP 5+"; try{ $url = 'http://gdata.youtube.com/feeds/api/videos/'.$videoid.'?v=2'; //v=2to get likes and dislikes $blankArray['datalink']=$url; /* if($getinfomethod=='js' or $getinfomethod=='jsmanual') { $rd=YouTubeGalleryMisc::getRawData($videoid); if($rd=='') { YouTubeGalleryMisc::setDelayedRequest($videoid,$url); return ''; } elseif($rd=='' or $rd=='*youtubegallery_request*') return ''; else $htmlcode=$rd; } else */ $htmlcode=YouTubeGalleryMisc::getURLData($url); if(($getinfomethod=='js' or $getinfomethod=='jsmanual' ) and $htmlcode=='') return ''; // return 'Get info method not set, go to Settings.'; if(strpos($htmlcode,'<?xml version')===false) { if(strpos($htmlcode,'Invalid id')===false) return 'Cannot Connect to Youtube Server'; else return 'Invalid id'; //return $pair; } $doc = new DOMDocument; $doc->loadXML($htmlcode); if(!isset($doc->getElementsByTagName("title")->item(0)->nodeValue)) { return '<p>Youtube Video "'.$videoid.'" not found.</p>'; } $blankArray['title']=$doc->getElementsByTagName("title")->item(0)->nodeValue; $blankArray['description']=$doc->getElementsByTagName("description")->item(0)->nodeValue; $blankArray['publisheddate']=$doc->getElementsByTagName("published")->item(0)->nodeValue; if($doc->getElementsByTagName("duration")) { if($doc->getElementsByTagName("duration")->item(0)) $blankArray['duration']=$doc->getElementsByTagName("duration")->item(0)->getAttribute("seconds"); } $MediaElement=$doc->getElementsByTagName("thumbnail"); if($MediaElement->length>0) { $images=array(); foreach($MediaElement as $me) $images[]=$me->getAttribute("url"); $blankArray['imageurl']=implode(',',$images); } $FeedElement=$doc->getElementsByTagName("feedLink"); if($FeedElement->length>0) { $fe0=$FeedElement->item(0); $blankArray['commentcount']=$fe0->getAttribute("countHint"); } $RatingElement=$doc->getElementsByTagName("rating"); if($RatingElement->length>0) { $re0=$RatingElement->item(0); $blankArray['rating_average']=$re0->getAttribute("average"); $blankArray['rating_max']=$re0->getAttribute("max"); $blankArray['rating_min']=$re0->getAttribute("min"); $blankArray['rating_numRaters']=$re0->getAttribute("numRaters"); if($RatingElement->length>1) { $re1=$RatingElement->item(1); $blankArray['likes']=$re1->getAttribute("numLikes"); $blankArray['dislikes']=$re1->getAttribute("numDislikes"); } else { $blankArray['likes']=0; $blankArray['dislikes']=0; } } $StatElement=$doc->getElementsByTagName("statistics"); if($StatElement->length>0) { $se0=$StatElement->item(0); $blankArray['statistics_favoriteCount']=$se0->getAttribute("favoriteCount"); $blankArray['statistics_viewCount']=$se0->getAttribute("viewCount"); } $blankArray['keywords']=$doc->getElementsByTagName("keywords")->item(0)->nodeValue; } catch(Exception $e) { return 'Cannot get youtube video data.'; } return ''; } public static function renderYouTubePlayer($options, $width, $height, &$videolist_row, &$theme_row,$startsecond,$endsecond) { $videoidkeyword='****youtubegallery-video-id****'; $settings=array(); $settings[]=array('autoplay',(int)$options['autoplay']); $settings[]=array('hl','en'); if($options['fullscreen']!=0) $settings[]=array('fs','1'); else $settings[]=array('fs','0'); $settings[]=array('showinfo',$options['showinfo']); $settings[]=array('iv_load_policy','3'); $settings[]=array('rel',$options['relatedvideos']); $settings[]=array('loop',(int)$options['repeat']); $settings[]=array('border',(int)$options['border']); if($options['color1']!='') $settings[]=array('color1',$options['color1']); if($options['color2']!='') $settings[]=array('color2',$options['color2']); if($options['controls']!='') { $settings[]=array('controls',$options['controls']); if($options['controls']==0) $settings[]=array('version',3); } if($startsecond!='') $settings[]=array('start',$startsecond); if($endsecond!='') $settings[]=array('end',$endsecond); $initial_volume=(int)$theme_row->volume; if($options['playertype']==100) { if(YouTubeGalleryMisc::check_user_agent_for_apple()) { $options['playertype']=1; //1 = HTML5 } else { if($theme_row->muteonplay or $initial_volume!=-1) { $options['playertype']=2; //because other types of player doesn't support this functionality. //2 = FLASH3_WITH_CHECK } else $options['playertype']=1; } } else { if(($theme_row->muteonplay or $initial_volume!=-1) and $options['playertype']!=5) $options['playertype']=2; //because other types of player doesn't support this functionality. //2 = FLASH3_WITH_CHECK } $playerapiid='ygplayerapiid_'.$videolist_row->id; $playerid='youtubegalleryplayerid_'.$videolist_row->id; if($options['playertype']==2) { //Player with Flash availability check $settings[]=array('playerapiid','ygplayerapiid_'.$playerapiid); $settings[]=array('enablejsapi','1'); } $playlist=''; $youtubeparams=$options['youtubeparams']; $p=explode(';',$youtubeparams); if($options['allowplaylist']==1) { foreach($p as $v) { $pair=explode('=',$v); if($pair[0]=='playlist') $playlist=$pair[1]; } } else { $p_new=array(); foreach($p as $v) { $pair=explode('=',$v); if($pair[0]!='playlist') $p_new[]=$v; } $youtubeparams=implode(';',$p_new); } YouTubeGalleryMisc::ApplyPlayerParameters($settings,$youtubeparams); $settingline=YouTubeGalleryMisc::CreateParamLine($settings); if (isset($_SERVER["HTTPS"]) and $_SERVER["HTTPS"] == "on") $http='https://'; else $http='http://'; $result=''; if($theme_row->nocookie) $youtubeserver=$http.'www.youtube-nocookie.com/'; else $youtubeserver=$http.'www.youtube.com/'; if($options['playertype']==1) //new HTML 5 player { //new player $result.='<iframe width="'.$width.'" height="'.$height.'"' .' src="'.$youtubeserver.'embed/'.$videoidkeyword.'?'.$settingline.'"' .' frameborder="'.(int)$options['border'].'"' .' id="'.$playerid.'"' .($theme_row->responsive==1 ? ' onLoad="YoutubeGalleryAutoResizePlayer'.$videolist_row->id.'();"' : '') .($options['fullscreen']==0 ? '' : ' allowfullscreen') .'>' .'</iframe>'; } elseif($options['playertype']==5) //new HTML 5 player { // IFrame API Player $result.=' <div id="'.$playerapiid.'"></div> '; $AdoptedPlayerVars=str_replace('&','", "',$settingline); $AdoptedPlayerVars='"'.str_replace('=','":"',$AdoptedPlayerVars).'", "enablejsapi":"1"'; /* events: { \'onReady\': \'onPlayerReady'.$videolist_row->id.'\', \'onStateChange\': \'onPlayerStateChange'.$videolist_row->id.'\' } */ $result_head=' <script> var tag = document.createElement(\'script\'); tag.src = "//www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName(\'script\')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); function onPlayerReady'.$videolist_row->id.'(event) { '.($initial_volume!=-1 ? 'event.target.setVolume('.$initial_volume.');' : '').' '.($theme_row->muteonplay ? 'event.target.mute();' : '').' } '; /* function onPlayerStateChange'.$videolist_row->id.'(event) { alert("State changed"); //if (event.data == YT.PlayerState.PLAYING && !done) { //setTimeout(stopVideo, 6000); //done = true; //} //setTimeout("ytapi_player'.$videolist_row->id.'.addEventListener(\'onStateChange\', onPlayerStateChange'.$videolist_row->id.')", 1000); } */ $result_head.=' var ytapi_player'.$videolist_row->id.'; function onYouTubeIframeAPIReady() { ytapi_player'.$videolist_row->id.' = new YT.Player("'.$playerapiid.'", { width: "'.$width.'", id: "abrakadabra", height: "'.$height.'", playerVars: {'.$AdoptedPlayerVars.'}, videoId: "'.$options['videoid'].'", }); setTimeout("ytapi_player'.$videolist_row->id.'.addEventListener(\'onReady\', \'onPlayerReady'.$videolist_row->id.'\')", 500); } </script> '; $result.=$result_head; /* if($options['videoid']!='****youtubegallery-video-id****') { $document = JFactory::getDocument(); $document->addCustomTag($result_head); } */ } elseif($options['playertype']==0 or $options['playertype']==3) //Flash AS3.0 Player { //Old player $pVersion=($options['playertype']==0 ? '3': '2'); $result.='<object ' .' id="'.$playerid.'"' .' width="'.$width.'"' .' height="'.$height.'"' .' data="'.$youtubeserver.'v/'.$videoidkeyword.'?version='.$pVersion.'&'.$settingline.'"' .' type="application/x-shockwave-flash"' .($theme_row->responsive==1 ? ' onLoad="YoutubeGalleryAutoResizePlayer'.$videolist_row->id.'();"' : '').'>' .'<param name="id" value="'.$playerid.'" />' .'<param name="movie" value="'.$youtubeserver.'v/'.$videoidkeyword.'?version='.$pVersion.'&'.$settingline.'" />' .'<param name="wmode" value="transparent" />' .'<param name="allowFullScreen" value="'.($options['fullscreen'] ? 'true' : 'false').'" />' .'<param name="allowscriptaccess" value="always" />' .($playlist!='' ? '<param name="playlist" value="'.$playlist.'" />' : ''); $result.='</object>'; } elseif($options['playertype']==2 or $options['playertype']==4) //Flash Player with detection 3 and 2 { $pVersion=($options['playertype']==2 ? '3': '2'); $alternativecode='You need Flash player 8+ and JavaScript enabled to view this video.'; if($initial_volume>100) $initial_volume=100; if($initial_volume<-1) $initial_volume=-1; //Old player /* *'.($theme_row->autoplay ? 'ytplayer.playVideo();' : ' * ').' */ $result_head=' <!-- Youtube Gallery - Youtube Flash Player With Detection --> <script src="'.$http.'www.google.com/jsapi" type="text/javascript"></script> <script src="'.$http.'ajax.googleapis.com/ajax/libs/swfobject/2/swfobject.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ google.load("swfobject", "2"); function onYouTubePlayerReady(PlayerId) { YGYouTubePlayerReady'.$videolist_row->id.'('.($theme_row->autoplay ? 'true' : 'false').'); } function YGYouTubePlayerReady'.$videolist_row->id.'(playVideo) { //alert("Play"); ytplayer = document.getElementById("'.$playerid.'"); '.($theme_row->muteonplay ? 'ytplayer.mute();' : '').' '.( $initial_volume!=-1 ? ' setTimeout("changeVolumeAndPlay'.$videolist_row->id.'("+playVideo+")", 750);' : ' if(playVideo) ytplayer.playVideo(); ' ).' } '.($initial_volume!=-1 ? ' function changeVolumeAndPlay'.$videolist_row->id.'(playVideo) { ytplayer = document.getElementById("'.$playerid.'"); if(ytplayer) { ytplayer.setVolume('.$initial_volume.'); if(playVideo) ytplayer.playVideo(); } } ' : '').' function youtubegallery_updateplayer_youtube_'.$videolist_row->id.'(videoid,playVideo) { var playerVersion = swfobject.getFlashPlayerVersion(); if (playerVersion.major>0) { var params = { allowScriptAccess: "always", wmode: "transparent"'.($options['fullscreen'] ? ', allowFullScreen: "true"' : '').' }; var atts = { id: "'.$playerid.'" ' .' }; var playerLink="'.$youtubeserver.'v/"+videoid+"?version='.$pVersion.'&'.$settingline.'"; if(playVideo) playerLink=playerLink.replace("autoplay=0","autoplay=1"); swfobject.embedSWF(playerLink,"'.$playerapiid.'", "'.$width.'", "'.$height.'", "8", null, null, params, atts); } else document.getElementById("YoutubeGallerySecondaryContainer'.$videolist_row->id.'").innerHTML="'.$alternativecode.'"; } //]]> </script> <!-- end of Youtube Gallery - Youtube Flash Player With Detection --> '; //.($theme_row->responsive==2 ? ', style:"width: '.$width.'px !important;height: '.$height.'px !important;"' : '') //if($options['videoid']!='****youtubegallery-video-id****') //{ $document = JFactory::getDocument(); $document->addCustomTag($result_head); //} $result='<div id="'.$playerapiid.'"></div>'; if($options['videoid']!='****youtubegallery-video-id****') { $result.=' <script type="text/javascript"> //<![CDATA[ youtubegallery_updateplayer_youtube_'.$videolist_row->id.'("'.$options['videoid'].'",false); //]]> </script> '; } else $result.='<!--DYNAMIC PLAYER-->'; } return '<!-- YG test -->'.$result; } } ?>