mirror of
https://github.com/WhatCD/Gazelle.git
synced 2024-12-15 03:46:25 +00:00
590 lines
29 KiB
PHP
590 lines
29 KiB
PHP
<?
|
|
define('FOOTER_FILE', SERVER_ROOT.'/design/privatefooter.php');
|
|
$HTTPS = ($_SERVER['SERVER_PORT'] == 443) ? 'ssl_' : '';
|
|
?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<title><?=display_str($PageTitle)?></title>
|
|
<meta http-equiv="X-UA-Compatible" content="chrome=1;IE=edge" />
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<link rel="shortcut icon" href="favicon.ico" />
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
<link rel="search" type="application/opensearchdescription+xml" title="<?=SITE_NAME?> Torrents" href="opensearch.php?type=torrents" />
|
|
<link rel="search" type="application/opensearchdescription+xml" title="<?=SITE_NAME?> Artists" href="opensearch.php?type=artists" />
|
|
<link rel="search" type="application/opensearchdescription+xml" title="<?=SITE_NAME?> Requests" href="opensearch.php?type=requests" />
|
|
<link rel="search" type="application/opensearchdescription+xml" title="<?=SITE_NAME?> Forums" href="opensearch.php?type=forums" />
|
|
<link rel="search" type="application/opensearchdescription+xml" title="<?=SITE_NAME?> Log" href="opensearch.php?type=log" />
|
|
<link rel="search" type="application/opensearchdescription+xml" title="<?=SITE_NAME?> Users" href="opensearch.php?type=users" />
|
|
<link rel="search" type="application/opensearchdescription+xml" title="<?=SITE_NAME?> Wiki" href="opensearch.php?type=wiki" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=feed_news&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - News" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=feed_blog&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - Blog" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=feed_changelog&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - Gazelle Change Log" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_notify_<?=$LoggedUser['torrent_pass']?>&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - P.T.N." />
|
|
<?
|
|
if (isset($LoggedUser['Notify'])) {
|
|
foreach ($LoggedUser['Notify'] as $Filter) {
|
|
list($FilterID, $FilterName) = $Filter;
|
|
?>
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_notify_<?=$FilterID?>_<?=$LoggedUser['torrent_pass']?>&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>&name=<?=urlencode($FilterName)?>" title="<?=SITE_NAME?> - <?=display_str($FilterName)?>" />
|
|
<?
|
|
}
|
|
}
|
|
?>
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_all&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - All Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_music&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - Music Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_apps&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - Application Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_ebooks&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - E-Book Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_abooks&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - Audiobooks Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_evids&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - E-Learning Video Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_comedy&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - Comedy Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_comics&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - Comic Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_mp3&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - MP3 Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_flac&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - FLAC Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_vinyl&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - Vinyl Sourced Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_lossless&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - Lossless Torrents" />
|
|
<link rel="alternate" type="application/rss+xml" href="feeds.php?feed=torrents_lossless24&user=<?=$LoggedUser['ID']?>&auth=<?=$LoggedUser['RSS_Auth']?>&passkey=<?=$LoggedUser['torrent_pass']?>&authkey=<?=$LoggedUser['AuthKey']?>" title="<?=SITE_NAME?> - 24bit Lossless Torrents" />
|
|
|
|
<link href="<?=STATIC_SERVER?>styles/global.css?v=<?=filemtime(SERVER_ROOT.'/static/styles/global.css')?>" rel="stylesheet" type="text/css" />
|
|
<? if ($Mobile) { ?>
|
|
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0, user-scalable=no;" />
|
|
<link href="<?=STATIC_SERVER ?>styles/mobile/style.css" rel="stylesheet" type="text/css" />
|
|
<?
|
|
} else {
|
|
if (empty($LoggedUser['StyleURL'])) {
|
|
?>
|
|
<link href="<?=STATIC_SERVER?>styles/<?=$LoggedUser['StyleName']?>/style.css?v=<?=filemtime(SERVER_ROOT.'/static/styles/'.$LoggedUser['StyleName'].'/style.css')?>" title="<?=$LoggedUser['StyleName']?>" rel="stylesheet" type="text/css" media="screen" />
|
|
<? } else { ?>
|
|
<link href="<?=$LoggedUser['StyleURL']?>" title="External CSS" rel="stylesheet" type="text/css" media="screen" />
|
|
<?
|
|
}
|
|
if ($LoggedUser['UseOpenDyslexic']) {
|
|
// load the OpenDyslexic font ?>
|
|
<link rel="stylesheet" href="<?=STATIC_SERVER?>styles/opendyslexic/style.css?v=<?=filemtime(SERVER_ROOT.'/static/styles/opendyslexic/style.css')?>" type="text/css" charset="utf-8" />
|
|
|
|
<!--<link href="<?=STATIC_SERVER?>styles/opendyslexic/style.css?v=<?=filemtime(SERVER_ROOT.'/static/styles/opendyslexic/style.css')?>" title="OpenDyslexic" rel="stylesheet" type="text/css" media="screen" />-->
|
|
<?
|
|
}
|
|
}
|
|
?>
|
|
|
|
<script src="<?=STATIC_SERVER?>functions/sizzle.js" type="text/javascript"></script>
|
|
<script src="<?=STATIC_SERVER?>functions/script_start.js?v=<?=filemtime(SERVER_ROOT.'/static/functions/script_start.js')?>" type="text/javascript"></script>
|
|
<script src="<?=STATIC_SERVER?>functions/ajax.class.js?v=<?=filemtime(SERVER_ROOT.'/static/functions/ajax.class.js')?>" type="text/javascript"></script>
|
|
<script type="text/javascript">//<![CDATA[
|
|
var authkey = "<?=$LoggedUser['AuthKey']?>";
|
|
var userid = <?=$LoggedUser['ID']?>;
|
|
//]]></script>
|
|
<script src="<?=STATIC_SERVER?>functions/global.js?v=<?=filemtime(SERVER_ROOT.'/static/functions/global.js')?>" type="text/javascript"></script>
|
|
<?
|
|
|
|
$Scripts = explode(',', $JSIncludes);
|
|
foreach ($Scripts as $Script) {
|
|
if (empty($Script)) {
|
|
continue;
|
|
}
|
|
?>
|
|
<script src="<?=STATIC_SERVER?>functions/<?=$Script?>.js?v=<?=filemtime(SERVER_ROOT.'/static/functions/'.$Script.'.js')?>" type="text/javascript"></script>
|
|
<?
|
|
if ($Script == 'jquery') { ?>
|
|
<script type="text/javascript">
|
|
$.noConflict();
|
|
</script>
|
|
<?
|
|
}
|
|
}
|
|
if ($Mobile) { ?>
|
|
<script src="<?=STATIC_SERVER?>styles/mobile/style.js" type="text/javascript"></script>
|
|
<?
|
|
}
|
|
?>
|
|
</head>
|
|
<body id="<?=$Document == 'collages' ? 'collage' : $Document?>">
|
|
<div id="wrapper">
|
|
<h1 class="hidden"><?=SITE_NAME?></h1>
|
|
|
|
<div id="header">
|
|
<div id="logo"><a href="index.php"></a></div>
|
|
<div id="userinfo">
|
|
<ul id="userinfo_username">
|
|
<li id="nav_userinfo"<?=Format::add_class($PageID, array('user',false,false), 'active', true, 'id')?>><a href="user.php?id=<?=$LoggedUser['ID']?>" class="username"><?=$LoggedUser['Username']?></a></li>
|
|
<li id="nav_useredit" class="brackets<?=Format::add_class($PageID, array('user','edit'), 'active', false)?>"><a href="user.php?action=edit&userid=<?=$LoggedUser['ID']?>">Edit</a></li>
|
|
<li id="nav_logout" class="brackets"><a href="logout.php?auth=<?=$LoggedUser['AuthKey']?>">Logout</a></li>
|
|
</ul>
|
|
<ul id="userinfo_major">
|
|
<li id="nav_upload" class="brackets<?=Format::add_class($PageID, array('upload'), 'active', false)?>"><a href="upload.php">Upload</a></li>
|
|
<?
|
|
if (check_perms('site_send_unlimited_invites')) {
|
|
$Invites = ' (∞)';
|
|
} elseif ($LoggedUser['Invites'] > 0) {
|
|
$Invites = ' ('.$LoggedUser['Invites'].')';
|
|
} else {
|
|
$Invites = '';
|
|
}
|
|
?>
|
|
<li id="nav_invite" class="brackets<?=Format::add_class($PageID, array('user','invite'), 'active', false)?>"><a href="user.php?action=invite">Invite<?=$Invites?></a></li>
|
|
<li id="nav_donate" class="brackets<?=Format::add_class($PageID, array('donate'), 'active', false)?>"><a href="donate.php">Donate</a></li>
|
|
|
|
</ul>
|
|
<ul id="userinfo_stats">
|
|
<li id="stats_seeding"><a href="torrents.php?type=seeding&userid=<?=$LoggedUser['ID']?>">Up</a>: <span class="stat" title="<?=Format::get_size($LoggedUser['BytesUploaded'], 5)?>"><?=Format::get_size($LoggedUser['BytesUploaded'])?></span></li>
|
|
<li id="stats_leeching"><a href="torrents.php?type=leeching&userid=<?=$LoggedUser['ID']?>">Down</a>: <span class="stat" title="<?=Format::get_size($LoggedUser['BytesDownloaded'], 5)?>"><?=Format::get_size($LoggedUser['BytesDownloaded'])?></span></li>
|
|
<li id="stats_ratio">Ratio: <span class="stat"><?=Format::get_ratio_html($LoggedUser['BytesUploaded'], $LoggedUser['BytesDownloaded'])?></span></li>
|
|
<? if (!empty($LoggedUser['RequiredRatio'])) { ?>
|
|
<li id="stats_required"><a href="rules.php?p=ratio">Required</a>: <span class="stat" title="<?=number_format($LoggedUser['RequiredRatio'], 5)?>"><?=number_format($LoggedUser['RequiredRatio'], 2)?></span></li>
|
|
<? }
|
|
if ($LoggedUser['FLTokens'] > 0) { ?>
|
|
<li id="fl_tokens"><a href="wiki.php?action=article&id=754">Tokens</a>: <span class="stat"><a href="userhistory.php?action=token_history&userid=<?=$LoggedUser['ID']?>"><?=$LoggedUser['FLTokens']?></a></span></li>
|
|
<? } ?>
|
|
</ul>
|
|
<?
|
|
$NewSubscriptions = $Cache->get_value('subscriptions_user_new_'.$LoggedUser['ID']);
|
|
if ($NewSubscriptions === false) {
|
|
if ($LoggedUser['CustomForums']) {
|
|
unset($LoggedUser['CustomForums']['']);
|
|
$RestrictedForums = implode("','", array_keys($LoggedUser['CustomForums'], 0));
|
|
$PermittedForums = implode("','", array_keys($LoggedUser['CustomForums'], 1));
|
|
}
|
|
$DB->query("
|
|
SELECT COUNT(s.TopicID)
|
|
FROM users_subscriptions AS s
|
|
JOIN forums_last_read_topics AS l ON s.UserID = l.UserID AND s.TopicID = l.TopicID
|
|
JOIN forums_topics AS t ON l.TopicID = t.ID
|
|
JOIN forums AS f ON t.ForumID = f.ID
|
|
WHERE (f.MinClassRead <= ".$LoggedUser['Class']." OR f.ID IN ('$PermittedForums'))
|
|
AND l.PostID < t.LastPostID
|
|
AND s.UserID = ".$LoggedUser['ID'].
|
|
(!empty($RestrictedForums) ? "
|
|
AND f.ID NOT IN ('$RestrictedForums')" : ''));
|
|
list($NewSubscriptions) = $DB->next_record();
|
|
$Cache->cache_value('subscriptions_user_new_'.$LoggedUser['ID'], $NewSubscriptions, 0);
|
|
} ?>
|
|
<ul id="userinfo_minor"<?=($NewSubscriptions ? ' class="highlite"' : '')?>>
|
|
<li id="nav_inbox"<?=Format::add_class($PageID, array('inbox'), 'active', true)?>><a onmousedown="Stats('inbox');" href="<?=Inbox::get_inbox_link(); ?>">Inbox</a></li>
|
|
<li id="nav_staffinbox"<?=Format::add_class($PageID, array('staffpm'), 'active', true)?>><a onmousedown="Stats('staffpm');" href="staffpm.php">Staff Inbox</a></li>
|
|
<li id="nav_uploaded"<?=Format::add_class($PageID, array('torrents',false,'uploaded'), 'active', true, 'userid')?>><a onmousedown="Stats('uploads');" href="torrents.php?type=uploaded&userid=<?=$LoggedUser['ID']?>">Uploads</a></li>
|
|
<li id="nav_bookmarks"<?=Format::add_class($PageID, array('bookmarks'), 'active', true)?>><a onmousedown="Stats('bookmarks');" href="bookmarks.php?type=torrents">Bookmarks</a></li>
|
|
<? if (check_perms('site_torrents_notify')) { ?>
|
|
<li id="nav_notifications" <?=Format::add_class($PageID, array(array('torrents','notify'),array('user','notify')), 'active', true, 'userid')?>><a onmousedown="Stats('notifications');" href="user.php?action=notify">Notifications</a></li>
|
|
<? } ?>
|
|
<li id="nav_subscriptions"<?=Format::add_class($PageID, array('userhistory','subscriptions'), 'active', true)?>><a onmousedown="Stats('subscriptions');" href="userhistory.php?action=subscriptions"<?=($NewSubscriptions ? ' class="new-subscriptions"' : '')?>>Subscriptions</a></li>
|
|
<li id="nav_comments"<?=Format::add_class($PageID, array('comments'), 'active', true, 'userid')?>><a onmousedown="Stats('comments');" href="comments.php">Comments</a></li>
|
|
<li id="nav_friends"<?=Format::add_class($PageID, array('friends'), 'active', true)?>><a onmousedown="Stats('friends');" href="friends.php">Friends</a></li>
|
|
</ul>
|
|
</div>
|
|
<div id="menu">
|
|
<h4 class="hidden">Site Menu</h4>
|
|
<ul>
|
|
<li id="nav_index"<?=Format::add_class($PageID, array('index'), 'active', true)?>><a href="index.php">Home</a></li>
|
|
<li id="nav_torrents"<?=Format::add_class($PageID, array('torrents',false,false), 'active', true)?>><a href="torrents.php">Torrents</a></li>
|
|
<li id="nav_collages"<?=Format::add_class($PageID, array('collages'), 'active', true)?>><a href="collages.php">Collages</a></li>
|
|
<li id="nav_requests"<?=Format::add_class($PageID, array('requests'), 'active', true)?>><a href="requests.php">Requests</a></li>
|
|
<li id="nav_forums"<?=Format::add_class($PageID, array('forums'), 'active', true)?>><a href="forums.php">Forums</a></li>
|
|
<li id="nav_irc"<?=Format::add_class($PageID, array('chat'), 'active', true)?>><a href="chat.php">IRC</a></li>
|
|
<li id="nav_top10"<?=Format::add_class($PageID, array('top10'), 'active', true)?>><a href="top10.php">Top 10</a></li>
|
|
<li id="nav_rules"<?=Format::add_class($PageID, array('rules'), 'active', true)?>><a href="rules.php">Rules</a></li>
|
|
<li id="nav_wiki"<?=Format::add_class($PageID, array('wiki'), 'active', true)?>><a href="wiki.php">Wiki</a></li>
|
|
<li id="nav_staff"<?=Format::add_class($PageID, array('staff'), 'active', true)?>><a href="staff.php">Staff</a></li>
|
|
</ul>
|
|
</div>
|
|
<?
|
|
//Start handling alert bars
|
|
$Alerts = array();
|
|
$ModBar = array();
|
|
|
|
//Quotes
|
|
if ($LoggedUser['NotifyOnQuote']) {
|
|
$QuoteNotificationsCount = $Cache->get_value('notify_quoted_'.$LoggedUser['ID']);
|
|
if ($QuoteNotificationsCount === false) {
|
|
if ($LoggedUser['CustomForums']) {
|
|
unset($LoggedUser['CustomForums']['']);
|
|
$RestrictedForums = implode("','", array_keys($LoggedUser['CustomForums'], 0));
|
|
$PermittedForums = implode("','", array_keys($LoggedUser['CustomForums'], 1));
|
|
}
|
|
$sql = "
|
|
SELECT COUNT(q.UnRead)
|
|
FROM users_notify_quoted AS q
|
|
LEFT JOIN forums_topics AS t ON t.ID = q.PageID
|
|
LEFT JOIN forums AS f ON f.ID = t.ForumID
|
|
WHERE q.UserID=$LoggedUser[ID]
|
|
AND q.UnRead=1
|
|
AND q.Page = 'forums'
|
|
AND ((f.MinClassRead<='$LoggedUser[Class]'";
|
|
if (!empty($RestrictedForums)) {
|
|
$sql .= " AND f.ID NOT IN ('$RestrictedForums')";
|
|
}
|
|
$sql .= ')';
|
|
if (!empty($PermittedForums)) {
|
|
$sql .= " OR f.ID IN ('$PermittedForums')";
|
|
}
|
|
$sql .= ')';
|
|
$DB->query($sql);
|
|
list($QuoteNotificationsCount) = $DB->next_record();
|
|
$Cache->cache_value('notify_quoted_'.$LoggedUser['ID'], $QuoteNotificationsCount, 0);
|
|
}
|
|
if ($QuoteNotificationsCount > 0) {
|
|
$Alerts[] = '<a href="userhistory.php?action=quote_notifications">'. 'New quote'. ($QuoteNotificationsCount > 1 ? 's' : '') . '</a>';
|
|
}
|
|
}
|
|
|
|
// News
|
|
$MyNews = $LoggedUser['LastReadNews'];
|
|
$CurrentNews = $Cache->get_value('news_latest_id');
|
|
if ($CurrentNews === false) {
|
|
$DB->query("
|
|
SELECT ID
|
|
FROM news
|
|
ORDER BY Time DESC
|
|
LIMIT 1");
|
|
if ($DB->record_count() == 1) {
|
|
list($CurrentNews) = $DB->next_record();
|
|
} else {
|
|
$CurrentNews = -1;
|
|
}
|
|
$Cache->cache_value('news_latest_id', $CurrentNews, 0);
|
|
}
|
|
if ($MyNews < $CurrentNews) {
|
|
$Alerts[] = '<a href="index.php">New announcement!</a>';
|
|
}
|
|
|
|
// Blog
|
|
$MyBlog = $LoggedUser['LastReadBlog'];
|
|
$CurrentBlog = $Cache->get_value('blog_latest_id');
|
|
if ($CurrentBlog === false) {
|
|
$DB->query("
|
|
SELECT ID
|
|
FROM blog
|
|
WHERE Important = 1
|
|
ORDER BY Time DESC
|
|
LIMIT 1");
|
|
if ($DB->record_count() == 1) {
|
|
list($CurrentBlog) = $DB->next_record();
|
|
} else {
|
|
$CurrentBlog = -1;
|
|
}
|
|
$Cache->cache_value('blog_latest_id', $CurrentBlog, 0);
|
|
}
|
|
if ($MyBlog < $CurrentBlog) {
|
|
$Alerts[] = '<a href="blog.php">New blog post!</a>';
|
|
}
|
|
|
|
// Staff blog
|
|
if (check_perms('users_mod')) {
|
|
global $SBlogReadTime, $LatestSBlogTime;
|
|
if (!$SBlogReadTime && ($SBlogReadTime = $Cache->get_value('staff_blog_read_'.$LoggedUser['ID'])) === false) {
|
|
$DB->query("
|
|
SELECT Time
|
|
FROM staff_blog_visits
|
|
WHERE UserID = ".$LoggedUser['ID']);
|
|
if (list($SBlogReadTime) = $DB->next_record()) {
|
|
$SBlogReadTime = strtotime($SBlogReadTime);
|
|
} else {
|
|
$SBlogReadTime = 0;
|
|
}
|
|
$Cache->cache_value('staff_blog_read_'.$LoggedUser['ID'], $SBlogReadTime, 1209600);
|
|
}
|
|
if (!$LatestSBlogTime && ($LatestSBlogTime = $Cache->get_value('staff_blog_latest_time')) === false) {
|
|
$DB->query("
|
|
SELECT MAX(Time)
|
|
FROM staff_blog");
|
|
if (list($LatestSBlogTime) = $DB->next_record()) {
|
|
$LatestSBlogTime = strtotime($LatestSBlogTime);
|
|
} else {
|
|
$LatestSBlogTime = 0;
|
|
}
|
|
$Cache->cache_value('staff_blog_latest_time', $LatestSBlogTime, 1209600);
|
|
}
|
|
if ($SBlogReadTime < $LatestSBlogTime) {
|
|
$Alerts[] = '<a href="staffblog.php">New staff blog post!</a>';
|
|
}
|
|
}
|
|
|
|
//Staff PM
|
|
$NewStaffPMs = $Cache->get_value('staff_pm_new_'.$LoggedUser['ID']);
|
|
if ($NewStaffPMs === false) {
|
|
$DB->query("
|
|
SELECT COUNT(ID)
|
|
FROM staff_pm_conversations
|
|
WHERE UserID='".$LoggedUser['ID']."'
|
|
AND Unread = '1'");
|
|
list($NewStaffPMs) = $DB->next_record();
|
|
$Cache->cache_value('staff_pm_new_'.$LoggedUser['ID'], $NewStaffPMs, 0);
|
|
}
|
|
|
|
if ($NewStaffPMs > 0) {
|
|
$Alerts[] = '<a href="staffpm.php">You have '.$NewStaffPMs.(($NewStaffPMs > 1) ? ' new staff messages' : ' new staff message').'</a>';
|
|
}
|
|
|
|
//Inbox
|
|
$NewMessages = $Cache->get_value('inbox_new_'.$LoggedUser['ID']);
|
|
if ($NewMessages === false) {
|
|
$DB->query("
|
|
SELECT COUNT(UnRead)
|
|
FROM pm_conversations_users
|
|
WHERE UserID='".$LoggedUser['ID']."'
|
|
AND UnRead = '1'
|
|
AND InInbox = '1'");
|
|
list($NewMessages) = $DB->next_record();
|
|
$Cache->cache_value('inbox_new_'.$LoggedUser['ID'], $NewMessages, 0);
|
|
}
|
|
|
|
if ($NewMessages > 0) {
|
|
$Alerts[] = '<a href="' . Inbox::get_inbox_link() . "\">You have $NewMessages".(($NewMessages > 1) ? ' new messages' : ' new message').'</a>';
|
|
}
|
|
|
|
if ($LoggedUser['RatioWatch']) {
|
|
$Alerts[] = '<a href="rules.php?p=ratio">Ratio Watch</a>: You have '.time_diff($LoggedUser['RatioWatchEnds'], 3).' to get your ratio over your required ratio or your leeching abilities will be disabled.';
|
|
} elseif ($LoggedUser['CanLeech'] != 1) {
|
|
$Alerts[] = '<a href="rules.php?p=ratio">Ratio Watch</a>: Your downloading privileges are disabled until you meet your required ratio.';
|
|
}
|
|
|
|
if (check_perms('site_torrents_notify')) {
|
|
$NewNotifications = $Cache->get_value('notifications_new_'.$LoggedUser['ID']);
|
|
if ($NewNotifications === false) {
|
|
$DB->query("
|
|
SELECT COUNT(UserID)
|
|
FROM users_notify_torrents
|
|
WHERE UserID='$LoggedUser[ID]'
|
|
AND UnRead='1'");
|
|
list($NewNotifications) = $DB->next_record();
|
|
/* if ($NewNotifications && !check_perms('site_torrents_notify')) {
|
|
$DB->query("DELETE FROM users_notify_torrents WHERE UserID='$LoggedUser[ID]'");
|
|
$DB->query("DELETE FROM users_notify_filters WHERE UserID='$LoggedUser[ID]'");
|
|
} */
|
|
$Cache->cache_value('notifications_new_'.$LoggedUser['ID'], $NewNotifications, 0);
|
|
}
|
|
if ($NewNotifications > 0) {
|
|
$Alerts[] = '<a href="torrents.php?action=notify">You have '.$NewNotifications.(($NewNotifications > 1) ? ' new torrent notifications' : ' new torrent notification').'</a>';
|
|
}
|
|
}
|
|
|
|
// Collage subscriptions
|
|
if (check_perms('site_collages_subscribe')) {
|
|
$NewCollages = $Cache->get_value('collage_subs_user_new_'.$LoggedUser['ID']);
|
|
if ($NewCollages === false) {
|
|
$DB->query("
|
|
SELECT COUNT(DISTINCT s.CollageID)
|
|
FROM users_collage_subs as s
|
|
JOIN collages as c ON s.CollageID = c.ID
|
|
JOIN collages_torrents as ct on ct.CollageID = c.ID
|
|
WHERE s.UserID = $LoggedUser[ID]
|
|
AND ct.AddedOn > s.LastVisit
|
|
AND c.Deleted = '0'");
|
|
list($NewCollages) = $DB->next_record();
|
|
$Cache->cache_value('collage_subs_user_new_'.$LoggedUser['ID'], $NewCollages, 0);
|
|
}
|
|
if ($NewCollages > 0) {
|
|
$Alerts[] = '<a href="userhistory.php?action=subscribed_collages">You have '.$NewCollages.(($NewCollages > 1) ? ' new collage updates' : ' new collage update').'</a>';
|
|
}
|
|
}
|
|
if (check_perms('users_mod')) {
|
|
$ModBar[] = '<a href="tools.php">Toolbox</a>';
|
|
}
|
|
if (check_perms('users_mod') || $LoggedUser['PermissionID'] == FORUM_MOD) {
|
|
$NumStaffPMs = $Cache->get_value('num_staff_pms_'.$LoggedUser['ID']);
|
|
if ($NumStaffPMs === false) {
|
|
if (check_perms('users_mod')) {
|
|
$DB->query("
|
|
SELECT COUNT(ID)
|
|
FROM staff_pm_conversations
|
|
WHERE Status='Unanswered'
|
|
AND (AssignedToUser=".$LoggedUser['ID']."
|
|
OR (Level >= ".max(700,$Classes[MOD]['Level'])."
|
|
AND Level <=".$LoggedUser['Class']."))");
|
|
}
|
|
if ($LoggedUser['PermissionID'] == FORUM_MOD) {
|
|
$DB->query("
|
|
SELECT COUNT(ID)
|
|
FROM staff_pm_conversations
|
|
WHERE Status='Unanswered'
|
|
AND (AssignedToUser=".$LoggedUser['ID']."
|
|
OR Level = '". $Classes[FORUM_MOD]['Level'] . "')");
|
|
}
|
|
list($NumStaffPMs) = $DB->next_record();
|
|
$Cache->cache_value('num_staff_pms_'.$LoggedUser['ID'], $NumStaffPMs , 1000);
|
|
}
|
|
|
|
if ($NumStaffPMs > 0) {
|
|
$ModBar[] = '<a href="staffpm.php">'.$NumStaffPMs.' Staff PMs</a>';
|
|
}
|
|
}
|
|
if (check_perms('admin_reports')) {
|
|
// Torrent reports code
|
|
$NumTorrentReports = $Cache->get_value('num_torrent_reportsv2');
|
|
if ($NumTorrentReports === false) {
|
|
$DB->query("
|
|
SELECT COUNT(ID)
|
|
FROM reportsv2
|
|
WHERE Status='New'");
|
|
list($NumTorrentReports) = $DB->next_record();
|
|
$Cache->cache_value('num_torrent_reportsv2', $NumTorrentReports, 0);
|
|
}
|
|
|
|
$ModBar[] = '<a href="reportsv2.php">'.$NumTorrentReports.(($NumTorrentReports == 1) ? ' Report' : ' Reports').'</a>';
|
|
|
|
// Other reports code
|
|
$NumOtherReports = $Cache->get_value('num_other_reports');
|
|
if ($NumOtherReports === false) {
|
|
$DB->query("
|
|
SELECT COUNT(ID)
|
|
FROM reports
|
|
WHERE Status='New'");
|
|
list($NumOtherReports) = $DB->next_record();
|
|
$Cache->cache_value('num_other_reports', $NumOtherReports, 0);
|
|
}
|
|
|
|
if ($NumOtherReports > 0) {
|
|
$ModBar[] = '<a href="reports.php">'.$NumOtherReports.(($NumTorrentReports == 1) ? ' Other report' : ' Other reports').'</a>';
|
|
}
|
|
} elseif (check_perms('project_team')) {
|
|
$NumUpdateReports = $Cache->get_value('num_update_reports');
|
|
if ($NumUpdateReports === false) {
|
|
$DB->query("
|
|
SELECT COUNT(ID)
|
|
FROM reports
|
|
WHERE Status='New'
|
|
AND Type = 'request_update'");
|
|
list($NumUpdateReports) = $DB->next_record();
|
|
$Cache->cache_value('num_update_reports', $NumUpdateReports, 0);
|
|
}
|
|
|
|
if ($NumUpdateReports > 0) {
|
|
$ModBar[] = '<a href="reports.php">Request update reports</a>';
|
|
}
|
|
} elseif (check_perms('site_moderate_forums')) {
|
|
$NumForumReports = $Cache->get_value('num_forum_reports');
|
|
if ($NumForumReports === false) {
|
|
$DB->query("
|
|
SELECT COUNT(ID)
|
|
FROM reports
|
|
WHERE Status='New'
|
|
AND Type IN('artist_comment', 'collages_comment', 'post', 'requests_comment', 'thread', 'torrents_comment')");
|
|
list($NumForumReports) = $DB->next_record();
|
|
$Cache->cache_value('num_forum_reports', $NumForumReports, 0);
|
|
}
|
|
|
|
if ($NumForumReports > 0) {
|
|
$ModBar[] = '<a href="reports.php">'.$NumForumReports.(($NumForumReports == 1) ? ' Forum report' : ' Forum reports').'</a>';
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (!empty($Alerts) || !empty($ModBar)) {
|
|
?>
|
|
<div id="alerts">
|
|
<? foreach ($Alerts as $Alert) { ?>
|
|
<div class="alertbar"><?=$Alert?></div>
|
|
<? }
|
|
if (!empty($ModBar)) { ?>
|
|
<div class="alertbar blend"><?=implode(' | ',$ModBar)?></div>
|
|
<? } ?>
|
|
</div>
|
|
<?
|
|
}
|
|
//Done handling alertbars
|
|
|
|
|
|
?>
|
|
<div id="searchbars">
|
|
<ul>
|
|
<li id="searchbar_torrents">
|
|
<span class="hidden">Torrents: </span>
|
|
<form class="search_form" name="torrents" action="torrents.php" method="get">
|
|
<? if (isset($LoggedUser['SearchType']) && $LoggedUser['SearchType']) { // Advanced search ?>
|
|
<input type="hidden" name="action" value="advanced" />
|
|
<? } ?>
|
|
<input
|
|
id="torrentssearch"
|
|
accesskey="t"
|
|
spellcheck="false"
|
|
onfocus="if (this.value == 'Torrents') this.value='';"
|
|
onblur="if (this.value == '') this.value='Torrents';"
|
|
<? if (isset($LoggedUser['SearchType']) && $LoggedUser['SearchType']) { // Advanced search ?>
|
|
value="Torrents" type="text" name="groupname" size="17"
|
|
<? } else { ?>
|
|
value="Torrents" type="text" name="searchstr" size="17"
|
|
<? } ?>
|
|
/>
|
|
</form>
|
|
</li>
|
|
<li id="searchbar_artists">
|
|
<span class="hidden">Artist: </span>
|
|
<form class="search_form" name="artists" action="artist.php" method="get">
|
|
<script type="text/javascript" src="static/functions/autocomplete.js?v=<?=filemtime(SERVER_ROOT.'/static/functions/autocomplete.js')?>"></script>
|
|
<input id="artistsearch"
|
|
onkeyup="autocomp.keyup(event);"
|
|
onkeydown="autocomp.keydown(event);"
|
|
accesskey="a" spellcheck="false" autocomplete="off"
|
|
onfocus="if (this.value == 'Artists') this.value=''; autocomp.start('artist');"
|
|
onblur="if (this.value == '') this.value='Artists';"
|
|
value="Artists" type="text" name="artistname" size="17"
|
|
/>
|
|
<ul id="artistcomplete" style="visibility: hidden;"><li /></ul>
|
|
</form>
|
|
</li>
|
|
<li id="searchbar_requests">
|
|
<span class="hidden">Requests: </span>
|
|
<form class="search_form" name="requests" action="requests.php" method="get">
|
|
<input
|
|
id="requestssearch"
|
|
spellcheck="false"
|
|
onfocus="if (this.value == 'Requests') this.value='';"
|
|
onblur="if (this.value == '') this.value='Requests';"
|
|
value="Requests" type="text" name="search" size="17"
|
|
/>
|
|
</form>
|
|
</li>
|
|
<li id="searchbar_forums">
|
|
<span class="hidden">Forums: </span>
|
|
<form class="search_form" name="forums" action="forums.php" method="get">
|
|
<input value="search" type="hidden" name="action" />
|
|
<input
|
|
id="forumssearch"
|
|
onfocus="if (this.value == 'Forums') this.value='';"
|
|
onblur="if (this.value == '') this.value='Forums';"
|
|
value="Forums" type="text" name="search" size="17"
|
|
/>
|
|
</form>
|
|
</li>
|
|
<!--
|
|
<li id="searchbar_wiki">
|
|
<span class="hidden">Wiki: </span>
|
|
<form class="search_form" name="wiki" action="wiki.php" method="get">
|
|
<input type="hidden" name="action" value="search" />
|
|
<input
|
|
onfocus="if (this.value == 'Wiki') this.value='';"
|
|
onblur="if (this.value == '') this.value='Wiki';"
|
|
value="Wiki" type="text" name="search" size="17"
|
|
/>
|
|
</form>
|
|
</li>
|
|
-->
|
|
<li id="searchbar_log">
|
|
<span class="hidden">Log: </span>
|
|
<form class="search_form" name="log" action="log.php" method="get">
|
|
<input
|
|
id="logsearch"
|
|
onfocus="if (this.value == 'Log') this.value='';"
|
|
onblur="if (this.value == '') this.value='Log';"
|
|
value="Log" type="text" name="search" size="17"
|
|
/>
|
|
</form>
|
|
</li>
|
|
<li id="searchbar_users">
|
|
<span class="hidden">Users: </span>
|
|
<form class="search_form" name="users" action="user.php" method="get">
|
|
<input type="hidden" name="action" value="search" />
|
|
<input
|
|
id="userssearch"
|
|
onfocus="if (this.value == 'Users') this.value='';"
|
|
onblur="if (this.value == '') this.value='Users';"
|
|
value="Users" type="text" name="search" size="20"
|
|
/>
|
|
</form>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div id="content">
|