CacheExecute($cfg['cache_file_url'], $sql) : $db->execute($sql);
$server_type = $rs->fields['server_type'];
$url = $rs->fields['url'];
$lighttpd_url = $rs->fields['lighttpd_url'];
$s3_bucketname = $rs->fields['s3_bucketname'];
$cf_enabled = $rs->fields['cf_enabled'];
$cf_dist_domain = $rs->fields['cf_dist_domain'];
$cf_dist_type = $rs->fields['cf_dist_type'];
$cf_signed_url = $rs->fields['cf_signed_url'];
$cf_signed_expire = $rs->fields['cf_signed_expire'];
$cf_key_pair = $rs->fields['cf_key_pair'];
$cf_key_file = $rs->fields['cf_key_file'];
switch ($server_type) {
case "ftp":$base = ($url == '' ? $cfg['media_files_url'] : $url);
break;
case "s3":
case "ws":
if ($cf_enabled == 0 or ($cf_enabled == 1 and $cf_dist_type == 'r' and $is_mobile)) {
$pv = $server_type == 'ws' ? '.s3.wasabisys.com' : '.s3.amazonaws.com';
$base = 'https://' . $s3_bucketname . $pv;
} elseif ($cf_enabled == 1) {
$base = 'https://' . $cf_dist_domain;
if ($cf_dist_type == 'r') {
$base = 'rtmp://' . $cf_dist_domain;
}
}
break;
default:$base = $cfg['media_files_url'];
break;
}
return $base;
}
/* flowplayer signed url */
public function fpSigned($type, $vid, $ukey)
{
global $db, $cfg;
$sql = sprintf("SELECT
A.`server_type`, A.`cf_enabled`, A.`cf_dist_type`, A.`cf_dist_domain`, A.`cf_signed_url`, A.`cf_signed_expire`, A.`cf_key_pair`, A.`cf_key_file`,
B.`upload_server`
FROM
`db_servers` A, `db_%sfiles` B
WHERE
B.`file_key`='%s' AND
B.`upload_server` > '0' AND
A.`server_id`=B.`upload_server` LIMIT 1;", $type, $vid);
$rs = self::$db_cache ? $db->CacheExecute($cfg['cache_signed_thumbnails'], $sql) : $db->execute($sql);
$srv = $db->execute($sql);
$html = '';
if ($srv->fields['server_type'] == 's3' and $srv->fields['cf_enabled'] == 1 and $srv->fields['cf_signed_url'] == 1) {
$cf_signed_expire = $srv->fields['cf_signed_expire'];
$cf_key_pair = $srv->fields['cf_key_pair'];
$cf_key_file = $srv->fields['cf_key_file'];
$sources = VPlayers::fileSources($type, $ukey, $vid);
foreach ($sources as $b => $f) {
foreach ($f as $loc) {
$path = $srv->fields['cf_dist_type'] == 'r' ? strstr($loc, $ukey) : $loc;
$html .= '
' . VbeServers::getSignedURL($path, $cf_signed_expire, $cf_key_pair, $cf_key_file) . '
';
}
}
}
return $html;
}
/* thumbnail url, mostly for email notifications */
public static function thumbURL($type, $user_key, $file_key)
{
global $cfg;
$enc = rawurlencode(secured_encrypt(json_encode(array($type, $user_key, $file_key))));
$url = sprintf("%s/%s?_=%s", $cfg['main_url'], VHref::getKey("thumb"), $enc);
return $url;
}
/* file and thumb signed url */
public function thumbSigned($for, $file_key, $usr_key, $expires = 0, $custom_policy = 0, $nr = 0)
{
global $db, $cfg;
$thumb_cache = null;
$new_key = $usr_key;
if (is_array($usr_key)) {
$thumb_cache = $usr_key[1];
$thumb_cache = $thumb_cache > 1 ? $thumb_cache : null;
$usr_key = $usr_key[0];
}
if (is_array($for)) {
$type = $for['type'];
$srv = $for['server'];
$file = $for['key'];
} else {
$type = $for;
$srv = 'thumb';
}
if (is_array($file_key)) {
$file_key = $file_key[0];
}
$sql = sprintf("SELECT
A.`%s_server`,
B.`server_type`, B.`cf_enabled`, B.`cf_signed_url`, B.`cf_signed_expire`, B.`cf_key_pair`, B.`cf_key_file`
FROM
`db_%sfiles` A, `db_servers` B
WHERE
A.`file_key`='%s' AND
A.`%s_server`>'0' AND
A.`%s_server`=B.`server_id`
LIMIT 1", $srv, $type, $file_key, $srv, $srv);
$cf = self::$db_cache ? $db->CacheExecute($cfg['cache_signed_thumbnails'], $sql) : $db->execute($sql);
$server_type = $cf->fields['server_type'];
$cf_enabled = $cf->fields['cf_enabled'];
$cf_signed_url = $cf->fields['cf_signed_url'];
$cf_signed_expire = ($expires == 0 ? $cf->fields['cf_signed_expire'] : $expires);
$cf_key_pair = $cf->fields['cf_key_pair'];
$cf_key_file = $cf->fields['cf_key_file'];
$file_url = $srv == 'thumb' ? VGenerate::fileURL($type, $file_key, 'thumb') . '/' . $usr_key . '/t/' . $file_key . '/' . $nr . $thumb_cache . '.jpg' : VGenerate::fileURL($type, $file_key, 'upload') . $file;
if (($server_type == 's3' or $server_type == 'ws') and $cf_enabled == 1 and $cf_signed_url == 1) {
$file_url = VbeServers::getSignedURL($file_url, $cf_signed_expire, $cf_key_pair, $cf_key_file, 0, $custom_policy);
}
return $file_url;
}
/* flowplayer bitrate select */
public function fpBitrate($a = '')
{
global $cfg;
$type = 'video';
if ($a == '') {
return '';
} else {
$s0 = 0;
$s1 = 0;
$s2 = 0;
$s3 = 0;
$file_key = $a[0];
$usr_key = $a[1];
$f = VPlayers::fileSources($type, $usr_key, $file_key);
$url = VGenerate::fileURL($type, $file_key, 'upload');
foreach ($f as $k => $v) {
$loc0 = str_replace($url, $cfg['media_files_dir'], $v[0]);
$loc1 = str_replace($url, $cfg['media_files_dir'], $v[1]);
$loc2 = str_replace($url, $cfg['media_files_dir'], $v[2]);
$loc3 = str_replace($url, $cfg['media_files_dir'], $v[3]);
$loc4 = str_replace($url, $cfg['media_files_dir'], $v[4]);
if ($k == '360p') {
if ($s0 == 0 and (file_exists($loc0) or file_exists($loc1) or file_exists($loc2) or file_exists($loc3) or file_exists($loc4))) {
$s0 = 1;
}
} elseif ($k == '480p') {
if ($s1 == 0 and (file_exists($loc0) or file_exists($loc1) or file_exists($loc2) or file_exists($loc4))) {
$s1 = 1;
}
} elseif ($k == '720p') {
if ($s2 == 0 and (file_exists($loc0) or file_exists($loc1) or file_exists($loc2) or file_exists($loc4))) {
$s2 = 1;
}
} elseif ($k == '1080p') {
if ($s3 == 0 and (file_exists($loc0) or file_exists($loc1) or file_exists($loc2) or file_exists($loc4))) {
$s3 = 1;
}
}
}
$html = '';
$html .= ($s0 == 1 and ($s1 == 1 or $s2 == 1)) ? '
360p' : null;
$html .= ($s1 == 1 and ($s0 == 1 or $s2 == 1)) ? '
480p' : null;
$html .= ($s2 == 1 and ($s0 == 1 or $s1 == 1)) ? '
720p' : null;
$html .= ($s3 == 1 and ($s0 == 1 or $s1 == 1)) ? '
1080p' : null;
$html .= '
';
return $html;
}
}
/* h2 span words */
public function H2span($w, $footer = '')
{
$thx = explode(' ', $w);
$footer = $footer == 1 ? 'f' : null;
return '';
}
/* generate footer copyright text */
public function footerText($ct = 1)
{
global $cfg, $language;
include_once 'f_core/config.version.php';
$html .= $language['frontend.copyright.text'] . ' ' . date("Y") . ' © ' . $cfg['head_title'] . ' ' . $language['frontend.rights.text'] . '
';
$html .= $ct == 1 ? $language['frontend.powered.text'] . ' ' . $version['name'] . $version['major'] . '.' . $version['minor'] . '
' : null;
return $html;
}
/* generate footer links and pages, including language menu */
public static function footerInit()
{
global $class_filter, $cfg, $language;
$_fp = footerPages();
$_ct = count($_fp);
$_t = $class_filter->clr_str($_GET['t']);
$_s = 1;
$ht .= '';
echo $ht;
}
/* frontend language menu */
public static function langInit()
{
global $cfg, $language;
$area = (VTemplate::backendSectionCheck()) ? 'be' : 'fe';
$_lang = langTypes();
$_ct = count($_lang);
$_ln_list = null;
$_di = null;
foreach ($_lang as $lk => $lv) {
if (!isset($_SESSION[$area . '_lang']) and $lv['lang_default'] == 1) {
$_ln = $lv['lang_name'];
} elseif (isset($_SESSION[$area . '_lang'])) {
$_ln = $_lang[$_SESSION[$area . '_lang']]['lang_name'];
}
$_di = $_SESSION[$area . '_lang'] == $lk ? '' : null;
$_ln_list .= ' ' . $lv['lang_name'] . $_di . '';
}
$html = ' ' . $language['frontend.global.language'] . ': ' . $_ln . '';
$html .= '';
$html .= '';
$html .= '';
$html .= '
' . $language['frontend.global.lang.select'] . '
';
$html .= '
' . $_ln_list . '
';
$html .= '
';
$html .= '';
$html .= '';
$js = '$(".lang-entry").click(function(){';
$js .= '$("#siteContent").mask(" ");';
$js .= '$.post("' . $cfg['main_url'] . '/' . VHref::getKey("language") . '?t="+$(this).attr("rel-lang")+"' . ($area == 'be' ? '&b=1' : null) . '", function(data){';
$js .= '$("#lang-update").html(data);';
$js .= '$("#siteContent").unmask();';
$js .= '});';
$js .= '});';
$html .= VGenerate::declareJS('$(document).ready(function(){' . $js . '});');
return $html;
}
/* backend language menu */
public static function langInit_be()
{
global $cfg, $language;
$_lang = langTypes();
$_ct = count($_lang);
if ($_ct == 0 or $_ct == 1) {
return false;
}
$html = '
';
$js = '$(".lang-entry").click(function(){';
$js .= '$("#siteContent").mask(" ");';
$js .= '$.post("' . $cfg['main_url'] . '/' . VHref::getKey("language") . '?b=1&t="+$(this).attr("rel-lang"), function(data){';
$js .= '$("#lang-update").html(data);';
$js .= '$("#siteContent").unmask();';
$js .= '});';
$js .= '});';
$html .= VGenerate::declareJS('$(document).ready(function(){' . $js . '});');
return $html;
}
/* generate page HTML, for footer links */
public function pageHTML()
{
global $class_filter, $smarty, $cfg, $class_database;
$cfg[] = $class_database->getConfigurations('server_path_php');
$_fp = footerPages();
$_t = $class_filter->clr_str($_GET['t']);
$file_path = $cfg['ww_templates_dir'] . '/tpl_page/' . $_fp[$_t]['page_name'];
if (!is_file($file_path)) {
return;
}
if (substr($_fp[$_t]['page_name'], -3) == 'php') {
} else {
$_body = $smarty->fetch($file_path);
}
return $_body;
}
/* generate advertising banners */
public static function advHTML($a)
{
global $db, $language, $class_filter;
$type = isset($_GET['a']) ? 'audio' : (isset($_GET['s']) ? 'short' : 'video');
$q = null;
if (is_array($a)) {
$f = 0;
$id = $a[1];
$c = $db->execute(sprintf("SELECT `banner_ads` FROM `db_%sfiles` WHERE `file_key`='%s' LIMIT 1;", $type, $a[2]));
if ($c->fields['banner_ads'] != '') {
//video banner ads
$ca = unserialize($c->fields['banner_ads']);
$sql = sprintf("SELECT `adv_id` FROM `db_advbanners` WHERE `adv_id` IN (%s) AND `adv_active`='1' AND `adv_group`='%s' ORDER BY RAND() LIMIT 1;", implode(',', $ca), $id);
$r = $db->execute($sql);
if ($f == 0 and $r->fields['adv_id']) {
$f = 1;
$q = sprintf("B.`adv_id`='%s' AND ", $r->fields['adv_id']);
}
if ($f == 0) {
$id = $a[0];
}
} else {
//category banner ads
$c = $db->execute(sprintf("SELECT
A.`ct_banners`, B.`file_key`
FROM
`db_categories` A, `db_%sfiles` B
WHERE
A.`ct_id`=B.`file_category` AND
B.`file_key`='%s'
LIMIT 1;", $type, $a[2]));
if ($c->fields['ct_banners'] != '') {
$ca = unserialize($c->fields['ct_banners']);
$sql = sprintf("SELECT `adv_id`, `adv_group` FROM `db_advbanners` WHERE `adv_id` IN (%s) AND `adv_active`='1' AND `adv_group`='%s' ORDER BY RAND() LIMIT 1;", implode(',', $ca), ($id + 10));
$r = $db->execute($sql);
if ($f == 0 and $r->fields['adv_id']) {
$f = 1;
$id = $r->fields['adv_group'];
$q = sprintf("B.`adv_id`='%s' AND ", $r->fields['adv_id']);
}
}
if ($f == 0) {
$id = $a[0];
}
}
} else {
$id = $a;
}
$html = null;
$sql = sprintf("SELECT
A.`adv_name`,
A.`adv_description`,
A.`adv_width`,
A.`adv_height`,
A.`adv_class`,
A.`adv_style`,
A.`adv_rotate`,
A.`adv_active`,
B.`adv_code`,
B.`adv_active`
FROM
`db_advgroups` A, `db_advbanners` B
WHERE
%s
A.`db_id`='%s' AND
B.`adv_group`='%s' AND
A.`adv_active`='1' AND
B.`adv_active`='1';", $q, $id, $id);
$ad = $db->execute($sql);
$ad_res = $ad->getrows();
$ad_total = $ad->recordcount();
if ($ad_res[0]['adv_active'] == 0) {
return false;
}
$ad_rotate = $ad_res[0]['adv_rotate'];
$key = $ad_rotate == 1 ? rand(0, ($ad_total - 1)) : 0;
$ad_name = $ad_res[$key]['adv_name'];
$ad_descr = $ad_res[$key]['adv_description'];
$ad_width = $ad_res[$key]['adv_width'];
$ad_height = $ad_res[$key]['adv_height'];
$ad_class = $ad_res[$key]['adv_class'];
$ad_style = $ad_res[$key]['adv_style'];
$ad_code = $ad_res[$key]['adv_code'];
$ad_html = $ad_code != '' ? $ad_code : $ad_descr . '
' . $ad_total . ' ' . $language['frontend.global.banners.here'];
$style = ($ad_width == 0 or $ad_height == 0) ? null : 'width: ' . ($ad_width == '100%' ? '100%' : $ad_width . 'px') . '; height: ' . ($ad_height == '100%' ? '100%' : $ad_height . 'px') . '; overflow: hidden;';
$style .= $ad_style;
$html .= $id == 43 ? '