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 '' . $thx[0] . '' . $thx[1] . ''; } /* 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 .= ''; $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 = '
  • '; $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 ? '