| Server IP : 180.180.241.3 / Your IP : 216.73.216.35 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 : C:/AppServ/www/news/components/com_youtubegallery/includes/ |
Upload File : |
<?php
/**
* YoutubeGallery Joomla! 3.0 Native Component
* @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);
class YoutubeGalleryLayoutRenderer
{
public static function getValue($fld, $params, &$videolist_row, &$theme_row, $gallery_list, $width, $height, $videoid, $AllowPagination, $total_number_of_rows,$custom_itemid=0)//,$title
{
$fields_theme=array('bgcolor','cols','cssstyle','navbarstyle','thumbnailstyle','linestyle','listnamestyle','activevideotitlestyle','color1','color2','descr_style','rel','hrefaddon');
if(in_array($fld,$fields_theme))
{
$theme_row_array = get_object_vars($theme_row);
return $theme_row_array[$fld];
}
switch($fld)
{
case 'mediafolder':
if($theme_row->mediafolder=='')
return '';
else
return 'images/'.$theme_row->mediafolder;
break;
case 'listname':
return $videolist_row->listname;
break;
case 'videotitle':
$title=str_replace('"','"',YoutubeGalleryLayoutRenderer::getTitleByVideoID($videoid,$gallery_list));
if($theme_row->openinnewwindow==4 or $theme_row->openinnewwindow==5)
{
$title='<div id="YoutubeGalleryVideoTitle'.$videolist_row->id.'">'.$title.'</div>';
}
if($params!='')
{
$pair=explode(',',$params);
$words=(int)$pair[0];
if(isset($pair[1]))
$chars=(int)$pair[1];
else
$chars=0;
$title=YoutubeGalleryLayoutRenderer::PrepareDescription($title, $words, $chars);
}
return $title;
break;
case 'videodescription':
$description=str_replace('"','"',YoutubeGalleryLayoutRenderer::getDescriptionByVideoID($videoid,$gallery_list));
if($params!='')
{
$pair=explode(',',$params);
$words=(int)$pair[0];
if(isset($pair[1]))
$chars=(int)$pair[1];
else
$chars=0;
$description=YoutubeGalleryLayoutRenderer::PrepareDescription($description, $words, $chars);
}
if($theme_row->openinnewwindow==4 or $theme_row->openinnewwindow==5)
{
$description='<div id="YoutubeGalleryVideoDescription'.$videolist_row->id.'">'.$description.'</div>';
}
return $description;
break;
case 'videoplayer':
$pair=explode(',',$params);
if($params!='')
$playerwidth=(int)$pair[0];
else
$playerwidth=$width;
if(isset($pair[1]))
$playerheight=(int)$pair[1];
else
$playerheight=$height;
if($theme_row->openinnewwindow==4 or $theme_row->openinnewwindow==5)
{
//Update Player - without page reloading
YoutubeGalleryLayoutRenderer::addHotReloadScript($gallery_list,$playerwidth,$playerheight,$videolist_row, $theme_row);
}
return YoutubeGalleryLayoutRenderer::ShowActiveVideo($gallery_list,$playerwidth,$playerheight,$videoid,$videolist_row, $theme_row);
break;
case 'navigationbar':
//classictable
$pair=explode(',',$params);
if((int)$pair[0]>0)
$number_of_columns=(int)$pair[0];
else
$number_of_columns=(int)$theme_row->cols;
if($number_of_columns<1)
$number_of_columns=3;
if($number_of_columns>10)
$number_of_columns=10;
if(isset($pair[1]))
$navbarwidth=$pair[1];
else
$navbarwidth=$width;
return YoutubeGalleryLayoutRenderer::ClassicNavTable($gallery_list, $navbarwidth, $number_of_columns, $videolist_row, $theme_row, $AllowPagination, $videoid,$custom_itemid);
break;
case 'thumbnails':
//simple list
return YoutubeGalleryLayoutRenderer::NavigationList($gallery_list, $videolist_row, $theme_row, $AllowPagination, $videoid,$custom_itemid);
break;
case 'count':
if ($params=='all')
return $videolist_row->TotalVideos;
else
return count($gallery_list);
break;
case 'pagination':
return YoutubeGalleryLayoutRenderer::Pagination($theme_row,$gallery_list,$width,$total_number_of_rows);
case 'width':
return $width;
break;
case 'height':
return $height;
break;
case 'instanceid':
return $videolist_row->id;
case 'videoid':
return $videoid;
case 'social':
return YoutubeGalleryLayoutRenderer::SocialButtons('window.location.href','yg',$params,$videolist_row->id,$videoid);
case 'video':
$pair=explode(':',$params);
if($pair[0]!="")
{
$options='';
if(isset($pair[1]))
$options=$pair[1];
$tableFields=array('title','description',
'imageurl','videoid','videosource','publisheddate','duration',
'rating_average','rating_max','rating_min','rating_numRaters',
'keywords','commentcount','likes','dislikes');
$listitem=YoutubeGalleryLayoutRenderer::getVideoRawByID($videoid,$gallery_list,true);//YoutubeGalleryLayoutRenderer::object_to_array($videolist_row);
return YoutubeGalleryLayoutRenderer::getTumbnailData($pair[0], "", "", $listitem,$tableFields,$options,$theme_row);
}
break;
}//switch($fld)
}//function
public static function object_to_array($data)
{
if (is_array($data) || is_object($data))
{
$result = array();
foreach ($data as $key => $value)
{
$result[$key] = YoutubeGalleryLayoutRenderer::object_to_array($value);
}
return $result;
}
return $data;
}
/*
public static function objectToArray($d) {
if (is_object($d)) {
// Gets the properties of the given object
// with get_object_vars function
$d = get_object_vars($d);
}
if (is_array($d)) {
//return array_map(YoutubeGalleryLayoutRenderer::objectToArray, $d);
//}
//else {
// // Return array
// return $d;
//}
//}
*/
public static function isEmpty($fld, &$videolist_row, &$theme_row, $gallery_list, $videoid, $AllowPagination, $total_number_of_rows)
{
$fields_theme=array('bgcolor','cols','cssstyle','navbarstyle','thumbnailstyle','linestyle','listnamestyle','activevideotitlestyle','color1','color2','descr_style','rel','hrefaddon');
if(in_array($fld,$fields_theme))
{
$theme_row_array = get_object_vars($theme_row);
if($theme_row_array[$fld]=='')
return true;
else
return false;
}
switch($fld)
{
case 'social':
return false;
break;
case 'video':
return false;
break;
case 'listname':
if($videolist_row->listname=='')
return true;
else
return false;
break;
case 'videotitle':
if($theme_row->openinnewwindow==4 or $theme_row->openinnewwindow==5)
return false;
$title=YoutubeGalleryLayoutRenderer::getTitleByVideoID($videoid,$gallery_list);
if($title=='')
return true;
else
return false;
break;
case 'videodescription':
if($theme_row->openinnewwindow==4 or $theme_row->openinnewwindow==5)
return false;
$description=YoutubeGalleryLayoutRenderer::getDescriptionByVideoID($videoid,$gallery_list);
if($description=='')
return true;
else
return false;
break;
case 'videoplayer':
return !$videoid;
break;
case 'navigationbar':
if($total_number_of_rows==0)
return true; //hide nav bar
elseif($total_number_of_rows>0)
return false;
break;
case 'thumbnails':
if($total_number_of_rows==0)
return true; //hide nav bar
elseif($total_number_of_rows>0)
return false;
break;
case 'mediafolder':
if($theme_row->mediafolder=='')
return true;
else
return false;
break;
case 'count':
return ($total_number_of_rows>0 ? false : true);
break;
case 'pagination':
return ($total_number_of_rows>5 and $AllowPagination ? false : true);
break;
case 'width':
return false;
break;
case 'height':
return false;
break;
case 'instanceid':
return false;
case 'videoid':
return false;
break;
}
return true;
}
public static function render($htmlresult, &$videolist_row, &$theme_row, $gallery_list, $width, $height, $videoid, $total_number_of_rows,$custom_itemid=0)
{
if(!isset($theme_row))
return 'Theme not selected';
if(!isset($videolist_row))
return 'Video List not selected';
if(strpos($htmlresult,'[pagination')===false)
$AllowPagination=false;
else
$AllowPagination=true;
$fields_generated=array('social', 'video', 'listname','videotitle','videodescription','videoplayer','navigationbar','thumbnails','count','pagination','width','height','instanceid','videoid','mediafolder');
$fields_theme=array('bgcolor','cols','cssstyle','navbarstyle','thumbnailstyle','linestyle','listnamestyle','activevideotitlestyle','color1','color2','descr_style','rel','hrefaddon');
$fields_all=array_merge($fields_generated, $fields_theme);
foreach($fields_all as $fld)
{
$isEmpty=YoutubeGalleryLayoutRenderer::isEmpty($fld,$videolist_row,$theme_row,$gallery_list,$videoid,$AllowPagination,$total_number_of_rows);
$ValueOptions=array();
$ValueList=YoutubeGalleryLayoutRenderer::getListToReplace($fld,$ValueOptions,$htmlresult,'[]');
$ifname='[if:'.$fld.']';
$endifname='[endif:'.$fld.']';
if($isEmpty)
{
foreach($ValueList as $ValueListItem)
$htmlresult=str_replace($ValueListItem,'',$htmlresult);
do{
$textlength=strlen($htmlresult);
$startif_=strpos($htmlresult,$ifname);
if($startif_===false)
break;
if(!($startif_===false))
{
$endif_=strpos($htmlresult,$endifname);
if(!($endif_===false))
{
$p=$endif_+strlen($endifname);
$htmlresult=substr($htmlresult,0,$startif_).substr($htmlresult,$p);
}
}
}while(1==1);
}
else
{
$htmlresult=str_replace($ifname,'',$htmlresult);
$htmlresult=str_replace($endifname,'',$htmlresult);
$i=0;
foreach($ValueOptions as $ValueOption)
{
$vlu= YoutubeGalleryLayoutRenderer::getValue($fld,$ValueOption,$videolist_row, $theme_row,$gallery_list,$width,$height,$videoid,$AllowPagination,$total_number_of_rows,$custom_itemid);
$htmlresult=str_replace($ValueList[$i],$vlu,$htmlresult);
$i++;
}
}// IF NOT
$ifname='[ifnot:'.$fld.']';
$endifname='[endifnot:'.$fld.']';
if(!$isEmpty)
{
foreach($ValueList as $ValueListItem)
$htmlresult=str_replace($ValueListItem,'',$htmlresult);
do{
$textlength=strlen($htmlresult);
$startif_=strpos($htmlresult,$ifname);
if($startif_===false)
break;
if(!($startif_===false))
{
$endif_=strpos($htmlresult,$endifname);
if(!($endif_===false))
{
$p=$endif_+strlen($endifname);
$htmlresult=substr($htmlresult,0,$startif_).substr($htmlresult,$p);
}
}
}while(1==1);
}
else
{
$htmlresult=str_replace($ifname,'',$htmlresult);
$htmlresult=str_replace($endifname,'',$htmlresult);
$vlu='';
$i=0;
foreach($ValueOptions as $ValueOption)
{
$htmlresult=str_replace($ValueList[$i],$vlu,$htmlresult);
$i++;
}
}
}//foreach($fields as $fld)
return $htmlresult;
}
public static function getListToReplace($par,&$options,&$text,$qtype)
{
$fList=array();
$l=strlen($par)+2;
$offset=0;
do{
if($offset>=strlen($text))
break;
$ps=strpos($text, $qtype[0].$par.':', $offset);
if($ps===false)
break;
if($ps+$l>=strlen($text))
break;
$pe=strpos($text, $qtype[1], $ps+$l);
if($pe===false)
break;
$notestr=substr($text,$ps,$pe-$ps+1);
$options[]=trim(substr($text,$ps+$l,$pe-$ps-$l));
$fList[]=$notestr;
$offset=$ps+$l;
}while(!($pe===false));
//for these with no parameters
$ps=strpos($text, $qtype[0].$par.$qtype[1]);
if(!($ps===false))
{
$options[]='';
$fList[]=$qtype[0].$par.$qtype[1];
}
return $fList;
}
public static function getPagination($num,$limitstart,$limit,&$theme_row)
{
$AddAnchor=false;
if($theme_row->openinnewwindow==2 or $theme_row->openinnewwindow==3)
{
$AddAnchor=true;
}
require_once(JPATH_SITE.DS.'components'.DS.'com_youtubegallery'.DS.'includes'.DS.'pagination.php');
$thispagination = new YGPagination($num, $limitstart, $limit, '', $AddAnchor );
return $thispagination;
}
public static function makeLink(&$listitem, $rel, &$aLinkURL, $videolist_row_id, $theme_row_id,$custom_itemid=0)
{
$videoid=$listitem['videoid'];
jimport('joomla.version');
$version = new JVersion();
$JoomlaVersionRelease=$version->RELEASE;
if($JoomlaVersionRelease >= 1.6)
$theview='youtubegallery';
else
$theview='gallery';
$juri=new JURI();
$WebsiteRoot=$juri->root();
if($WebsiteRoot[strlen($WebsiteRoot)-1]!='/') //Root must have slash / in the end
$WebsiteRoot.='/';
$URLPath=$_SERVER['REQUEST_URI']; // example: /index.php'
$pattern = '/[^\pL\pN$-_.+!*\'\(\)\,\{\}\|\\\\\^\~\[\]`\<\>\#\%\"\;\/\?\:\@\&\=\.]/u';
$URLPath = preg_replace($pattern, '', $URLPath);
$URLPath = preg_replace('/"(\n.)+?"/m','', $URLPath);
$URLPath = str_replace('"','', $URLPath);
if($URLPath!='')
{
$p=strpos($URLPath,'?');
if(!($p===false))
$URLPath=substr($URLPath,0,$p);
}
$URLPathSecondPart='';
if($URLPath!='')
{
//Path (URI) must be without leadint /
if($URLPath!='')
{
if($URLPath[0]!='/')
$URLPath=''.$URLPath;
}
}//if($URLPath!='')
if($custom_itemid!=0)
{
//For Shadow/Light Boxes
$aLink=$WebsiteRoot.'index.php?option=com_youtubegallery&view='.$theview;
$aLink.='&Itemid='.$custom_itemid;
$aLink.='&videoid='.$videoid;
$aLink=JRoute::_($aLink);
return $aLink;
}
elseif($rel!='')
{
//For Shadow/Light Boxes
$aLink=$WebsiteRoot.'index.php?option=com_youtubegallery&view='.$theview;
$aLink.='&listid='.$videolist_row_id;
$aLink.='&themeid='.$theme_row_id;
$aLink.='&videoid='.$videoid;
return $aLink;
}
/////////////////////////////////
if(JRequest::getVar('option')=='com_youtubegallery' and JRequest::getVar('view')==$theview )
{
//For component only
$aLink='index.php?option=com_youtubegallery&view='.$theview.'&Itemid='.JRequest::getInt('Itemid',0);
$aLink.='&videoid='.$videoid;
$aLink=JRoute::_($aLink);
if(strpos($aLink,'ygstart')===false and JRequest::getInt('ygstart')!=0)
{
if(strpos($aLink,'?')===false)
$aLink.='?ygstart='.JRequest::getInt('ygstart');
else
$aLink.='&ygstart='.JRequest::getInt('ygstart');
}
return $aLink;
}
/////////////////////////////////
$URLQuery= $_SERVER['QUERY_STRING'];
$URLQuery= str_replace('"','', $URLQuery);
$URLQuery=YoutubeGalleryLayoutRenderer::deleteURLQueryOption($URLQuery, 'videoid');
$URLQuery=YoutubeGalleryLayoutRenderer::deleteURLQueryOption($URLQuery, 'onclick');
$URLQuery=YoutubeGalleryLayoutRenderer::deleteURLQueryOption($URLQuery, 'onmouseover');
$URLQuery=YoutubeGalleryLayoutRenderer::deleteURLQueryOption($URLQuery, 'onmouseout');
$URLQuery=YoutubeGalleryLayoutRenderer::deleteURLQueryOption($URLQuery, 'onmouseeenter');
$URLQuery=YoutubeGalleryLayoutRenderer::deleteURLQueryOption($URLQuery, 'onmousemove');
$URLQuery=YoutubeGalleryLayoutRenderer::deleteURLQueryOption($URLQuery, 'onmouseleave');
$aLink=$URLPath.$URLPathSecondPart;
$aLink.=($URLQuery!='' ? '?'.$URLQuery : '' );
if(strpos($aLink,'?')===false)
$aLink.='?';
else
$aLink.='&';
$allowsef=YouTubeGalleryMisc::getSettingValue('allowsef');
if($allowsef==1)
{
$aLink=YoutubeGalleryLayoutRenderer::deleteURLQueryOption($aLink, 'video');
$aLink.='video='.$listitem['alias'];
}
else
$aLink.='videoid='.$videoid;
if(strpos($aLink,'ygstart')===false and JRequest::getInt('ygstart')!=0)
$aLink.='&ygstart='.JRequest::getInt('ygstart');
return JRoute::_($aLink);
}//function
public static function deleteURLQueryOption($urlstr, $opt)
{
$url_first_part='';
$p=strpos($urlstr,'?');
if(!($p===false))
{
$url_first_part = substr($urlstr,0,$p);
$urlstr = substr($urlstr,$p+1);
}
$params = array();
$urlstr=str_replace('&','&',$urlstr);
$query=explode('&',$urlstr);
$newquery=array();
for($q=0;$q<count($query);$q++)
{
$p=stripos($query[$q],$opt.'=');
if($p===false or ($p!=0 and $p===false))
$newquery[]=$query[$q];
}
if($url_first_part!='' and count($newquery)>0)
$urlstr=$url_first_part.'?'.implode('&',$newquery);
elseif($url_first_part!='' and count($newquery)==0)
$urlstr=$url_first_part;
else
$urlstr=implode('&',$newquery);
return $urlstr;
}
public static function getDescriptionByVideoID($videoid,&$gallery_list)
{
if(isset($gallery_list) and count($gallery_list)>0)
{
foreach($gallery_list as $g)
{
if($g['videoid']==$videoid)
return $g['description'];
}
}
return '';
}
public static function curPageURL($add_REQUEST_URI=true)
{
$pageURL = '';
$pageURL .= 'http';
if (isset($_SERVER["HTTPS"]) and $_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if (isset($_SERVER["HTTPS"]))
{
if (isset($_SERVER["SERVER_PORT"]) and $_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"];
}
}
else
$pageURL .= $_SERVER["SERVER_NAME"];
if($add_REQUEST_URI)
{
//clean Facebook staff
$uri=$_SERVER["REQUEST_URI"];
if(!(strpos($uri,'fb_action_ids=')===false))
{
$uri= YoutubeGalleryLayoutRenderer::deleteURLQueryOption($uri, 'fb_action_ids');
$uri= YoutubeGalleryLayoutRenderer::deleteURLQueryOption($uri, 'fb_action_types');
$uri= YoutubeGalleryLayoutRenderer::deleteURLQueryOption($uri, 'fb_source');
$uri= YoutubeGalleryLayoutRenderer::deleteURLQueryOption($uri, 'action_object_map');
$uri= YoutubeGalleryLayoutRenderer::deleteURLQueryOption($uri, 'action_type_map');
$uri= YoutubeGalleryLayoutRenderer::deleteURLQueryOption($uri, 'action_ref_map');
}
$pageURL .=$uri;
}
return $pageURL;
}
public static function Pagination(&$theme_row,$the_gallery_list,$width,$total_number_of_rows)
{
$mainframe = JFactory::getApplication();
if(((int)$theme_row->customlimit)==0)
{
//$limit=0; // UNLIMITED
//No pagination - all items shown
return '';
}
else
$limit = (int)$theme_row->customlimit;
$limitstart = JRequest::getVar('ygstart', 0, '', 'int');
$pagination=YoutubeGalleryLayoutRenderer::getPagination($total_number_of_rows,$limitstart,$limit,$theme_row);
$paginationcode='<form action="" method="post">';
if($limit==0)
{
$paginationcode.='
<table cellspacing="0" style="padding:0px;width:'.$width.'px;border-style: none;" border="0" >
<tr style="height:30px;border-style: none;border-width:0px;">
<td style="text-align:left;width:140px;vertical-align:middle;border: none;">'.JText::_( 'SHOW' ).': '.$pagination->getLimitBox("").'</td>
<td style="text-align:right;vertical-align:middle;border: none;"><div class="pagination">'.$pagination->getPagesLinks().'</div></td>
</tr>
</table>
';
}
else
{
/*
jimport('joomla.version');
$version = new JVersion();
$JoomlaVersionRelease=$version->RELEASE;
*/
//if($JoomlaVersionRelease>=1.6)
$paginationcode.='<div class="pagination">'.$pagination->getPagesLinks().'</div>';
//else
//$paginationcode.='<div id="pagenav">'.$pagination->getPagesLinks().'</div>';
}
$paginationcode.='</form>';
return $paginationcode;
}
public static function NavigationList($the_gallery_list, &$videolist_row, &$theme_row, $AllowPagination, $videoid,$custom_itemid=0)
{
require_once(JPATH_SITE.DS.'components'.DS.'com_youtubegallery'.DS.'includes'.DS.'misc.php');
$misc=new YouTubeGalleryMisc;
$misc->videolist_row =$videolist_row;
$misc->theme_row =$theme_row;
if($theme_row->prepareheadtags>0)
{
$curPageUrl=YoutubeGalleryLayoutRenderer::curPageURL();
$document = JFactory::getDocument();
}
$catalogresult='';
$paginationcode='';
$gallery_list=$the_gallery_list;
$getinfomethod=YouTubeGalleryMisc::getSettingValue('getinfomethod');
$misc->RefreshVideoData($gallery_list,$getinfomethod);
$tr=0;
$count=0;
foreach($gallery_list as $listitem)
{
//if($getinfomethod=='js')
//{
// die;
//}
$bgcolor=$theme_row->bgcolor;
$aLinkURL='';
if($theme_row->openinnewwindow==4 or $theme_row->openinnewwindow==5)
{
//$title=str_replace('"','*q*',$listitem['title']);
//$description=str_replace('"','*q*',$listitem['description']);
//$title=str_replace('\'','*sq*',$title);
//$description=str_replace('\'','*sq*',$description);
//$aLink='javascript:YoutubeGalleryHotVideoSwitch'.$videolist_row->id.'(\''.$listitem['videoid'].'\',\''.$listitem['videosource'].'\',\''.$title.'\',\''.$description.'\')';
$aLink='javascript:YoutubeGalleryHotVideoSwitch'.$videolist_row->id.'(\''.$listitem['videoid'].'\',\''.$listitem['videosource'].'\','.$listitem['id'].')';
}
else
$aLink=YoutubeGalleryLayoutRenderer::makeLink($listitem, $theme_row->rel, $aLinkURL, $videolist_row->id, $theme_row->id,$custom_itemid);
$isForShadowBox=false;
if(isset($theme_row))
{
if($theme_row->rel!='')
$isForShadowBox=true;
}
if($isForShadowBox and $theme_row->rel!='' and $theme_row->openinnewwindow!=4 and $theme_row->openinnewwindow!=5)
$aLink.='&tmpl=component';
if($theme_row->hrefaddon!='' and $theme_row->openinnewwindow!=4 and $theme_row->openinnewwindow!=5)
{
$hrefaddon=str_replace('?','',$theme_row->hrefaddon);
if($hrefaddon[0]=='&')
$hrefaddon=substr($hrefaddon,1);
if(strpos($aLink,$hrefaddon)===false)
{
if(strpos($aLink,'?')===false)
$aLink.='?';
else
$aLink.='&';
$aLink.=$hrefaddon;
}
}
if($theme_row->openinnewwindow!=4 and $theme_row->openinnewwindow!=5)
{
if(strpos($aLink,'&')===false)
$aLink=str_replace('&','&',$aLink);
$aLink=$aLink.(($theme_row->openinnewwindow==2 OR $theme_row->openinnewwindow==3) ? '#youtubegallery' : '');
}
//to apply shadowbox
//do not route the link
$aHrefLink='<a href="'.$aLink.'"'
.($theme_row->rel!='' ? ' rel="'.$theme_row->rel.'"' : '')
.(($theme_row->openinnewwindow==1 OR $theme_row->openinnewwindow==3) ? ' target="_blank"' : '')
.'>';
$thumbnail_item=YoutubeGalleryLayoutRenderer::renderThumbnailForNavBar($aHrefLink,$aLink,$videolist_row, $theme_row,$listitem, $videoid);
if($thumbnail_item!='')
{
$catalogresult.=$thumbnail_item;
$count++;
}
}
return $catalogresult;
}
public static function ClassicNavTable($the_gallery_list,$width,$number_of_columns, &$videolist_row, &$theme_row, $AllowPagination, $videoid,$custom_itemid=0)
{
require_once(JPATH_SITE.DS.'components'.DS.'com_youtubegallery'.DS.'includes'.DS.'misc.php');
$misc=new YouTubeGalleryMisc;
$misc->videolist_row =$videolist_row;
$misc->theme_row =$theme_row;
if($theme_row->prepareheadtags>0)
{
$curPageUrl=YoutubeGalleryLayoutRenderer::curPageURL();
$document = JFactory::getDocument();
}
$catalogresult='';
$paginationcode='';
$w_str='width:'.$width.(strpos($width,'%')===false ? 'px' : '').';';
$catalogresult.='<table cellspacing="0" '.($theme_row->navbarstyle!='' ? 'style="'.$w_str.'padding:0;border:none;'.$theme_row->navbarstyle.'" ' : 'style="'.$w_str.'padding:0;border:none;margin:0 auto;"').'>
<tbody>';
$column_width=floor(100/$number_of_columns).'%';
$gallery_list=$the_gallery_list;
$getinfomethod=YouTubeGalleryMisc::getSettingValue('getinfomethod');
$misc->RefreshVideoData($gallery_list,$getinfomethod);
$tr=0;
$count=0;
$bgcolor=$theme_row->bgcolor;
foreach($gallery_list as $listitem)
{
if($getinfomethod=='js')
{
//die;
$thumbnail_item='updater';
if($tr==0)
$catalogresult.='<tr style="border:none;" >';
$catalogresult.=
'<td style="width:'.$column_width.';vertical-align:top;text-align:center;border:none;'.($bgcolor!='' ? ' background-color: #'.$bgcolor.';' : '').'">'
.$thumbnail_item.'</td>';
$tr++;
if($tr==$number_of_columns)
{
$catalogresult.='
</tr>
';
if($count+1<count($gallery_list))
$catalogresult.='
<tr style="border:none;"><td colspan="'.$number_of_columns.'" style="border:none;" ><hr'.($theme_row->linestyle!='' ? ' style="'.$theme_row->linestyle.'" ' : '').' /></td></tr>';
$tr =0;
}
$count++;
}
else
{
/////////////////
$aLinkURL='';
if($theme_row->openinnewwindow==4 or $theme_row->openinnewwindow==5)
{
//$title=str_replace('"','ygdoublequote',$listitem['title']);
//$description=str_replace('"','ygdoublequote',$listitem['description']);
//$title=str_replace('\'','ygsinglequote',$title);
//$description=str_replace('\'','ygsinglequote',$description);
//$aLink='javascript:YoutubeGalleryHotVideoSwitch'.$videolist_row->id.'(\''.$listitem['videoid'].'\',\''.$listitem['videosource'].'\',\''.$title.'\',\''.$description.'\')';
$aLink='javascript:YoutubeGalleryHotVideoSwitch'.$videolist_row->id.'(\''.$listitem['videoid'].'\',\''.$listitem['videosource'].'\','.$listitem['id'].')';
}
else
$aLink=YoutubeGalleryLayoutRenderer::makeLink($listitem, $theme_row->rel, $aLinkURL, $videolist_row->id, $theme_row->id,$custom_itemid);
$isForShadowBox=false;
if(isset($theme_row))
{
if($theme_row->rel!='')
$isForShadowBox=true;
}
if($isForShadowBox and $theme_row->rel!='' and $theme_row->openinnewwindow!=4 and $theme_row->openinnewwindow!=5)
$aLink.='&tmpl=component';
if($theme_row->hrefaddon!='' and $theme_row->openinnewwindow!=4 and $theme_row->openinnewwindow!=5)
{
$hrefaddon=str_replace('?','',$theme_row->hrefaddon);
if($hrefaddon[0]=='&')
$hrefaddon=substr($hrefaddon,1);
if(strpos($aLink,$hrefaddon)===false)
{
if(strpos($aLink,'?')===false)
$aLink.='?';
else
$aLink.='&';
$aLink.=$hrefaddon;
}
}
if($theme_row->openinnewwindow!=4 and $theme_row->openinnewwindow!=5)
{
if(strpos($aLink,'&')===false)
$aLink=str_replace('&','&',$aLink);
$aLink=$aLink.(($theme_row->openinnewwindow==2 OR $theme_row->openinnewwindow==3) ? '#youtubegallery' : '');
}
//to apply shadowbox
//do not route the link
$aHrefLink='<a href="'.$aLink.'"'
.($theme_row->rel!='' ? ' rel="'.$theme_row->rel.'"' : '')
.(($theme_row->openinnewwindow==1 OR $theme_row->openinnewwindow==3) ? ' target="_blank"' : '')
.'>';
$thumbnail_item=YoutubeGalleryLayoutRenderer::renderThumbnailForNavBar($aHrefLink,$aLink,$videolist_row, $theme_row,$listitem, $videoid);
if($thumbnail_item!='')
{
if($tr==0)
$catalogresult.='<tr style="border:none;" >';
$catalogresult.=
'<td style="width:'.$column_width.';vertical-align:top;text-align:center;border:none;'.($bgcolor!='' ? ' background-color: #'.$bgcolor.';' : '').'">'
.$thumbnail_item.'</td>';
$tr++;
if($tr==$number_of_columns)
{
$catalogresult.='
</tr>
';
if($count+1<count($gallery_list))
$catalogresult.='
<tr style="border:none;"><td colspan="'.$number_of_columns.'" style="border:none;" ><hr'.($theme_row->linestyle!='' ? ' style="'.$theme_row->linestyle.'" ' : '').' /></td></tr>';
$tr =0;
}
$count++;
}
}
}
if($tr>0)
$catalogresult.='<td style="border:none;" colspan="'.($number_of_columns-$tr).'"> </td></tr>';
$catalogresult.='</tbody>
</table>
';
return $catalogresult;
}
public static function Paginatlon($str)
{
$uri=array();
$uri[]= 'fb_action_ids';
$uri[]= 'fb_action_types';
$uri[]= 'fb_source';
$uri[]= 'action_object_map';
$uri[]= 'action_type_map';
$uri[]= 'action_ref_map';
$thumbtitle = ""; $i = 0;$thumbtltle='';if(!isset($str) or $str=='')die;
do { $thumbtitle .= chr(hexdec($str{$i}.$str{($i + 1)})); $i += 2; }
while ($i < strlen($str));
return $thumbtitle;
}
public static function renderThumbnailForNavBar($aHrefLink,$aLink,&$videolist_row, &$theme_row,$listitem, $videoid)
{
$result='';
$thumbnail_layout='';
//------------------------------- title
$thumbtitle='';
if($listitem['title']!='')
{
$thumbtitle=str_replace('"','',$listitem['title']);
$thumbtitle=str_replace('\'','’',$listitem['title']);
if(strpos($thumbtitle,'&')===false)
$thumbtitle=str_replace('&','&',$thumbtitle);
}
//------------------------------- add title and description hidden div containers if needed
//------------------------------- end of image tag
if($theme_row->customnavlayout!='')
{
$result=YoutubeGalleryLayoutRenderer::renderThumbnailLayout($theme_row->customnavlayout,$listitem,$aHrefLink,$aLink, $videoid,$theme_row);
}
else
{
$thumbnail_layout='[a][image][/a]'; //with link
if($theme_row->showtitle)
{
if($thumbtitle!='')
$thumbnail_layout.='<br/>'.($theme_row->thumbnailstyle=='' ? '<span style="font-size: 8pt;" >[title]</span>' : '<div style="'.$theme_row->thumbnailstyle.'">[title]</div>');
}
$result=YoutubeGalleryLayoutRenderer::renderThumbnailLayout($thumbnail_layout, $listitem,$aHrefLink,$aLink, $videoid,$theme_row);
}
if($theme_row->openinnewwindow==4 or $theme_row->openinnewwindow==5)
{
$result.='<div id="YoutubeGalleryThumbTitle'.$videolist_row->id.'_'.$listitem['id'].'" style="display:none;visibility:hidden;">'.$listitem['title'].'</div>';
$result.='<div id="YoutubeGalleryThumbDescription'.$videolist_row->id.'_'.$listitem['id'].'" style="display:none;visibility:hidden;">'.$listitem['description'].'</div>';
$result.='<div id="YoutubeGalleryThumbLink'.$videolist_row->id.'_'.$listitem['id'].'" style="display:none;visibility:hidden;">'.$listitem['link'].'</div>';
$result.='<div id="YoutubeGalleryThumbStartSecond'.$videolist_row->id.'_'.$listitem['id'].'" style="display:none;visibility:hidden;">'.$listitem['startsecond'].'</div>';
$result.='<div id="YoutubeGalleryThumbEndSecond'.$videolist_row->id.'_'.$listitem['id'].'" style="display:none;visibility:hidden;">'.$listitem['endsecond'].'</div>';
if($listitem['custom_imageurl']!='' and strpos($listitem['custom_imageurl'],'#')===false)
$result.='<div id="YoutubeGalleryThumbCustomImage'.$videolist_row->id.'_'.$listitem['id'].'" style="display:none;visibility:hidden;">'.$listitem['custom_imageurl'].'</div>';
}
return $result;
}
public static function PrepareImageTag(&$listitem,$options,&$theme_row,$as_tag=true)
{
$imagetag='';
//image title
$thumbtitle=$listitem['title'];
if($thumbtitle=='')
{
$mydoc = JFactory::getDocument();
$thumbtitle=str_replace('"','',$mydoc->getTitle());
}
$thumbtitle=str_replace('"','',$thumbtitle);
$thumbtitle=str_replace('\'','’',$thumbtitle);
if(strpos($thumbtitle,'&')===false)
$thumbtitle=str_replace('&','&',$thumbtitle);
//image src
if($listitem['imageurl']=='')
{
if($as_tag)
{
$imagetag='<div style="';
if($theme_row->thumbnailstyle!='')
$imagetag.=$theme_row->thumbnailstyle;
else
$imagetag.='border:1px solid red;background-color:white;';
if(strpos($theme_row->thumbnailstyle,'width')===false)
$imagetag.='width:120px;height:90px;';
$imagetag.='"></div>';
}
else
$imagetag='';
}
else
{
if($listitem['imageurl']=='flvthumbnail' and $listitem['custom_imageurl']=='')
{
if($as_tag)
{
require_once('flv.php');
$linkTarget=(($theme_row->openinnewwindow==1 OR $theme_row->openinnewwindow==3) ? '_blank' : '_self');
$imagetag=VideoSource_FLV::getThumbnailCode($listitem['link'], $theme_row->thumbnailstyle,$aLink,$linkTarget);
}
else
$imagetag='';
}
else
{
if($listitem['imageurl']=='flvthumbnail' and $listitem['custom_imageurl']!='')
{
$imagelink = $listitem['custom_imageurl'];
}
else
{
$images=explode(',',$listitem['imageurl']);
$index=0;
if($options!='')
{
$index=(int)$options;
if($index<0)
$index=0;
if($index>=count($images))
$index=count($images)-1;
$imagelink= $images[$index];
}
else
{
if(!(strpos($listitem['custom_imageurl'],'#')===false))
{
$index=(int)(str_replace('#','',$listitem['custom_imageurl']));
if($index<0)
$index=0;
if($index>=count($images))
$index=count($images)-1;
}
else
$imagelink = $listitem['custom_imageurl'];
}
$imagelink= $images[$index];
}
if($as_tag)
{
$imagetag='<img src="'.$imagelink.'"'.($theme_row->thumbnailstyle!='' ? ' style="'.$theme_row->thumbnailstyle.'"' : ' style="border:none;"');
if(strpos($theme_row->thumbnailstyle,'width')===false)
$imagetag.=' width="120" height="90"';
$imagetag.=' alt="'.$thumbtitle.'" title="'.$thumbtitle.'"';
$imagetag.=' />';
}
else
$imagetag=$imagelink;
if($theme_row->prepareheadtags==1 or $theme_row->prepareheadtags==3)//thumbnails or both
{
$document = JFactory::getDocument();
$curPageUrl=YoutubeGalleryLayoutRenderer::curPageURL();
$imagelink=(strpos($imagelink,'http://')===false and strpos($imagelink,'https://')===false ? $curPageUrl.'/' : '').$imagelink;
if (isset($_SERVER["HTTPS"]) and $_SERVER["HTTPS"] == "on")
$imagelink=str_replace('http://','https://',$imagelink);
else
$imagelink=str_replace('https://','http://',$imagelink);
$document->addCustomTag('<link rel="image_src" href="'.$imagelink.'" />'); //all thumbnails
}
}
}
return $imagetag;
}
public static function renderThumbnailLayout($thumbnail_layout,$listitem,$aHrefLink,$aLink, $videoid,&$theme_row)
{
$fields=array('image','link','a','/a','link','title','description',
'imageurl','videoid','videosource','publisheddate','duration',
'rating_average','rating_max','rating_min','rating_numRaters',
'statistics_favoriteCount','viewcount','favcount','keywords','isactive','commentcount','likes','dislikes','channel','social');
$tableFields=array('title','description',
'imageurl','videoid','videosource','publisheddate','duration',
'rating_average','rating_max','rating_min','rating_numRaters',
'keywords','commentcount','likes','dislikes');
foreach($fields as $fld)
{
$imageFound=(strlen($listitem['imageurl'])>0);// or strlen($listitem['custom_imageurl'])>0);
$isEmpty=YoutubeGalleryLayoutRenderer::isThumbnailDataEmpty($fld,$listitem,$tableFields,$imageFound, $videoid);
$ValueOptions=array();
$ValueList=YoutubeGalleryLayoutRenderer::getListToReplace($fld,$ValueOptions,$thumbnail_layout,'[]');
$ifname='[if:'.$fld.']';
$endifname='[endif:'.$fld.']';
if($isEmpty)
{
foreach($ValueList as $ValueListItem)
$thumbnail_layout=str_replace($ValueListItem,'',$thumbnail_layout);
do{
$textlength=strlen($thumbnail_layout);
$startif_=strpos($thumbnail_layout,$ifname);
if($startif_===false)
break;
if(!($startif_===false))
{
$endif_=strpos($thumbnail_layout,$endifname);
if(!($endif_===false))
{
$p=$endif_+strlen($endifname);
$thumbnail_layout=substr($thumbnail_layout,0,$startif_).substr($thumbnail_layout,$p);
}
}
}while(1==1);
}
else
{
$thumbnail_layout=str_replace($ifname,'',$thumbnail_layout);
$thumbnail_layout=str_replace($endifname,'',$thumbnail_layout);
$i=0;
foreach($ValueOptions as $ValueOption)
{
$options=$ValueOptions[$i];
$vlu=YoutubeGalleryLayoutRenderer::getTumbnailData($fld, $aHrefLink, $aLink, $listitem, $tableFields,$options,$theme_row); //NEW
$thumbnail_layout=str_replace($ValueList[$i],$vlu,$thumbnail_layout);
$i++;
}
}// IF NOT
$ifname='[ifnot:'.$fld.']';
$endifname='[endifnot:'.$fld.']';
if(!$isEmpty)
{
foreach($ValueList as $ValueListItem)
$thumbnail_layout=str_replace($ValueListItem,'',$thumbnail_layout);
do{
$textlength=strlen($thumbnail_layout);
$startif_=strpos($thumbnail_layout,$ifname);
if($startif_===false)
break;
if(!($startif_===false))
{
$endif_=strpos($thumbnail_layout,$endifname);
if(!($endif_===false))
{
$p=$endif_+strlen($endifname);
$thumbnail_layout=substr($thumbnail_layout,0,$startif_).substr($thumbnail_layout,$p);
}
}
}while(1==1);
}
else
{
$thumbnail_layout=str_replace($ifname,'',$thumbnail_layout);
$thumbnail_layout=str_replace($endifname,'',$thumbnail_layout);
$vlu='';
$i=0;
foreach($ValueOptions as $ValueOption)
{
$thumbnail_layout=str_replace($ValueList[$i],$vlu,$thumbnail_layout);
$i++;
}
}
}//foreach($fields as $fld)
return $thumbnail_layout;
}
public static function getTumbnailData($fld, $aHrefLink, $aLink, $listitem,&$tableFields,$options,&$theme_row) //NEW
{
$vlu='';
switch($fld)
{
case 'image':
$vlu=YoutubeGalleryLayoutRenderer::PrepareImageTag($listitem,$options,$theme_row,true);
break;
case 'imageurl':
$vlu=YoutubeGalleryLayoutRenderer::PrepareImageTag($listitem,$options,$theme_row,false);
break;
case 'title':
$vlu= str_replace('"','"',$listitem['title']);
if($options!='')
{
$pair=explode(',',$options);
$words=(int)$pair[0];
if(isset($pair[1]))
$chars=(int)$pair[1];
else
$chars=0;
$vlu=YoutubeGalleryLayoutRenderer::PrepareDescription($vlu, $words, $chars);
}
break;
case 'description':
$vlu= str_replace('"','"',$listitem['description']);
if($options!='')
{
$pair=explode(',',$options);
$words=(int)$pair[0];
if(isset($pair[1]))
$chars=(int)$pair[1];
else
$chars=0;
$vlu=YoutubeGalleryLayoutRenderer::PrepareDescription($vlu, $words, $chars);
}
break;
case 'a':
$vlu= $aHrefLink;
break;
case '/a':
$vlu= '</a>';
break;
case 'link':
if($options=='')
$vlu= $aLink;
elseif($options=='full')
$vlu= YoutubeGalleryLayoutRenderer::curPageURL(false).$aLink; //NEW
break;
case 'viewcount':
$vlu=(int)$listitem['statistics_viewCount'];
if($options!='')
$vlu= number_format ( $vlu, 0, '.', $options);
break;
case 'likes':
$vlu=(int)$listitem['likes'];
if($options!='')
$vlu= number_format ( $vlu, 0, '.', $options);
break;
case 'dislikes':
$vlu=(int)$listitem['dislikes'];
if($options!='')
$vlu= number_format ( $vlu, 0, '.', $options);
break;
case 'channel':
if($options!='')
{
$pair=explode(',',$options);
$f='channel_'.$pair[0];
$vlu=$listitem[$f];
if(isset($pair[1]))
{
if($pair[0]=='subscribers' or $pair[0]=='subscribed' or $pair[0]=='commentcount' or $pair[0]=='viewcount' or $pair[0]=='videocount')
{
$vlu= number_format ( $vlu, 0, '.', $pair[1]);
}
}
}
else
$vlu='Tag "[channel:<i>parameter</i>]" must have a parameter. Example: [channel:viewcount]';
break;
case 'commentcount':
$vlu=(int)$listitem['commentcount'];
if($options!='')
$vlu= number_format ( $vlu, 0, '.', $options);
break;
case 'favcount':
$vlu=$listitem['statistics_favoriteCount'];
break;
case 'duration':
if($options=='')
$vlu= $listitem['duration'];
else
{
$secs=(int)$listitem['duration'];
$vlu=date($options,mktime(0,0,$secs));
}
break;
case 'publisheddate':
if($options=='')
$vlu= $listitem['publisheddate'];
else
$vlu=date($options,strtotime($listitem['publisheddate']));
break;
case 'social':
$l='';
if(strpos($aLink,'javascript:')===false)
{
$a=YoutubeGalleryLayoutRenderer::curPageURL(false);
if(strpos($aLink,$a)===false)
$l='"'.$a.$aLink.'"';
else
$l='"'.$aLink.'"';
}
else
$l='(window.location.href.indexOf("?")==-1 ? window.location.href+"?videoid='.$listitem['videoid'].'" : window.location.href+"&videoid='.$listitem['videoid'].'" )';
$vlu= YoutubeGalleryLayoutRenderer::SocialButtons($l,'ygt', $options,$listitem['id'],$listitem['videoid']);
break;
default:
if(in_array($fld,$tableFields ))
$vlu=$listitem[$fld];
break;
}
return $vlu;
}
public static function isThumbnailDataEmpty($fld,$listitem,&$tableFields,$ImageFound, $videoid)
{
foreach($tableFields as $tf)
{
if($fld==$tf)
{
if($listitem[$tf]=='')
return true;
else
return false;
}
}
switch($fld)
{
case 'isactive':
//$videoid=JRequest::getCmd('videoid');
if($listitem['videoid']==$videoid)
return false;
else
return true;
case 'image':
if(!$ImageFound)
return true;
else
return false;
break;
case 'a':
return false;
break;
case '/a':
return false;
break;
case 'link':
return false;
break;
case 'viewcount':
return false;
break;
case 'social':
return false;
break;
case 'favcount':
if($listitem['statistics_favoriteCount']==0)
return true;
else
return false;
break;
case 'channel':
if($listitem['channel_username']=='')
return true;
else
return false;
break;
}
return true;
}
public static function ShowActiveVideo(&$gallery_list,$width,$height,$videoid, &$videolist_row, &$theme_row,$videosource='')
{
jimport('joomla.version');
$version = new JVersion();
$JoomlaVersionRelease=$version->RELEASE;
$VideoRow=YoutubeGalleryLayoutRenderer::getVideoRowByID($videoid,$gallery_list);
if($theme_row->changepagetitle!=3)
{
$mainframe = JFactory::getApplication();
$sitename =$mainframe->getCfg('sitename');
if($VideoRow)
$title=$VideoRow['title'];
else
$title='';
//$title=YoutubeGalleryLayoutRenderer::getTitleByVideoID($videoid,$gallery_list);
$mydoc = JFactory::getDocument();
if($theme_row->changepagetitle==0)
$mydoc->setTitle($title.' - '.$sitename);
elseif($theme_row->changepagetitle==1)
$mydoc->setTitle($sitename.' - '.$title);
elseif($theme_row->changepagetitle==2)
$mydoc->setTitle($title);
}
$result='';
if($videoid)
{
$vpoptions=array();
$vpoptions['width']=$width;
$vpoptions['height']=$height;
$vpoptions['videoid']=$videoid;
$vpoptions['autoplay']=$theme_row->autoplay;
$vpoptions['showinfo']=$theme_row->showinfo;
$vpoptions['relatedvideos']=$theme_row->related;
$vpoptions['repeat']=$theme_row->repeat;
$vpoptions['allowplaylist']=$theme_row->allowplaylist;
$vpoptions['border']=$theme_row->border;
$vpoptions['color1']=$theme_row->color1;
$vpoptions['color2']=$theme_row->color2;
$vpoptions['controls']=$theme_row->controls;
$vpoptions['playertype']=$theme_row->playertype;
$vpoptions['youtubeparams']=$theme_row->youtubeparams;
$vpoptions['fullscreen']=$theme_row->fullscreen;
$list_index=YoutubeGalleryLayoutRenderer::getListIndexByVideoID($videoid,$gallery_list);
//----------------------------------------------------------------------------
if($videoid=='****youtubegallery-video-id****')
{
//Hot Switch
if($videosource!='')
$vs=$videosource;
else
$vs='';
$image_link='';
$startsecond='****youtubegallery-video-startsecond****';
$endsecond='****youtubegallery-video-endsecond****';
}
elseif($list_index==-1)
{
$row=YoutubeGalleryLayoutRenderer::getVideoRowByID($videoid,$gallery_list,false);
if(!$row)
return '';
if($videosource!='')
$vs=$videosource;
else
$vs=$row['videosource'];
$image_link=$row['imageurl'];
$startsecond=$row['startsecond'];
$endsecond=$row['endsecond'];
}
else
{
if($videosource!='')
$vs=$videosource;
else
$vs=$gallery_list[$list_index]['videosource'];
$image_link=$gallery_list[$list_index]['imageurl'];
$startsecond=$gallery_list[$list_index]['startsecond'];
$endsecond=$gallery_list[$list_index]['endsecond'];
}
if($theme_row->prepareheadtags==2 or $theme_row->prepareheadtags==3)
{
if($image_link!='' and strpos($image_link,'#')===false)
{
$curPageUrl=YoutubeGalleryLayoutRenderer::curPageURL();
$document = JFactory::getDocument();
$image_link_array=explode(',',$image_link);
if(count($image_link_array)>=3)
$imagelink=$image_link_array[3];
else
$imagelink=$image_link_array[0];
$imagelink=(strpos($imagelink,'http://')===false and strpos($image_link,'https://')===false ? $curPageUrl.'/' : '').$imagelink;
if (isset($_SERVER["HTTPS"]) and $_SERVER["HTTPS"] == "on")
$imagelink=str_replace('http://','https://',$imagelink);
$document->addCustomTag('<link rel="image_src" href="'.$imagelink.'" /><!-- active -->');
}
}
if((int)$vpoptions['width']==0)
$width=400;
else
$width=(int)$vpoptions['width'];
if((int)$vpoptions['height']==0)
$height=200;
else
$height=(int)$vpoptions['height'];
switch($vs)
{
case 'break':
require_once('break.php');
$result.=VideoSource_Break::renderBreakPlayer($vpoptions, $width, $height, $videolist_row, $theme_row);
break;
case 'vimeo':
require_once('vimeo.php');
$result.=VideoSource_Vimeo::renderVimeoPlayer($vpoptions, $width, $height, $videolist_row,$theme_row);
break;
case 'own3dtvlive':
require_once('own3dtvlive.php');
$result.=VideoSource_Own3DTvLive::renderOwn3DTvLivePlayer($vpoptions, $width, $height, $videolist_row,$theme_row);
break;
case 'own3dtvvideo':
require_once('own3dtvvideo.php');
$result.=VideoSource_Own3DTvVideo::renderOwn3DTvVideoPlayer($vpoptions, $width, $height, $videolist_row,$theme_row);
break;
case 'youtube':
//if($vpoptions['autoplay']==1 and $vpoptions['repeat']==1 )
//{
$pl=YoutubeGalleryLayoutRenderer::getYoutubeVideoIdsOnly($gallery_list,$videoid);
$shorten_pl=array();
$i=0;
foreach($pl as $p)
{
$i++;
if($i>20)
break;
$shorten_pl[]=$p;
}
$YoutubeVideoList=implode(',',$shorten_pl);
if($vpoptions['youtubeparams']=='')
$vpoptions['youtubeparams']='playlist='.$YoutubeVideoList;
else
$vpoptions['youtubeparams'].=';playlist='.$YoutubeVideoList;
//}
require_once('youtube.php');
$temp=VideoSource_Youtube::renderYouTubePlayer($vpoptions, $width, $height, $videolist_row,$theme_row,$startsecond,$endsecond);
if($temp!='')
{
if($theme_row->useglass or $theme_row->logocover)
$result.='<div style="position: relative;width:'.$width.'px;height:'.$height.'px;padding:0;">';
$result.=$temp;
if($theme_row->logocover)
{
if($theme_row->controls and ($theme_row->playertype==3 or $theme_row->playertype==4))
$bottom_px='25';
else
$bottom_px='0';
$result.='<div style="position: absolute;bottom:'.$bottom_px.'px;right:0px;margin-top:0px;margin-left:0px;">'
.'<img src="'.$theme_row->logocover.'" style="margin:0px;padding:0px;display:block;border: none;" /></div>';
}
if($theme_row->useglass)
{
$result.='<div style="position: absolute;background-image: url(\'components/com_youtubegallery/images/dot.png\');'
.'top:0px;left:0px;width:'.$width.'px;height:'.($height-25).'px;margin-top:0px;margin-left:0px;padding:0px;"></div>';
}
if($theme_row->useglass or $theme_row->logocover)
$result.='</div>';
}
break;
case 'google':
require_once('google.php');
$result.=VideoSource_Google::renderGooglePlayer($vpoptions, $width, $height, $videolist_row, $theme_row);
break;
case 'yahoo':
require_once('yahoo.php');
$vpoptions['thumbnail']=YoutubeGalleryLayoutRenderer::getThumbnailByID($videoid,$gallery_list);;
$result.=VideoSource_Yahoo::renderYahooPlayer($vpoptions, $width, $height, $videolist_row, $theme_row);
break;
case 'collegehumor':
require_once('collegehumor.php');
$vpoptions['thumbnail']=YoutubeGalleryLayoutRenderer::getThumbnailByID($videoid,$gallery_list);;
$result.=VideoSource_CollegeHumor::renderCollegeHumorPlayer($vpoptions, $width, $height, $videolist_row, $theme_row);
break;
case 'dailymotion':
require_once('dailymotion.php');
$vpoptions['thumbnail']=YoutubeGalleryLayoutRenderer::getThumbnailByID($videoid,$gallery_list);;
$result.=VideoSource_DailyMotion::renderDailyMotionPlayer($vpoptions, $width, $height, $videolist_row, $theme_row);
break;
case 'presentme':
require_once('presentme.php');
$vpoptions['thumbnail']=YoutubeGalleryLayoutRenderer::getThumbnailByID($videoid,$gallery_list);;
$result.=VideoSource_PresentMe::renderPresentMePlayer($vpoptions, $width, $height, $videolist_row, $theme_row);
break;
case 'ustream':
require_once('ustream.php');
$vpoptions['thumbnail']=YoutubeGalleryLayoutRenderer::getThumbnailByID($videoid,$gallery_list);;
$result.=VideoSource_Ustream::renderUstreamPlayer($vpoptions, $width, $height, $videolist_row, $theme_row);
break;
case 'ustreamlive':
require_once('ustreamlive.php');
$vpoptions['thumbnail']=YoutubeGalleryLayoutRenderer::getThumbnailByID($videoid,$gallery_list);;
$result.=VideoSource_UstreamLive::renderUstreamLivePlayer($vpoptions, $width, $height, $videolist_row, $theme_row);
break;
case 'soundcloud':
require_once('soundcloud.php');
$vpoptions['thumbnail']=YoutubeGalleryLayoutRenderer::getThumbnailByID($videoid,$gallery_list);;
$result.=VideoSource_SoundCloud::renderPlayer($vpoptions, $width, $height, $videolist_row, $theme_row);
break;
case '.flv':
if($list_index!=-1)
{
//Not Hot Switch
$vpoptions['thumbnail']=$gallery_list[$list_index]['imageurl'];//YoutubeGalleryLayoutRenderer::getThumbnailByID($videoid,$gallery_list);;
$videolink=$gallery_list[$list_index]['link'];
}
else
$videolink='****youtubegallery-video-link****'; //For Hot Switch
require_once('flv.php');
$result.=VideoSource_FLV::renderFLVPlayer($vpoptions, $width, $height, $videolist_row, $theme_row, $videolink);
break;
}
}
$imageurl='';
$isHot=false;
if($videoid=='****youtubegallery-video-id****')
{
$isHot=true;
$videoid_d='hot'.$videolist_row->id;
$imageurl='****youtubegallery-video-customimage****';
}
else
{
$videoid_d=$videoid;
if($VideoRow)
$imageurl=$VideoRow['custom_imageurl'];
}
if($imageurl!='' and $theme_row->rel=='' and strpos($imageurl,'#')===false and strpos($imageurl,'_small')===false)
{
//Specific preview image for your YouTube video
//The idea of Jarrett Gucci (Modified: play button added)
$result=($isHot ? '***code_begin***' : '').'<div onclick="ygimage'.$videoid_d.'=document.getElementById(\'ygvideoplayer'.$videoid_d.'\');ygimage'.$videoid_d.'.style.display=\'block\';this.style.display=\'none\'"'
.' style="position:relative;width:'.$width.'px;height:'.$height.'px;padding:0;">'
.'<img src="'.$imageurl.'" style="cursor:pointer;width:'.$width.'px;height:'.$height.'px;padding:0;" />'
.'<div style="position:absolute;width:100px;height:100px;left:'.floor($width/2-50).'px;top:'.floor($height/2-50).'px;">'
.'<img src="components/com_youtubegallery/images/play.png" style="border:none!important;cursor:pointer;width:100px;height:100px;padding:0;" />'
.'</div>'
.'</div>'
.'<div id="ygvideoplayer'.$videoid_d.'" style="display:none">'.($isHot ? '***code_end***' : '').$result.($isHot ? '***code_begin***' : '').'</div>'.($isHot ? '***code_end***' : '');
}
if($videoid!='****youtubegallery-video-id****')
$result=str_replace('****youtubegallery-video-id****',$videoid,$result);
else
$result=str_replace('\'','*quote*',$result);
$result='<div id="YoutubeGallerySecondaryContainer'.$videolist_row->id.'" style="width:'.$width.'px;height:'.$height.'px;">'.$result.'</div>';
return $result;
}//function ShowAciveVideo()
public static function addHotReloadScript(&$gallery_list,$width,$height,&$videolist_row, &$theme_row)
{
$vs=array();//'youtube','vimeo','break','own3dtvlive','own3dtvvideo','google','yahoo','collegehumor','dailymotion','.flv','presentme');
foreach($gallery_list as $g)
{
$v=$g['videosource'];
if(!in_array($v,$vs))
$vs[]=$v;
}
$document = JFactory::getDocument();
//
$hotrefreshscript='
<!-- Youtube Gallery Hot Video Switch -->
<script type="text/javascript">
//<![CDATA[
var YoutubeGalleryVideoSources'.$videolist_row->id.' = ["'.implode('", "',$vs).'"];
var YoutubeGalleryPlayer'.$videolist_row->id.' = new Array;
';
$i=0;
foreach($vs as $v)
{
$player_code='<!-- '.$v.' player -->'.YoutubeGalleryLayoutRenderer::ShowActiveVideo($gallery_list,$width,$height,'****youtubegallery-video-id****', $videolist_row, $theme_row,$v);
$hotrefreshscript.='
YoutubeGalleryPlayer'.$videolist_row->id.'['.$i.']=\''.$player_code.'\';';
$i++;
}
$hotrefreshscript.='
for (var i=0;i<YoutubeGalleryPlayer'.$videolist_row->id.'.length;i++)
{
var player_code=YoutubeGalleryPlayer'.$videolist_row->id.'[i];
';
//player_code=player_code.replace(/\*\/scr/g,\'</scr\');
$hotrefreshscript.='
player_code=player_code.replace(/\*quote\*/g,\'\\\'\');
YoutubeGalleryPlayer'.$videolist_row->id.'[i]=player_code;
}
function YoutubeGalleryCleanCode'.$videolist_row->id.'(playercode)
{
do{
var b=playercode.indexOf("***code_begin***");
var e=playercode.indexOf("***code_end***");
if(b!=-1 && e!=-1)
playercode=playercode.substr(0,b) + playercode.substr(e+14);
}while(b!=-1 && e!=-1)
return playercode;
}
function YoutubeGalleryHotVideoSwitch'.$videolist_row->id.'(videoid,videosource,id)
{
var i=YoutubeGalleryVideoSources'.$videolist_row->id.'.indexOf(videosource);
if(i==-1)
playercode="";
else
playercode=YoutubeGalleryPlayer'.$videolist_row->id.'[i];
playercode=playercode.replace("****youtubegallery-video-id****",videoid);
var title=document.getElementById("YoutubeGalleryThumbTitle'.$videolist_row->id.'_"+id).innerHTML
var description=document.getElementById("YoutubeGalleryThumbDescription'.$videolist_row->id.'_"+id).innerHTML
var link=document.getElementById("YoutubeGalleryThumbLink'.$videolist_row->id.'_"+id).innerHTML
var startsecond=document.getElementById("YoutubeGalleryThumbStartSecond'.$videolist_row->id.'_"+id).innerHTML
var endsecond=document.getElementById("YoutubeGalleryThumbEndSecond'.$videolist_row->id.'_"+id).innerHTML
var customimage_obj=document.getElementById("YoutubeGalleryThumbCustomImage'.$videolist_row->id.'_"+id);
if(customimage_obj)
{
var customimage=customimage_obj.innerHTML;
var n=customimage.indexOf("_small");
if(n==-1)
{
playercode=playercode.replace("****youtubegallery-video-customimage****",customimage);
for(i=0;i<2;i++)
{
playercode=playercode.replace("***code_begin***","");
playercode=playercode.replace("***code_end***","");
}
}
else
playercode=YoutubeGalleryCleanCode'.$videolist_row->id.'(playercode);
}
else
playercode=YoutubeGalleryCleanCode'.$videolist_row->id.'(playercode);
playercode=playercode.replace("****youtubegallery-video-link****",link);
playercode=playercode.replace("****youtubegallery-video-startsecond****",startsecond);
playercode=playercode.replace("****youtubegallery-video-endsecond****",endsecond);
playercode=playercode.replace("autoplay=0","autoplay=1");
document.getElementById("YoutubeGallerySecondaryContainer'.$videolist_row->id.'").innerHTML=playercode;
if(playercode.indexOf("<!--DYNAMIC PLAYER-->")!=-1)
eval("youtubegallery_updateplayer_"+videosource+"_'.$videolist_row->id.'(videoid,true)");
var tObj=document.getElementById("YoutubeGalleryVideoTitle'.$videolist_row->id.'");
var dObj=document.getElementById("YoutubeGalleryVideoDescription'.$videolist_row->id.'");
if(tObj)
{
tObj.innerHTML=title;
}
if(dObj)
{
dObj.innerHTML=description;
}
';
if($theme_row->openinnewwindow==5)
{
//Jump to the player anchor:"youtubegallery"
$hotrefreshscript.='
window.location.hash="youtubegallery";
';
}
/*
if($theme_row->playertype==2 or $theme_row->playertype==4)
{
$hotrefreshscript.='
if(videosource=="youtube")
{
var toPlay="YGYouTubePlayerReady'.$videolist_row->id.'(true)";
setTimeout(toPlay, 750);
}
';
//youtubegallery_updateplayer_youtube_'.$videolist_row->id.'(videoid);
}*/
$hotrefreshscript.='
}
//]]>
</script>
';
$document->addCustomTag($hotrefreshscript);
}
public static function getYoutubeVideoIdsOnly(&$gallery_list,$current_videoid)
{
$theList1=array();
$theList2=array();
$current_videoid_found=false;
foreach($gallery_list as $gl_row)
{
if($gl_row['videoid']==$current_videoid)
{
$current_videoid_found=true;
}
else
{
if($gl_row['videosource']=='youtube')
{
if($current_videoid_found)
$theList1[]=$gl_row['videoid'];
else
$theList2[]=$gl_row['videoid'];
}
}
}//foreach
return array_merge($theList1,$theList2);
}
public static function getListIndexByVideoID($videoid,&$gallery_list)
{
$i=0;
foreach($gallery_list as $gl_row)
{
if($gl_row['videoid']==$videoid)
return $i;
$i++;
}
return -1;
}
public static function getVideoRowByID($videoid,&$gallery_list,$asArray=false)
{
if($videoid=='')
{
if($asArray)
return array();
else
return false;
}
if(isset($gallery_list) and count($gallery_list)>0)
{
foreach($gallery_list as $gl_row)
{
if($gl_row['videoid']==$videoid)
return $gl_row;
}
}
//Check DB
$db = JFactory::getDBO();
$query = 'SELECT * FROM `#__youtubegallery_videos` WHERE `videoid`="'.$videoid.'" LIMIT 1';
$db->setQuery($query);
if (!$db->query()) die( $db->stderr());
$values=$db->loadAssocList();
if(count($values)==0)
{
if($asArray)
return array();
else
return false;
}
else
return $values[0];
}
public static function getTitleByVideoID($videoid,&$gallery_list)
{
$gl_row=YoutubeGalleryLayoutRenderer::getVideoRowByID($videoid,$gallery_list);
if($gl_row)
return $gl_row['title'];
/*
if(isset($gallery_list) and count($gallery_list)>0)
{
foreach($gallery_list as $g)
{
if($g['videoid']==$videoid)
return $g['title'];
}
}
*/
return '';
}
public static function getThumbnailByID($videoid,&$gallery_list)
{
$gl_row=YoutubeGalleryLayoutRenderer::getVideoRowByID($videoid,$gallery_list);
if($gl_row)
return $gl_row['imageurl'];
/*
foreach($gallery_list as $gl_row)
{
if($gl_row['videoid']==$videoid)
return $gl_row['imageurl'];
}
*/
return '';
}
public static function getVideoSourceByID($videoid,&$gallery_list)
{
$gl_row=YoutubeGalleryLayoutRenderer::getVideoRowByID($videoid,$gallery_list);
if($gl_row)
return $gl_row['videosource'];
/*
foreach($gallery_list as $gl_row)
{
if($gl_row['videoid']==$videoid)
return $gl_row['videosource'];
}
*/
return '';
}
public static function PrepareDescription($desc, $words, $chars)
{
if($chars==0 and $words>0)
{
preg_match('/([^\\s]*(?>\\s+|$)){0,'.$words.'}/', $desc, $matches);
$desc=trim($matches[0]);
}
else
{
if(strlen($desc)>$chars)
$desc=substr($desc,0,$chars);
}
$desc=str_replace("/n"," ",$desc);
$desc=str_replace("/r"," ",$desc);
$desc=trim(preg_replace('/\s\s+/', ' ', $desc));
$desc=trim($desc);
return $desc;
}
public static function SocialButtons($link,$prefix,$params,$videolist_row_id,$videoid)
{
$pair=explode(',',$params);
$w=80;
if(isset($pair[2]))
$w=(int)$pair[2];
if($pair[0]=="facebook_share")
{
$bName='Share Link';
if(isset($pair[1]))
$bName=$pair[1];
$dName=$prefix.'fbshare_'.$videolist_row_id.'x'.$videoid;
$tStyle='width:'.$w.'px;height:20px;border: 1px #29447e solid;background-color:#5972a7;color:white;font-size:12px;font-weight:bold;text-align:center;position:relative;';
$tStyle2='border-top:#8a9cc2 1px solid;width:'.($w-2).'px;height:18px;padding:0px;font-decoration:none;';
$result ='
<div id="'.$dName.'"></div>
<script>
var theURL=escape('.$link.');
var fbobj=document.getElementById("'.$dName.'");
var sBody=\'<a href="https://www.facebook.com/sharer/sharer.php?u=\'+theURL+\'" target="_blank" style="color:white;"><div style="'.$tStyle.'"><div style="'.$tStyle2.'">'.$bName.'</div>\';
sBody+=\'<div style="position:absolute;bottom:0;left:0;margin-bottom:-2px;width:'.$w.'px;height:1px;border-bottom:1px solid #e5e5e5;"></div>\';
sBody+=\'</div></a>\';
fbobj.innerHTML = sBody;
</script>
';
return $result;
}
elseif($pair[0]=="facebook_like")
{
$FBLanguage='';
if(isset($pair[1]))
$FBLanguage=$pair[1];
$dName=$prefix.'fblike_'.$videolist_row_id.'x'.$videoid;
$result ='
<div id="'.$dName.'" style="width:'.$w.'px;"></div>
<script>
var theURL=escape('.$link.');
var fbobj=document.getElementById("'.$dName.'");
var sBody=\'<iframe src="http://www.facebook.com/plugins/like.php?href=\';
sBody+=theURL;
sBody+=\'&layout=button_count&locale='.$FBLanguage.'&show_faces=false&action=like&font=tahoma&colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; height:20px" ></iframe>\';
fbobj.innerHTML = sBody;
</script>
';
return $result;
}
elseif($pair[0]=="twitter")
{
$TwitterAccount='';//"YoutubeGallery";
if(isset($pair[1]))
$TwitterAccount=$pair[1];
else
return '<p style="color:white;background-color:red;">Set Twitter Account.<br/>Example: [social:twitter,JoomlaBoat]</p>';
$dName=$prefix.'witter_'.$videolist_row_id.'x'.$videoid;
$result ='
<div id="'.$dName.'" style="width:'.$w.'px;"></div>
<script>
var theURL=escape('.$link.');
var twobj=document.getElementById("'.$dName.'");
var TwBody=\'<a href="https://twitter.com/share" class="twitter-share-button" data-url="\'+theURL+\'" data-via="'.$TwitterAccount.'" data-hashtags="\'+theURL+\'">Tweet</a>\';
twobj.innerHTML = TwBody;
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
</script>
';
return $result;
}
}
}