Файл: feeds.php
Строк: 163
<?php
define('_VALID', true);
require 'include/config.php';
require 'classes/auth.class.php';
require 'include/function_global.php';
require 'include/function_smarty.php';
require 'classes/pagination.class.php';
require 'classes/validation.class.php';
Auth::check_();
$username = ( isset($_GET['u']) && VValidation::username_($_GET['u']) && VValidation::usernameExists_($_GET['u']) ) ? $_GET['u'] : 'all';
$table = ( isset($_GET['t']) && ctype_alpha($_GET['t']) ) ? $_GET['t'] : 'all';
$tables_allowed = array('all' => 1, 'videos' => 1, 'games' => 1, 'blogs' => 1, 'albums' => 1, 'photos' => 1);
if ( $table != 'all' && !isset($tables_allowed[$table]) ) {
VRedirect::go($config['BASE_URL']. '/error');
}
$uid = intval($_SESSION['uid']);
$sql = "SELECT s.UID, u.username
FROM video_subscribe AS s, signup AS u
WHERE s.SUID = " .$uid . "
AND s.UID = u.UID";
$rs = $conn->execute($sql);
$subscriptions = $rs->getrows();
$feeds = array();
$page_link = NULL;
if ( $subscriptions ) {
$photo_approve = ( $config['approve_photos'] == '1' ) ? " AND a.status = '1'" : NULL;
$blog_approve = ( $config['approve_blogs'] == '1' ) ? " AND b.status = '1'" : NULL;
if ( $username == 'all' ) {
$suids = array();
foreach ( $subscriptions as $subscription ) {
$suids[] = $subscription['UID'];
}
$sql_add = " AND PREFIX.UID IN (" .implode(",", $suids). ")";
} else {
$sql = "SELECT UID FROM signup WHERE username = " .$conn->qStr($username). " LIMIT 1";
$rs = $conn->execute($sql);
if ( !$conn->Affected_Rows() === 1 ) {
VRedirect::go($config['BASE_URL']. '/notfound/user_missing');
}
$UID = intval($rs->fields['UID']);
$sql = "SELECT SUID FROM video_subscribe WHERE UID = " .$uid. " AND SUID = " .$UID. " LIMIT 1";
$conn->execute($sql);
if ( !$conn->Affected_Rows() === 1 ) {
VRedirect::go($config['BASE_URL']. '/error');
}
$sql_add = " AND PREFIX.UID = " .$UID;
}
$total_feeds = 0;
if ( $table == 'videos' || $table == 'all' ) {
$video_approve = ( $config['approve'] == '1' ) ? " AND v.active = '1'" : NULL;
$sql_count_videos = "SELECT COUNT(v.VID) AS total_videos
FROM video AS v
WHERE v.type = 'public'"
.$video_approve . str_replace('PREFIX', 'v', $sql_add);
$rs = $conn->execute($sql_count_videos);
$total_videos = $rs->fields['total_videos'];
$total_feeds = $total_feeds + $total_videos;
$pagination = new Pagination(10);
$limit = $pagination->getLimit($total_videos);
$sql_videos = "SELECT v.*, s.username, s.photo, s.gender
FROM video AS v, signup AS s
WHERE v.type = 'public'
AND v.UID = s.UID" .$video_approve . str_replace('PREFIX', 'v', $sql_add). "
ORDER BY v.VID DESC LIMIT " .$limit;
$rs = $conn->execute($sql_videos);
$videos = $rs->getrows();
foreach ( $videos as $video ) {
$feeds[] = array(
'time' => $video['addtime'],
'type' => 'video',
'data' => array('VID' => $video['VID'],
'title' => $video['title'],
'thumb' => $video['thumb'],
'viewnumber'=> $video['viewnumber'],
'rate' => $video['rate'],
'hd' => $video['hd'],
'vthumbs' => $video['vthumbs'],
'duration' => $video['duration'],
'photo' => $video['photo'],
'gender' => $video['gender'],
'username' => $video['username'])
);
}
}
if ( $table == 'albums' || $table == 'all' ) {
$photo_approve = ( $config['approve_photos'] == '1' ) ? " AND a.status = '1'" : NULL;
$sql_count_albums = "SELECT COUNT(a.AID) AS total_albums
FROM albums AS a
WHERE a.type = 'public'"
.$photo_approve . str_replace('PREFIX', 'a', $sql_add);
$rs = $conn->execute($sql_count_albums);
$total_albums = $rs->fields['total_albums'];
$total_feeds = $total_feeds + $total_albums;
$pagination = new Pagination(10);
$limit = $pagination->getLimit($total_albums);
$sql_albums = "SELECT a.*, s.username, s.photo, s.gender
FROM albums AS a, signup AS s
WHERE a.type = 'public'
AND a.UID = s.UID" .str_replace('PREFIX', 'a', $sql_add) . $photo_approve. "
ORDER BY a.AID DESC LIMIT " .$limit;
$rs = $conn->execute($sql_albums);
$albums = $rs->getrows();
foreach ( $albums as $album ) {
$feeds[] = array(
'time' => $album['addtime'],
'type' => 'album',
'data' => array('AID' => $album['AID'],
'name' => $album['name'],
'total_photos' => $album['total_photos'],
'rate' => $album['rate'],
'photo' => $album['photo'],
'gender' => $album['gender'],
'username' => $album['username'])
);
}
}
if ( $table == 'blogs' || $table == 'all' ) {
$blog_approve = ( $config['approve_blogs'] == '1' ) ? " AND b.status = '1'" : NULL;
$sql_count_blogs = "SELECT COUNT(b.BID) AS total_blogs
FROM blog AS b
WHERE 1 = 1"
.$blog_approve . str_replace('PREFIX', 'b', $sql_add);
$rs = $conn->execute($sql_count_blogs);
$total_blogs = $rs->fields['total_blogs'];
$total_feeds = $total_feeds + $total_blogs;
$pagination = new Pagination(10);
$limit = $pagination->getLimit($total_blogs);
$sql_blogs = "SELECT b.BID, b.title, b.addtime, s.username, s.photo, s.gender
FROM blog AS b, signup AS s
WHERE b.UID = s.UID" .str_replace('PREFIX', 'b', $sql_add) . $blog_approve. "
ORDER BY b.BID DESC LIMIT " .$limit;
$rs = $conn->execute($sql_blogs);
$blogs = $rs->getrows();
foreach ( $blogs as $blog ) {
$feeds[] = array(
'time' => $blog['addtime'],
'type' => 'blog',
'data' => array('BID' => $blog['BID'],
'title' => $blog['title'],
'photo' => $blog['photo'],
'gender' => $blog['gender'],
'username' => $blog['username'])
);
}
}
}
if ( $table == 'all' ) {
function compare_time( $a, $b )
{
$a_time = intval($a['time']);
$b_time = intval($b['time']);
if ( $a_time === $b_time ) {
return 0;
}
return ($a_time < $b_time) ? 1 : -1;
}
usort($feeds, 'compare_time');
}
if ( $subscriptions ) {
$pagination = new Pagination(40);
$limit = $pagination->getLimit($total_feeds);
$page_link = $pagination->getPagination('feeds');
}
$self_title = $config['site_title'];
$self_meta_description = $config['meta_description'];
$self_meta_keywords = $config['meta_keywords'];
$smarty->assign('menu', '');
$smarty->assign('subscriptions', $subscriptions);
$smarty->assign('username', $username);
$smarty->assign('table', $table);
$smarty->assign('feeds', $feeds);
$smarty->assign('page_link', $page_link);
$smarty->assign('self_title', $self_title);
$smarty->assign('self_meta_description', $self_meta_description);
$smarty->assign('self_meta_keywords', $self_meta_keywords);
$smarty->loadFilter('output', 'trimwhitespace');
$smarty->display('header.tpl');
$smarty->display('feeds.tpl');
$smarty->display('footer.tpl');
?>