Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php define("DEMO_MODE", false); if( isset($_GET["noscript"]) ) { exit( "<div sty..
Decoded Output download
<?php
define("DEMO_MODE", false);
if( isset($_GET["noscript"]) )
{
exit( "<div style=\"border: 3px solid red; text-align: center; font-size: 18px; font-weight: bold; padding: 10px; width: 600px; height: 65px; margin: 100px auto; font-family: 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 1.7;\">Your Browser does not support JavaScript, or it is disabled.<br/>To run this application, you must enable JavaScript!!</div>" );
}
aaaaaa();
$TSUE = array( );
$TSUE["breadcrumb"] = array( );
$TSUE["action"] = getvar("action");
$TSUE["do"] = getvar("do");
$TSUE["option"] = getvar("option");
$TSUE["items_perpage"] = 15;
$TSUE["array_items_perpage"] = 40;
$TSUE["TSUE_Database"] = new TSUE_Database();
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$Warnings = array( );
/*if( !DEMO_MODE )
{
aaaaab();
}*/
checkadmin();
if( isset($_GET["newperpage"]) )
{
$newperpage = intval(getvar("newperpage"));
if( $newperpage )
{
$TSUE["items_perpage"] = $newperpage;
}
unset($newperpage);
}
else
{
if( isset($_COOKIE["newperpage"]) )
{
$newperpage = intval($_COOKIE["newperpage"]);
if( $newperpage )
{
$TSUE["items_perpage"] = $newperpage;
}
unset($newperpage);
}
}
if( !DEMO_MODE && !IS_AJAX && substr(aaaaac(), 0, 12) != substr($TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"], 0, 12) && !headers_sent() )
{
$websiteURL = parse_url($TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
if( isset($websiteURL["path"]) && !empty($websiteURL["path"]) )
{
$TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] = str_replace($websiteURL["path"], "", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
}
echo "
<!DOCTYPE html>
<html id=\"TSUE\" lang=\"en-us\">
<head>
<noscript><meta http-equiv=refresh content=\"6; URL=" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . $_SERVER["REQUEST_URI"] . "\" /></noscript>
<title>Fatal Error</title>
<script type=\"text/javascript\">
setTimeout(function()
{
window.location=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . $_SERVER["REQUEST_URI"] . "\";
}, 3000);
</script>
</head>
<body>
<div style=\"border: 3px solid red; text-align: center; font-size: 18px; font-weight: bold; padding: 10px; width: 600px; margin: 100px auto; font-family: 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 1.7;\">You are being redirected to correct url...</div>
</body>
</html>";
exit();
}
$outputContent = "";
if( !IS_AJAX )
{
$MySQLVariables = $TSUE["TSUE_Database"]->query("SHOW VARIABLES WHERE Variable_Name IN (\"ft_min_word_len\", \"max_allowed_packet\")");
if( $TSUE["TSUE_Database"]->num_rows($MySQLVariables) )
{
while( $V = $TSUE["TSUE_Database"]->fetch_assoc($MySQLVariables) )
{
if( $V["Variable_name"] == "max_allowed_packet" && $V["Value"] < 20 * 1024 * 1024 )
{
$Warnings[] = "MySQL <b>max_allowed_packet</b> is " . friendly_size($V["Value"]) . " on this server.<br />You need to increase this variable at least 20MB.";
}
if( $V["Variable_name"] == "ft_min_word_len" && 3 < $V["Value"] )
{
$Warnings[] = "MySQL <b>ft_min_word_len</b> is " . $V["Value"] . " on this server.<br />Please decrease this value to 3 .";
}
}
}
}
if( !IS_AJAX && !$TSUE["action"] )
{
addbreadcrumb(array( get_phrase("logged_welcome_back", $TSUE["TSUE_Member"]["membername"]) => TSUE_ADMINCP_URL ));
$Today = TIMENOW - 86400;
$totalRegisteredMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members");
$todayRegisteredMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members WHERE joindate >= " . $Today);
$membersAwaitingApproval = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members WHERE membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
$mutedMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_member_profile WHERE muted = 1");
$bannedMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_member_bans");
$warnedMembers = $TSUE["TSUE_Database"]->row_count("SELECT warnid FROM tsue_member_warns");
$todayCreatedThreads = $TSUE["TSUE_Database"]->row_count("SELECT threadid FROM tsue_forums_threads WHERE post_date >= " . $Today);
$todayPostedReplies = $TSUE["TSUE_Database"]->row_count("SELECT postid FROM tsue_forums_posts WHERE post_date >= " . $Today);
$todayPostedComments = $TSUE["TSUE_Database"]->row_count("SELECT comment_id FROM tsue_comments WHERE post_date >= " . $Today);
$todayLikedContents = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE like_id FROM tsue_liked_content WHERE like_date >= " . $Today);
$todayPostedReports = $TSUE["TSUE_Database"]->row_count("SELECT report_id FROM tsue_reports WHERE first_report_date >= " . $Today);
$todayPostedRequests = $TSUE["TSUE_Database"]->row_count("SELECT rid FROM tsue_requests WHERE added >= " . $Today);
$totalUploadedTorrents = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents");
$todayUploadedTorrents = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents WHERE added >= " . $Today);
$torrentsAwaitingSeed = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents WHERE seeders = 0");
if( getsetting("xbt", "active") )
{
$Seeders = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE fid FROM xbt_files_users WHERE active = 1 AND `left` = 0");
$Leechers = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE fid FROM xbt_files_users WHERE active = 1 AND `left` > 0");
}
else
{
$Seeders = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE pid FROM tsue_torrents_peers WHERE active = 1 AND `left` = 0");
$Leechers = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE pid FROM tsue_torrents_peers WHERE active = 1 AND `left` > 0");
}
$totalPeers = $Seeders + $Leechers;
$outputContent = "
<div style=\"margin-left: 5px; text-align: center;\">
<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; -khtml-border-radius: 5px;overflow: hidden;zoom: 1;\">
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Registered Members: <a href=\"?action=Member Manager&do=All Members\">" . number_format($totalRegisteredMembers) . "</a></div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Registered Members: " . number_format($todayRegisteredMembers) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Members Awaiting Approval: <a href=\"?action=Member Manager&do=Awaiting Approval\">" . number_format($membersAwaitingApproval) . "</a></div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Muted Members: <a href=\"?action=Member Manager&do=Muted Members\">" . number_format($mutedMembers) . "</a></div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Banned Members: <a href=\"?action=Member Manager&do=Banned Members\">" . number_format($bannedMembers) . "</a></div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Warned Members: <a href=\"?action=Member Manager&do=Warned Members\">" . number_format($warnedMembers) . "</a></div>
</div>
<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; -khtml-border-radius: 5px;overflow: hidden;zoom: 1;\">
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Created Threads: " . number_format($todayCreatedThreads) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Replies: " . number_format($todayPostedReplies) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Comments: " . number_format($todayPostedComments) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Liked Contents: " . number_format($todayLikedContents) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Reports: " . number_format($todayPostedReports) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Requests: " . number_format($todayPostedRequests) . "</div>
</div>
<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; -khtml-border-radius: 5px;overflow: hidden;zoom: 1;\">
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Uploaded Torrents: " . number_format($totalUploadedTorrents) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Uploaded Torrents: " . number_format($todayUploadedTorrents) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Torrents Awaiting Seed: " . number_format($torrentsAwaitingSeed) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Peers" . ((getsetting("xbt", "active") ? " (XBT)" : "")) . ": " . number_format($totalPeers) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Seeders: " . number_format($Seeders) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\">Leechers: " . number_format($Leechers) . "</div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\"></div>
<div style=\"padding: 3px 0; margin-bottom: 3px;\"></div>
</div>
</div>
<div style=\"clear: both;\"></div>
<div id=\"tsue_news\">
<img src=\"images/ajax/fb_ajax-loader.gif\" alt=\"\" title=\"\" class=\"ajaxLoader\" /> " . get_phrase("loading") . "
</div>
<br />
<script type=\"text/javascript\">
\$(document).ready(function()
{
\$.ajax
({
url: \"index.php\",
data: \"isAjax=1&action=tsue_news\",
type: \"POST\",
success: function(response)
{
\$(\"#tsue_news\").css({\"text-align\": \"left\"}).html('<span style=\"float: right;\" id=\"showAllRecentNews\" class=\"submit\">Show All Recent News</span>'+response).find(\"div.dottedBottom\").each(function(i)
{
if(i > 0)
{
\$(this).css({\"display\":\"none\"});
}
});
\$(\"#showAllRecentNews\").click(function(e)
{
\$(\"div.dottedBottom\").fadeIn(300);
\$(this).remove();
});
}
});
});
</script>";
}
if( $TSUE["action"] == "server-status" )
{
checkdemomode();
aaaaad("Server");
if( $TSUE["do"] == "update" )
{
$serverIP = getserverip();
$Ports = array( "HTTP" => getsetting("server", "http_port", 80), "HTTPS" => getsetting("server", "https_port", 443), "SSH" => getsetting("server", "ssh_port", 22), "FTP" => getsetting("server", "ftp_port", 21), "POP3" => getsetting("server", "pop3_port", 110) );
if( array_search("", $Ports) !== false )
{
exit( errormessage(get_phrase("please_setup_your_server_first")) );
}
$Status = array( );
foreach( $Ports as $Type => $Port )
{
if( $Port )
{
$fp = @fsockopen($serverIP, $Port, $errno, $errstr, 7);
if( $fp )
{
$Status[$Type] = "up";
}
else
{
$Status[$Type] = "down";
}
}
}
$Rows = "";
foreach( $Status as $rowName => $Row )
{
$Rows .= "
<td><img src=\"images/status/" . $Row . ".png\" alt=\"\" title=\"\" /></td>";
}
if( getsetting("xbt", "active") )
{
$fp = @fsockopen($serverIP, 2710, $errno, $errstr, 7);
$Rows .= "
<td><img src=\"images/status/" . (($fp ? "up" : "down")) . ".png\" alt=\"\" title=\"\" /></td>";
}
$HTML = "
<table cellpadding=\"0\" cellspacing=\"0\" class=\"table\">
<tr>
<th>Server</th>
<th>HTTP</th>
<th>HTTPS</th>
<th>SSH</th>
<th>FTP</th>
<th>POP3</th>
" . ((getsetting("xbt", "active") ? "
<th>XBT</th>" : "")) . "
</tr>
<tr>
<td>" . U . " (" . $serverIP . ")</td>
" . $Rows . "
</tr>
</table>";
echo $HTML;
exit();
}
else
{
echo "
<!DOCTYPE html>
<html id=\"TSUE\" lang=\"en-us\">
<head>
<noscript><meta http-equiv=refresh content=\"0; URL=" . TSUE_ADMINCP_URL . "?noscript=1\" /></noscript>
<title>Server Status</title>
<link rel=\"stylesheet\" type=\"text/css\" href=\"css/serverStatus.css\" />
<script type=\"text/javascript\">
var TSUEPhrases = [];
</script>
<script type=\"text/javascript\" src=\"./../js/tsue/jquery.js\"></script>
</head>
<body>
<div class=\"form\">" . get_phrase("server_status_table_msg") . "</div>
<div id=\"serverStatus\" class=\"form\">
<img src=\"images/ajax/fb_ajax-loader.gif\" alt=\"\" title=\"\" class=\"ajaxLoader\" />" . get_phrase("loading") . "
</div>
<script type=\"text/javascript\">
\$(window).load(function()
{
\$.ajax
({
url: \"index.php\",
data: \"action=server-status&do=update\",
type: \"POST\",
success: function(response)
{
\$(\"#serverStatus\").html(response);
}
});
});
</script>
</body>
</html>";
exit();
}
}
else
{
if( $TSUE["action"] == "php-info" )
{
checkdemomode();
aaaaad("Server");
phpinfo();
exit();
}
if( $TSUE["action"] == "irc-debug" )
{
checkdemomode();
aaaaad("Options");
$TSUE_IRCBot = new TSUE_IRCBot("debug");
echo $TSUE_IRCBot->Debug();
exit();
}
if( $TSUE["action"] == "closeGlobalWarning" && IS_AJAX )
{
$_SESSION["skipGlobalWarnings"] = TIMENOW;
exit();
}
if( $TSUE["action"] == "getDirectorySize" && IS_AJAX )
{
$validDirs = array( "avatars", "countryFlags", "downloads", "gallery", "languageFlags", "posts", "smilies", "subTitles", "torrents" );
$totalSize = 0;
foreach( $validDirs as $dir )
{
$totalSize += foldersize(DATAPATH . $dir);
}
$totalSize = friendly_size($totalSize);
exit( $totalSize );
}
else
{
if( $TSUE["action"] == "doCleanup" && IS_AJAX )
{
aaaaad("Cleanup");
$dir = trim(getvar("dir"));
if( $dir )
{
$validDirs = array( "avatars", "countryFlags", "downloads", "gallery", "languageFlags", "posts", "smilies", "subTitles", "torrents" );
$skipFiles = array( ".", "..", "index.html", ".htaccess" );
if( in_array($dir, $validDirs) )
{
$fullPath = DATAPATH . $dir . "/";
if( is_dir($fullPath) )
{
switch( $dir )
{
case "avatars":
$Result = $TSUE["TSUE_Database"]->query("SELECT memberid FROM tsue_members ORDER BY memberid ASC");
$Memberids = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Memberids[] = $Row["memberid"];
}
}
foreach( array( "l/", "m/", "s/" ) as $subDir )
{
if( is_dir($fullPath . $subDir) )
{
$Avatars = scandir($fullPath . $subDir);
if( $Avatars )
{
foreach( $Avatars as $Avatar )
{
$ext = strtolower(file_extension($Avatar));
if( in_array($ext, array( "jpg", "jpeg", "gif", "png" )) )
{
$memberid = str_replace(array( ".jpg", ".jpeg", ".gif", ".png" ), "", $Avatar);
if( !in_array($memberid, $Memberids) )
{
@unlink($fullPath . $subDir . $Avatar);
}
}
else
{
if( !in_array($Avatar, $skipFiles) )
{
@unlink($fullPath . $subDir . $Avatar);
}
}
}
}
}
}
break;
case "countryFlags":
$Flags = scandir($fullPath);
if( $Flags )
{
foreach( $Flags as $Flag )
{
$ext = strtolower(file_extension($Flag));
if( !in_array($ext, array( "gif", "jpg", "png", "jpeg" )) && !in_array($Flag, $skipFiles) )
{
@unlink($fullPath . $Flag);
}
}
}
break;
case "downloads":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename, preview FROM tsue_downloads");
$Filenames = $Previews = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
if( $Row["filename"] )
{
$Filenames[] = $Row["filename"];
}
if( $Row["preview"] )
{
$Previews[] = $Row["preview"];
}
}
}
foreach( array( "files/", "previews/" ) as $subDir )
{
if( is_dir($fullPath . $subDir) )
{
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $Previews) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
}
}
break;
case "gallery":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type IN(\"image_gallery_public\", \"image_gallery_private\") AND associated = 1");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Filenames[] = $Row["filename"];
}
}
foreach( array( "l/", "s/" ) as $subDir )
{
if( is_dir($fullPath . $subDir) )
{
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
}
}
break;
case "languageFlags":
$Result = $TSUE["TSUE_Database"]->query("SELECT languageid FROM tsue_languages ORDER BY languageid ASC");
$Languageids = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Languageids[] = $Row["languageid"];
}
}
$Flags = scandir($fullPath);
if( $Flags )
{
foreach( $Flags as $Flag )
{
$ext = strtolower(file_extension($Flag));
if( in_array($ext, array( "gif", "jpg", "png" )) )
{
$languageid = str_replace(array( ".gif", ".jpg", ".png" ), "", $Flag);
if( !in_array($languageid, $Languageids) )
{
@unlink($fullPath . $Flag);
}
}
else
{
if( !in_array($Flag, $skipFiles) )
{
@unlink($fullPath . $Flag);
}
}
}
}
break;
case "posts":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = \"posts\" AND associated = 1");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Filenames[] = $Row["filename"];
}
}
$Files = scandir($fullPath);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $File);
}
}
}
break;
case "smilies":
$Smilies = scandir($fullPath);
if( $Smilies )
{
foreach( $Smilies as $S )
{
$ext = strtolower(file_extension($S));
if( !in_array($ext, array( "gif", "jpg", "png" )) && !in_array($S, $skipFiles) )
{
@unlink($fullPath . $S);
}
}
}
break;
case "subTitles":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_subtitles");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
if( $Row["filename"] )
{
$Filenames[] = $Row["filename"];
}
}
}
$Files = scandir($fullPath);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $File);
}
}
}
break;
case "torrents":
$subDirs = array( "category_images/", "imdb/", "nfo/", "torrent_files/", "torrent_genres/", "torrent_images/" );
foreach( $subDirs as $subDir )
{
if( is_dir($fullPath . $subDir) )
{
switch( $subDir )
{
case "category_images/":
$Result = $TSUE["TSUE_Database"]->query("SELECT cid FROM tsue_torrents_categories ORDER BY cid ASC");
$Cids = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Cids[] = $Row["cid"];
}
}
$categoryImages = scandir($fullPath . $subDir);
if( $categoryImages )
{
foreach( $categoryImages as $categoryImage )
{
$ext = strtolower(file_extension($categoryImage));
if( in_array($ext, array( "png", "gif", "jpg", "jpeg" )) )
{
$cid = str_replace(array( ".png", ".gif", ".jpg", ".jpeg" ), "", $categoryImage);
if( !in_array($cid, $Cids) )
{
@unlink($fullPath . $subDir . $categoryImage);
}
}
else
{
if( !in_array($categoryImage, $skipFiles) )
{
@unlink($fullPath . $subDir . $categoryImage);
}
}
}
}
break;
case "imdb/":
$Result = $TSUE["TSUE_Database"]->query("SELECT content FROM tsue_imdb");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
if( $Row["content"] )
{
$Row["content"] = @unserialize($Row["content"]);
if( $Row["content"] && isset($Row["content"]["title_id"]) && $Row["content"]["title_id"] )
{
$Filenames[] = $Row["content"]["title_id"] . ".jpg";
}
}
}
}
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
break;
case "nfo/":
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
break;
case "torrent_files/":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = \"torrent_files\" AND associated = 1");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Filenames[] = $Row["filename"];
}
}
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
break;
case "torrent_genres/":
$Result = $TSUE["TSUE_Database"]->query("SELECT gicon FROM tsue_torrents_genres");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
if( $Row["gicon"] )
{
$Filenames[] = $Row["gicon"];
}
}
}
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
break;
case "torrent_images/":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type IN (\"torrent_images\", \"torrent_screenshots\") AND associated = 1");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Filenames[] = $Row["filename"];
}
}
foreach( array( "l/", "m/", "s/" ) as $deepSubDir )
{
if( is_dir($fullPath . $subDir . $deepSubDir) )
{
$Files = scandir($fullPath . $subDir . $deepSubDir);
if( $Files )
{
foreach( $Files as $File )
{
$ext = strtolower(file_extension($File));
if( !in_array($ext, array( "png", "gif", "jpg", "jpeg" )) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $deepSubDir . $File);
}
}
}
}
}
break;
}
}
}
break;
}
}
}
}
exit();
}
if( $TSUE["action"] == "checkHitRunOptions" && IS_AJAX )
{
if( isset($_POST["HITRUN"]) )
{
$Options = $_POST["HITRUN"];
$XBT = $TSUE["TSUE_Settings"]->settings["xbt"]["active"];
$Rules = array( );
if( $XBT )
{
if( isset($Options["dayTolerance"]) && $Options["dayTolerance"] )
{
$Rules[] = "p.mtime < " . (TIMENOW - $Options["dayTolerance"] * 24 * 60 * 60);
}
if( isset($Options["announceLimit"]) && $Options["announceLimit"] )
{
$Rules[] = "p.announced < " . $Options["announceLimit"];
}
if( isset($Options["skipMembergroups"]) && !empty($Options["skipMembergroups"]) )
{
$Rules[] = "m.membergroupid NOT IN (" . implode(",", array_map("intval", $Options["skipMembergroups"])) . ")";
}
$Rules[] = "p.active = 0";
$Rules[] = "p.left = 0";
$Rules[] = "p.isWarned = 0";
$Rules[] = "p.downloaded > 0";
$WHERE = implode(" AND ", $Rules);
$Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.uploaded as total_uploaded, p.mtime as last_updated, p.announced, t.tid, t.name, t.size, t.options, m.memberid, m.membername, g.groupname, g.groupstyle FROM xbt_files_users p INNER JOIN tsue_torrents t ON (p.fid=t.tid) INNER JOIN tsue_members m ON (p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE " . $WHERE);
}
else
{
if( isset($Options["skipMembergroups"]) && !empty($Options["skipMembergroups"]) )
{
$Rules[] = "m.membergroupid NOT IN (" . implode(",", array_map("intval", $Options["skipMembergroups"])) . ")";
}
$WHERE = "";
if( $Rules )
{
$WHERE = " WHERE " . implode(" AND ", $Rules);
}
$Peers = $TSUE["TSUE_Database"]->query("
SELECT SQL_NO_CACHE
SUM(p.total_uploaded) AS total_uploaded,
MAX(p.last_updated) AS last_updated,
SUM(p.announced) AS announced,
MAX(p.active) AS active,
MAX(p.left) AS `left`,
MAX(p.isWarned) AS isWarned,
SUM(p.total_downloaded) AS total_downloaded,
t.tid, t.name, t.size, t.options, m.memberid, m.membername, g.groupname, g.groupstyle
FROM tsue_torrents_peers p
INNER JOIN tsue_torrents t USING(tid)
INNER JOIN tsue_members m USING(memberid)
LEFT JOIN tsue_membergroups g USING(membergroupid)
" . $WHERE . "
GROUP BY p.tid, p.memberid
ORDER BY p.last_updated DESC
");
}
$Data = "<div class=\"error\">" . get_phrase("no_results_found") . " " . get_phrase("check_hitrun_options") . "</div>";
if( $TSUE["TSUE_Database"]->num_rows($Peers) )
{
$Data = "
<div style=\"max-height: 100px; overflow: auto; width: 100%;\">
<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" class=\"table\">
<tr>
<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_membername") . "</td>
<td class=\"tableContentTDHeader\">Torrent</td>
<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_last_updated") . "</td>
<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_announced") . "</td>
<td class=\"tableContentTDHeader\">" . get_phrase("promotion_minRatio") . "</td>
<td class=\"tableContentTDHeader\">" . get_phrase("ratio") . "</td>
</tr>";
while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
{
$torrentOptions = unserialize($Peer["options"]);
if( isset($torrentOptions["hitRunRatio"]) && $torrentOptions["hitRunRatio"] )
{
$passed = false;
if( $XBT )
{
$torrentOptions["hitRunRatio"] = 0 + $torrentOptions["hitRunRatio"];
if( member_ratio($Peer["total_uploaded"], $Peer["size"], true) < $torrentOptions["hitRunRatio"] )
{
$passed = false;
}
else
{
$passed = true;
}
}
else
{
if( isset($Options["dayTolerance"]) && $Options["dayTolerance"] && TIMENOW - $Options["dayTolerance"] * 86400 < $Peer["last_updated"] )
{
$passed = true;
}
else
{
if( isset($Options["announceLimit"]) && $Options["announceLimit"] && $Options["announceLimit"] <= $Peer["announced"] )
{
$passed = true;
}
else
{
if( $Peer["active"] )
{
$passed = true;
}
else
{
if( $Peer["left"] )
{
$passed = true;
}
else
{
if( $Peer["isWarned"] )
{
$passed = true;
}
else
{
if( !$Peer["total_downloaded"] )
{
$passed = true;
}
}
}
}
}
}
if( !$passed )
{
$torrentOptions["hitRunRatio"] = 0 + $torrentOptions["hitRunRatio"];
if( member_ratio($Peer["total_uploaded"], $Peer["size"], true) < $torrentOptions["hitRunRatio"] )
{
$passed = false;
}
else
{
$passed = true;
}
}
}
if( !$passed )
{
$datediff = TIMENOW - $Peer["last_updated"];
$days = floor($datediff / (60 * 60 * 24));
$days = get_phrase("x_days_ago", $days);
$Data .= "
<tr>
<td class=\"tableContentTD\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "target" => "_blank", "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) )) . "</td>
<td class=\"tableContentTD\">" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], strip_tags($Peer["name"])) . "</td>
<td class=\"tableContentTD\">" . convert_time($Peer["last_updated"]) . " (<span style=\"font-size: 10px; color: #ccc;\">" . $days . "</span>)</td>
<td class=\"tableContentTD\">" . number_format($Peer["announced"]) . "</td>
<td class=\"tableContentTD\">" . $torrentOptions["hitRunRatio"] . "</td>
<td class=\"tableContentTD\">" . member_ratio($Peer["total_uploaded"], $Peer["size"]) . "</td>
</tr>";
}
}
}
$Data .= "
</table>
</div>
<br />" . get_phrase("check_hitrun_options");
}
exit( $Data );
}
exit();
}
if( $TSUE["action"] == "tsue_news" && IS_AJAX )
{
$tsueNewsURL = "oops";
$HTML = fetchurl($tsueNewsURL);
exit( $HTML );
}
if( $TSUE["action"] == "checkAddonUpdates" && IS_AJAX )
{
aaaaad("TSUE Store");
if( !function_exists("simplexml_load_file") )
{
exit( "TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>." );
}
$fetchAddonsURL = "oops";
$Addons = fetchurl($fetchAddonsURL);
if( !$Addons )
{
exit( get_phrase("failed_to_open_x", "addons") );
}
$installedAddons = $TSUE["TSUE_Database"]->query("SELECT filename, title, version_string, version_id FROM tsue_admincp_addons WHERE active = 1");
if( $TSUE["TSUE_Database"]->num_rows($installedAddons) )
{
$installedAddonsCache = array( );
while( $A = $TSUE["TSUE_Database"]->fetch_assoc($installedAddons) )
{
$installedAddonsCache["'" . $A["filename"] . "'"] = $A;
}
$tableContents = aaaaag(array( array( "width" => "67%", "text" => "Title" ), array( "width" => "15%", "text" => "Installed Version" ), array( "width" => "18%", "text" => "Newest Version" ) ), "tableContentTR", "tableContentTDHeader");
foreach( $Addons->addon as $Addon )
{
if( isset($installedAddonsCache["'" . $Addon->filename . "'"]) )
{
$workWidth = $installedAddonsCache["'" . $Addon->filename . "'"];
if( $workWidth["version_id"] < $Addon->version_id )
{
$Addon->version_string = "<span style=\"font-weight: bold; font-size: 14px;\">v" . $Addon->version_string . "</span>";
}
else
{
$Addon->version_string = "v" . $Addon->version_string;
}
$tableContents .= aaaaag(array( array( "width" => "67%", "text" => $Addon->title ), array( "width" => "15%", "text" => "v" . $workWidth["version_string"] ), array( "width" => "18%", "text" => $Addon->version_string ) ));
}
}
$HTML = createtable(get_phrase("check_updates"), $tableContents);
exit( $HTML );
}
else
{
exit( "<div class=\"error\">" . get_phrase("there_is_no_any_addon_installed_yet") . "</div>" );
}
}
else
{
if( $TSUE["action"] == "getTSUEAddons" && IS_AJAX )
{
aaaaad("TSUE Store");
if( !function_exists("simplexml_load_file") )
{
exit( "TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>." );
}
$fetchAddonsURL = "oops";
$Addons = fetchurl($fetchAddonsURL);
if( !$Addons )
{
exit( get_phrase("failed_to_open_x", "addons") );
}
$listAddons = "";
foreach( $Addons->addon as $Addon )
{
if( $Addon->discount != "0.00" )
{
$Addon->price = "<s>" . $Addon->price . "</s> <span style=\"font-size: 13px;\">\$" . $Addon->discount . "</span>";
}
$listAddons .= "<br />";
}
exit( $listAddons );
}
else
{
if( $TSUE["action"] == "reset_passkey" && IS_AJAX )
{
checkdemomode();
aaaaad("All Members");
$memberid = intval(getvar("memberid"));
if( $memberid )
{
$passkey = generatepasskey();
$TSUE["TSUE_Database"]->update("tsue_members", array( "passkey" => $passkey ), "memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->update("tsue_member_profile", array( "torrent_pass" => substr($passkey, 0, 32) ), "memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
exit( $passkey );
}
}
if( $TSUE["action"] == "fixTorrentHash" && IS_AJAX )
{
checkdemomode();
aaaaad("Torrents");
$tid = intval(getvar("tid"));
if( $tid )
{
$Torrent = $TSUE["TSUE_Database"]->query_result("SELECT t.name, a.filename FROM tsue_torrents t LEFT JOIN tsue_attachments a ON (a.content_type='torrent_files' AND a.content_id=t.tid) WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
if( $Torrent )
{
$T = new Torrent();
if( $Torrent["filename"] )
{
$TorrentFile = DATAPATH . "torrents/torrent_files/" . $Torrent["filename"];
if( is_file($TorrentFile) )
{
$T->load(file_get_contents($TorrentFile));
$info_hash = $T->getHash();
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "info_hash" => $info_hash ), "tid=" . $TSUE["TSUE_Database"]->escape($tid));
_sendheaders(strip_tags($Torrent["name"]) . "~~~" . bin2hex($info_hash));
}
else
{
_sendheaders(strip_tags($Torrent["name"]) . "~~~n/a");
}
}
}
}
}
if( $TSUE["action"] == "resetIMDB" && IS_AJAX )
{
checkdemomode();
aaaaad("Torrents");
$tid = intval(getvar("tid"));
if( $tid )
{
$Torrent = $TSUE["TSUE_Database"]->query_result("SELECT name, options FROM tsue_torrents WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
if( $Torrent )
{
$torrentName = strip_tags($Torrent["name"]);
$Options = unserialize($Torrent["options"]);
if( $Options["imdb"] )
{
$IMDB = new IMDB($Options["imdb"]);
if( 2 < count($IMDB->movieInfo) )
{
$BuildQuery = array( "tid" => $tid, "content" => serialize($IMDB->movieInfo) );
$TSUE["TSUE_Database"]->replace("tsue_imdb", $BuildQuery);
$IMDB->posterPath = DATAPATH . "torrents/imdb/";
$IMDB->savePoster($IMDB->movieInfo["poster"]);
_sendheaders(strip_tags($Options["imdb"]) . "~~~" . $torrentName);
}
}
else
{
exit( "no_imdb~~~" . $torrentName );
}
}
}
}
if( $TSUE["action"] == "autoComplete" && IS_AJAX )
{
$keyword = getvar("keyword");
if( !$keyword )
{
exit();
}
switch( $TSUE["do"] )
{
case "searchMember":
$memberList = array( );
$Members = $TSUE["TSUE_Database"]->query("SELECT membername FROM tsue_members WHERE membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY membername ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Members) )
{
exit();
}
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$memberList[] = $Member["membername"];
}
_sendheaders(json_encode($memberList), "application/json");
break;
case "searchINAdminCP":
$Result = array( );
$Templates = $TSUE["TSUE_Database"]->query("SELECT template.templateid, template.themeid, template.templatename, theme.themename FROM tsue_templates template INNER JOIN tsue_themes theme USING(themeid) WHERE template.templatename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' OR template.template LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY template.themeid ASC, template.templatename ASC");
if( $TSUE["TSUE_Database"]->num_rows($Templates) )
{
$Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Templates</div>" );
while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) )
{
$Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Themes&themeid=" . $Template["themeid"] . "&type=manageTemplates&editTemplate=" . $Template["templateid"], "label" => "<b>Theme:</b> " . $Template["themename"] . " | <b>Template:</b> " . $Template["templatename"] );
}
}
$Styles = $TSUE["TSUE_Database"]->query("SELECT style.styleid, style.stylename, style.themeid, theme.themename FROM tsue_styles style INNER JOIN tsue_themes theme USING(themeid) WHERE style.stylename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' OR style.css LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY style.themeid ASC, style.stylename ASC");
if( $TSUE["TSUE_Database"]->num_rows($Styles) )
{
$Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Styles</div>" );
while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) )
{
$Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Themes&themeid=" . $Style["themeid"] . "&type=manageStyles&editStyle=" . $Style["styleid"], "label" => "<b>Theme:</b> " . $Style["themename"] . " | <b>Style:</b> " . $Style["stylename"] );
}
}
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY m.membername ASC");
if( $TSUE["TSUE_Database"]->num_rows($Members) )
{
$Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Members</div>" );
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Member Manager&do=All Members&edit=" . $Member["memberid"], "label" => getmembername($Member["membername"], $Member["groupstyle"]) );
}
}
$LangFound = array( );
$Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title, phrase_global FROM tsue_languages");
while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
{
$phraseGlobal = unserialize($Language["phrase_global"]);
foreach( $phraseGlobal as $Name => $Phrase )
{
if( strpos(strtolower($Phrase), strtolower($keyword)) !== false || strpos(strtolower($Name), strtolower($keyword)) !== false )
{
$LangFound[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Languages&type=editPhrase&languageid=" . $Language["languageid"] . "&text=" . $Name, "label" => "<b>" . $Language["title"] . ":</b> " . $Name );
}
}
}
if( $LangFound )
{
$Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Languages</div>" );
$Result = array_merge($Result, $LangFound);
unset($LangFound);
}
if( !$Result )
{
$Result = array( get_phrase("message_nothing_found") );
}
_sendheaders(json_encode($Result), "application/json");
}
}
if( $TSUE["action"] == "torrentCategoriesInbutboxes" && IS_AJAX )
{
_sendheaders(torrentcategoriesinbutboxes(getvar("name")));
}
if( $TSUE["action"] == "searchInTorrentsShowCatz" && IS_AJAX )
{
_sendheaders(torrentcategoriesinbutboxes("categories[]", "checkbox", tsue_explode(",", getvar("categories"))));
}
if( $TSUE["action"] == "rebuildForumCounters" && IS_AJAX )
{
aaaaad("Forum Manager");
$Forums = $TSUE["TSUE_Database"]->query("SELECT forumid, parentid FROM tsue_forums");
if( !$TSUE["TSUE_Database"]->num_rows($Forums) )
{
exit( errormessage(get_phrase("forums_no_registered_forum_yet")) );
}
while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
{
$Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads WHERE forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"]));
$threadCount = $TSUE["TSUE_Database"]->num_rows($Threads);
$replyCount = -1;
if( $threadCount )
{
while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
{
$Post = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(postid) AS replycount FROM tsue_forums_posts WHERE threadid=" . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
if( $Post["replycount"] )
{
$replyCount += $Post["replycount"];
}
}
}
if( $replyCount == -1 )
{
$replyCount = 0;
}
$last_post_info = "";
$last_post_threadid = 0;
$lastPostData = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"]) . " ORDER BY p.post_date DESC LIMIT 1");
if( $lastPostData )
{
$last_post_info = serialize(array( "lastpostdate" => $lastPostData["post_date"], "lastposter" => $lastPostData["membername"], "lastposterid" => $lastPostData["memberid"] ));
$last_post_threadid = $lastPostData["threadid"];
}
$buildQuery = array( "replycount" => $replyCount, "threadcount" => $threadCount, "last_post_info" => $last_post_info, "last_post_threadid" => $last_post_threadid );
$TSUE["TSUE_Database"]->update("tsue_forums", $buildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"]));
}
$Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads");
if( $TSUE["TSUE_Database"]->num_rows($Threads) )
{
while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
{
$last_post_info = "";
$last_post_threadid = 0;
$last_post_date = 0;
$findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]) . " ORDER BY p.post_date DESC LIMIT 1");
if( $findLastPosts )
{
$last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] ));
$last_post_threadid = $findLastPosts["threadid"];
$last_post_date = $findLastPosts["post_date"];
}
$reply_count = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as replyCount FROM tsue_forums_posts WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
$reply_count = $reply_count["replyCount"] - 1;
$buildQuery = array( "reply_count" => $reply_count, "last_post_info" => $last_post_info, "last_post_date" => $last_post_date );
$TSUE["TSUE_Database"]->update("tsue_forums_threads", $buildQuery, "threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
}
}
exit( successmessage("(" . number_format($TSUE["TSUE_Database"]->querycount) . ") " . get_phrase("forum_counters_has_been_updated")) );
}
if( $TSUE["action"] == "about" && IS_AJAX )
{
exit( "
<hr />
<b>RevolutioN WorlD " . V . "</b><br />
Copyright © " . date("Y") . "<hr />" );
}
if( $TSUE["action"] == "checkUpdates" && IS_AJAX )
{
$URL = "oops";
$recentVersion = fetchurl($URL);
$currentVersion = V;
if( $recentVersion < $currentVersion )
{
$Result = "<div class=\"error\">oops</div>";
}
else
{
if( $currentVersion < $recentVersion )
{
$Result = "<div class=\"error\">A new version, " . $recentVersion . " is available to download!</div\">";
}
else
{
$Result = "<div class=\"success\">You are using version " . $currentVersion . "<br />Congratulations, this is the very latest version!</div>";
}
}
exit( $Result );
}
if( $TSUE["action"] == "Dashboard" )
{
addbreadcrumb(array( get_phrase("menu_dashboard") => TSUE_ADMINCP_URL . "?action=Dashboard" ));
if( !$TSUE["do"] )
{
$outputContent .= optionbox("Options", get_phrase("dashboard_options"), get_phrase("dashboard_options_alt"));
$outputContent .= optionbox("Pages", get_phrase("dashboard_pages"), get_phrase("dashboard_pages_alt"));
$outputContent .= optionbox("Polls", get_phrase("dashboard_polls"), get_phrase("dashboard_polls_alt"));
$outputContent .= optionbox("News", get_phrase("dashboard_news"), get_phrase("dashboard_news_alt"));
$outputContent .= optionbox("FAQ", get_phrase("dashboard_faq"), get_phrase("dashboard_faq_alt"));
$outputContent .= optionbox("Torrent Categories", get_phrase("dashboard_torrent_categories"), get_phrase("dashboard_torrent_categories_alt"));
$outputContent .= optionbox("Market", get_phrase("dashboard_market"), get_phrase("dashboard_market_alt"));
$outputContent .= optionbox("API Manager", get_phrase("dashboard_api_manager"), get_phrase("dashboard_api_manager_alt"));
$outputContent .= optionbox("Cron Entries", get_phrase("dashboard_cron_entries"), get_phrase("dashboard_cron_entries_alt"));
$outputContent .= optionbox("Rebuild Caches", get_phrase("dashboard_cache_rebuild_caches"), get_phrase("dashboard_cache_rebuild_caches_alt"));
$outputContent .= optionbox("Logs", get_phrase("dashboard_logs"), get_phrase("dashboard_logs_alt"));
$outputContent .= optionbox("Server", get_phrase("dashboard_server"), get_phrase("dashboard_server_alt"));
$outputContent .= optionbox("Notes", get_phrase("dashboard_notes"), get_phrase("dashboard_notes_alt"));
$outputContent .= optionbox("Statistics", get_phrase("dashboard_statistics"), get_phrase("dashboard_statistics_alt"));
$outputContent .= optionbox("Read PM", get_phrase("dashboard_readpm"), get_phrase("dashboard_readpm_alt"));
$outputContent .= optionbox("Database", get_phrase("database"), get_phrase("database_alt"));
$outputContent .= optionbox("Announcements", get_phrase("dashboard_announcements"), get_phrase("dashboard_announcements_alt"));
$outputContent .= optionbox("Torrents", get_phrase("navigation_torrents"), get_phrase("dashboard_torrents_alt"));
$outputContent .= optionbox("Add-ons", get_phrase("addons"), get_phrase("addons_alt"));
$outputContent .= optionbox("TSUE Store", get_phrase("tsue_store"), get_phrase("tsue_store_alt"));
$outputContent .= optionbox("Recent Comments", get_phrase("recent_comments"), get_phrase("recent_comments_alt"));
$outputContent .= optionbox("Torrent Genres", get_phrase("torrent_genres"), get_phrase("torrent_genres_alt"));
$outputContent .= optionbox("Advertisements", get_phrase("dashboard_ads"), get_phrase("dashboard_ads_alt"));
$outputContent .= optionbox("Shoutbox Channels", get_phrase("shoutbox_channels"), get_phrase("shoutbox_channels_alt"));
}
else
{
aaaaad($TSUE["do"]);
switch( $TSUE["do"] )
{
case "Options":
addbreadcrumb(array( get_phrase("dashboard_options") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleoptions();
break;
case "Pages":
addbreadcrumb(array( get_phrase("dashboard_pages") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlepages();
break;
case "Polls":
addbreadcrumb(array( get_phrase("dashboard_polls") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlepolls();
break;
case "News":
addbreadcrumb(array( get_phrase("dashboard_news") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlenews();
break;
case "FAQ":
addbreadcrumb(array( get_phrase("dashboard_faq") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlefaq();
break;
case "Torrent Categories":
addbreadcrumb(array( get_phrase("dashboard_torrent_categories_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handletorrentcategories();
break;
case "Market":
addbreadcrumb(array( get_phrase("dashboard_market") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlemarket();
break;
case "API Manager":
addbreadcrumb(array( get_phrase("dashboard_api_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleapimanager();
break;
case "Cron Entries":
addbreadcrumb(array( get_phrase("dashboard_cron_entries") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlecronentries();
break;
case "Rebuild Caches":
addbreadcrumb(array( get_phrase("dashboard_cache_rebuild_caches") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlerebuildcaches(true);
break;
case "Logs":
addbreadcrumb(array( get_phrase("dashboard_logs") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlelogs();
break;
case "Server":
addbreadcrumb(array( get_phrase("dashboard_server") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleserver();
break;
case "Notes":
addbreadcrumb(array( get_phrase("dashboard_notes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlenotes();
break;
case "Statistics":
addbreadcrumb(array( get_phrase("dashboard_statistics") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlestatistics();
break;
case "Read PM":
addbreadcrumb(array( get_phrase("dashboard_readpm_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlereadpm();
break;
case "Database":
addbreadcrumb(array( get_phrase("database_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handledatabase();
break;
case "Announcements":
addbreadcrumb(array( get_phrase("dashboard_announcements") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleannouncements();
break;
case "Torrents":
addbreadcrumb(array( get_phrase("dashboard_torrents_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handletorrents();
break;
case "Add-ons":
addbreadcrumb(array( get_phrase("addons") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleaddons();
break;
case "TSUE Store":
header("Location: " . TSUE_ADMINCP_URL . "?action=Dashboard&do=Add-ons&TSUEAddonStore=1");
exit();
case "Recent Comments":
addbreadcrumb(array( get_phrase("recent_comments") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlerecentcomments();
break;
case "Torrent Genres":
addbreadcrumb(array( get_phrase("torrent_genres") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handletorrentgenres();
break;
case "Advertisements":
addbreadcrumb(array( get_phrase("dashboard_ads") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleadvertisements();
break;
case "Shoutbox Channels":
addbreadcrumb(array( get_phrase("shoutbox_channels") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleshoutboxchannels();
}
}
}
if( $TSUE["action"] == "Plugin Manager" )
{
aaaaad($TSUE["action"]);
addbreadcrumb(array( get_phrase("menu_plugin_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
$outputContent .= aaaaah();
}
if( $TSUE["action"] == "Forum Manager" )
{
aaaaad($TSUE["action"]);
addbreadcrumb(array( get_phrase("menu_forum_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
if( !$TSUE["do"] )
{
$outputContent .= optionbox("Manage Forums", get_phrase("manage_forums"), get_phrase("manage_forums_alt"), $TSUE["action"]);
$outputContent .= optionbox("Thread Prefixes", get_phrase("thread_prefixes"), get_phrase("thread_prefixes"), $TSUE["action"]);
$outputContent .= optionbox("Quick Forum Permissions", get_phrase("permissions"), get_phrase("quick_forum_permissions"), $TSUE["action"]);
$outputContent .= optionbox("Rebuild Counters", get_phrase("rebuild_counters"), get_phrase("rebuild_counters_alt"), $TSUE["action"]);
}
else
{
switch( $TSUE["do"] )
{
case "Manage Forums":
addbreadcrumb(array( get_phrase("manage_forums_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleforums();
break;
case "Quick Forum Permissions":
addbreadcrumb(array( get_phrase("quick_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= aaaaai();
break;
case "Thread Prefixes":
addbreadcrumb(array( get_phrase("thread_prefixes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= threadprefixes();
break;
case "Rebuild Counters":
addbreadcrumb(array( get_phrase("rebuild_counters") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= rebuildforumcounters();
}
}
}
if( $TSUE["action"] == "Appearance" )
{
aaaaad($TSUE["action"]);
addbreadcrumb(array( get_phrase("dashboard_options_appearance") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
if( !$TSUE["do"] )
{
$outputContent .= optionbox("Themes", get_phrase("theme_manager_themes"), get_phrase("theme_manager_themes_alt"), $TSUE["action"]);
$outputContent .= optionbox("Languages", get_phrase("theme_manager_languages"), get_phrase("theme_manager_languages_alt"), $TSUE["action"]);
$outputContent .= optionbox("Upload Torrent", get_phrase("navigation_upload_torrent"), get_phrase("add_extra_fields"), $TSUE["action"]);
$outputContent .= optionbox("Auto Description", get_phrase("auto_description"), get_phrase("auto_description_alt"), $TSUE["action"]);
}
else
{
switch( $TSUE["do"] )
{
case "Themes":
addbreadcrumb(array( get_phrase("theme_manager_themes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlethemes();
break;
case "Languages":
addbreadcrumb(array( get_phrase("theme_manager_languages") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlelanguages();
break;
case "Upload Torrent":
addbreadcrumb(array( get_phrase("navigation_upload_torrent") . " | " . get_phrase("add_extra_fields") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleuploadtorrent();
break;
case "Auto Description":
addbreadcrumb(array( get_phrase("auto_description") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleautodescription();
}
}
}
if( $TSUE["action"] == "Member Manager" )
{
addbreadcrumb(array( get_phrase("menu_member_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
if( !$TSUE["do"] )
{
$outputContent .= optionbox("All Members", get_phrase("member_manager_list_all_members"), get_phrase("member_manager_list_all_members_alt"));
$outputContent .= optionbox("Awaiting Approval", get_phrase("member_manager_awaiting_approval"), get_phrase("member_manager_awaiting_approval_alt"));
$outputContent .= optionbox("Banned Members", get_phrase("member_manager_banned_members"), get_phrase("member_manager_banned_members_alt"));
$outputContent .= optionbox("Warned Members", get_phrase("member_manager_warned_members"), get_phrase("member_manager_warned_members_alt"));
$outputContent .= optionbox("Membergroups", get_phrase("member_manager_membergroups"), get_phrase("member_manager_membergroups_alt"));
$outputContent .= optionbox("Email Members", get_phrase("member_manager_email_members"), get_phrase("member_manager_email_members_alt"));
$outputContent .= optionbox("Search Members", get_phrase("member_manager_search_members"), get_phrase("member_manager_search_members_alt"));
$outputContent .= optionbox("Peers", get_phrase("member_manager_peers"), get_phrase("member_manager_peers_alt"));
$outputContent .= optionbox("Account Upgrades", get_phrase("upgrade_account_upgrades"), get_phrase("upgrade_account_upgrades_alt"));
$outputContent .= optionbox("Muted Members", get_phrase("member_manager_muted_members"), get_phrase("member_manager_muted_members_alt"));
$outputContent .= optionbox("PM Members", get_phrase("member_manager_pm_members"), get_phrase("member_manager_pm_members_alt"));
$outputContent .= optionbox("Promotions", get_phrase("promotions"), get_phrase("promotions_alt"));
$outputContent .= optionbox("Duplicate Ips", get_phrase("duplicate_ips"), get_phrase("duplicate_ips_alt"));
$outputContent .= optionbox("Hit and Runners", get_phrase("hit_and_runners"), get_phrase("stats_hitrun_warns"));
$outputContent .= optionbox("Test Permissions", get_phrase("test_permissions"), get_phrase("test_permissions_alt"));
$outputContent .= optionbox("Administrators", get_phrase("administrators"), get_phrase("administrators_alt"));
$outputContent .= optionbox("Gift", get_phrase("gift"), get_phrase("gift_alt"));
$outputContent .= optionbox("Mass Invite", get_phrase("mass_invite"), get_phrase("mass_invite_alt"));
$outputContent .= optionbox("Awards", get_phrase("awards"), get_phrase("awards_alt"));
$outputContent .= optionbox("Auto Warned Members", get_phrase("member_manager_auto_warned_members"), get_phrase("member_manager_auto_warned_members_alt"));
$outputContent .= optionbox("Uploader Activity", get_phrase("uploader_activity"), get_phrase("uploader_activity_alt"));
$outputContent .= optionbox("First Line Support", get_phrase("first_line_support"), get_phrase("first_line_support_alt"));
$outputContent .= optionbox("Spam Cleaner", get_phrase("spam_cleaner"), get_phrase("spam_cleaner_alt"));
}
else
{
aaaaad($TSUE["do"]);
switch( $TSUE["do"] )
{
case "All Members":
addbreadcrumb(array( get_phrase("member_manager_list_all_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= aaaaaj();
break;
case "Awaiting Approval":
addbreadcrumb(array( get_phrase("member_manager_awaiting_approval") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageawaitingapproval();
break;
case "Banned Members":
addbreadcrumb(array( get_phrase("member_manager_banned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managebannedmembers();
break;
case "Warned Members":
addbreadcrumb(array( get_phrase("member_manager_warned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managewarnedmembers();
break;
case "Membergroups":
addbreadcrumb(array( get_phrase("member_manager_membergroups") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managemembergroups();
break;
case "Email Members":
addbreadcrumb(array( get_phrase("member_manager_email_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageemailmembers();
break;
case "Search Members":
addbreadcrumb(array( get_phrase("member_manager_search_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managesearchmembers();
break;
case "Peers":
addbreadcrumb(array( get_phrase("member_manager_peers") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managepeers();
break;
case "Account Upgrades":
addbreadcrumb(array( get_phrase("upgrade_account_upgrades_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageaccountupgrades();
break;
case "Muted Members":
addbreadcrumb(array( get_phrase("member_manager_muted_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managemutedmembers();
break;
case "PM Members":
addbreadcrumb(array( get_phrase("member_manager_pm_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managepmmembers();
break;
case "Promotions":
addbreadcrumb(array( get_phrase("promotions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managepromotions();
break;
case "Duplicate Ips":
addbreadcrumb(array( get_phrase("duplicate_ips") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageduplicateips();
break;
case "Hit and Runners":
addbreadcrumb(array( get_phrase("hit_and_runners") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= aaaaak();
break;
case "Test Permissions":
addbreadcrumb(array( get_phrase("test_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managetestpermissions();
break;
case "Administrators":
addbreadcrumb(array( get_phrase("administrators_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageadministrators();
break;
case "Gift":
addbreadcrumb(array( get_phrase("gift") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managegift();
break;
case "Mass Invite":
addbreadcrumb(array( get_phrase("mass_invite") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managemassinvite();
break;
case "Awards":
addbreadcrumb(array( get_phrase("awards") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageawards();
break;
case "Auto Warned Members":
addbreadcrumb(array( get_phrase("member_manager_auto_warned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageautowarnedmembers();
break;
case "Uploader Activity":
addbreadcrumb(array( get_phrase("uploader_activity") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageuploaderactivity();
break;
case "First Line Support":
addbreadcrumb(array( get_phrase("first_line_support") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managefirstlinesupport();
break;
case "Spam Cleaner":
addbreadcrumb(array( get_phrase("spam_cleaner") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managespamcleaner();
}
}
}
if( $TSUE["action"] == "File Manager" )
{
addbreadcrumb(array( get_phrase("menu_file_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
if( !$TSUE["do"] )
{
$outputContent .= optionbox("Prune", get_phrase("file_manager_prune_cache"), get_phrase("file_manager_prune_cache_alt"));
$outputContent .= optionbox("Smilies", get_phrase("file_manager_smilies"), get_phrase("file_manager_smilies_alt"));
$outputContent .= optionbox("Country Flags", get_phrase("file_manager_country_flags"), get_phrase("file_manager_country_flags_alt"));
$outputContent .= optionbox("Attachment Browser", get_phrase("attachments"), get_phrase("attachment_browser"));
$outputContent .= optionbox("Downloads", get_phrase("dm_title"), get_phrase("dm_title_alt"));
$outputContent .= optionbox("Permissions", get_phrase("permissions"), get_phrase("permissions_alt"));
$outputContent .= optionbox("Cleanup", get_phrase("cleanup"), get_phrase("cleanup_alt"));
}
else
{
aaaaad($TSUE["do"]);
switch( $TSUE["do"] )
{
case "Prune":
addbreadcrumb(array( get_phrase("file_manager_prune_cache") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleprune();
break;
case "Smilies":
addbreadcrumb(array( get_phrase("file_manager_smilies") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlesmilies();
break;
case "Country Flags":
addbreadcrumb(array( get_phrase("file_manager_country_flags") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlecountryflags();
break;
case "Attachment Browser":
addbreadcrumb(array( get_phrase("attachment_browser") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleattachments();
break;
case "Downloads":
addbreadcrumb(array( get_phrase("dm_title") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handledownloads();
break;
case "Permissions":
addbreadcrumb(array( get_phrase("permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlepermissions();
break;
case "Cleanup":
addbreadcrumb(array( get_phrase("cleanup") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlecleanup();
}
}
}
printoutput($outputContent);
}
}
}
}
class TSUE_Settings
{
public $settings = array( );
public function TSUE_Settings()
{
global $TSUE;
$fetchSettings = $TSUE["TSUE_Database"]->query("SELECT settingname, settingvalues FROM tsue_settings ORDER BY settingname");
if( $TSUE["TSUE_Database"]->num_rows($fetchSettings) )
{
while( $Setting = $TSUE["TSUE_Database"]->fetch_assoc($fetchSettings) )
{
$this->settings[$Setting["settingname"]] = unserialize($Setting["settingvalues"]);
}
}
}
}
class TSUE_Database
{
public $querycount = 0;
public $query = NULL;
public $query_cache = array( );
public $shutdown_queries = array( );
public $error = NULL;
public $connection = NULL;
public $locked = false;
public function TSUE_Database()
{
if( !is_file(LIBRARYPATH . "config/database_config.php") )
{
exit( "<h1>Fatal Error: The database configuration file does not exists.</h1>" );
}
require(LIBRARYPATH . "config/database_config.php");
if( !($this->connection = mysqli_init()) )
{
$this->error = "mysqli_init failed!";
$this->halt();
}
if( !defined("MYSQL_HOST") || !defined("MYSQL_USER") || !defined("MYSQL_PASS") || !defined("MYSQL_DB") || !defined("MYSQL_PORT") || !defined("MYSQL_SOCKET") )
{
exit( "<h1>Fatal Error: Invalid variables in the database configuration file.</h1>" );
}
if( !mysqli_real_connect($this->connection, MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB, MYSQL_PORT, MYSQL_SOCKET) )
{
$this->error = "MySQLi connection error!";
$this->halt();
}
if( MYSQL_CHARSET != "" )
{
if( function_exists("mysqli_set_charset") )
{
mysqli_set_charset($this->connection, MYSQL_CHARSET);
return NULL;
}
$this->execute_query("SET NAMES " . MYSQL_CHARSET);
}
}
public function execute_query($query, $buffered = true)
{
$this->querycount++;
$this->query = $query;
$this->query_cache[] = $query;
if( $queryresult = mysqli_query($this->connection, $this->query, ($buffered ? MYSQLI_STORE_RESULT : MYSQLI_USE_RESULT)) )
{
return $queryresult;
}
$this->error = mysqli_error($this->connection);
$this->halt();
}
public function query($query, $buffered = true)
{
return $this->execute_query($query, $buffered);
}
public function replace($table, $buildQuery, $isShutDownQuery = false)
{
checkdemomode();
$Query = array( );
foreach( $buildQuery as $field => $value )
{
$Query[] = "`" . $field . "` = " . $this->escape($value);
}
$SET = implode(",", $Query);
if( $isShutDownQuery )
{
return $this->shutdown_query("REPLACE INTO `" . $table . "` SET " . $SET);
}
return $this->query("REPLACE INTO `" . $table . "` SET " . $SET);
}
public function insert($table, $buildQuery, $isShutDownQuery = false, $EXTRA = "", $IGNORE = "")
{
checkdemomode();
$Query = array( );
foreach( $buildQuery as $field => $value )
{
$Query[] = "`" . $field . "` = " . $this->escape($value);
}
$SET = implode(",", $Query);
if( $isShutDownQuery )
{
return $this->shutdown_query("INSERT" . (($IGNORE ? " IGNORE" : "")) . " INTO `" . $table . "` SET " . $SET . $EXTRA);
}
return $this->query("INSERT" . (($IGNORE ? " IGNORE" : "")) . " INTO `" . $table . "` SET " . $SET . $EXTRA);
}
public function update($table, $buildQuery, $where = "", $isShutDownQuery = false)
{
checkdemomode();
$Query = array( );
foreach( $buildQuery as $field => $value )
{
if( is_array($value) )
{
if( $value["escape"] == 0 )
{
$Query[] = "`" . $field . "` = " . $value["value"];
}
else
{
$Query[] = "`" . $field . "` = " . $this->escape($value["value"]);
}
}
else
{
$Query[] = "`" . $field . "` = " . $this->escape($value);
}
}
$SET = implode(",", $Query);
if( $isShutDownQuery )
{
return $this->shutdown_query("UPDATE `" . $table . "` SET " . $SET . (($where ? " WHERE " . $where : "")));
}
return $this->query("UPDATE `" . $table . "` SET " . $SET . (($where ? " WHERE " . $where : "")));
}
public function delete($table, $WHERE = "")
{
checkdemomode();
$this->execute_query("DELETE FROM " . $table . (($WHERE ? " WHERE " . $WHERE : "")));
return $this->affected_rows();
}
public function truncate($table)
{
checkdemomode();
return $this->execute_query("TRUNCATE TABLE `" . $table . "`");
}
public function query_result($query, $buffered = true)
{
$returnarray = false;
$queryresult = $this->execute_query($query, $buffered);
if( $this->num_rows($queryresult) )
{
$returnarray = $this->fetch_assoc($queryresult);
$this->free($queryresult);
}
return $returnarray;
}
public function row_count($query, $buffered = true)
{
return $this->num_rows($this->execute_query($query, $buffered));
}
public function exec_shutdown_queries()
{
if( $this->shutdown_queries && count($this->shutdown_queries) )
{
foreach( $this->shutdown_queries as $query )
{
$this->execute_query($query);
}
}
}
public function shutdown_query($query)
{
$this->shutdown_queries[] = $query;
}
public function lock_tables($tablelist = "")
{
if( !empty($tablelist) && is_array($tablelist) )
{
$sql = "";
foreach( $tablelist as $name => $type )
{
$sql .= ((!empty($sql) ? ", " : "")) . $name . " " . $type;
}
$this->query("LOCK TABLES " . $sql);
$this->locked = true;
}
}
public function unlock_tables()
{
if( $this->locked )
{
$this->query("UNLOCK TABLES");
$this->locked = false;
}
}
public function affected_rows()
{
return mysqli_affected_rows($this->connection);
}
public function insert_id()
{
return mysqli_insert_id($this->connection);
}
public function fetch_assoc($query)
{
return mysqli_fetch_array($query, MYSQLI_ASSOC);
}
public function fetch_row($query)
{
return mysqli_fetch_row($query);
}
public function fetch_fields($query)
{
return mysqli_fetch_fields($query);
}
public function num_rows($query)
{
return mysqli_num_rows($query);
}
public function free($query)
{
mysqli_free_result($query);
}
public function escape($string)
{
return "'" . mysqli_real_escape_string($this->connection, $string) . "'";
}
public function escape_no_quotes($string)
{
return mysqli_real_escape_string($this->connection, $string);
}
public function field_exists($table, $column)
{
return $this->row_count("SHOW columns FROM `" . $table . "` WHERE Field = " . $this->escape($column));
}
public function halt()
{
_sendheaders("<h1>Database Error!</h1> Please try again later or contact an <b>Administrator</b>.<br />(<b>" . mysqli_errno($this->connection) . "</b>)" . $this->error . "<hr>" . $this->query);
}
public function close()
{
mysqli_close($this->connection);
}
}
class TSUESMTP
{
public $smtpSocket = NULL;
public $smtpReturn = 0;
public $secure = "";
public $toemail = "";
public $toname = "";
public $subject = "";
public $message = "";
public $headers = "";
public $fromemail = "";
public $delimiter = "
";
public $Settings = array( );
public function TSUESMTP()
{
global $TSUE;
$this->secure = ($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_secure"] == 1 ? "tls" : "none");
}
public function start($toemail, $toname = "", $subject, $message, $from, $fromname)
{
global $TSUE;
$toemail = $this->fetch_first_line($toemail);
if( empty($toemail) )
{
return false;
}
$delimiter =& $this->delimiter;
$toemail = $this->dounhtmlspecialchars($toemail);
$subject = $this->fetch_first_line($subject);
$message = preg_replace("#(
|
|
)#s", $delimiter, trim($message));
if( (strtolower($TSUE["TSUE_Language"]["charset"]) == "iso-8859-1" || $TSUE["TSUE_Language"]["charset"] == "") && preg_match("/&[a-z0-9#]+;/i", $message) )
{
$message = utf8_encode($message);
$subject = utf8_encode($subject);
$encoding = "UTF-8";
$unicode_decode = true;
}
else
{
$encoding = $TSUE["TSUE_Language"]["charset"];
$unicode_decode = false;
}
$message = $this->dounhtmlspecialchars($message, $unicode_decode);
$subject = $this->encode_email_header($this->dounhtmlspecialchars($subject, $unicode_decode), $encoding, false, false);
$from = $this->fetch_first_line($from);
$mailfromname = ($fromname ? $this->fetch_first_line($fromname) : $from);
if( $unicode_decode == true )
{
$mailfromname = utf8_encode($mailfromname);
}
$mailfromname = $this->encode_email_header($this->dounhtmlspecialchars($mailfromname, $unicode_decode), $encoding);
if( !isset($headers) )
{
$headers = "";
}
$headers .= "From: " . $mailfromname . " <" . $from . ">" . $delimiter;
$headers .= "Return-Path: " . $from . $delimiter;
$headers .= "Message-ID: <" . gmdate("YmdHis") . "." . substr(md5($message . microtime()), 0, 12) . "@" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . ">" . $delimiter;
$headers .= "MIME-Version: 1.0" . $delimiter;
$headers .= "Content-Type: text/html" . (($encoding ? "; charset=\"" . $encoding . "\"" : "")) . $delimiter;
$headers .= "Content-Transfer-Encoding: 8bit" . $delimiter;
$headers .= "X-Priority: 3" . $delimiter;
$headers .= "X-Mailer: TSUE Mail via PHP" . $delimiter;
$headers .= "X-Sender: TSUE PHP-Mailer" . $delimiter;
$headers .= "Date: " . date("r") . $delimiter;
$this->toemail = $toemail;
$this->toname = $toname;
$this->subject = $subject;
$this->message = $message;
$this->headers = $headers;
$this->fromemail = $from;
}
public function sendMessage($msg, $expectedResult = false)
{
if( $msg !== false && !empty($msg) )
{
fputs($this->smtpSocket, $msg . "
");
}
if( $expectedResult !== false )
{
$result = "";
while( $line = @fgets($this->smtpSocket, 1024) )
{
$result .= $line;
if( preg_match("#^(\d{3}) #", $line, $matches) )
{
break;
}
}
$this->smtpReturn = intval((isset($matches["1"]) ? $matches["1"] : 0));
return $this->smtpReturn == $expectedResult;
}
return true;
}
public function errorMessage($msg)
{
global $TSUE;
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_debug"] == "1" )
{
logadminaction($msg);
}
return false;
}
public function sendHello()
{
global $TSUE;
if( !$this->smtpSocket )
{
return false;
}
if( !$this->sendMessage("EHLO " . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], 250) && !$this->sendMessage("HELO " . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], 250) )
{
return false;
}
return true;
}
public function send()
{
global $TSUE;
if( !$this->toemail )
{
return false;
}
$this->smtpSocket = fsockopen((($this->secure == "ssl" ? "ssl://" : "tcp://")) . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_port"], $errno, $errstr, 30);
if( $this->smtpSocket )
{
if( !$this->sendMessage(false, 220) )
{
return $this->errorMessage($this->smtpReturn . " Unexpected response when connecting to SMTP server");
}
if( !$this->sendHello() )
{
return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during handshake");
}
if( $this->secure == "tls" && function_exists("stream_socket_enable_crypto") )
{
if( $this->sendMessage("STARTTLS", 220) && !stream_socket_enable_crypto($this->smtpSocket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT) )
{
return $this->errorMessage("Unable to negotitate TLS handshake.");
}
$this->sendHello();
}
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"] && $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"] && $this->sendMessage("AUTH LOGIN", 334) && (!$this->sendMessage(base64_encode($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"]), 334) || !$this->sendMessage(base64_encode($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"]), 235)) )
{
return $this->errorMessage($this->smtpReturn . " Authorization to the SMTP server failed");
}
if( !$this->sendMessage("MAIL FROM:<" . $this->fromemail . ">", 250) )
{
return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during FROM address transmission");
}
$addresses = tsue_explode(",", $this->toemail);
foreach( $addresses as $address )
{
if( !$this->sendMessage("RCPT TO:<" . trim($address) . ">", 250) )
{
return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during TO address transmission");
}
}
if( $this->sendMessage("DATA", 354) )
{
$this->sendMessage("Date: " . gmdate("r"), false);
$this->sendMessage("To: " . $this->toemail, false);
$this->sendMessage(trim($this->headers), false);
$this->sendMessage("Subject: " . $this->subject, false);
$this->sendMessage("
", false);
$this->message = preg_replace("#^\." . $this->delimiter . "#m", ".." . $this->delimiter, $this->message);
$this->sendMessage($this->message, false);
if( !$this->sendMessage(".", 250) )
{
return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server when ending transmission");
}
$this->sendMessage("QUIT", 221);
fclose($this->smtpSocket);
return true;
}
return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during data transmission");
}
else
{
return $this->errorMessage("Unable to connect to SMTP server");
}
}
public function fetch_first_line($text)
{
$text = preg_replace("/(
|
|
)/s", "
", trim($text));
$pos = strpos($text, "
");
if( $pos !== false )
{
return substr($text, 0, $pos);
}
return $text;
}
public function dounhtmlspecialchars($text, $doUniCode = false)
{
if( $doUniCode )
{
$text = preg_replace("/&#([0-9]+);/esiU", "convert_int_to_utf8('\1')", $text);
}
return str_replace(array( "<", ">", """, "&" ), array( "<", ">", "\"", "&" ), $text);
}
public function encode_email_header($text, $charset = "utf-8", $force_encode = false, $quoted_string = true)
{
$text = trim($text);
if( !$charset )
{
return $text;
}
if( $force_encode == true )
{
$qp_encode = true;
}
else
{
$qp_encode = false;
for( $i = 0; $i < strlen($text); $i++ )
{
if( 127 < ord($text[$i]) )
{
$qp_encode = true;
break;
}
}
}
if( $qp_encode == true )
{
$outtext = preg_replace("#([^a-zA-Z0-9!*+\-/ ])#e", "'=' . strtoupper(dechex(ord(str_replace('\\"', '\"', '\1'))))", $text);
$outtext = str_replace(" ", "_", $outtext);
$outtext = "=?" . $charset . "?q?" . $outtext . "?=";
return $outtext;
}
if( $quoted_string )
{
$text = str_replace(array( "\"", "(", ")" ), array( "\\"", "\(", "\)" ), $text);
return "\"" . $text . "\"";
}
return preg_replace("#(\r\n|\n|\r)+#", " ", $text);
}
}
class TSUE_Parser
{
public $valid_elements = "<p><span><img><a><strong><b><em><ul><li><ol><br>";
private $buildCensorArray = NULL;
public function TSUE_Parser()
{
}
public function removeP($text = "")
{
if( substr($text, 0, 13) == "<p> </p>" )
{
$text = substr_replace($text, "", 0, 13);
}
if( substr($text, 0, 7) == "<p></p>" )
{
$text = substr_replace($text, "", 0, 7);
}
if( substr($text, 0, 8) == "<p> </p>" )
{
$text = substr_replace($text, "", 0, 8);
}
return $text;
}
public function clearTinymceP($text = "")
{
$text = $this->removeP($text);
if( substr($text, 0, 3) == "<p>" && substr($text, -4) == "</p>" )
{
$text = substr_replace($text, "", 0, 3);
$text = substr_replace($text, "", -4);
}
return $text;
}
public function parse($text = "")
{
global $TSUE;
$text = trim($text);
$text = $this->clearTinymceP($text);
$text = $this->censorString($text);
if( strlen($text) <= 2 )
{
return $text;
}
preg_match_all("#\[(code|php)\](.*?)\[/\1\](
?|
?)#si", $text, $code_matches, PREG_SET_ORDER);
$text = preg_replace("#\[(code|php)\](.*?)\[/\1\](
?|
?)#si", "~~~TSUE_CODE~~~", $text);
$text = strip_tags($text, $this->valid_elements);
$text = $TSUE["TSUE_Security"]->xss_clean($text);
$pattern = array( "#\[quote=(.*?)\](.*?)\[\/quote\]#esi", "#\[quote\](.*?)\[\/quote\]#esi", "#\[youtube\](.*?)\[\/youtube\]#esi", "#\[nfo\](.*?)\[\/nfo\]#esi", "#\[spoiler\](.*?)\[\/spoiler\]#esi" );
$replace = array( "\$this->parseQuotesWithName('\$1','\$2')", "\$this->parseQuotes('\$1')", "\$this->parseYoutube('\$1')", "\$this->parseNFO('\$1')", "\$this->parseSpoiler('\$1')" );
while( preg_match($pattern[0], $text) || preg_match($pattern[1], $text) || preg_match($pattern[2], $text) || preg_match($pattern[3], $text) || preg_match($pattern[4], $text) )
{
$text = preg_replace($pattern, $replace, $text);
}
if( $code_matches && count($code_matches) )
{
foreach( $code_matches as $match )
{
$match["2"] = trim(strip_tags($match["2"]));
switch( strtolower($match["1"]) )
{
case "php":
$CodeTitle = get_phrase("tinymce_php_code");
$match["2"] = html_declean($match["2"]);
$CodeContent = $this->PHPCode($match["2"]);
$CodeMD5 = md5($CodeTitle . $CodeContent);
break;
default:
$CodeTitle = get_phrase("tinymce_code");
$CodeContent = html_clean($match["2"]);
$CodeMD5 = md5($CodeTitle . $CodeContent);
break;
}
$codeOutput = "
<div class=\"CodeBlock\" id=\"" . $CodeMD5 . "\">
<div class=\"title\">
<span id=\"expand_button\" class=\"clickable\" md5=\"" . $CodeMD5 . "\">" . get_phrase("button_expand") . "</span>
" . $CodeTitle . ":
</div>
<pre><code>" . $CodeContent . "</code></pre>
</div>";
$codeOutput = str_replace(array( "<code><code>", "</code></code>" ), array( "<code>", "</code>" ), $codeOutput);
$text = preg_replace("#~~~TSUE_CODE~~~?#", $codeOutput, $text, 1);
}
}
return trim($text);
}
public function parseQuotesWithName($QuoteDetails = "", $CodeQuoteContent = "")
{
global $TSUE;
if( !$CodeQuoteContent )
{
return NULL;
}
$explode = @tsue_explode("|", @trim($QuoteDetails));
$MemberName = $PostID = "";
if( isset($explode["0"]) )
{
$MemberName = trim(str_replace("\\"", "\"", $explode["0"]));
}
if( isset($explode["1"]) )
{
$PostID = intval($explode["1"]);
}
$CodeQuoteContent = trim(str_replace("\\"", "\"", $CodeQuoteContent));
$MemberName = get_phrase("member_x_said", ucfirst($MemberName));
$quoteOutput = "
<div class=\"CodeBlockQuote\">
<div class=\"title\">
" . $MemberName . " <a href=\"#\" rel=\"autoScroller\" name=\"" . $PostID . "\">↑</a>
</div>
<div class=\"quotecontent\">" . $CodeQuoteContent . "</div>
</div>";
return $quoteOutput;
}
public function parseQuotes($CodeQuoteContent = "")
{
global $TSUE;
if( !$CodeQuoteContent )
{
return NULL;
}
$CodeQuoteContent = trim(str_replace("\\"", "\"", $CodeQuoteContent));
return "
<div class=\"CodeBlockQuote\">
<div class=\"quotecontent\">" . $CodeQuoteContent . "</div>
</div>";
}
public function parseYoutube($videoTag = "")
{
global $TSUE;
$youtube = "";
if( $videoTag )
{
$youtube = "<object width=\"500\" height=\"314\"><param name=\"movie\" value=\"http://www.youtube.com/v/" . $videoTag . "?version=3&hd=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" . $videoTag . "?version=3&hd=1\" type=\"application/x-shockwave-flash\" width=\"500\" height=\"314\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed></object>";
}
return $youtube;
}
public function parseNFO($nfoTag = "")
{
global $TSUE;
$nfo = "";
if( $nfoTag )
{
$nfo = "<pre class=\"nfo\">" . $nfoTag . "</pre>";
}
return $nfo;
}
public function parseSpoiler($spoilerTag = "")
{
global $TSUE;
$spoiler = "";
if( $spoilerTag )
{
$spoiler = "
<div id=\"spoiler\">
<div class=\"spoiler_tag\">" . $spoilerTag . "</div>
</div>";
}
return $spoiler;
}
public function PHPCode($content = "")
{
if( strpos($content, "<?") == false )
{
$tagAdded = true;
$content = "<?php
" . $content;
}
else
{
$tagAdded = false;
}
$content = highlight_string($content, true);
if( $tagAdded )
{
$content = preg_replace("#<\?php<br\s*/?>#", "", $content, 1);
}
return trim($content);
}
public function censorString($string)
{
global $TSUE;
if( !isset($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]) )
{
return $string;
}
if( !isset($TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"]) )
{
$TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"] = "";
}
if( !$this->buildCensorArray )
{
$this->buildCensorArray = $this->buildCensorArray($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"], $TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"]);
}
if( !empty($this->buildCensorArray["exact"]) )
{
$string = preg_replace(array_keys($this->buildCensorArray["exact"]), $this->buildCensorArray["exact"], $string);
}
if( !empty($this->buildCensorArray["any"]) )
{
$string = str_ireplace(array_keys($this->buildCensorArray["any"]), $this->buildCensorArray["any"], $string);
}
return $string;
}
public function buildCensorArray(array $words, $censorString)
{
$censorCache = array( );
if( !empty($words["exact"]) )
{
$exact = array( );
foreach( $words["exact"] as $word => $replace )
{
$search = "#(?<=\W|^)(" . preg_quote($word, "#") . ")(?=\W|\$)#i";
if( is_int($replace) )
{
$exact[$search] = str_repeat($censorString, $replace);
}
else
{
$exact[$search] = $replace;
}
}
$censorCache["exact"] = $exact;
}
if( !empty($words["any"]) )
{
$any = array( );
foreach( $words["any"] as $word => $replace )
{
if( is_int($replace) )
{
$any[$word] = str_repeat($censorString, $replace);
}
else
{
$any[$word] = $replace;
}
}
$censorCache["any"] = $any;
}
return $censorCache;
}
}
class TSUE_Security
{
protected $_xss_hash = "";
protected $charset = "UTF-8";
protected $_never_allowed_str = array( "document.cookie" => "[removed]", "document.write" => "[removed]", ".parentNode" => "[removed]", ".innerHTML" => "[removed]", "window.location" => "[removed]", "-moz-binding" => "[removed]", "<!--" => "<!--", "-->" => "-->", "<![CDATA[" => "<![CDATA[" );
protected $_never_allowed_regex = array( "javascript\s*:" => "[removed]", "expression\s*(\(|&\#40;)" => "[removed]", "vbscript\s*:" => "[removed]", "Redirect\s+302" => "[removed]" );
public function xss_clean($str, $is_image = false)
{
if( is_array($str) )
{
while( list($key) = each($str) )
{
$str[$key] = $this->xss_clean($str[$key]);
}
return $str;
}
$str = $this->remove_invisible_characters($str);
$str = $this->_validate_entities($str);
$str = rawurldecode($str);
$str = preg_replace_callback("/[a-z]+=([\'\"]).*?\1/si", array( $this, "_convert_attribute" ), $str);
$str = preg_replace_callback("/<\w+.*?(?=>|<|\$)/si", array( $this, "_decode_entity" ), $str);
$str = $this->remove_invisible_characters($str);
if( strpos($str, " ") !== false )
{
$str = str_replace(" ", " ", $str);
}
$converted_string = $str;
$str = $this->_do_never_allowed($str);
if( $is_image === true )
{
$str = preg_replace("/<\?(php)/i", "<?\1", $str);
}
else
{
$str = str_replace(array( "<?", "?" . ">" ), array( "<?", "?>" ), $str);
}
$words = array( "javascript", "expression", "vbscript", "script", "applet", "alert", "document", "write", "cookie", "window" );
foreach( $words as $word )
{
$temp = "";
$i = 0;
for( $wordlen = strlen($word); $i < $wordlen; $i++ )
{
$temp .= substr($word, $i, 1) . "\s*";
}
$str = preg_replace_callback("#(" . substr($temp, 0, -3) . ")(\W)#is", array( $this, "_compact_exploded_words" ), $str);
}
do
{
$original = $str;
if( preg_match("/<a/i", $str) )
{
$str = preg_replace_callback("#<a\s+([^>]*?)(>|\$)#si", array( $this, "_js_link_removal" ), $str);
}
if( preg_match("/<img/i", $str) )
{
$str = preg_replace_callback("#<img\s+([^>]*?)(\s?/?>|\$)#si", array( $this, "_js_img_removal" ), $str);
}
if( preg_match("/script/i", $str) || preg_match("/xss/i", $str) )
{
$str = preg_replace("#<(/*)(script|xss)(.*?)\>#si", "[removed]", $str);
}
}
while( $original != $str );
unset($original);
$str = $this->_remove_evil_attributes($str, $is_image);
$naughty = "alert|applet|audio|basefont|base|behavior|bgsound|blink|body|embed|expression|form|frameset|frame|head|html|ilayer|iframe|input|isindex|layer|link|meta|object|plaintext|style|script|textarea|title|video|xml|xss";
$str = preg_replace_callback("#<(/*\s*)(" . $naughty . ")([^><]*)([><]*)#is", array( $this, "_sanitize_naughty_html" ), $str);
$str = preg_replace("#(alert|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)\((.*?)\)#si", "\1\2(\3)", $str);
$str = $this->_do_never_allowed($str);
if( $is_image === true )
{
return ($str == $converted_string ? true : false);
}
return $str;
}
public function xss_hash()
{
if( $this->_xss_hash == "" )
{
mt_srand();
$this->_xss_hash = md5(TIMENOW + mt_rand(0, 1999999999));
}
return $this->_xss_hash;
}
public function entity_decode($str, $charset = "UTF-8")
{
if( stristr($str, "&") === false )
{
return $str;
}
if( function_exists("html_entity_decode") && strtolower($charset) != "utf-8" )
{
$str = html_entity_decode($str, ENT_COMPAT, $charset);
$str = preg_replace("~&#x(0*[0-9a-f]{2,5})~ei", "chr(hexdec(\"\1\"))", $str);
return preg_replace("~&#([0-9]{2,4})~e", "chr(\1)", $str);
}
$str = preg_replace("~&#x(0*[0-9a-f]{2,5});{0,1}~ei", "chr(hexdec(\"\1\"))", $str);
$str = preg_replace("~&#([0-9]{2,4});{0,1}~e", "chr(\1)", $str);
if( stristr($str, "&") === false )
{
$str = strtr($str, array_flip(get_html_translation_table(HTML_ENTITIES)));
}
return $str;
}
public function sanitize_filename($str, $relative_path = false)
{
$bad = array( "../", "<!--", "-->", "<", ">", "'", "\"", "&", "\$", "#", "{", "}", "[", "]", "=", ";", "?", "%20", "%22", "%3c", "%253c", "%3e", "%0e", "%28", "%29", "%2528", "%26", "%24", "%3f", "%3b", "%3d" );
if( !$relative_path )
{
$bad[] = "./";
$bad[] = "/";
}
$str = remove_invisible_characters($str, false);
return stripslashes(str_replace($bad, "", $str));
}
protected function _compact_exploded_words($matches)
{
return preg_replace("/\s+/s", "", $matches[1]) . $matches[2];
}
protected function _remove_evil_attributes($str, $is_image)
{
$evil_attributes = array( "on\w*", "xmlns" );
if( $is_image === true )
{
unset($evil_attributes[array_search("xmlns", $evil_attributes)]);
}
do
{
$str = preg_replace("#<(/?[^><]+?)([^A-Za-z\-])(" . implode("|", $evil_attributes) . ")(\s*=\s*)([\"][^>]*?[\"]|[\'][^>]*?[\']|[^>]*?)([\s><])([><]*)#i", "<\$1\$6", $str, -1, $count);
}
while( $count );
return $str;
}
protected function _sanitize_naughty_html($matches)
{
$str = "<" . $matches[1] . $matches[2] . $matches[3];
$str .= str_replace(array( ">", "<" ), array( ">", "<" ), $matches[4]);
return $str;
}
protected function _js_link_removal($match)
{
$attributes = $this->_filter_attributes(str_replace(array( "<", ">" ), "", $match[1]));
return str_replace($match[1], preg_replace("#href=.*?(alert\(|alert&\#40;|javascript\:|livescript\:|mocha\:|charset\=|window\.|document\.|\.cookie|<script|<xss|base64\s*,)#si", "", $attributes), $match[0]);
}
protected function _js_img_removal($match)
{
$attributes = $this->_filter_attributes(str_replace(array( "<", ">" ), "", $match[1]));
return str_replace($match[1], preg_replace("#src=.*?(alert\(|alert&\#40;|javascript\:|livescript\:|mocha\:|charset\=|window\.|document\.|\.cookie|<script|<xss|base64\s*,)#si", "", $attributes), $match[0]);
}
protected function _convert_attribute($match)
{
return str_replace(array( ">", "<", "\" ), array( ">", "<", "\\" ), $match[0]);
}
protected function _filter_attributes($str)
{
$out = "";
if( preg_match_all("#\s*[a-z\-]+\s*=\s*(\"|\')([^\1]*?)\1#is", $str, $matches) )
{
foreach( $matches[0] as $match )
{
$out .= preg_replace("#/\*.*?\*/#s", "", $match);
}
}
return $out;
}
protected function _decode_entity($match)
{
return $this->entity_decode($match[0], strtoupper($this->charset));
}
protected function _validate_entities($str)
{
$str = preg_replace("|\&([a-z\_0-9\-]+)\=([a-z\_0-9\-]+)|i", $this->xss_hash() . "\1=\2", $str);
$str = preg_replace("#(&\#?[0-9a-z]{2,})([\x00-\ ])*;?#i", "\1;\2", $str);
$str = preg_replace("#(&\#x?)([0-9A-F]+);?#i", "\1\2;", $str);
$str = str_replace($this->xss_hash(), "&", $str);
return $str;
}
protected function _do_never_allowed($str)
{
foreach( $this->_never_allowed_str as $key => $val )
{
$str = str_replace($key, $val, $str);
}
foreach( $this->_never_allowed_regex as $key => $val )
{
$str = preg_replace("#" . $key . "#i", $val, $str);
}
return $str;
}
protected function remove_invisible_characters($str, $url_encoded = true)
{
$non_displayables = array( );
if( $url_encoded )
{
$non_displayables[] = "/%0[0-8bcef]/";
$non_displayables[] = "/%1[0-9a-f]/";
}
$non_displayables[] = "/[\x00-\x08\\\x0E-\x1F\x7F]+/S";
do
{
$str = preg_replace($non_displayables, "", $str, -1, $count);
}
while( $count );
return $str;
}
}
class TSUE_IRCBot
{
public $fp = NULL;
public $debug = array( );
public $connected = false;
public $font = array( "[c]" => "", "[n]" => "", "[b]" => "", "[u]" => "", "[r]" => "" );
public function TSUE_IRCBot($msg)
{
global $TSUE;
$this->fp = fsockopen($TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"], $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"], $errno, $errstr, 5);
if( !$this->fp )
{
$this->debug[] = "Unable to connect to IRC Server at " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"] . ":" . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"] . " (" . $errno . ") " . $errstr;
return false;
}
if( $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"][0] != "#" )
{
$TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"] = "#" . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"];
}
$this->debug[] = "Connected to: " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"];
$this->connected = true;
$this->sendCMD("PASS " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPass"]);
$this->sendCMD("NICK " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"]);
$this->sendCMD("USER " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"] . " TSUE IRC BOT");
while( !feof($this->fp) )
{
$data = str_replace(array( "
", "
" ), "", fgets($this->fp, 1024));
$this->debug[] = "[RECEIVE] " . $data;
$exData = tsue_explode(" ", $data);
if( isset($exData["0"]) && $exData["0"] == "PING" )
{
$this->sendCMD("PONG " . $exData[1]);
}
else
{
if( isset($exData["1"]) && $exData["1"] == "376" )
{
$this->sendCMD("JOIN " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"]);
}
else
{
if( isset($exData["1"]) && $exData["1"] == "366" )
{
$this->sendCMD("PRIVMSG " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"] . " [b][c]4,0" . $msg);
$this->Disconnect();
return NULL;
}
}
}
}
if( $this->connected )
{
$this->Disconnect();
}
}
public function sendCMD($cmd)
{
@fputs($this->fp, @strtr($cmd, $this->font) . "
");
$this->debug[] = "[SEND] " . $cmd;
}
public function Disconnect()
{
$this->sendCMD("QUIT :USING TSUE IRC BOT");
@fclose($this->fp);
}
public function Debug()
{
return ($this->debug ? implode("<br />", $this->debug) : false);
}
}
class Torrent
{
private $torrent = NULL;
private $info = NULL;
public $error = NULL;
public function load(&$data)
{
$this->torrent = BEncode::decode($data);
if( $this->torrent->get_type() == "error" )
{
$this->error = $this->torrent->get_plain();
return false;
}
if( $this->torrent->get_type() != "dictionary" )
{
$this->error = "The file was not a valid torrent file.";
return false;
}
$this->info = $this->torrent->get_value("info");
if( !$this->info )
{
$this->error = "Could not find info dictionary.";
return false;
}
return true;
}
public function getWhatever($Whatever)
{
return ($this->torrent->get_value($Whatever) ? $this->torrent->get_value($Whatever)->get_plain() : NULL);
}
public function getComment()
{
return ($this->torrent->get_value("comment") ? $this->torrent->get_value("comment")->get_plain() : NULL);
}
public function getCreationDate()
{
return ($this->torrent->get_value("creation date") ? $this->torrent->get_value("creation date")->get_plain() : NULL);
}
public function getCreatedBy()
{
return ($this->torrent->get_value("created by") ? $this->torrent->get_value("created by")->get_plain() : NULL);
}
public function getName()
{
return $this->info->get_value("name")->get_plain();
}
public function getPieceLength()
{
return $this->info->get_value("piece length")->get_plain();
}
public function getPieces()
{
return $this->info->get_value("pieces")->get_plain();
}
public function getPrivate()
{
if( $this->info->get_value("private") )
{
return $this->info->get_value("private")->get_plain();
}
return -1;
}
public function getFiles()
{
$filelist = array( );
$length = $this->info->get_value("length");
if( $length )
{
$file = new Torrent_File();
$file->name = $this->info->get_value("name")->get_plain();
$file->length = $this->info->get_value("length")->get_plain();
array_push($filelist, $file);
}
else
{
if( $this->info->get_value("files") )
{
$files = $this->info->get_value("files")->get_plain();
while( list($key, $value) = each($files) )
{
$file = new Torrent_File();
$path = $value->get_value("path")->get_plain();
while( list($key, $value2) = each($path) )
{
$file->name .= "/" . $value2->get_plain();
}
$file->name = ltrim($file->name, "/");
$file->length = $value->get_value("length")->get_plain();
array_push($filelist, $file);
}
}
}
return $filelist;
}
public function getTrackers()
{
$trackerlist = array( );
if( $this->torrent->get_value("announce-list") )
{
$trackers = $this->torrent->get_value("announce-list")->get_plain();
while( list($key, $value) = each($trackers) )
{
if( is_array($value->get_plain()) )
{
while( list($key, $value2) = each($value) )
{
while( list($key, $value3) = each($value2) )
{
array_push($trackerlist, $value3->get_plain());
}
}
}
else
{
array_push($trackerlist, $value->get_plain());
}
}
}
else
{
if( $this->torrent->get_value("announce") )
{
array_push($trackerlist, $this->torrent->get_value("announce")->get_plain());
}
}
return $trackerlist;
}
public function addTracker($tracker_url)
{
$trackers = $this->getTrackers();
$trackers[] = $tracker_url;
$this->setTrackers($trackers);
}
public function removeWhatever($Whatever)
{
if( $this->torrent->get_value($Whatever) )
{
$this->torrent->remove($Whatever);
}
}
public function setTrackers($trackerlist)
{
if( 1 <= count($trackerlist) )
{
$this->torrent->remove("announce-list");
$string = new BEncode_String($trackerlist[0]);
$this->torrent->set("announce", $string);
}
if( 1 < count($trackerlist) )
{
$list = new BEncode_List();
while( list($key, $value) = each($trackerlist) )
{
$list2 = new BEncode_List();
$string = new BEncode_String($value);
$list2->add($string);
$list->add($list2);
}
$this->torrent->set("announce-list", $list);
}
}
public function setFiles($filelist)
{
$length = $this->info->get_value("length");
if( $length )
{
$filelist[0] = str_replace("\", "/", $filelist[0]);
$string = new BEncode_String($filelist[0]);
$this->info->set("name", $string);
}
else
{
if( $this->info->get_value("files") )
{
$files = $this->info->get_value("files")->get_plain();
for( $i = 0; $i < count($files); $i++ )
{
$file_parts = split("/", $filelist[$i]);
$path = new BEncode_List();
foreach( $file_parts as $part )
{
$string = new BEncode_String($part);
$path->add($string);
}
$files[$i]->set("path", $path);
}
}
}
}
public function setComment($value)
{
$type = "comment";
$key = $this->torrent->get_value($type);
if( $value == "" )
{
$this->torrent->remove($type);
}
else
{
if( $key )
{
$key->set($value);
}
else
{
$string = new BEncode_String($value);
$this->torrent->set($type, $string);
}
}
}
public function setCreatedBy($value)
{
$type = "created by";
$key = $this->torrent->get_value($type);
if( $value == "" )
{
$this->torrent->remove($type);
}
else
{
if( $key )
{
$key->set($value);
}
else
{
$string = new BEncode_String($value);
$this->torrent->set($type, $string);
}
}
}
public function setSource($value)
{
$type = "source";
$key = $this->torrent->get_value($type);
if( $value == "" )
{
$this->torrent->remove($type);
}
else
{
if( $key )
{
$key->set($value);
}
else
{
$string = new BEncode_String($value);
$this->torrent->set($type, $string);
}
}
}
public function setCreationDate($value)
{
$type = "creation date";
$key = $this->torrent->get_value($type);
if( $value == "" )
{
$this->torrent->remove($type);
}
else
{
if( $key )
{
$key->set($value);
}
else
{
$int = new BEncode_Int($value);
$this->torrent->set($type, $int);
}
}
}
public function setPrivate($value)
{
if( $value == -1 )
{
$this->info->remove("private");
}
else
{
$int = new BEncode_Int($value);
$this->info->set("private", $int);
}
}
public function bencode()
{
return $this->torrent->encode();
}
public function getHash()
{
return pack("H*", sha1($this->info->encode()));
}
public function getSize()
{
$size = 0;
$IncludedFiles = $this->getFiles();
foreach( $IncludedFiles as $File )
{
$size += $File->length;
}
return $size;
}
}
class Torrent_File
{
public $name = NULL;
public $length = NULL;
}
class BEncode
{
public static function &decode(&$raw, &$offset = 0)
{
if( strlen($raw) <= $offset )
{
return new BEncode_Error("Decoder exceeded max length.");
}
$char = $raw[$offset];
switch( $char )
{
case "i":
$int = new BEncode_Int();
$int->decode($raw, $offset);
return $int;
case "d":
$dict = new BEncode_Dictionary();
if( $check = $dict->decode($raw, $offset) )
{
return $check;
}
return $dict;
case "l":
$list = new BEncode_List();
$list->decode($raw, $offset);
return $list;
case "e":
$AvoidPHPWarning = new BEncode_End();
return $AvoidPHPWarning;
case "0":
case is_numeric($char):
$str = new BEncode_String();
$str->decode($raw, $offset);
return $str;
}
return new BEncode_Error("Decoder encountered unknown char '" . $char . "' at offset " . $offset . ".");
}
}
class BEncode_End
{
public function get_type()
{
return "end";
}
}
class BEncode_Error
{
private $error = NULL;
public function BEncode_Error($error)
{
$this->error = $error;
}
public function get_plain()
{
return $this->error;
}
public function get_type()
{
return "error";
}
}
class BEncode_Int
{
private $value = NULL;
public function BEncode_Int($value = NULL)
{
$this->value = $value;
}
public function decode(&$raw, &$offset)
{
$end = strpos($raw, "e", $offset);
$this->value = substr($raw, ++$offset, $end - $offset);
$offset += $end - $offset;
}
public function get_plain()
{
return $this->value;
}
public function get_type()
{
return "int";
}
public function encode()
{
return "i" . $this->value . "e";
}
public function set($value)
{
$this->value = $value;
}
}
class BEncode_Dictionary
{
public $value = array( );
public function decode(&$raw, &$offset)
{
$dictionary = array( );
while( true )
{
$name = BEncode::decode($raw, ++$offset);
if( $name->get_type() == "end" )
{
break;
}
if( $name->get_type() == "error" )
{
return $name;
}
if( $name->get_type() != "string" )
{
return new BEncode_Error("Key name in dictionary was not a string.");
}
$value = BEncode::decode($raw, ++$offset);
if( $value->get_type() == "error" )
{
return $value;
}
$dictionary[$name->get_plain()] = $value;
}
$this->value = $dictionary;
}
public function get_value($key)
{
if( isset($this->value[$key]) )
{
return $this->value[$key];
}
}
public function encode()
{
$this->sort();
$encoded = "d";
while( list($key, $value) = each($this->value) )
{
$bstr = new BEncode_String();
$bstr->set($key);
$encoded .= $bstr->encode();
$encoded .= $value->encode();
}
$encoded .= "e";
return $encoded;
}
public function get_type()
{
return "dictionary";
}
public function remove($key)
{
unset($this->value[$key]);
}
public function set($key, $value)
{
$this->value[$key] = $value;
}
private function sort()
{
ksort($this->value);
}
public function count()
{
return count($this->value);
}
}
class BEncode_List
{
private $value = array( );
public function add($bval)
{
array_push($this->value, $bval);
}
public function decode(&$raw, &$offset)
{
$list = array( );
while( true )
{
$value = BEncode::decode($raw, ++$offset);
if( $value->get_type() == "end" )
{
break;
}
if( $value->get_type() == "error" )
{
return $value;
}
array_push($list, $value);
}
$this->value = $list;
}
public function encode()
{
$encoded = "l";
for( $i = 0; $i < count($this->value); $i++ )
{
$encoded .= $this->value[$i]->encode();
}
$encoded .= "e";
return $encoded;
}
public function get_plain()
{
return $this->value;
}
public function get_type()
{
return "list";
}
}
class BEncode_String
{
private $value = NULL;
public function BEncode_String($value = NULL)
{
$this->value = $value;
}
public function decode(&$raw, &$offset)
{
$end = strpos($raw, ":", $offset);
$len = substr($raw, $offset, $end - $offset);
$offset += $len + $end - $offset;
$end++;
$this->value = substr($raw, $end, $len);
}
public function get_plain()
{
return $this->value;
}
public function get_type()
{
return "string";
}
public function encode()
{
$len = strlen($this->value);
return (string) $len . ":" . $this->value;
}
public function set($value)
{
$this->value = $value;
}
}
class IMDB
{
public $movieInfo = array( );
public $posterPath = "";
public function IMDB($movieKeyword)
{
$imdbUrl = $this->getIMDbUrlFromGoogle($movieKeyword);
$html = ($imdbUrl ? $this->geturl($imdbUrl) : false);
if( stripos($html, "<meta name=\"application-name\" content=\"IMDb\" />") !== false )
{
$this->scrapMovieInfo($html);
$this->movieInfo["imdb_url"] = $imdbUrl;
}
else
{
$this->movieInfo["error"] = "No Title found on IMDb!";
}
}
public function getIMDbUrlFromGoogle($title)
{
$url = "http://www.google.com/search?q=site:imdb.com+" . rawurlencode($title);
$html = $this->geturl($url);
$imdburls = $this->match_all("/<a.*?href=\".*?(http:\/\/www\.imdb.com\/title\/tt.*?\/).*?\".*?>.*?<\/a>/ms", $html, 1);
return ($imdburls ? $imdburls[0] : false);
}
public function scrapMovieInfo($html)
{
$this->movieInfo["title_id"] = $this->match("/<link rel=\"canonical\" href=\"http:\/\/www.imdb.com\/title\/(tt[0-9]+)\/\" \/>/ms", $html, 1);
$this->movieInfo["title"] = trim($this->match("/<title>(.*?) \(.*?<\/title>/ms", $html, 1));
$this->movieInfo["year"] = trim($this->match("/<title>.*?\(.*?([0-9][0-9][0-9][0-9]).*?\).*?<\/title>/ms", $html, 1));
$this->movieInfo["rating"] = $this->match("/itemprop=\"ratingValue\">([0-9].[0-9])<\/span>/ms", $html, 1);
$this->movieInfo["genres"] = array( );
foreach( $this->match_all("/<a.*?>(.*?)<\/a>/ms", $this->match("/Genre.?:(.*?)(<\/div>|See more)/ms", $html, 1), 1) as $m )
{
array_push($this->movieInfo["genres"], $m);
}
$this->movieInfo["directors"] = array( );
foreach( $this->match_all("/<a.*?>(.*?)<\/a>/ms", $this->match("/Director.?:(.*?)(<\/div>|>.?and )/ms", $html, 1), 1) as $m )
{
array_push($this->movieInfo["directors"], $m);
}
$this->movieInfo["writers"] = array( );
foreach( $this->match_all("/<a.*?>(.*?)<\/a>/ms", $this->match("/Writer.?:(.*?)(<\/div>|>.?and )/ms", $html, 1), 1) as $m )
{
array_push($this->movieInfo["writers"], $m);
}
$this->movieInfo["stars"] = array( );
foreach( $this->match_all("/<a.*?>(.*?)<\/a>/ms", $this->match("/Stars:(.*?)<\/div>/ms", $html, 1), 1) as $m )
{
array_push($this->movieInfo["stars"], $m);
}
$this->movieInfo["cast"] = array( );
foreach( $this->match_all("/<td class=\"name\">(.*?)<\/td>/ms", $html, 1) as $m )
{
array_push($this->movieInfo["cast"], trim(strip_tags($m)));
}
$this->movieInfo["mpaa_rating"] = $this->match("/infobar\">.<img.*?alt=\"(.*?)\".*?>/ms", $html, 1);
if( $this->movieInfo["title_id"] != "" )
{
$releaseinfoHtml = $this->geturl("http://www.imdb.com/title/" . $this->movieInfo["title_id"] . "/releaseinfo");
$this->movieInfo["also_known_as"] = $this->getAkaTitles($releaseinfoHtml, $usa_title);
$this->movieInfo["usa_title"] = $usa_title;
$this->movieInfo["release_date"] = $this->match("/Release Date:<\/h4>.*?([0-9][0-9]? (January|February|March|April|May|June|July|August|September|October|November|December) (19|20)[0-9][0-9]).*?(\(|<span)/ms", $html, 1);
$this->movieInfo["release_dates"] = $this->getReleaseDates($releaseinfoHtml);
}
$this->movieInfo["plot"] = trim(strip_tags($this->match("/<p itemprop=\"description\">(.*?)<\/p>/ms", $html, 1)));
$this->movieInfo["poster"] = $this->match("/img_primary\">.*?<img src=\"(.*?)\".*?<\/td>/ms", $html, 1);
$this->movieInfo["poster_large"] = "";
$this->movieInfo["poster_small"] = "";
if( $this->movieInfo["poster"] != "" && strrpos($this->movieInfo["poster"], "nopicture") === false && strrpos($this->movieInfo["poster"], "ad.doubleclick") === false )
{
$this->movieInfo["poster_large"] = substr($this->movieInfo["poster"], 0, strrpos($this->movieInfo["poster"], "_V1.")) . "_V1._SY500.jpg";
$this->movieInfo["poster_small"] = substr($this->movieInfo["poster"], 0, strrpos($this->movieInfo["poster"], "_V1.")) . "_V1._SY150.jpg";
}
else
{
$this->movieInfo["poster"] = "";
}
$this->movieInfo["runtime"] = trim($this->match("/Runtime:<\/h4>.*?([0-9]+) min.*?<\/div>/ms", $html, 1));
if( $this->movieInfo["runtime"] == "" )
{
$this->movieInfo["runtime"] = trim($this->match("/infobar.*?([0-9]+) min.*?<\/div>/ms", $html, 1));
}
$this->movieInfo["top_250"] = trim($this->match("/Top 250 #([0-9]+)</ms", $html, 1));
$this->movieInfo["oscars"] = trim($this->match("/Won ([0-9]+) Oscars./ms", $html, 1));
$this->movieInfo["storyline"] = trim(strip_tags($this->match("/Storyline<\/h2>(.*?)(<em|<\/p>|<span)/ms", $html, 1)));
$this->movieInfo["tagline"] = trim(strip_tags($this->match("/Tagline.?:<\/h4>(.*?)(<span|<\/div)/ms", $html, 1)));
$this->movieInfo["votes"] = $this->match("/<span itemprop=\"ratingCount\">(.*?)<\/span>/ms", $html, 1);
if( $this->movieInfo["title_id"] != "" )
{
$this->movieInfo["media_images"] = $this->getMediaImages($this->movieInfo["title_id"]);
}
}
public function getReleaseDates($html)
{
$releaseDates = array( );
foreach( $this->match_all("/<tr>(.*?)<\/tr>/ms", $this->match("/Date<\/th><\/tr>(.*?)<\/table>/ms", $html, 1), 1) as $r )
{
$country = trim(strip_tags($this->match("/<td><b>(.*?)<\/b><\/td>/ms", $r, 1)));
$date = trim(strip_tags($this->match("/<td align=\"right\">(.*?)<\/td>/ms", $r, 1)));
array_push($releaseDates, $country . " = " . $date);
}
return $releaseDates;
}
public function getAkaTitles($html, &$usa_title)
{
$akaTitles = array( );
foreach( $this->match_all("/<tr>(.*?)<\/tr>/msi", $this->match("/Also Known As(.*?)<\/table>/ms", $html, 1), 1) as $m )
{
$akaTitleMatch = $this->match_all("/<td>(.*?)<\/td>/ms", $m, 1);
$akaTitle = trim($akaTitleMatch[0]);
$akaCountry = trim($akaTitleMatch[1]);
array_push($akaTitles, $akaTitle . " = " . $akaCountry);
if( $akaCountry != "" && strrpos(strtolower($akaCountry), "usa") !== false )
{
$usa_title = $akaTitle;
}
}
return $akaTitles;
}
public function getMediaImages($titleId)
{
$url = "http://www.imdb.com/title/" . $titleId . "/mediaindex";
$html = $this->geturl($url);
$media = array( );
$media = array_merge($media, $this->scanMediaImages($html));
foreach( $this->match_all("/<a href=\"\?page=(.*?)\">/ms", $this->match("/<span style=\"padding: 0 1em;\">(.*?)<\/span>/ms", $html, 1), 1) as $p )
{
$html = $this->geturl($url . "?page=" . $p);
$media = array_merge($media, $this->scanMediaImages($html));
}
return $media;
}
public function scanMediaImages($html)
{
$pics = array( );
foreach( $this->match_all("/src=\"(.*?)\"/ms", $this->match("/<div class=\"thumb_list\" style=\"font-size: 0px;\">(.*?)<\/div>/ms", $html, 1), 1) as $i )
{
$i = substr($i, 0, strrpos($i, "_V1.")) . "_V1._SY500.jpg";
array_push($pics, $i);
}
return $pics;
}
public function geturl($url)
{
$html = "";
if( function_exists("curl_init") && ($ch = curl_init()) )
{
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$html = curl_exec($ch);
curl_close($ch);
}
return $html;
}
public function match_all($regex, $str, $i = 0)
{
if( preg_match_all($regex, $str, $matches) === false )
{
return false;
}
return $matches[$i];
}
public function match($regex, $str, $i = 0)
{
if( preg_match($regex, $str, $match) == 1 )
{
return $match[$i];
}
return false;
}
public function savePoster($JPGURL)
{
$JPG = $this->geturl($JPGURL);
if( $JPG )
{
return file_put_contents($this->posterPath . $this->movieInfo["title_id"] . ".jpg", $JPG);
}
}
}
class tmhOAuth
{
public $response = array( );
const VERSION = "0.8.3";
public function __construct($config = array( ))
{
$this->buffer = NULL;
$this->reconfigure($config);
$this->reset_request_settings();
$this->set_user_agent();
}
public function reconfigure($config = array( ))
{
$this->config = array_merge(array( "user_agent" => "", "host" => "api.twitter.com", "consumer_key" => "", "consumer_secret" => "", "token" => "", "secret" => "", "bearer" => "", "oauth_version" => "1.0", "oauth_signature_method" => "HMAC-SHA1", "curl_http_version" => CURL_HTTP_VERSION_1_1, "curl_connecttimeout" => 30, "curl_timeout" => 10, "curl_ssl_verifyhost" => 2, "curl_ssl_verifypeer" => true, "use_ssl" => true, "curl_cainfo" => __DIR__ . DIRECTORY_SEPARATOR . "cacert.pem", "curl_capath" => __DIR__, "curl_followlocation" => false, "curl_proxy" => false, "curl_proxyuserpwd" => false, "curl_encoding" => "", "is_streaming" => false, "streaming_eol" => "
", "streaming_metrics_interval" => 10, "as_header" => true, "force_nonce" => false, "force_timestamp" => false ), $config);
}
private function reset_request_settings($options = array( ))
{
$this->request_settings = array( "params" => array( ), "headers" => array( ), "with_user" => true, "multipart" => false );
if( !empty($options) )
{
$this->request_settings = array_merge($this->request_settings, $options);
}
}
private function set_user_agent()
{
if( !empty($this->config["user_agent"]) )
{
return NULL;
}
$ssl = ($this->config["curl_ssl_verifyhost"] && $this->config["curl_ssl_verifypeer"] && $this->config["use_ssl"] ? "+" : "-");
$ua = "tmhOAuth " . self::VERSION . $ssl . "SSL - //github.com/themattharris/tmhOAuth";
$this->config["user_agent"] = $ua;
}
private function nonce($length = 12, $include_time = true)
{
if( $this->config["force_nonce"] === false )
{
$prefix = ($include_time ? microtime() : "");
return md5(substr($prefix . uniqid(), 0, $length));
}
return $this->config["force_nonce"];
}
private function timestamp()
{
if( $this->config["force_timestamp"] === false )
{
$time = time();
}
else
{
$time = $this->config["force_timestamp"];
}
return (string) $time;
}
private function safe_encode($data)
{
if( is_array($data) )
{
return array_map(array( $this, "safe_encode" ), $data);
}
if( is_scalar($data) )
{
return str_ireplace(array( "+", "%7E" ), array( " ", "~" ), rawurlencode($data));
}
return "";
}
private function safe_decode($data)
{
if( is_array($data) )
{
return array_map(array( $this, "safe_decode" ), $data);
}
if( is_scalar($data) )
{
return rawurldecode($data);
}
return "";
}
private function prepare_oauth1_params()
{
$defaults = array( "oauth_nonce" => $this->nonce(), "oauth_timestamp" => $this->timestamp(), "oauth_version" => $this->config["oauth_version"], "oauth_consumer_key" => $this->config["consumer_key"], "oauth_signature_method" => $this->config["oauth_signature_method"] );
if( $oauth_token = $this->token() )
{
$defaults["oauth_token"] = $oauth_token;
}
$this->request_settings["oauth1_params"] = array( );
foreach( $defaults as $k => $v )
{
$this->request_settings["oauth1_params"][$this->safe_encode($k)] = $this->safe_encode($v);
}
}
private function token()
{
if( $this->request_settings["with_user"] )
{
if( isset($this->config["token"]) && !empty($this->config["token"]) )
{
return $this->config["token"];
}
if( isset($this->config["user_token"]) )
{
return $this->config["user_token"];
}
}
return "";
}
private function secret()
{
if( $this->request_settings["with_user"] )
{
if( isset($this->config["secret"]) && !empty($this->config["secret"]) )
{
return $this->config["secret"];
}
if( isset($this->config["user_secret"]) )
{
return $this->config["user_secret"];
}
}
return "";
}
public function extract_params($body)
{
$kvs = explode("&", $body);
$decoded = array( );
foreach( $kvs as $kv )
{
$kv = explode("=", $kv, 2);
$kv[0] = $this->safe_decode($kv[0]);
$kv[1] = $this->safe_decode($kv[1]);
$decoded[$kv[0]] = $kv[1];
}
return $decoded;
}
private function prepare_method()
{
$this->request_settings["method"] = strtoupper($this->request_settings["method"]);
}
private function prepare_url()
{
$parts = parse_url($this->request_settings["url"]);
$port = (isset($parts["port"]) ? $parts["port"] : false);
$scheme = $parts["scheme"];
$host = $parts["host"];
$path = (isset($parts["path"]) ? $parts["path"] : false);
$port or $port = ($scheme == 'https') ? '443' : '80';
if( $scheme == "https" && $port != "443" || $scheme == "http" && $port != "80" )
{
$host = (string) $host . ":" . $port;
}
$this->request_settings["url"] = strtolower((string) $scheme . "://" . $host);
$this->request_settings["url"] .= $path;
}
private function multipart_escape($value)
{
if( !$this->request_settings["multipart"] || strpos($value, "@") !== 0 )
{
return $value;
}
list($file) = explode(";", substr($value, 1), 2);
if( file_exists($file) )
{
return $value;
}
return " " . $value;
}
private function prepare_params()
{
$doing_oauth1 = false;
$this->request_settings["prepared_params"] = array( );
$prepared =& $this->request_settings["prepared_params"];
$prepared_pairs = array( );
$prepared_pairs_with_oauth = array( );
if( isset($this->request_settings["oauth1_params"]) )
{
$oauth1 =& $this->request_settings["oauth1_params"];
$doing_oauth1 = true;
$params = array_merge($oauth1, $this->request_settings["params"]);
unset($params["oauth_signature"]);
$oauth1 = array( );
}
else
{
$params = $this->request_settings["params"];
}
uksort($params, "strcmp");
foreach( $params as $k => $v )
{
$k = ($this->request_settings["multipart"] ? $k : $this->safe_encode($k));
if( is_array($v) )
{
$v = implode(",", $v);
}
$v = ($this->request_settings["multipart"] ? $this->multipart_escape($v) : $this->safe_encode($v));
if( $doing_oauth1 )
{
if( strpos($k, "oauth") === 0 || !$this->request_settings["multipart"] )
{
$prepared_pairs_with_oauth[] = (string) $k . "=" . $v;
}
if( strpos($k, "oauth") === 0 )
{
$oauth1[$k] = $v;
continue;
}
}
$prepared[$k] = $v;
$prepared_pairs[] = (string) $k . "=" . $v;
}
if( $doing_oauth1 )
{
$this->request_settings["basestring_params"] = implode("&", $prepared_pairs_with_oauth);
}
if( !empty($prepared_pairs) )
{
$content = implode("&", $prepared_pairs);
switch( $this->request_settings["method"] )
{
case "POST":
$this->request_settings["postfields"] = ($this->request_settings["multipart"] ? $prepared : $content);
break;
default:
$this->request_settings["querystring"] = $content;
break;
}
}
}
private function prepare_signing_key()
{
$left = $this->safe_encode($this->config["consumer_secret"]);
$right = $this->safe_encode($this->secret());
$this->request_settings["signing_key"] = $left . "&" . $right;
}
private function prepare_base_string()
{
$url = $this->request_settings["url"];
if( !empty($this->request_settings["headers"]["Host"]) )
{
$url = str_ireplace($this->config["host"], $this->request_settings["headers"]["Host"], $url);
}
$base = array( $this->request_settings["method"], $url, $this->request_settings["basestring_params"] );
$this->request_settings["basestring"] = implode("&", $this->safe_encode($base));
}
private function prepare_oauth_signature()
{
$this->request_settings["oauth1_params"]["oauth_signature"] = $this->safe_encode(base64_encode(hash_hmac("sha1", $this->request_settings["basestring"], $this->request_settings["signing_key"], true)));
}
private function prepare_auth_header()
{
if( !$this->config["as_header"] )
{
return NULL;
}
if( isset($this->request_settings["oauth1_params"]) )
{
uksort($this->request_settings["oauth1_params"], "strcmp");
$encoded_quoted_pairs = array( );
foreach( $this->request_settings["oauth1_params"] as $k => $v )
{
$encoded_quoted_pairs[] = (string) $k . "=\"" . $v . "\"";
}
$header = "OAuth " . implode(", ", $encoded_quoted_pairs);
}
else
{
if( !empty($this->config["bearer"]) )
{
$header = "Bearer " . $this->config["bearer"];
}
}
if( isset($header) )
{
$this->request_settings["headers"]["Authorization"] = $header;
}
}
public function bearer_token_credentials()
{
$credentials = implode(":", array( $this->safe_encode($this->config["consumer_key"]), $this->safe_encode($this->config["consumer_secret"]) ));
return base64_encode($credentials);
}
public function request($method, $url, $params = array( ), $useauth = true, $multipart = false, $headers = array( ))
{
$options = array( "method" => $method, "url" => $url, "params" => $params, "with_user" => true, "multipart" => $multipart, "headers" => $headers );
$options = array_merge($this->default_options(), $options);
if( $useauth )
{
return $this->user_request($options);
}
return $this->unauthenticated_request($options);
}
public function apponly_request($options = array( ))
{
$options = array_merge($this->default_options(), $options, array( "with_user" => false ));
$this->reset_request_settings($options);
if( $options["without_bearer"] )
{
return $this->oauth1_request();
}
$this->prepare_method();
$this->prepare_url();
$this->prepare_params();
$this->prepare_auth_header();
return $this->curlit();
}
public function user_request($options = array( ))
{
$options = array_merge($this->default_options(), $options, array( "with_user" => true ));
$this->reset_request_settings($options);
return $this->oauth1_request();
}
public function unauthenticated_request($options = array( ))
{
$options = array_merge($this->default_options(), $options, array( "with_user" => false ));
$this->reset_request_settings($options);
$this->prepare_method();
$this->prepare_url();
$this->prepare_params();
return $this->curlit();
}
private function oauth1_request()
{
$this->prepare_oauth1_params();
$this->prepare_method();
$this->prepare_url();
$this->prepare_params();
$this->prepare_base_string();
$this->prepare_signing_key();
$this->prepare_oauth_signature();
$this->prepare_auth_header();
return $this->curlit();
}
private function default_options()
{
return array( "method" => "GET", "params" => array( ), "with_user" => true, "multipart" => false, "headers" => array( ), "without_bearer" => false );
}
public function streaming_request($method, $url, $params = array( ), $callback = "")
{
if( !empty($callback) )
{
if( !is_callable($callback) )
{
return false;
}
$this->config["streaming_callback"] = $callback;
}
$this->metrics["start"] = time();
$this->metrics["interval_start"] = $this->metrics["start"];
$this->metrics["messages"] = 0;
$this->metrics["last_messages"] = 0;
$this->metrics["bytes"] = 0;
$this->metrics["last_bytes"] = 0;
$this->config["is_streaming"] = true;
$this->request($method, $url, $params);
}
private function update_metrics()
{
$now = time();
if( $now < $this->metrics["interval_start"] + $this->config["streaming_metrics_interval"] )
{
return NULL;
}
$this->metrics["mps"] = round(($this->metrics["messages"] - $this->metrics["last_messages"]) / $this->config["streaming_metrics_interval"], 2);
$this->metrics["bps"] = round(($this->metrics["bytes"] - $this->metrics["last_bytes"]) / $this->config["streaming_metrics_interval"], 2);
$this->metrics["last_bytes"] = $this->metrics["bytes"];
$this->metrics["last_messages"] = $this->metrics["messages"];
$this->metrics["interval_start"] = $now;
return $this->metrics;
}
public function url($request, $extension = "json")
{
$request = preg_replace("\$([^:])//+\$", "\$1/", $request);
if( stripos($request, "http") === 0 || stripos($request, "//") === 0 )
{
return $request;
}
$extension = (0 < strlen($extension) ? "." . $extension : "");
$proto = ($this->config["use_ssl"] ? "https:/" : "http:/");
$request = ltrim($request, "/");
$pos = strlen($request) - strlen($extension);
if( substr($request, $pos) === $extension )
{
$request = substr_replace($request, "", $pos);
}
return implode("/", array( $proto, $this->config["host"], $request . $extension ));
}
public function transformText($text, $mode = "encode")
{
return $this->{"safe_" . $mode}($text);
}
private function curlHeader($ch, $header)
{
$this->response["raw"] .= $header;
list($key, $value) = array_pad(explode(":", $header, 2), 2, NULL);
$key = trim($key);
$value = trim($value);
if( !isset($this->response["headers"][$key]) )
{
$this->response["headers"][$key] = $value;
}
else
{
if( !is_array($this->response["headers"][$key]) )
{
$this->response["headers"][$key] = array( $this->response["headers"][$key] );
}
$this->response["headers"][$key][] = $value;
}
return strlen($header);
}
private function curlWrite($ch, $data)
{
$l = strlen($data);
if( strpos($data, $this->config["streaming_eol"]) === false )
{
$this->buffer .= $data;
return $l;
}
$buffered = explode($this->config["streaming_eol"], $data);
$content = $this->buffer . $buffered[0];
$this->metrics["messages"]++;
$this->metrics["bytes"] += strlen($content);
if( !is_callable($this->config["streaming_callback"]) )
{
return 0;
}
$metrics = $this->update_metrics();
$stop = call_user_func($this->config["streaming_callback"], $content, strlen($content), $metrics);
$this->buffer = $buffered[1];
if( $stop )
{
return 0;
}
return $l;
}
private function curlit()
{
$this->response = array( "raw" => "" );
$c = curl_init();
switch( $this->request_settings["method"] )
{
case "GET":
if( isset($this->request_settings["querystring"]) )
{
$this->request_settings["url"] = $this->request_settings["url"] . "?" . $this->request_settings["querystring"];
}
break;
case "POST":
curl_setopt($c, CURLOPT_POST, true);
if( isset($this->request_settings["postfields"]) )
{
$postfields = $this->request_settings["postfields"];
}
else
{
$postfields = array( );
}
curl_setopt($c, CURLOPT_POSTFIELDS, $postfields);
break;
default:
if( isset($this->request_settings["postfields"]) )
{
curl_setopt($c, CURLOPT_CUSTOMREQUEST, $this->request_settings["postfields"]);
}
}
curl_setopt_array($c, array( CURLOPT_HTTP_VERSION => $this->config["curl_http_version"], CURLOPT_USERAGENT => $this->config["user_agent"], CURLOPT_CONNECTTIMEOUT => $this->config["curl_connecttimeout"], CURLOPT_TIMEOUT => $this->config["curl_timeout"], CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => $this->config["curl_ssl_verifypeer"], CURLOPT_SSL_VERIFYHOST => $this->config["curl_ssl_verifyhost"], CURLOPT_FOLLOWLOCATION => $this->config["curl_followlocation"], CURLOPT_PROXY => $this->config["curl_proxy"], CURLOPT_ENCODING => $this->config["curl_encoding"], CURLOPT_URL => $this->request_settings["url"], CURLOPT_HEADERFUNCTION => array( $this, "curlHeader" ), CURLOPT_HEADER => false, CURLINFO_HEADER_OUT => true ));
if( $this->config["curl_cainfo"] !== false )
{
curl_setopt($c, CURLOPT_CAINFO, $this->config["curl_cainfo"]);
}
if( $this->config["curl_capath"] !== false )
{
curl_setopt($c, CURLOPT_CAPATH, $this->config["curl_capath"]);
}
if( $this->config["curl_proxyuserpwd"] !== false )
{
curl_setopt($c, CURLOPT_PROXYUSERPWD, $this->config["curl_proxyuserpwd"]);
}
if( $this->config["is_streaming"] )
{
$this->response["content-length"] = 0;
curl_setopt($c, CURLOPT_TIMEOUT, 0);
curl_setopt($c, CURLOPT_WRITEFUNCTION, array( $this, "curlWrite" ));
}
if( !empty($this->request_settings["headers"]) )
{
foreach( $this->request_settings["headers"] as $k => $v )
{
$headers[] = trim($k . ": " . $v);
}
curl_setopt($c, CURLOPT_HTTPHEADER, $headers);
}
if( isset($this->config["block"]) && true === $this->config["block"] )
{
return 0;
}
$response = curl_exec($c);
$code = curl_getinfo($c, CURLINFO_HTTP_CODE);
$info = curl_getinfo($c);
$error = curl_error($c);
$errno = curl_errno($c);
curl_close($c);
$this->response["code"] = $code;
$this->response["response"] = $response;
$this->response["info"] = $info;
$this->response["error"] = $error;
$this->response["errno"] = $errno;
if( !isset($this->response["raw"]) )
{
$this->response["raw"] = "";
}
$this->response["raw"] .= $response;
return $code;
}
}
function handleoptions()
{
global $TSUE;
$HTML = "";
if( $TSUE["option"] )
{
if( isset($_POST["settings"]) && isset($_POST["save_options"]) )
{
$HTML = successmessage(get_phrase("message_saved"));
if( isset($_POST["settings"]["website_url"]) && substr($_POST["settings"]["website_url"], -1) == "/" )
{
$_POST["settings"]["website_url"] = rtrim($_POST["settings"]["website_url"], "/");
}
updatesettings("global_settings", array_merge($TSUE["TSUE_Settings"]->settings["global_settings"], $_POST["settings"]));
aaaaal();
handlerebuildcaches(false);
handleprune(false);
}
else
{
$HTML = "";
$aaaaam = "";
switch( $TSUE["option"] )
{
case "website_active":
$radioButtons = radioyesno("settings[website_active]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_active"]);
$formContents = aaaaan(get_phrase("dashboard_options_website_active"), $radioButtons, get_phrase("dashboard_options_website_active_alt"));
$textarea = textarea("settings[website_active_reason]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_active_reason"]);
$formContents .= aaaaan(get_phrase("dashboard_options_website_active_reason"), $textarea, get_phrase("dashboard_options_website_active_reason_alt"));
$radioButtons = radioyesno("settings[tsue_debug_mode]", $TSUE["TSUE_Settings"]->settings["global_settings"]["tsue_debug_mode"]);
$formContents .= aaaaan(get_phrase("dashboard_options_debug_mode"), $radioButtons, get_phrase("dashboard_options_debug_mode_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_website_active") );
break;
case "basic_website_information":
$inputbox = inputbox("settings[website_url]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
$formContents = aaaaan(get_phrase("dashboard_options_website_url"), $inputbox, get_phrase("dashboard_options_website_url_alt"));
$inputbox = inputbox("settings[website_title]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]);
$formContents .= aaaaan(get_phrase("dashboard_options_website_title"), $inputbox, get_phrase("dashboard_options_website_title_alt"));
$inputbox = inputbox("settings[website_description]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_description"]);
$formContents .= aaaaan(get_phrase("dashboard_options_website_description"), $inputbox, get_phrase("dashboard_options_website_description_alt"));
$inputbox = inputbox("settings[website_email]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_email"]);
$formContents .= aaaaan(get_phrase("dashboard_options_website_email"), $inputbox, get_phrase("dashboard_options_website_email_alt"));
$inputbox = inputbox("settings[donate_goal]", $TSUE["TSUE_Settings"]->settings["global_settings"]["donate_goal"]);
$formContents .= aaaaan(get_phrase("dashboard_options_donate_goal"), $inputbox, get_phrase("dashboard_options_donate_goal_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_basic_website_information") );
break;
case "email_options":
$inputbox = inputbox("settings[website_sendmail_from]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"]);
$formContents = aaaaan(get_phrase("dashboard_options_website_sendmail_from"), $inputbox, get_phrase("dashboard_options_website_sendmail_from_alt"));
$radioButtons = radioyesno("settings[use_f_parameter]", $TSUE["TSUE_Settings"]->settings["global_settings"]["use_f_parameter"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_use_f_parameter"), $radioButtons, get_phrase("dashboard_options_mail_type_use_f_parameter_alt"));
$radioButtons = radioyesno("settings[mail_type]", $TSUE["TSUE_Settings"]->settings["global_settings"]["mail_type"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type"), $radioButtons, get_phrase("dashboard_options_mail_type_alt"));
$inputbox = inputbox("settings[smtp_host]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_host"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_host_alt"));
$inputbox = inputbox("settings[smtp_port]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_port"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_port"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_port_alt"));
$inputbox = inputbox("settings[smtp_user]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_user"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_user_alt"));
$inputbox = inputbox("settings[smtp_pass]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_pass"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_pass_alt"));
$radioButtons = radioyesno("settings[smtp_secure]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_secure"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_secure"), $radioButtons, get_phrase("dashboard_options_mail_type_smtp_secure_alt"));
$radioButtons = radioyesno("settings[smtp_debug]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_debug"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_debug"), $radioButtons, get_phrase("dashboard_options_mail_type_smtp_debug_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_email_options") );
break;
case "member_registration":
$aaaaao = array( get_phrase("dashboard_options_website_allow_signup_0"), get_phrase("dashboard_options_website_allow_signup_1"), get_phrase("dashboard_options_website_allow_signup_2"), get_phrase("dashboard_options_website_allow_signup_3"), get_phrase("dashboard_options_website_allow_signup_4") );
$selectbox = selectbox("settings[website_allow_signup]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_allow_signup"], $aaaaao);
$formContents = aaaaan(get_phrase("dashboard_options_website_allow_signup"), $selectbox, get_phrase("dashboard_options_website_allow_signup_alt"));
$aaaaao = array( get_phrase("dashboard_options_website_new_signup_verification_0"), get_phrase("dashboard_options_website_new_signup_verification_1"), get_phrase("dashboard_options_website_new_signup_verification_2") );
$selectbox = selectbox("settings[website_new_signup_verification]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_new_signup_verification"], $aaaaao);
$formContents .= aaaaan(get_phrase("dashboard_options_website_new_signup_verification"), $selectbox, get_phrase("dashboard_options_website_new_signup_verification_alt"));
$inputbox = inputbox("settings[max_members_limit]", getsetting("global_settings", "max_members_limit", 0), "text");
$formContents .= aaaaan(get_phrase("max_members_limit"), $inputbox, get_phrase("max_members_limit_alt"));
$inputbox = inputbox("settings[membername_match_regular_expression]", getsetting("global_settings", "membername_match_regular_expression", "^[a-zA-Z0-9]+\$"), "text");
$formContents .= aaaaan(get_phrase("membername_match_regular_expression"), $inputbox, get_phrase("membername_match_regular_expression_alt"));
$radioButtons = radioyesno("settings[force_member_to_agree_to_the_terms_of_service_and_rules]", getsetting("global_settings", "force_member_to_agree_to_the_terms_of_service_and_rules"));
$formContents .= aaaaan(get_phrase("force_member_to_agree_to_the_terms_of_service_and_rules"), $radioButtons, get_phrase("force_member_to_agree_to_the_terms_of_service_and_rules_alt"));
$textarea = textarea("settings[member_name_illegal_member_names]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"]);
$formContents .= aaaaan(get_phrase("dashboard_options_member_name_illegal_member_names"), $textarea, get_phrase("dashboard_options_member_name_illegal_member_names_alt"));
$inputbox = inputbox("settings[member_name_min_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"], "text texthalf");
$inputbox .= inputbox("settings[member_name_max_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_member_name_length_limit"), $inputbox, get_phrase("dashboard_options_member_name_length_limit_alt"));
$inputbox = inputbox("settings[member_password_min_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_member_password_min_char"), $inputbox, get_phrase("dashboard_options_member_password_min_char_alt"));
$aaaaao = fetch_timezones();
$selectbox = selectbox("settings[d_timezone]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_timezone"], $aaaaao);
$formContents .= aaaaan(get_phrase("dashboard_options_d_timezone"), $selectbox, get_phrase("dashboard_options_d_timezone_alt"));
$inputbox = inputbox("settings[default_uploaded]", getsetting("global_settings", "default_uploaded"), "text texthalf", "GB");
$formContents .= aaaaan(get_phrase("stats_uploaded"), $inputbox, get_phrase("default_uploaded_alt"));
$inputbox = inputbox("settings[default_points]", getsetting("global_settings", "default_points"), "text texthalf");
$formContents .= aaaaan(get_phrase("stats_points"), $inputbox, get_phrase("default_points_alt"));
$inputbox = inputbox("settings[default_invites]", getsetting("global_settings", "default_invites"), "text texthalf");
$formContents .= aaaaan(get_phrase("stats_total_invites"), $inputbox, get_phrase("default_invites_alt"));
$radioButtons = radioyesno("settings[prevent_multiple_account]", getsetting("global_settings", "prevent_multiple_account"));
$formContents .= aaaaan(get_phrase("prevent_multiple_account_registration"), $radioButtons, get_phrase("prevent_multiple_account_registration_alt"));
$welcome_pm_text = get_phrase("welcome_pm_text", "?action=Appearance&do=Languages&type=editPhrase&languageid=1&text=new_member_welcome_pm_body", "?action=Appearance&do=Languages&type=editPhrase&languageid=1&text=new_member_welcome_pm_subject");
$radioButtons = radioyesno("settings[send_welcome_pm]", getsetting("global_settings", "send_welcome_pm"));
$formContents .= aaaaan(get_phrase("send_welcome_pm"), $radioButtons, get_phrase("send_welcome_pm_alt") . " " . $welcome_pm_text);
$inputbox = inputbox("settings[send_welcome_pm_owner]", getsetting("global_settings", "send_welcome_pm_owner"), "text texthalf");
$formContents .= aaaaan(get_phrase("send_welcome_pm_owner"), $inputbox);
$aaaaam = array( "option_name" => get_phrase("dashboard_options_member_registration") );
break;
case "appearance":
$aaaaao = aaaaap();
$selectbox = selectbox("settings[d_themeid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"], $aaaaao);
$formContents = aaaaan(get_phrase("dashboard_options_d_themeid"), $selectbox, get_phrase("dashboard_options_d_themeid_alt"));
$aaaaao = aaaaaq();
$selectbox = selectbox("settings[d_languageid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"], $aaaaao);
$formContents .= aaaaan(get_phrase("dashboard_options_d_languageid"), $selectbox, get_phrase("dashboard_options_d_languageid_alt"));
$radioButtons = radioyesno("settings[torrent_catz_always_visible]", getsetting("global_settings", "torrent_catz_always_visible"));
$formContents .= aaaaan(get_phrase("torrent_catz_always_visible"), $radioButtons, get_phrase("torrent_catz_always_visible_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_appearance") );
break;
case "cookies":
$inputbox = inputbox("settings[website_timeout]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_timeout"], "text texthalf");
$formContents = aaaaan(get_phrase("dashboard_options_website_timeout"), $inputbox, get_phrase("dashboard_options_website_timeout_alt"));
$inputbox = inputbox("settings[cookie_path]", $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_path"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_cookie_path"), $inputbox, get_phrase("dashboard_options_cookie_path_alt"));
$inputbox = inputbox("settings[cookie_domain]", $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_domain"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_cookie_domain"), $inputbox, get_phrase("dashboard_options_cookie_domain_alt"));
$inputbox = inputbox("settings[gzip_compression_level]", $TSUE["TSUE_Settings"]->settings["global_settings"]["gzip_compression_level"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_gzip_compression_level"), $inputbox, get_phrase("dashboard_options_gzip_compression_level_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_cookies") );
break;
case "announce":
$inputbox = inputbox("settings[announce_url]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_url"], "text");
$formContents = aaaaan(get_phrase("dashboard_options_announce_url"), $inputbox, get_phrase("dashboard_options_announce_url_alt"));
$inputbox = inputbox("settings[announce_interval]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_interval"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_announce_interval"), $inputbox, get_phrase("dashboard_options_announce_interval_alt"));
$aaaaao = array( get_phrase("dashboard_options_announce_check_peerid_0"), get_phrase("dashboard_options_announce_check_peerid_1"), get_phrase("dashboard_options_announce_check_peerid_2") );
$selectbox = selectbox("settings[announce_check_peerid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_peerid"], $aaaaao);
$formContents .= aaaaan(get_phrase("dashboard_options_announce_check_peerid"), $selectbox, get_phrase("dashboard_options_announce_check_peerid_alt"));
$textarea = textarea("settings[announce_check_peerlist]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_peerlist"]);
$formContents .= aaaaan(get_phrase("dashboard_options_announce_check_peerlist"), $textarea, get_phrase("dashboard_options_announce_check_peerlist_alt"));
$radioButtons = radioyesno("settings[announce_check_ip]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_ip"]);
$formContents .= aaaaan(get_phrase("dashboard_options_announce_check_ip"), $radioButtons, get_phrase("dashboard_options_announce_check_ip_alt"));
$radioButtons = radioyesno("settings[announce_private_torrents_only]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_private_torrents_only"]);
$formContents .= aaaaan(get_phrase("dashboard_options_announce_private_torrents_only") . " (" . get_phrase("dashboard_options_announce_private_torrents_only_alt2") . ")", $radioButtons, get_phrase("dashboard_options_announce_private_torrents_only_alt"));
$radioButtons = radioyesno("settings[announce_add_announce_url]", getsetting("global_settings", "announce_add_announce_url"));
$formContents .= aaaaan(get_phrase("announce_add_announce_url"), $radioButtons, get_phrase("announce_add_announce_url_alt"));
$radioButtons = radioyesno("settings[show_announce_url]", getsetting("global_settings", "show_announce_url"));
$formContents .= aaaaan(get_phrase("show_announce_url"), $radioButtons, get_phrase("show_announce_url_alt"));
$radioButtons = radioyesno("settings[announce_check_slots]", getsetting("global_settings", "announce_check_slots"));
$formContents .= aaaaan(get_phrase("announce_check_slots"), $radioButtons, get_phrase("announce_check_slots_alt"));
$radioButtons = radioyesno("settings[announce_bump_inactive_torrents]", getsetting("global_settings", "announce_bump_inactive_torrents"));
$formContents .= aaaaan(get_phrase("bump_inactive_torrents"), $radioButtons, get_phrase("bump_inactive_torrents_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_announce") );
break;
case "ipban":
if( isset($_POST["save_options"]) )
{
if( isset($_POST["removeip"]) )
{
if( is_array($_POST["removeip"]) )
{
$ip = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removeip"]));
$TSUE["TSUE_Database"]->delete("tsue_ip_match", "ip IN (" . $ip . ") AND match_type = 'banned'");
$outputMessage = "-UPDATE_HTML-~#bannedIPaddresses~" . successmessage(get_phrase("message_saved")) . getbannedips();
}
}
else
{
$ip = (isset($_POST["ip"]) ? trim($_POST["ip"]) : false);
if( $ip )
{
$banIp = banip($ip);
if( !is_array($banIp) )
{
$HTML = errormessage(get_phrase("dashboard_options_ipban_invalid_ip"));
}
else
{
$BuildQuery = array( "ip" => $banIp["0"], "first_octet" => $banIp["1"], "start_range" => $banIp["2"], "end_range" => $banIp["3"] );
$TSUE["TSUE_Database"]->replace("tsue_ip_match", $BuildQuery);
$outputMessage = "-UPDATE_HTML-~#bannedIPaddresses~" . successmessage(get_phrase("message_saved")) . getbannedips();
}
}
}
handlerebuildcaches(false);
aaaaal();
if( isset($outputMessage) )
{
_sendheaders($outputMessage);
}
exit();
}
$formContents = aaaaan(get_phrase("dashboard_options_ipban_span"), getbannedips(), "", "optionsInOverlay", "dashboard_options_ipban");
$inputbox = inputbox("ip", "", "text");
$formContents .= aaaaan(get_phrase("dashboard_options_ipban_ip"), $inputbox, get_phrase("dashboard_options_ipban_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_ipban") );
break;
case "emailban":
if( isset($_POST["save_options"]) )
{
if( isset($_POST["removeemail"]) )
{
if( is_array($_POST["removeemail"]) )
{
$email = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removeemail"]));
$TSUE["TSUE_Database"]->delete("tsue_ban_email", "banned_email IN (" . $email . ")");
$outputMessage = "-UPDATE_HTML-~#bannedEmailaddresses~" . successmessage(get_phrase("message_saved")) . aaaaar();
}
}
else
{
$email = (isset($_POST["email"]) ? trim($_POST["email"]) : false);
if( $email )
{
$banEmail = banemail($email);
if( !is_array($banEmail) )
{
$HTML = errormessage($banEmail);
}
else
{
$BuildQuery = array( "banned_email" => $banEmail["0"] );
$TSUE["TSUE_Database"]->replace("tsue_ban_email", $BuildQuery);
$outputMessage = "-UPDATE_HTML-~#bannedEmailaddresses~" . successmessage(get_phrase("message_saved")) . aaaaar();
}
}
}
handlerebuildcaches(false);
aaaaal();
if( isset($outputMessage) )
{
_sendheaders($outputMessage);
}
exit();
}
$formContents = aaaaan(get_phrase("dashboard_options_emailban_span"), aaaaar(), "", "optionsInOverlay", "dashboard_options_emailban");
$inputbox = inputbox("email", "", "text");
$formContents .= aaaaan(get_phrase("dashboard_options_emailban_email"), $inputbox, get_phrase("dashboard_options_emailban_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_emailban") );
break;
case "countryban":
if( isset($_POST["save_options"]) )
{
if( isset($_POST["removecountry"]) )
{
if( is_array($_POST["removecountry"]) )
{
$countries = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removecountry"]));
$TSUE["TSUE_Database"]->delete("tsue_ban_country", "country IN (" . $countries . ")");
$outputMessage = "-UPDATE_HTML-~#bannedCountries~" . successmessage(get_phrase("message_saved")) . getbannedcountries();
}
}
else
{
$country = (isset($_POST["country"]) ? trim(strtolower($_POST["country"])) : "");
$aaaaas = strlen($country);
if( 2 <= $aaaaas )
{
$BuildQuery = array( "country" => ($aaaaas == 2 ? strtoupper($country) : ucfirst($country)) );
$TSUE["TSUE_Database"]->replace("tsue_ban_country", $BuildQuery);
$outputMessage = "-UPDATE_HTML-~#bannedCountries~" . successmessage(get_phrase("message_saved")) . getbannedcountries();
}
}
handlerebuildcaches(false);
aaaaal();
if( isset($outputMessage) )
{
_sendheaders($outputMessage);
}
exit();
}
$formContents = "<h2>This feature uses <a href=\"http://www.maxmind.com/app/javascript\" target=\"_blank\">GeoIP from MaxMind</a>.</h2>";
$formContents .= aaaaan(get_phrase("dashboard_options_countryban_span"), getbannedcountries(), "", "optionsInOverlay", "dashboard_options_countryban");
$inputbox = inputbox("country", "", "text");
$formContents .= aaaaan(get_phrase("country_to_ban"), $inputbox, get_phrase("country_to_ban_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_countryban") );
break;
case "censoring":
if( isset($_POST["save_options"]) )
{
$words = $_POST["options"]["censorWords"];
aaaaat($words);
updatesettings("censor_cache", array( "censoring_censor_character" => trim($_POST["censoring_censor_character"]), "censorWords" => $words ));
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = "-UPDATE_HTML-~#buildCensoringHTML~" . successmessage(get_phrase("message_saved")) . aaaaau();
aaaaal();
if( isset($outputMessage) )
{
_sendheaders($outputMessage);
}
exit();
}
$formContents = aaaaau();
$aaaaam = array( "option_name" => get_phrase("dashboard_options_censoring") );
break;
case "seo":
$radioButtons = radioyesno("settings[social_media_buttons]", $TSUE["TSUE_Settings"]->settings["global_settings"]["social_media_buttons"]);
$formContents = aaaaan(get_phrase("dashboard_options_seo_enable_social_media"), $radioButtons, get_phrase("dashboard_options_seo_enable_social_media_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_seo") );
break;
case "limitations":
$inputbox = inputbox("settings[reseed_request_flood_limit]", $TSUE["TSUE_Settings"]->settings["global_settings"]["reseed_request_flood_limit"], "text");
$formContents = aaaaan(get_phrase("dashboard_options_limitations_reseed_request_flood_limit"), $inputbox, get_phrase("dashboard_options_limitations_reseed_request_flood_limit_alt"));
$inputbox = inputbox("settings[website_torrents_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_torrents_perpage"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_torrents_perpage"), $inputbox, get_phrase("dashboard_options_limitations_torrents_perpage_alt"));
$inputbox = inputbox("settings[website_rss_perpage]", getsetting("global_settings", "website_rss_perpage", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_torrents_perpage"]), "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_rss_perpage"), $inputbox, get_phrase("dashboard_options_limitations_rss_perpage_alt"));
$inputbox = inputbox("settings[website_comments_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_comments_perpage"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_comments_perpage"), $inputbox, get_phrase("dashboard_options_limitations_comments_perpage_alt"));
$inputbox = inputbox("settings[website_messages_perpage]", getsetting("global_settings", "website_messages_perpage", 15), "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_messages_perpage"), $inputbox, get_phrase("dashboard_options_limitations_messages_perpage_alt"));
$inputbox = inputbox("settings[website_members_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_members_perpage"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_members_perpage"), $inputbox, get_phrase("dashboard_options_limitations_members_perpage_alt"));
$inputbox = inputbox("settings[forums_threads_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_threads_perpage"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_threads_perpage"), $inputbox, get_phrase("dashboard_options_limitations_threads_perpage_alt"));
$inputbox = inputbox("settings[forums_posts_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_posts_perpage"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_posts_perpage"), $inputbox, get_phrase("dashboard_options_limitations_posts_perpage_alt"));
$inputbox = inputbox("settings[subtitles_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_perpage"], "text");
$formContents .= aaaaan(get_phrase("subtitles_perpage"), $inputbox, get_phrase("subtitles_perpage_alt"));
$inputbox = inputbox("settings[requests_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["requests_perpage"], "text");
$formContents .= aaaaan(get_phrase("requests_per_page"), $inputbox, get_phrase("requests_per_page_alt"));
$inputbox = inputbox("settings[comment_post_min_char_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["comment_post_min_char_length"], "text texthalf");
$inputbox .= inputbox("settings[comment_post_max_char_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["comment_post_max_char_length"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_comments_length_limit"), $inputbox, get_phrase("dashboard_options_limitations_comments_length_limit_alt"));
$inputbox = inputbox("settings[forums_max_thread_title_limit]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_max_thread_title_limit"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_threads_max_title_limit"), $inputbox, get_phrase("dashboard_options_limitations_threads_max_title_limit_alt"));
$inputbox = inputbox("settings[forums_min_post_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_min_post_length"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_posts_min_limit"), $inputbox, get_phrase("dashboard_options_limitations_posts_min_limit_alt"));
$inputbox = inputbox("settings[website_resize_images_max_width]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_resize_images_max_width"], "text texthalf");
$inputbox .= inputbox("settings[website_resize_images_max_height]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_resize_images_max_height"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_scale_images"), $inputbox, get_phrase("dashboard_options_limitations_scale_images_alt"));
$inputbox = inputbox("settings[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["global_settings"]["allowed_file_types"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, get_phrase("dashboard_options_limitations_allowed_file_types_alt"));
$inputbox = inputbox("settings[max_file_size]", $TSUE["TSUE_Settings"]->settings["global_settings"]["max_file_size"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_max_file_size"), $inputbox . " " . friendly_size($TSUE["TSUE_Settings"]->settings["global_settings"]["max_file_size"]), get_phrase("dashboard_options_limitations_max_file_size_alt"));
$inputbox = inputbox("settings[torrent_category_row_limit]", getsetting("global_settings", "torrent_category_row_limit", 3), "text texthalf");
$formContents .= aaaaan(get_phrase("torrent_categories_row_limit"), $inputbox, get_phrase("torrent_categories_row_limit_alt"));
$inputbox = inputbox("settings[request_torrent_chars_limit]", getsetting("global_settings", "request_torrent_chars_limit", 255), "text texthalf");
$formContents .= aaaaan(get_phrase("request_torrent_chars_limit"), $inputbox, get_phrase("request_torrent_chars_limit_alt"));
$inputbox = inputbox("settings[upcoming_releases_perpage]", getsetting("global_settings", "upcoming_releases_perpage", 10), "text");
$formContents .= aaaaan(get_phrase("upcoming_releases_perpage"), $inputbox, get_phrase("upcoming_releases_perpage_alt"));
$inputbox = inputbox("settings[upcoming_releases_chars_limit]", getsetting("global_settings", "upcoming_releases_chars_limit", 255), "text texthalf");
$formContents .= aaaaan(get_phrase("upcoming_releases_chars_limit"), $inputbox, get_phrase("upcoming_releases_chars_limit_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_limitations") );
break;
case "member_alerts":
$inputbox = inputbox("settings[alerts_popup_expiry_hours]", $TSUE["TSUE_Settings"]->settings["global_settings"]["alerts_popup_expiry_hours"], "text");
$formContents = aaaaan(get_phrase("dashboard_options_member_alerts_expirity_hours"), $inputbox, get_phrase("dashboard_options_member_alerts_expirity_hours_alt"));
$inputbox = inputbox("settings[alerts_popup_expiry_days]", $TSUE["TSUE_Settings"]->settings["global_settings"]["alerts_popup_expiry_days"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_member_alerts_expirity_days"), $inputbox, get_phrase("dashboard_options_member_alerts_expirity_days_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_member_alerts") );
break;
case "cleanup":
$inputbox = inputbox("settings[peers_prune_in_day]", $TSUE["TSUE_Settings"]->settings["global_settings"]["peers_prune_in_day"], "text");
$formContents = aaaaan(get_phrase("dashboard_options_cleanup_prune_snatch_list"), $inputbox, get_phrase("dashboard_options_cleanup_prune_snatch_list_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[shouts_prune_in_day]", $TSUE["TSUE_Settings"]->settings["global_settings"]["shouts_prune_in_day"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_cleanup_prune_shouts"), $inputbox, get_phrase("dashboard_options_cleanup_prune_shouts_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[days_retain_posted_request]", getsetting("global_settings", "days_retain_posted_request"), "text");
$formContents .= aaaaan(get_phrase("days_retain_posted_request"), $inputbox, get_phrase("days_retain_posted_request_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[days_retain_dead_torrents]", getsetting("global_settings", "days_retain_dead_torrents"), "text");
$formContents .= aaaaan(get_phrase("days_retain_dead_torrents"), $inputbox, get_phrase("days_retain_dead_torrents_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[days_retain_unused_invites]", getsetting("global_settings", "days_retain_unused_invites"), "text");
$formContents .= aaaaan(get_phrase("days_retain_unused_invites"), $inputbox, get_phrase("days_retain_unused_invites_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[days_retain_posted_upcoming_releases]", getsetting("global_settings", "days_retain_posted_upcoming_releases", 5), "text");
$formContents .= aaaaan(get_phrase("days_retain_posted_upcoming_releases"), $inputbox, get_phrase("days_retain_posted_upcoming_releases_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_cleanup") );
break;
case "points":
$inputbox = inputbox("settings[points_seed]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_seed"], "text texthalf");
$formContents = aaaaan(get_phrase("dashboard_options_points_seed"), $inputbox, get_phrase("dashboard_options_points_seed_alt"));
$inputbox = inputbox("settings[points_seed_al]", intval(getsetting("global_settings", "points_seed_al", 0)), "text texthalf");
$formContents .= aaaaan(get_phrase("points_seed_al"), $inputbox, get_phrase("points_seed_al_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[points_seed_min_gb]", getsetting("global_settings", "points_seed_min_gb", 0), "text texthalf", "GB");
$formContents .= aaaaan(get_phrase("dashboard_options_points_seed_min_gb"), $inputbox, get_phrase("dashboard_options_points_seed_min_gb_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[points_x2_for_big_torrents]", getsetting("global_settings", "points_x2_for_big_torrents", 0), "text texthalf", "GB");
$formContents .= aaaaan(get_phrase("x2_for_big_torrents"), $inputbox, get_phrase("x2_for_big_torrents_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[points_torrent_upload]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_torrent_upload"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_torrent_upload"), $inputbox, get_phrase("dashboard_options_points_torrent_upload_alt"));
$inputbox = inputbox("settings[points_post_comment]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_post_comment"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_post_comment"), $inputbox, get_phrase("dashboard_options_points_post_comment_alt"));
$inputbox = inputbox("settings[points_new_thread]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_thread"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_new_thread"), $inputbox, get_phrase("dashboard_options_points_new_thread_alt"));
$inputbox = inputbox("settings[points_new_replies]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_replies"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_new_replies"), $inputbox, get_phrase("dashboard_options_points_new_replies_alt"));
$aaaaao = array( 1 => get_phrase("points_likes_type_1"), 2 => get_phrase("points_likes_type_2"), 3 => get_phrase("points_likes_type_3") );
$selectbox = selectbox("settings[points_likes_type]", getsetting("global_settings", "points_likes_type", 2), $aaaaao, "selectNoWidth");
$inputbox = inputbox("settings[points_likes]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_likes"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_likes"), $inputbox, get_phrase("dashboard_options_points_likes_alt"), "optionsInOverlay", "", "", "", $selectbox);
$inputbox = inputbox("settings[points_poll]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_poll"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_poll"), $inputbox, get_phrase("dashboard_options_points_poll_alt"));
$inputbox = inputbox("settings[points_fill_request]", getsetting("global_settings", "points_fill_request", 0), "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_fill_request"), $inputbox, get_phrase("dashboard_options_points_fill_request_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_points") );
break;
case "subtitles":
$inputbox = inputbox("settings[subtitles_allowed_file_types]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_allowed_file_types"], "text texthalf");
$formContents = aaaaan(get_phrase("dashboard_options_subtitles_allowed_file_types"), $inputbox, get_phrase("dashboard_options_subtitles_allowed_file_types_alt"));
$inputbox = inputbox("settings[subtitles_max_file_size]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_max_file_size"], "text texthalf");
$formContents .= aaaaan(get_phrase("subtitles_max_file_size"), $inputbox . " " . friendly_size($TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_max_file_size"]), get_phrase("subtitles_max_file_size_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_subtitles") );
break;
case "security":
$radioButtons = radioyesno("settings[website_use_strike_system]", getsetting("global_settings", "website_use_strike_system", 0));
$formContents = aaaaan(get_phrase("dashboard_options_limitations_use_strike_system"), $radioButtons, get_phrase("dashboard_options_limitations_use_strike_system_alt"));
$inputbox = inputbox("settings[limit_of_login_strikes]", getsetting("global_settings", "limit_of_login_strikes", 5), "text texthalf");
$formContents .= aaaaan(get_phrase("limit_of_login_strikes"), $inputbox, get_phrase("limit_of_login_strikes_alt"));
$radioButtons = radioyesno("settings[security_enable_captcha]", getsetting("global_settings", "security_enable_captcha", 0));
$formContents .= aaaaan(get_phrase("security_enable_captcha"), $radioButtons, get_phrase("security_enable_captcha_alt"));
$inputbox = inputbox("settings[admincp_session_timeout]", getsetting("global_settings", "admincp_session_timeout", 5), "text texthalf");
$formContents .= aaaaan(get_phrase("admincp_session_timeout"), $inputbox, get_phrase("admincp_session_timeout_alt"));
$radioButtons = radioyesno("settings[security_ip_history]", getsetting("global_settings", "security_ip_history", 0));
$formContents .= aaaaan(get_phrase("security_ip_history"), $radioButtons, get_phrase("security_ip_history_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_security") );
break;
case "hitrun":
if( isset($_POST["save_options"]) )
{
$hitrun_settings["active"] = (isset($_POST["HITRUN"]["active"]) && $_POST["HITRUN"]["active"] == 1 ? 1 : 0);
$hitrun_settings["dayTolerance"] = (isset($_POST["HITRUN"]["dayTolerance"]) && $_POST["HITRUN"]["dayTolerance"] ? intval($_POST["HITRUN"]["dayTolerance"]) : 0);
$hitrun_settings["maxWarns"] = (isset($_POST["HITRUN"]["maxWarns"]) && $_POST["HITRUN"]["maxWarns"] ? intval($_POST["HITRUN"]["maxWarns"]) : 0);
$hitrun_settings["defaultRatio"] = (isset($_POST["HITRUN"]["defaultRatio"]) && $_POST["HITRUN"]["defaultRatio"] ? 0 + $_POST["HITRUN"]["defaultRatio"] : 0);
$hitrun_settings["skipMembergroups"] = (isset($_POST["HITRUN"]["skipMembergroups"]) && is_array($_POST["HITRUN"]["skipMembergroups"]) && 0 < count($_POST["HITRUN"]["skipMembergroups"]) ? implode(",", array_map("intval", $_POST["HITRUN"]["skipMembergroups"])) : "");
$hitrun_settings["announceLimit"] = (isset($_POST["HITRUN"]["announceLimit"]) && $_POST["HITRUN"]["announceLimit"] ? intval($_POST["HITRUN"]["announceLimit"]) : 0);
updatesettings("hitrun_settings", $hitrun_settings);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = "
<div style=\"margin-bottom: 5px; font-size: 13px;\" class=\"checkHitRunOptions\">" . get_phrase("check_hitrun_options") . "</div>";
$radioButtons = radioyesno("HITRUN[active]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["active"]);
$formContents .= aaaaan(get_phrase("hitrun_active"), $radioButtons, get_phrase("hitrun_active_alt"));
$inputbox = inputbox("HITRUN[dayTolerance]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["dayTolerance"], "text texthalf");
$formContents .= aaaaan(get_phrase("hitrun_daytolerance"), $inputbox, get_phrase("hitrun_daytolerance_alt"));
$announceInterval = (getsetting("xbt", "active") ? getsetting("xbt", "announce_interval") : getsetting("global_settings", "announce_interval"));
$aaaaav = getsetting("hitrun_settings", "announceLimit");
$totalSeconds = $announceInterval * $aaaaav;
$secondsToHours = secondstohours($totalSeconds);
$inputbox = inputbox("HITRUN[announceLimit]", getsetting("hitrun_settings", "announceLimit"), "text texthalf");
$formContents .= aaaaan(get_phrase("hitrun_announcelimit"), $inputbox, get_phrase("hitrun_announcelimit_alt") . "<br>" . get_phrase("hitrun_announcelimit_alt2", $announceInterval, $aaaaav, $totalSeconds, $secondsToHours));
$inputbox = inputbox("HITRUN[maxWarns]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["maxWarns"], "text texthalf");
$formContents .= aaaaan(get_phrase("max_hitruns"), $inputbox, get_phrase("max_hitruns_alt"));
$inputbox = inputbox("HITRUN[defaultRatio]", getsetting("hitrun_settings", "defaultRatio", 0), "text texthalf");
$formContents .= aaaaan(get_phrase("default_hitrun_ratio"), $inputbox, get_phrase("default_hitrun_ratio_alt"));
$Usergroups = aaaaaw("HITRUN[skipMembergroups][]", ($TSUE["TSUE_Settings"]->settings["hitrun_settings"]["skipMembergroups"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["skipMembergroups"]) : array( )));
$formContents .= aaaaan(get_phrase("hitrun_skip_membergroups"), $Usergroups, get_phrase("hitrun_skip_membergroups_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_hitrun") );
break;
case "auto_uploader":
if( isset($_POST["save_options"]) )
{
$auto_uploader["active"] = (isset($_POST["AUTOUPLOADER"]["active"]) && $_POST["AUTOUPLOADER"]["active"] == 1 ? 1 : 0);
$auto_uploader["category"] = (isset($_POST["AUTOUPLOADER"]["category"]) ? intval($_POST["AUTOUPLOADER"]["category"]) : 0);
$auto_uploader["path"] = (isset($_POST["AUTOUPLOADER"]["path"]) ? $_POST["AUTOUPLOADER"]["path"] : "");
$auto_uploader["owner"] = (isset($_POST["AUTOUPLOADER"]["owner"]) ? $_POST["AUTOUPLOADER"]["owner"] : "");
$auto_uploader["description"] = (isset($_POST["AUTOUPLOADER"]["description"]) ? $_POST["AUTOUPLOADER"]["description"] : "");
if( $auto_uploader["owner"] )
{
$getMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($auto_uploader["owner"]));
if( $getMember )
{
$auto_uploader["owner"] = $getMember["memberid"];
}
else
{
$auto_uploader["owner"] = "";
}
}
updatesettings("auto_uploader", $auto_uploader);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = "<h2>" . get_phrase("import_torrents", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/auto_uploader.php") . "</h2>";
$radioButtons = radioyesno("AUTOUPLOADER[active]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["active"]);
$formContents .= aaaaan(get_phrase("auto_uploader_active"), $radioButtons, get_phrase("auto_uploader_active_alt"));
$Categories = aaaaax("AUTOUPLOADER[category]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["category"]);
$formContents .= aaaaan(get_phrase("auto_uploader_category"), $Categories, get_phrase("auto_uploader_category_alt"));
$inputbox = inputbox("AUTOUPLOADER[path]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["path"], "text texthalf");
$formContents .= aaaaan(get_phrase("auto_uploader_path"), $inputbox, get_phrase("auto_uploader_path_alt"));
if( $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] )
{
$getMember = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"]));
if( $getMember )
{
$TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] = $getMember["membername"];
}
else
{
$TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] = "";
}
}
$inputbox = inputbox("AUTOUPLOADER[owner]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"], "text texthalf", NULL, false, true);
$formContents .= aaaaan(get_phrase("auto_uploader_owner"), $inputbox, get_phrase("auto_uploader_owner_alt"));
$textarea = aaaaay("AUTOUPLOADER[description]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["description"], true);
$formContents .= aaaaan(get_phrase("auto_uploader_description"), $textarea, get_phrase("auto_uploader_description_alt"));
$aaaaam = array( "option_name" => get_phrase("auto_uploader") );
break;
case "downloads":
if( isset($_POST["save_options"]) )
{
$downloads["online"] = (isset($_POST["DOWNLOADS"]["online"]) && $_POST["DOWNLOADS"]["online"] == 1 ? 1 : 0);
$downloads["offline_message"] = (isset($_POST["DOWNLOADS"]["offline_message"]) ? $_POST["DOWNLOADS"]["offline_message"] : "");
$downloads["offline_access"] = (isset($_POST["DOWNLOADS"]["offline_access"]) && is_array($_POST["DOWNLOADS"]["offline_access"]) && 0 < count($_POST["DOWNLOADS"]["offline_access"]) ? implode(",", array_map("intval", $_POST["DOWNLOADS"]["offline_access"])) : "");
$downloads["max_filesize"] = (isset($_POST["DOWNLOADS"]["max_filesize"]) ? 0 + $_POST["DOWNLOADS"]["max_filesize"] : 0);
$downloads["allowed_file_types"] = (isset($_POST["DOWNLOADS"]["allowed_file_types"]) ? trim($_POST["DOWNLOADS"]["allowed_file_types"]) : "");
$downloads["files_perpage"] = (isset($_POST["DOWNLOADS"]["files_perpage"]) ? 0 + $_POST["DOWNLOADS"]["files_perpage"] : 0);
updatesettings("downloads", $downloads);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("DOWNLOADS[online]", $TSUE["TSUE_Settings"]->settings["downloads"]["online"]);
$formContents = aaaaan(get_phrase("dm_online"), $radioButtons, "");
$textarea = textarea("DOWNLOADS[offline_message]", $TSUE["TSUE_Settings"]->settings["downloads"]["offline_message"]);
$formContents .= aaaaan(get_phrase("dm_offline_message"), $textarea, get_phrase("dm_offline_message_alt"));
$Usergroups = aaaaaw("DOWNLOADS[offline_access][]", ($TSUE["TSUE_Settings"]->settings["downloads"]["offline_access"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["downloads"]["offline_access"]) : array( )));
$formContents .= aaaaan(get_phrase("offline_access"), $Usergroups, get_phrase("offline_access_alt"));
$inputbox = inputbox("DOWNLOADS[max_filesize]", $TSUE["TSUE_Settings"]->settings["downloads"]["max_filesize"], "text texthalf", friendly_size($TSUE["TSUE_Settings"]->settings["downloads"]["max_filesize"]), false, false, get_phrase("set_to_0_for_no_limit"));
$formContents .= aaaaan(get_phrase("dm_max_filesize"), $inputbox, "");
$inputbox = inputbox("DOWNLOADS[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["downloads"]["allowed_file_types"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, "");
$inputbox = inputbox("DOWNLOADS[files_perpage]", $TSUE["TSUE_Settings"]->settings["downloads"]["files_perpage"], "text texthalf");
$formContents .= aaaaan(get_phrase("limitations_files_perpage"), $inputbox, "");
$aaaaam = array( "option_name" => get_phrase("dm_title") );
break;
case "ircbot":
if( isset($_POST["save_options"]) )
{
$ircbot["active"] = (isset($_POST["ircbot"]["active"]) && $_POST["ircbot"]["active"] == 1 ? 1 : 0);
$ircbot["ircServer"] = (isset($_POST["ircbot"]["ircServer"]) ? $_POST["ircbot"]["ircServer"] : "");
$ircbot["ircPort"] = (isset($_POST["ircbot"]["ircPort"]) ? $_POST["ircbot"]["ircPort"] : "");
$ircbot["ircChannel"] = (isset($_POST["ircbot"]["ircChannel"]) ? $_POST["ircbot"]["ircChannel"] : "");
$ircbot["ircNick"] = (isset($_POST["ircbot"]["ircNick"]) ? $_POST["ircbot"]["ircNick"] : "");
$ircbot["ircPass"] = (isset($_POST["ircbot"]["ircPass"]) ? $_POST["ircbot"]["ircPass"] : "");
updatesettings("ircbot", $ircbot);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("ircbot[active]", $TSUE["TSUE_Settings"]->settings["ircbot"]["active"]);
$formContents = aaaaan(get_phrase("ircbot_active"), $radioButtons, "", "optionsInOverlay", "", "<a href=\"?action=irc-debug\" target=\"blank\">" . get_phrase("dashboard_options_debug_mode") . "</a>");
$inputbox = inputbox("ircbot[ircServer]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"]);
$formContents .= aaaaan(get_phrase("ircbot_ircserver"), $inputbox, "");
$inputbox = inputbox("ircbot[ircPort]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"]);
$formContents .= aaaaan(get_phrase("ircbot_ircserverport"), $inputbox, "");
$inputbox = inputbox("ircbot[ircChannel]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"]);
$formContents .= aaaaan(get_phrase("ircbot_ircchannel"), $inputbox, "");
$inputbox = inputbox("ircbot[ircNick]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"]);
$formContents .= aaaaan(get_phrase("ircbot_ircNick"), $inputbox, "");
$inputbox = inputbox("ircbot[ircPass]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPass"], "text", get_phrase("irc_bot_pass_tip"));
$formContents .= aaaaan(get_phrase("ircbot_ircPass"), $inputbox, "");
$aaaaam = array( "option_name" => get_phrase("ircbot") );
break;
case "xbt":
$deny_from_clients = "";
$aaaaaz = $TSUE["TSUE_Database"]->query("SELECT peer_id FROM xbt_deny_from_clients");
if( $TSUE["TSUE_Database"]->num_rows($aaaaaz) )
{
while( $aaaaba = $TSUE["TSUE_Database"]->fetch_assoc($aaaaaz) )
{
$deny_from_clients .= $aaaaba["peer_id"] . "
";
}
}
$deny_from_hosts = "";
$aaaabb = $TSUE["TSUE_Database"]->query("SELECT begin FROM xbt_deny_from_hosts");
if( $TSUE["TSUE_Database"]->num_rows($aaaabb) )
{
while( $Ip = $TSUE["TSUE_Database"]->fetch_assoc($aaaabb) )
{
$deny_from_hosts .= trim(long2ip($Ip["begin"])) . "
";
}
}
if( isset($_POST["save_options"]) )
{
$xbt["active"] = (isset($_POST["xbt"]["active"]) && $_POST["xbt"]["active"] == 1 ? 1 : 0);
$xbt["debug"] = (isset($_POST["xbt"]["debug"]) && $_POST["xbt"]["debug"] == 1 ? 1 : 0);
$xbt["announce_url"] = (isset($_POST["xbt"]["announce_url"]) ? $_POST["xbt"]["announce_url"] : "");
$xbt["announce_interval"] = (isset($_POST["xbt"]["announce_interval"]) ? 0 + $_POST["xbt"]["announce_interval"] : "");
$xbt["offline_message"] = (isset($_POST["xbt"]["offline_message"]) ? $_POST["xbt"]["offline_message"] : "");
$xbt["redirect_url"] = (isset($_POST["xbt"]["redirect_url"]) ? $_POST["xbt"]["redirect_url"] : "");
$buildQuery = array( "debug" => $xbt["debug"], "offline_message" => $xbt["offline_message"], "redirect_url" => $xbt["redirect_url"], "announce_interval" => $xbt["announce_interval"] );
foreach( $buildQuery as $_name => $_value )
{
$TSUE["TSUE_Database"]->update("xbt_config", array( "value" => trim($_value) ), "name=" . $TSUE["TSUE_Database"]->escape($_name));
}
$TSUE["TSUE_Database"]->delete("xbt_deny_from_clients");
if( isset($_POST["xbt"]["deny_from_clients"]) && $_POST["xbt"]["deny_from_clients"] )
{
$deny_from_clients = preg_split("/\r?\n/", $_POST["xbt"]["deny_from_clients"], -1, PREG_SPLIT_NO_EMPTY);
if( $deny_from_clients )
{
foreach( $deny_from_clients as $peer_id )
{
$TSUE["TSUE_Database"]->replace("xbt_deny_from_clients", array( "peer_id" => $peer_id ));
}
}
}
$TSUE["TSUE_Database"]->delete("xbt_deny_from_hosts");
if( isset($_POST["xbt"]["deny_from_hosts"]) && $_POST["xbt"]["deny_from_hosts"] )
{
$deny_from_hosts = preg_split("/\r?\n/", $_POST["xbt"]["deny_from_hosts"], -1, PREG_SPLIT_NO_EMPTY);
if( $deny_from_hosts )
{
foreach( $deny_from_hosts as $ip )
{
$ip = trim(ip2long($ip));
$TSUE["TSUE_Database"]->replace("xbt_deny_from_hosts", array( "begin" => $ip, "end" => $ip ));
}
}
}
updatesettings("xbt", $xbt);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("xbt[active]", getsetting("xbt", "active"));
$formContents = aaaaan(get_phrase("xbt_active"), $radioButtons, "");
$radioButtons = radioyesno("xbt[debug]", getsetting("xbt", "debug"));
$formContents .= aaaaan(get_phrase("xbt_debug"), $radioButtons, get_phrase("xbt_debug_alt"));
$inputbox = inputbox("xbt[announce_url]", getsetting("xbt", "announce_url"));
$formContents .= aaaaan(get_phrase("xbt_announce_url"), $inputbox, "http://tracker:port");
$inputbox = inputbox("xbt[announce_interval]", getsetting("xbt", "announce_interval"));
$formContents .= aaaaan(get_phrase("xbt_announce_interval"), $inputbox, get_phrase("xbt_announce_interval_alt"));
$inputbox = inputbox("xbt[offline_message]", getsetting("xbt", "offline_message"));
$formContents .= aaaaan(get_phrase("xbt_offline_message"), $inputbox, get_phrase("xbt_offline_message_alt"));
$inputbox = inputbox("xbt[redirect_url]", getsetting("xbt", "redirect_url"));
$formContents .= aaaaan(get_phrase("xbt_redirect_url"), $inputbox, get_phrase("xbt_redirect_url_alt"));
$textarea = textarea("xbt[deny_from_clients]", $deny_from_clients);
$formContents .= aaaaan(get_phrase("xbt_deny_from_clients"), $textarea, get_phrase("xbt_deny_from_clients_alt"));
$textarea = textarea("xbt[deny_from_hosts]", $deny_from_hosts);
$formContents .= aaaaan(get_phrase("xbt_deny_from_hosts"), $textarea, get_phrase("xbt_deny_from_hosts_alt"));
$aaaaam = array( "option_name" => "xbt" );
break;
case "gallery":
if( isset($_POST["save_options"]) )
{
$gallery["online"] = (isset($_POST["GALLERY"]["online"]) && $_POST["GALLERY"]["online"] == 1 ? 1 : 0);
$gallery["offline_message"] = (isset($_POST["GALLERY"]["offline_message"]) ? $_POST["GALLERY"]["offline_message"] : "");
$gallery["offline_access"] = (isset($_POST["GALLERY"]["offline_access"]) && is_array($_POST["GALLERY"]["offline_access"]) && 0 < count($_POST["GALLERY"]["offline_access"]) ? implode(",", array_map("intval", $_POST["GALLERY"]["offline_access"])) : "");
$gallery["max_filesize"] = (isset($_POST["GALLERY"]["max_filesize"]) ? 0 + $_POST["GALLERY"]["max_filesize"] : 0);
$gallery["allowed_file_types"] = (isset($_POST["GALLERY"]["allowed_file_types"]) ? trim($_POST["GALLERY"]["allowed_file_types"]) : "");
$gallery["files_perpage"] = (isset($_POST["GALLERY"]["files_perpage"]) ? 0 + $_POST["GALLERY"]["files_perpage"] : 0);
updatesettings("gallery", $gallery);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("GALLERY[online]", $TSUE["TSUE_Settings"]->settings["gallery"]["online"]);
$formContents = aaaaan(get_phrase("image_gallery_online"), $radioButtons, "");
$textarea = textarea("GALLERY[offline_message]", $TSUE["TSUE_Settings"]->settings["gallery"]["offline_message"]);
$formContents .= aaaaan(get_phrase("dm_offline_message"), $textarea, get_phrase("image_gallery_offline_alt"));
$Usergroups = aaaaaw("GALLERY[offline_access][]", ($TSUE["TSUE_Settings"]->settings["gallery"]["offline_access"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["gallery"]["offline_access"]) : array( )));
$formContents .= aaaaan(get_phrase("offline_access"), $Usergroups, get_phrase("image_gallery_offline_access_alt"));
$inputbox = inputbox("GALLERY[max_filesize]", $TSUE["TSUE_Settings"]->settings["gallery"]["max_filesize"], "text texthalf", friendly_size($TSUE["TSUE_Settings"]->settings["gallery"]["max_filesize"]), false, false, get_phrase("set_to_0_for_no_limit"));
$formContents .= aaaaan(get_phrase("dm_max_filesize"), $inputbox, "");
$inputbox = inputbox("GALLERY[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["gallery"]["allowed_file_types"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, "");
$inputbox = inputbox("GALLERY[files_perpage]", $TSUE["TSUE_Settings"]->settings["gallery"]["files_perpage"], "text texthalf");
$formContents .= aaaaan(get_phrase("limitations_gallery_images_perpage"), $inputbox, "");
$aaaaam = array( "option_name" => get_phrase("image_gallery") );
break;
case "auto_warning":
if( isset($_POST["save_options"]) )
{
$auto_warning["active"] = (isset($_POST["auto_warning"]["active"]) && $_POST["auto_warning"]["active"] == 1 ? 1 : 0);
$auto_warning["min_ratio"] = (isset($_POST["auto_warning"]["min_ratio"]) && $_POST["auto_warning"]["min_ratio"] ? trim($_POST["auto_warning"]["min_ratio"]) : 0);
$auto_warning["warn_length"] = (isset($_POST["auto_warning"]["warn_length"]) && $_POST["auto_warning"]["warn_length"] ? intval($_POST["auto_warning"]["warn_length"]) : 0);
$auto_warning["skipMembergroups"] = (isset($_POST["auto_warning"]["skipMembergroups"]) && is_array($_POST["auto_warning"]["skipMembergroups"]) && 0 < count($_POST["auto_warning"]["skipMembergroups"]) ? implode(",", array_map("intval", $_POST["auto_warning"]["skipMembergroups"])) : "");
updatesettings("auto_warning", $auto_warning);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("auto_warning[active]", getsetting("auto_warning", "active"));
$formContents = aaaaan(get_phrase("auto_warning_active"), $radioButtons, get_phrase("auto_warning_active_alt"));
$inputBox = inputbox("auto_warning[min_ratio]", getsetting("auto_warning", "min_ratio"));
$formContents .= aaaaan(get_phrase("auto_warning_min_ratio"), $inputBox, "");
$inputBox = inputbox("auto_warning[warn_length]", getsetting("auto_warning", "warn_length"));
$formContents .= aaaaan(get_phrase("auto_warning_warn_length"), $inputBox, "");
$Usergroups = aaaaaw("auto_warning[skipMembergroups][]", tsue_explode(",", getsetting("auto_warning", "skipMembergroups")));
$formContents .= aaaaan(get_phrase("auto_warning_skip_membergroups"), $Usergroups, get_phrase("auto_warning_skip_membergroups_alt"));
$aaaaam = array( "option_name" => get_phrase("auto_warning_System") );
break;
case "shoutbox_announcements":
if( isset($_POST["save_options"]) )
{
$shoutbox["announce_new_torrents"] = (isset($_POST["shoutbox"]["announce_new_torrents"]) && $_POST["shoutbox"]["announce_new_torrents"] == 1 ? 1 : 0);
$shoutbox["announce_new_torrent_comments"] = (isset($_POST["shoutbox"]["announce_new_torrent_comments"]) && $_POST["shoutbox"]["announce_new_torrent_comments"] == 1 ? 1 : 0);
$shoutbox["announce_new_torrent_categories"] = (isset($_POST["announce_new_torrent_categories"]) && $_POST["announce_new_torrent_categories"] ? implode(",", $_POST["announce_new_torrent_categories"]) : "");
$shoutbox["announce_new_members"] = (isset($_POST["shoutbox"]["announce_new_members"]) && $_POST["shoutbox"]["announce_new_members"] == 1 ? 1 : 0);
$shoutbox["announce_new_threads"] = (isset($_POST["shoutbox"]["announce_new_threads"]) && $_POST["shoutbox"]["announce_new_threads"] == 1 ? 1 : 0);
$shoutbox["announce_new_replies"] = (isset($_POST["shoutbox"]["announce_new_replies"]) && $_POST["shoutbox"]["announce_new_replies"] == 1 ? 1 : 0);
$shoutbox["announce_new_threads_skip_forums"] = (isset($_POST["announce_new_threads_skip_forums"]) && $_POST["announce_new_threads_skip_forums"] ? implode(",", $_POST["announce_new_threads_skip_forums"]) : "");
$shoutbox["notifications"] = (isset($_POST["shoutbox"]["notifications"]) ? trim($_POST["shoutbox"]["notifications"]) : "");
updatesettings("shoutbox", $shoutbox);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = get_phrase("click_here_to_modify_shoutbox_timeouts", "?action=Plugin Manager&options=3") . "<br /><br />";
$radioButtons = radioyesno("shoutbox[announce_new_torrents]", getsetting("shoutbox", "announce_new_torrents"));
$formContents .= aaaaan(get_phrase("announce_new_torrents"), $radioButtons, "");
$radioButtons = radioyesno("shoutbox[announce_new_torrent_comments]", getsetting("shoutbox", "announce_new_torrent_comments"));
$formContents .= aaaaan(get_phrase("announce_new_torrent_comments"), $radioButtons, "");
$announce_new_torrent_categories = tsue_explode(",", getsetting("shoutbox", "announce_new_torrent_categories"));
$radioButtons = torrentcategoriesinbutboxes("announce_new_torrent_categories[]", "checkbox", $announce_new_torrent_categories);
$formContents .= aaaaan(get_phrase("announce_new_torrent_categories"), $radioButtons, "");
$radioButtons = radioyesno("shoutbox[announce_new_members]", getsetting("shoutbox", "announce_new_members"));
$formContents .= aaaaan(get_phrase("announce_new_members"), $radioButtons, "");
$radioButtons = radioyesno("shoutbox[announce_new_threads]", getsetting("shoutbox", "announce_new_threads"));
$formContents .= aaaaan(get_phrase("announce_new_threads"), $radioButtons, "");
$radioButtons = radioyesno("shoutbox[announce_new_replies]", getsetting("shoutbox", "announce_new_replies"));
$formContents .= aaaaan(get_phrase("announce_new_replies"), $radioButtons, "");
$Forums = aaaabc("announce_new_threads_skip_forums[]", explode(",", getsetting("shoutbox", "announce_new_threads_skip_forums")));
$formContents .= aaaaan(get_phrase("announce_new_threads_skip_forums"), $Forums, "");
$textarea = aaaaay("shoutbox[notifications]", getsetting("shoutbox", "notifications"), true);
$formContents .= aaaaan(get_phrase("shoutbox_notifications"), $textarea);
$aaaaam = array( "option_name" => get_phrase("shoutbox_announcements") );
break;
case "manage_inactive_members":
if( isset($_POST["save_options"]) )
{
$inactive_members["active"] = (isset($_POST["inactive_members"]["active"]) && $_POST["inactive_members"]["active"] == 1 ? 1 : 0);
$inactive_members["grace_period"] = (isset($_POST["inactive_members"]["grace_period"]) ? intval($_POST["inactive_members"]["grace_period"]) : 0);
$inactive_members["max_email"] = (isset($_POST["inactive_members"]["max_email"]) ? intval($_POST["inactive_members"]["max_email"]) : 0);
$inactive_members["prune_members"] = (isset($_POST["inactive_members"]["prune_members"]) ? intval($_POST["inactive_members"]["prune_members"]) : 0);
$inactive_members["membergroups"] = (isset($_POST["inactive_members"]["membergroups"]) && $_POST["inactive_members"]["membergroups"] ? implode(",", $_POST["inactive_members"]["membergroups"]) : "");
updatesettings("inactive_members", $inactive_members);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("inactive_members[active]", getsetting("inactive_members", "active"));
$formContents = aaaaan(get_phrase("inactive_members_active"), $radioButtons, get_phrase("inactive_members_active_alt"));
$inputBox = inputbox("inactive_members[grace_period]", getsetting("inactive_members", "grace_period"));
$formContents .= aaaaan(get_phrase("inactivity_grace_period"), $inputBox, get_phrase("inactivity_grace_period_alt"));
$inputBox = inputbox("inactive_members[max_email]", getsetting("inactive_members", "max_email"));
$formContents .= aaaaan(get_phrase("inactivity_max_email_to_send"), $inputBox, get_phrase("inactivity_max_email_to_send_alt"));
$inputBox = inputbox("inactive_members[prune_members]", getsetting("inactive_members", "prune_members"));
$formContents .= aaaaan(get_phrase("inactivity_prune_members"), $inputBox, get_phrase("inactivity_prune_members_alt"));
$Usergroups = aaaaaw("inactive_members[membergroups][]", tsue_explode(",", getsetting("inactive_members", "membergroups")));
$formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("inactivity_membergroups_alt"));
$aaaaam = array( "option_name" => get_phrase("manage_inactive_members") );
break;
case "happy_hours":
if( isset($_POST["save_options"]) )
{
$happy_hours["active"] = (isset($_POST["happy_hours"]["active"]) && $_POST["happy_hours"]["active"] == 1 ? 1 : 0);
$happy_hours["start_date"] = (isset($_POST["happy_hours"]["start_date"]) ? $_POST["happy_hours"]["start_date"] : "");
$happy_hours["end_date"] = (isset($_POST["happy_hours"]["end_date"]) ? $_POST["happy_hours"]["end_date"] : "");
$happy_hours["freeleech"] = (isset($_POST["happy_hours"]["freeleech"]) && $_POST["happy_hours"]["freeleech"] == 1 ? 1 : 0);
$happy_hours["doubleupload"] = (isset($_POST["happy_hours"]["doubleupload"]) && $_POST["happy_hours"]["doubleupload"] == 1 ? 1 : 0);
if( $happy_hours["start_date"] )
{
$happy_hours["start_date"] = str_replace("/", "-", $happy_hours["start_date"]);
$happy_hours["start_date"] = strtotime($happy_hours["start_date"]);
}
if( $happy_hours["end_date"] )
{
$happy_hours["end_date"] = str_replace("/", "-", $happy_hours["end_date"]);
$happy_hours["end_date"] = strtotime($happy_hours["end_date"]);
}
updatesettings("happy_hours", $happy_hours);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
aaaabd("expired.php");
_sendheaders($outputMessage);
}
$start_date = getsetting("happy_hours", "start_date");
if( $start_date )
{
$start_date = date("d/m/Y", $start_date);
}
$end_date = getsetting("happy_hours", "end_date");
if( $end_date )
{
$end_date = date("d/m/Y", $end_date);
}
$formContents = "";
$radioButtons = radioyesno("happy_hours[active]", getsetting("happy_hours", "active"));
$formContents .= aaaaan(get_phrase("happy_hours_active"), $radioButtons);
$inputBox = inputbox("happy_hours[start_date]", $start_date, "text", "", true);
$formContents .= aaaaan(get_phrase("happy_hours_start_date"), $inputBox);
$inputBox = inputbox("happy_hours[end_date]", $end_date, "text", "", true);
$formContents .= aaaaan(get_phrase("happy_hours_end_date"), $inputBox);
$aaaabe = "
<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
<tr>
<td><input type=\"checkbox\" name=\"happy_hours[freeleech]\" value=\"1\" id=\"type_1\"" . ((getsetting("happy_hours", "freeleech") ? " checked=\"checked\"" : "")) . " /></td>
<td><label for=\"type_1\">" . get_phrase("happy_hours_freeleech") . "</label></td>
</tr>
<tr>
<td><input type=\"checkbox\" name=\"happy_hours[doubleupload]\" value=\"1\" id=\"type_2\"" . ((getsetting("happy_hours", "doubleupload") ? " checked=\"checked\"" : "")) . " /></td>
<td><label for=\"type_2\">" . get_phrase("happy_hours_double_upload") . "</label></td>
</tr>
</table>";
$formContents .= aaaaan(get_phrase("happy_hours_type"), $aaaabe);
$aaaaam = array( "option_name" => get_phrase("happy_hours") );
break;
case "social_media":
$formContents = "<div class=\"soptionTitle\">" . get_phrase("facebook_api_alt") . "</div>";
$inputbox = inputbox("settings[facebook_app_id]", $TSUE["TSUE_Settings"]->settings["global_settings"]["facebook_app_id"], "text");
$formContents .= aaaaan(get_phrase("facebook_app_id"), $inputbox, get_phrase("facebook_app_id_alt"));
$inputbox = inputbox("settings[facebook_app_secret]", $TSUE["TSUE_Settings"]->settings["global_settings"]["facebook_app_secret"], "text");
$formContents .= aaaaan(get_phrase("facebook_app_secret"), $inputbox, get_phrase("facebook_app_secret_alt"));
$formContents .= "
<div class=\"soptionTitle\">
" . get_phrase("twitter_api_alt") . "
<span class=\"smallPassiveTextBlock\">" . get_phrase("twitter_api_tip") . "</span>
</div>";
$inputbox = inputbox("settings[consumerKey]", getsetting("global_settings", "consumerKey"), "text");
$formContents .= aaaaan(get_phrase("consumer_key"), $inputbox);
$inputbox = inputbox("settings[consumerSecret]", getsetting("global_settings", "consumerSecret"), "text");
$formContents .= aaaaan(get_phrase("consumer_secret"), $inputbox);
$inputbox = inputbox("settings[accessToken]", getsetting("global_settings", "accessToken"), "text");
$formContents .= aaaaan(get_phrase("access_token"), $inputbox);
$inputbox = inputbox("settings[accessTokenSecret]", getsetting("global_settings", "accessTokenSecret"), "text");
$formContents .= aaaaan(get_phrase("access_token_secret"), $inputbox);
$aaaaam = array( "option_name" => get_phrase("social_media") );
break;
case "server":
if( isset($_POST["save_options"]) )
{
$server["http_port"] = (isset($_POST["server"]["http_port"]) ? 0 + $_POST["server"]["http_port"] : "");
$server["https_port"] = (isset($_POST["server"]["https_port"]) ? 0 + $_POST["server"]["https_port"] : "");
$server["ssh_port"] = (isset($_POST["server"]["ssh_port"]) ? 0 + $_POST["server"]["ssh_port"] : "");
$server["ftp_port"] = (isset($_POST["server"]["ftp_port"]) ? 0 + $_POST["server"]["ftp_port"] : "");
$server["pop3_port"] = (isset($_POST["server"]["pop3_port"]) ? 0 + $_POST["server"]["pop3_port"] : "");
updatesettings("server", $server);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = "<div class=\"soptionTitle\"><a href=\"?action=server-status\" target=\"_blank\">" . get_phrase("server_status") . "</a></div>";
$inputbox = inputbox("server[http_port]", getsetting("server", "http_port", 80), "text");
$formContents .= aaaaan(get_phrase("http_port"), $inputbox);
$inputbox = inputbox("server[https_port]", getsetting("server", "https_port", 443), "text");
$formContents .= aaaaan(get_phrase("https_port"), $inputbox);
$inputbox = inputbox("server[ssh_port]", getsetting("server", "ssh_port", 22), "text");
$formContents .= aaaaan(get_phrase("ssh_port"), $inputbox);
$inputbox = inputbox("server[ftp_port]", getsetting("server", "ftp_port", 21), "text");
$formContents .= aaaaan(get_phrase("ftp_port"), $inputbox);
$inputbox = inputbox("server[pop3_port]", getsetting("server", "pop3_port", 110), "text");
$formContents .= aaaaan(get_phrase("pop3_port"), $inputbox);
$aaaaam = array( "option_name" => get_phrase("server") );
break;
case "sls":
$radioButtons = radioyesno("settings[sls_active]", getsetting("global_settings", "sls_active"));
$formContents = aaaaan(get_phrase("sls_active"), $radioButtons);
$radioButtons = radioyesno("settings[sls_show_signup_link]", getsetting("global_settings", "sls_show_signup_link"));
$formContents .= aaaaan(get_phrase("sls_show_signup_link"), $radioButtons);
$radioButtons = radioyesno("settings[sls_show_fp_link]", getsetting("global_settings", "sls_show_fp_link"));
$formContents .= aaaaan(get_phrase("sls_show_fp_link"), $radioButtons);
$radioButtons = radioyesno("settings[sls_show_recent_torrents]", getsetting("global_settings", "sls_show_recent_torrents"));
$formContents .= aaaaan(get_phrase("sls_show_recent_torrents"), $radioButtons);
$aaaaam = array( "option_name" => get_phrase("sls") );
break;
case "uploader_inactivity":
if( isset($_POST["save_options"]) )
{
$uploader_inactivity["membergroups"] = (isset($_POST["uploader_inactivity"]["membergroups"]) && $_POST["uploader_inactivity"]["membergroups"] ? implode(",", $_POST["uploader_inactivity"]["membergroups"]) : "");
$uploader_inactivity["demote_to"] = (isset($_POST["uploader_inactivity"]["demote_to"]) ? 0 + $_POST["uploader_inactivity"]["demote_to"] : "");
$uploader_inactivity["criterias_torrents"] = (isset($_POST["uploader_inactivity"]["criterias_torrents"]) ? 0 + $_POST["uploader_inactivity"]["criterias_torrents"] : "");
$uploader_inactivity["criterias_days"] = (isset($_POST["uploader_inactivity"]["criterias_days"]) ? 0 + $_POST["uploader_inactivity"]["criterias_days"] : "");
updatesettings("uploader_inactivity", $uploader_inactivity);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = "<h2>" . get_phrase("demote_inactive_uploaders_cron") . "</h2>";
$Usergroups = aaaaaw("uploader_inactivity[membergroups][]", explode(",", getsetting("uploader_inactivity", "membergroups")));
$formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("inactivity_membergroups_alt"));
$Usergroups = aaaabf("uploader_inactivity[demote_to]", getsetting("uploader_inactivity", "demote_to"), true, "");
$formContents .= aaaaan(get_phrase("select_membergroup"), $Usergroups, get_phrase("uploader_inactivity_demote_to"));
$Criterias = "
<div style=\"margin-top: 5px;\">
" . get_phrase("query_criterias_for_demotion", "<input type=\"text\" name=\"uploader_inactivity[criterias_torrents]\" value=\"" . getsetting("uploader_inactivity", "criterias_torrents") . "\" class=\"text textVeryTiny\" />", "<input type=\"text\" name=\"uploader_inactivity[criterias_days]\" value=\"" . getsetting("uploader_inactivity", "criterias_days") . "\" class=\"text textVeryTiny\" />") . "
</div>";
$formContents .= aaaaan(get_phrase("criterias_for_demotion"), $Criterias, "");
$aaaaam = array( "option_name" => get_phrase("uploader_inactivity") );
break;
case "automatic_invites":
if( isset($_POST["save_options"]) )
{
$automatic_invites["membergroups"] = (isset($_POST["automatic_invites"]["membergroups"]) && $_POST["automatic_invites"]["membergroups"] ? implode(",", $_POST["automatic_invites"]["membergroups"]) : "");
$automatic_invites["amount"] = (isset($_POST["automatic_invites"]["amount"]) ? intval($_POST["automatic_invites"]["amount"]) : "");
updatesettings("automatic_invites", $automatic_invites);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = "<h2>" . get_phrase("automatic_invites_cron") . "</h2>";
$Usergroups = aaaaaw("automatic_invites[membergroups][]", explode(",", getsetting("automatic_invites", "membergroups")));
$formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("automatic_invites_membergroups"));
$inputbox = inputbox("automatic_invites[amount]", getsetting("automatic_invites", "amount", 0), "text");
$formContents .= aaaaan(get_phrase("automatic_invites_amount"), $inputbox);
$aaaaam = array( "option_name" => get_phrase("automatic_invites") );
break;
case "magnet_links":
if( isset($_POST["save_options"]) )
{
$magnet_links["active"] = (isset($_POST["magnet_links"]["active"]) ? intval($_POST["magnet_links"]["active"]) : 0);
updatesettings("magnet_links", $magnet_links);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("magnet_links[active]", getsetting("magnet_links", "active"));
$formContents = aaaaan(get_phrase("magnet_links_active"), $radioButtons, nl2br(get_phrase("magnet_links_active_alt")));
$aaaaam = array( "option_name" => get_phrase("magnet_links") );
break;
case "auto_alert":
if( isset($_POST["save_options"]) )
{
$auto_alert["admins"] = (isset($_POST["auto_alert"]["admins"]) ? $_POST["auto_alert"]["admins"] : "");
$auto_alert["words"] = (isset($_POST["auto_alert"]["words"]) ? $_POST["auto_alert"]["words"] : "");
updatesettings("auto_alert", $auto_alert);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$inputbox = inputbox("auto_alert[admins]", getsetting("auto_alert", "admins"), "text", "", false, true, "", "autoCompleteMultiple");
$formContents = aaaaan(get_phrase("auto_alert_admins"), $inputbox, get_phrase("auto_alert_admins_alt"));
$inputbox = aaaaay("auto_alert[words]", getsetting("auto_alert", "words"));
$formContents .= aaaaan(get_phrase("auto_alert_words"), $inputbox, get_phrase("auto_alert_words_alt"));
$aaaaam = array( "option_name" => get_phrase("auto_alert") );
break;
case "search_system":
if( isset($_POST["save_options"]) )
{
$search_system["method"] = (isset($_POST["search_system"]["method"]) && $_POST["search_system"]["method"] == 2 ? 2 : 1);
updatesettings("search_system", $search_system);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$aaaaao = array( 1 => get_phrase("search_method_1"), 2 => get_phrase("search_method_2") );
$selectbox = selectbox("search_system[method]", getsetting("search_system", "method", 1), $aaaaao);
$formContents = aaaaan(get_phrase("search_system"), $selectbox, get_phrase("search_system_alert"));
$aaaaam = array( "option_name" => get_phrase("search_system") );
}
if( isset($formContents) )
{
$HTML .= aaaabg($formContents, $aaaaam);
}
}
}
else
{
$HTML = "
<div id=\"options\">
<div class=\"head\">" . get_phrase("dashboard_options_alt") . "</div>
<div class=\"optionsScroll\">
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=website_active\">" . get_phrase("dashboard_options_website_active") . " <span>" . get_phrase("dashboard_options_website_active_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=basic_website_information\">" . get_phrase("dashboard_options_basic_website_information") . " <span></span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=email_options\">" . get_phrase("dashboard_options_email_options") . " <span></span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=member_registration\">" . get_phrase("dashboard_options_member_registration") . " <span></span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=appearance\">" . get_phrase("dashboard_options_appearance") . " <span>" . get_phrase("dashboard_options_appearance_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=cookies\">" . get_phrase("dashboard_options_cookies") . " <span></span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=announce\">" . get_phrase("dashboard_options_announce") . " <span>" . get_phrase("dashboard_options_announce_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=ipban\">" . get_phrase("dashboard_options_ipban") . " <span>" . get_phrase("dashboard_options_ipban_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=emailban\">" . get_phrase("dashboard_options_emailban") . " <span>" . get_phrase("dashboard_options_emailban_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=countryban\">" . get_phrase("dashboard_options_countryban") . " <span>" . get_phrase("dashboard_options_countryban_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=censoring\">" . get_phrase("dashboard_options_censoring") . " <span>" . get_phrase("dashboard_options_censoring_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=seo\">" . get_phrase("dashboard_options_seo") . " <span>" . get_phrase("dashboard_options_seo_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=limitations\">" . get_phrase("dashboard_options_limitations") . " <span></span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=member_alerts\">" . get_phrase("dashboard_options_member_alerts") . " <span>" . get_phrase("dashboard_options_member_alerts_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=cleanup\">" . get_phrase("dashboard_options_cleanup") . " <span>" . get_phrase("dashboard_options_cleanup_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=points\">" . get_phrase("dashboard_options_points") . " <span>" . get_phrase("dashboard_options_points_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=subtitles\">" . get_phrase("dashboard_options_subtitles") . "
<span></span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=security\">" . get_phrase("dashboard_options_security") . "
<span>" . get_phrase("dashboard_options_security_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=hitrun\">" . get_phrase("dashboard_options_hitrun") . "
<span>" . get_phrase("dashboard_options_hitrun_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_uploader\">" . get_phrase("auto_uploader") . "
<span>" . get_phrase("auto_uploader_span") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=downloads\">" . get_phrase("dm_title") . "
<span>" . get_phrase("dm_title_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=ircbot\">" . get_phrase("ircbot") . "
<span>" . get_phrase("ircbot_title") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=xbt\">XBT
<span>" . get_phrase("xbt_title") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=gallery\">" . get_phrase("image_gallery") . "</div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_warning\">" . get_phrase("auto_warning_System") . "
<span>" . get_phrase("auto_warning_System_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=shoutbox_announcements\">" . get_phrase("shoutbox_announcements") . "
<span>" . get_phrase("shoutbox_announcements_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=manage_inactive_members\">" . get_phrase("manage_inactive_members") . "
<span>" . get_phrase("manage_inactive_members_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=happy_hours\">" . get_phrase("happy_hours") . "
<span>" . get_phrase("happy_hours_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=social_media\">" . get_phrase("social_media") . "
<span>" . get_phrase("social_media_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=server\">" . get_phrase("server") . "
<span>" . get_phrase("server_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=sls\">" . get_phrase("sls") . "
<span>" . get_phrase("sls_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=uploader_inactivity\">" . get_phrase("uploader_inactivity") . "
<span>" . get_phrase("uploader_inactivity_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=automatic_invites\">" . get_phrase("automatic_invites") . "
<span>" . get_phrase("automatic_invites_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=magnet_links\">" . get_phrase("magnet_links") . "
<span>" . get_phrase("magnet_links_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_alert\">" . get_phrase("auto_alert") . "
<span>" . get_phrase("auto_alert_alt") . "</span></div>
<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=search_system\">" . get_phrase("search_system") . "
<span>" . get_phrase("search_system_alt") . "</span></div>
</div>
</div>";
}
return $HTML;
}
function handlepages()
{
global $TSUE;
$HTML = "";
$aaaabh = aaaaae(array( "new=1" => array( "phrase" => get_phrase("pages_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$showinmenu = intval(getvar("showinmenu"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $pageID => $Sort )
{
$pageID = intval($pageID);
$Sort = intval($Sort);
$TSUE["TSUE_Database"]->update("tsue_pages", array( "sort" => $Sort ), "pageid=" . $TSUE["TSUE_Database"]->escape($pageID));
}
logadminaction(get_phrase("pages_all_pages_updated"));
handlerebuildcaches(false);
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $edit || $new )
{
$Page = array( "pageid" => 0, "parentid" => 0, "name" => "", "phrase" => "", "internal_link" => "", "external_link" => "", "sort" => 0, "active" => 0, "plugins_left" => array( ), "plugins_right" => array( ), "showinmenu" => 0, "viewpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Page = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Page )
{
return errormessage(get_phrase("message_content_error"));
}
$Page["plugins_left"] = tsue_explode(",", $Page["plugins_left"]);
$Page["plugins_right"] = tsue_explode(",", $Page["plugins_right"]);
$Page["viewpermissions"] = tsue_explode(",", $Page["viewpermissions"]);
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Page["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("pages_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Page"]) )
{
$Page = $_POST["Page"];
if( !$Page["name"] )
{
$formErrors[] = get_phrase("pages_page_name_error");
}
if( !$Page["phrase"] || !isset($TSUE["TSUE_Language"]["phrase"][$Page["phrase"]]) )
{
$formErrors[] = get_phrase("pages_page_phrase_error");
}
if( !$Page["internal_link"] && !$Page["external_link"] )
{
$Page["internal_link"] = "#";
}
if( !isset($Page["plugins_left"]) )
{
$Page["plugins_left"] = array( );
}
if( !isset($Page["plugins_right"]) )
{
$Page["plugins_right"] = array( );
}
if( !isset($Page["viewpermissions"]) )
{
$Page["viewpermissions"] = array( );
}
if( !isset($formErrors) )
{
$buildQuery = array( "parentid" => $Page["parentid"], "name" => $Page["name"], "phrase" => $Page["phrase"], "internal_link" => $Page["internal_link"], "external_link" => $Page["external_link"], "sort" => ($Page["sort"] ? $Page["sort"] : 0), "active" => ($Page["active"] ? $Page["active"] : 0), "plugins_left" => implode(",", $Page["plugins_left"]), "plugins_right" => implode(",", $Page["plugins_right"]), "showinmenu" => ($Page["showinmenu"] ? $Page["showinmenu"] : 0), "viewpermissions" => implode(",", $Page["viewpermissions"]) );
if( $edit )
{
$Page["pageid"] = $edit;
$TSUE["TSUE_Database"]->update("tsue_pages", $buildQuery, "pageid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_pages", $buildQuery);
$Page["pageid"] = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $Page["pageid"] . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
handlerebuildcaches(false);
handleprune(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Page[active]", $Page["active"]);
$formContents = aaaaan(get_phrase("pages_page_active"), $radioButtons);
$radioButtons = radioyesno("Page[showinmenu]", $Page["showinmenu"]);
$formContents .= aaaaan(get_phrase("pages_showinmenu_1"), $radioButtons);
$inputbox = inputbox("Page[name]", $Page["name"]);
$formContents .= aaaaan(get_phrase("pages_page_name"), $inputbox);
$inputbox = inputbox("Page[phrase]", $Page["phrase"]);
$formContents .= aaaaan(get_phrase("pages_page_phrase"), $inputbox, get_phrase("pages_page_phrase_alt"));
$inputbox = inputbox("Page[internal_link]", $Page["internal_link"]);
$formContents .= aaaaan(get_phrase("pages_page_internal_link"), $inputbox, get_phrase("pages_page_internal_link_alt") . "<br /><strong>" . get_phrase("pages_page_internal_link_alt2") . "</strong>");
$inputbox = inputbox("Page[external_link]", $Page["external_link"]);
$formContents .= aaaaan(get_phrase("pages_page_external_link"), $inputbox, get_phrase("pages_page_external_link_alt"));
$inputbox = inputbox("Page[sort]", $Page["sort"], "sortFirst");
$formContents .= aaaaan(get_phrase("global_sort"), $inputbox);
$parentPages = aaaabi("Page[parentid]", $Page["parentid"], (isset($Page["pageid"]) ? $Page["pageid"] : 0));
$formContents .= aaaaan(get_phrase("pages_parent_page"), $parentPages, get_phrase("pages_parent_page_alt"));
$aaaabj = aaaabk("Page[plugins_left][]", $Page["plugins_left"]);
$formContents .= aaaaan(get_phrase("pages_plugins_left"), $aaaabj, get_phrase("pages_plugins_left_alt"));
$aaaabl = aaaabk("Page[plugins_right][]", $Page["plugins_right"]);
$formContents .= aaaaan(get_phrase("pages_plugins_right"), $aaaabl, get_phrase("pages_plugins_left_alt"));
$Usergroups = aaaaaw("Page[viewpermissions][]", $Page["viewpermissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Page )
{
$TSUE["TSUE_Database"]->update("tsue_pages", $BuildQuery, "pageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $showinmenu )
{
$BuildQuery = array( "showinmenu" => array( "escape" => 0, "value" => "IF(showinmenu>0,0,1)" ) );
$Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($showinmenu));
if( $Page )
{
$TSUE["TSUE_Database"]->update("tsue_pages", $BuildQuery, "pageid = " . $TSUE["TSUE_Database"]->escape($showinmenu));
logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $showinmenu . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $delete )
{
$Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Page )
{
$TSUE["TSUE_Database"]->delete("tsue_pages", "pageid = " . $TSUE["TSUE_Database"]->escape($delete));
$TSUE["TSUE_Database"]->delete("tsue_pages", "parentid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("pages_page_deleted", $Page["name"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
$subPagesCache = array( );
$subPages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages WHERE parentid != 0 ORDER BY sort ASC");
if( $TSUE["TSUE_Database"]->num_Rows($subPages) )
{
while( $subPage = $TSUE["TSUE_Database"]->fetch_assoc($subPages) )
{
$subPagesCache[$subPage["parentid"]][] = $subPage;
}
}
$Pages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages WHERE parentid = 0 ORDER BY active DESC, sort ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Pages) )
{
$tableContents = errormessage(get_phrase("no_results_found"));
}
else
{
$tableContents = "";
while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
{
$tableContents .= buildpagelist($Page);
if( isset($subPagesCache[$Page["pageid"]]) )
{
foreach( $subPagesCache[$Page["pageid"]] as $subPage )
{
$tableContents .= buildpagelist($subPage, true);
}
}
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
$HTML .= aaaabn(createtable(get_phrase("dashboard_pages_alt"), $tableContents, 3, $aaaabh));
return $HTML;
}
}
function buildpagelist($Page, $isSubPage = false)
{
global $TSUE;
$linkClass = (!$Page["active"] ? "linkDisabled" : "");
$pageEditLink = aaaaae(array( "edit=" . $Page["pageid"] => array( "phrase" => $Page["name"], "class" => $linkClass ) ));
$aaaabo = aaaaae(array( "delete=" . $Page["pageid"] => array( "phrase" => getimage("buttons/delete" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubPage ? get_phrase("pages_page_delete_warning") : "")) ) ));
if( $Page["active"] )
{
$aaaabp = aaaaae(array( "enable_disable=" . $Page["pageid"] => array( "phrase" => getimage("buttons/disable" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_disable")) ) ));
}
else
{
$aaaabp = aaaaae(array( "enable_disable=" . $Page["pageid"] => array( "phrase" => getimage("buttons/enable" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_enable")) ) ));
}
if( $Page["showinmenu"] )
{
$aaaabq = aaaaae(array( "showinmenu=" . $Page["pageid"] => array( "phrase" => getimage("buttons/hide" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("pages_showinmenu_0")) ) ));
}
else
{
$aaaabq = aaaaae(array( "showinmenu=" . $Page["pageid"] => array( "phrase" => getimage("buttons/show" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("pages_showinmenu_1")) ) ));
}
$pageLink = "
<span style=\"padding-left: 9px;\">
<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $Page["internal_link"] . "&pid=" . $Page["pageid"] . "\" target=\"_blank\" style=\"color: #ccc; font-weight: normal; font-size: 10px;\">" . $Page["internal_link"] . "&pid=" . $Page["pageid"] . "</a>
</span>";
if( $isSubPage )
{
$tableContents = aaaaag(array( array( "width" => "75%", "text" => " <span class=\"smallPassiveText\">-- " . $pageEditLink . "</span>" . $pageLink ), array( "width" => "5%", "text" => inputbox("sort[" . $Page["pageid"] . "]", $Page["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaabp . $aaaabq . $aaaabo, "align" => "right" ) ));
}
else
{
$tableContents = aaaaag(array( array( "width" => "65%", "text" => $pageEditLink . $pageLink ), array( "width" => "10%", "text" => inputbox("sort[" . $Page["pageid"] . "]", $Page["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaabp . $aaaabq . $aaaabo, "align" => "right" ) ));
}
return $tableContents;
}
function handlepolls()
{
global $TSUE;
$HTML = "";
$aaaabr = aaaaae(array( "new=1" => array( "phrase" => get_phrase("poll_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Poll = $TSUE["TSUE_Database"]->query_result("SELECT question FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Poll )
{
$TSUE["TSUE_Database"]->update("tsue_poll", $BuildQuery, "pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("poll_x_has_been_updated", $Poll["question"] . " (" . $enable_disable . ")"));
}
}
if( $delete )
{
$Poll = $TSUE["TSUE_Database"]->query_result("SELECT question FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Poll )
{
$TSUE["TSUE_Database"]->delete("tsue_poll", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("poll_x_has_been_deleted", $Poll["question"] . " (" . $delete . ")"));
}
}
if( $edit || $new )
{
$Poll = array( "active" => 1, "question" => "", "options" => array( ), "votes" => "", "voters" => "", "multiple" => 0, "closeDaysAfter" => 0, "closed" => 0, "threadid" => 0, "createdinThread" => 0 );
$aaaaam = "";
$pollOptionList = "";
$totalOptions = 5;
for( $i = 0; $i < $totalOptions; $i++ )
{
$pollOptionList .= (aaaabs);
}
if( $edit )
{
$Poll = $TSUE["TSUE_Database"]->query_result("SELECT active, question, options, votes, voters, multiple, closeDaysAfter, closed, threadid FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Poll )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$pollOptions = tsue_explode("~", $Poll["options"]);
$_pollOptionList = "";
foreach( $pollOptions as $pollOption )
{
$_pollOptionList .= aaaabs($pollOption);
$totalOptions++;
}
$pollOptionList = $_pollOptionList . $pollOptionList;
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Poll["question"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("poll_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Poll"]) )
{
$Poll = array_merge($Poll, $_POST["Poll"]);
if( !$Poll["question"] )
{
$formErrors[] = get_phrase("poll_error_no_question");
}
if( !$Poll["options"] || count($Poll["options"]) < 2 )
{
$formErrors[] = get_phrase("poll_error_no_options");
}
else
{
$Options = array( );
foreach( $Poll["options"] as $Option )
{
$Option = trim($Option);
if( !empty($Option) )
{
$Options[] = $Option;
}
}
if( !$Options || count($Options) < 2 )
{
$formErrors[] = get_phrase("poll_error_no_options");
}
else
{
$Poll["options"] = $Options;
}
}
if( $Poll["threadid"] )
{
$aaaabt = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_forums_threads WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Poll["threadid"]));
if( !$aaaabt )
{
$formErrors[] = get_phrase("message_content_error");
}
}
if( !isset($formErrors) )
{
$buildQuery = array( "active" => $Poll["active"], "question" => $Poll["question"], "options" => implode("~", $Poll["options"]), "votes" => $Poll["votes"], "voters" => $Poll["voters"], "multiple" => $Poll["multiple"], "closeDaysAfter" => $Poll["closeDaysAfter"], "closed" => $Poll["closed"], "threadid" => $Poll["threadid"], "createdinThread" => 0 );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_poll", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$buildQuery["date"] = TIMENOW;
$TSUE["TSUE_Database"]->insert("tsue_poll", $buildQuery);
}
logadminaction(get_phrase("poll_x_has_been_updated", $Poll["question"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Poll[active]", $Poll["active"]);
$formContents = aaaaan(get_phrase("poll_active"), $radioButtons);
$radioButtons = radioyesno("Poll[closed]", $Poll["closed"]);
$formContents .= aaaaan(get_phrase("poll_is_closed"), $radioButtons, get_phrase("poll_is_closed_alt"));
$inputbox = inputbox("Poll[closeDaysAfter]", $Poll["closeDaysAfter"]);
$formContents .= aaaaan(get_phrase("poll_close_days_after"), $inputbox, get_phrase("poll_close_days_after_alt"));
$radioButtons = radioyesno("Poll[multiple]", $Poll["multiple"]);
$formContents .= aaaaan(get_phrase("poll_multiple"), $radioButtons, get_phrase("poll_multiple_alt"));
$inputbox = inputbox("Poll[threadid]", $Poll["threadid"]);
$formContents .= aaaaan(get_phrase("discuss_threadid"), $inputbox, get_phrase("discuss_threadid_alt"));
$inputbox = inputbox("Poll[question]", $Poll["question"]);
$formContents .= aaaaan(get_phrase("poll_question"), $inputbox);
$formContents .= aaaaan(get_phrase("poll_options"), $pollOptionList, "", "optionsInOverlay", "", getimage("status/bullet_toggle_plus.png", get_phrase("button_add_more_fields"), "pointer middle"), "pollOptions");
$Script = "
<script type=\"text/javascript\">
var totalOptions = " . $totalOptions . ";
\$(\"#polloptions img\").click(function(e)
{
e.preventDefault();
totalOptions++;
\$('<input type=\"text\" class=\"text\" name=\"Poll[options][]\" id=\"ib_Poll[options][]\" value=\"\" style=\"display: none;\" />').appendTo('div[rel=\"pollOptions\"]').fadeIn(\"slow\");
return false;
});
</script>";
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML . $Script;
}
}
$Polls = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_poll WHERE createdinThread = 0 ORDER BY active DESC, date DESC");
if( !$TSUE["TSUE_Database"]->num_rows($Polls) )
{
$tableContents = errormessage(get_phrase("poll_no_poll_yet"));
}
else
{
$tableContents = "";
while( $Poll = $TSUE["TSUE_Database"]->fetch_assoc($Polls) )
{
$linkClass = (!$Poll["active"] ? "linkDisabled" : "");
$aaaabu = aaaaae(array( "edit=" . $Poll["pid"] => array( "phrase" => $Poll["question"], "class" => $linkClass ) ));
$aaaabv = aaaaae(array( "delete=" . $Poll["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Poll["active"] )
{
$aaaabw = aaaaae(array( "enable_disable=" . $Poll["pid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaabw = aaaaae(array( "enable_disable=" . $Poll["pid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaabu . " <span class=\"smallPassiveText\">(" . implode(" - ", tsue_explode("~", $Poll["options"])) . ") / " . get_phrase("poll_created", convert_relative_time($Poll["date"])) . " / " . get_phrase("poll_voters", count(tsue_explode("~", $Poll["voters"]))) . "</span>" ), array( "width" => "15%", "text" => $aaaabw . $aaaabv, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_polls"), $tableContents, 2, $aaaabr);
return $HTML;
}
function handlenews()
{
global $TSUE;
$HTML = "";
$aaaabx = aaaaae(array( "new=1" => array( "phrase" => get_phrase("news_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$tweet = intval(getvar("tweet"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$News = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $News )
{
$TSUE["TSUE_Database"]->update("tsue_news", $BuildQuery, "nid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("news_x_has_been_updated", $News["title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
}
}
if( $delete )
{
$News = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $News )
{
$TSUE["TSUE_Database"]->delete("tsue_news", "nid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("news_x_has_been_deleted", $News["title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
if( $edit || $new )
{
$News = array( "active" => 1, "title" => "", "content" => "" );
$aaaaam = "";
if( $edit )
{
$News = $TSUE["TSUE_Database"]->query_result("SELECT active,title,content FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$News )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $News["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("news_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["News"]) )
{
$News = $_POST["News"];
if( !$News["title"] )
{
$formErrors[] = get_phrase("news_error_no_title");
}
if( !$News["content"] )
{
$formErrors[] = get_phrase("news_error_no_content");
}
if( !isset($formErrors) )
{
$buildQuery = array( "active" => $News["active"], "title" => $News["title"], "content" => $News["content"] );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_news", $buildQuery, "nid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$buildQuery["memberid"] = $TSUE["TSUE_Member"]["memberid"];
$buildQuery["date"] = TIMENOW;
$TSUE["TSUE_Database"]->insert("tsue_news", $buildQuery);
}
logadminaction(get_phrase("news_x_has_been_updated", $News["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
handlerebuildcaches(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("News[active]", $News["active"]);
$formContents = aaaaan(get_phrase("news_active"), $radioButtons);
$inputbox = inputbox("News[title]", $News["title"]);
$formContents .= aaaaan(get_phrase("news_news_title"), $inputbox);
$textarea = textarea("News[content]", $News["content"], true);
$formContents .= aaaaan(get_phrase("news_content"), $textarea);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $tweet )
{
$News = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($tweet));
if( $News )
{
$HTML .= posttotwitter($News["content"], 120);
}
}
$AllNews = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_news ORDER BY active DESC, date DESC");
if( !$TSUE["TSUE_Database"]->num_rows($AllNews) )
{
$tableContents = errormessage(get_phrase("news_no_news_yet"));
}
else
{
$tableContents = "";
while( $News = $TSUE["TSUE_Database"]->fetch_assoc($AllNews) )
{
$linkClass = (!$News["active"] ? "linkDisabled" : "");
$aaaaby = aaaaae(array( "edit=" . $News["nid"] => array( "phrase" => $News["title"], "class" => $linkClass ) ));
$aaaabz = aaaaae(array( "delete=" . $News["nid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaaca = aaaaae(array( "tweet=" . $News["nid"] => array( "phrase" => getimage("buttons/twitter.png", "Tweet") ) ));
if( $News["active"] )
{
$aaaacb = aaaaae(array( "enable_disable=" . $News["nid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaacb = aaaaae(array( "enable_disable=" . $News["nid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaaby . " <span class=\"smallPassiveText\">" . get_phrase("news_created", convert_relative_time($News["date"])) . "</span>" ), array( "width" => "20%", "text" => $aaaaca . $aaaacb . $aaaabz, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_news"), $tableContents, 2, $aaaabx);
return $HTML;
}
function handlefaq()
{
global $TSUE;
$cid = intval(getvar("cid"));
$type = trim(getvar("type"));
$fid = intval(getvar("fid"));
$HTML = "";
if( $type == "deleteCategory" && $cid )
{
$FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
if( $FAQCategory )
{
$TSUE["TSUE_Database"]->delete("tsue_faq_categories", "cid = " . $TSUE["TSUE_Database"]->escape($cid));
$TSUE["TSUE_Database"]->delete("tsue_faq", "cid = " . $TSUE["TSUE_Database"]->escape($cid));
logadminaction(get_phrase("faq_category_has_been_deleted", $FAQCategory["name"] . " (" . $cid . ")"));
}
}
if( $type == "addCategory" || $type == "editCategory" )
{
if( $type == "editCategory" )
{
$FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
if( !$FAQCategory )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( get_phrase("faq_edit_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&cid=" . $cid . "&type=" . $type ));
$aaaaam = array( "cid" => $cid );
}
else
{
$FAQCategory = array( "name" => "", "sort" => "", "active" => 1 );
addbreadcrumb(array( get_phrase("faq_create_new_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=" . $type ));
$aaaaam = "";
}
if( isset($_POST["FAQCategory"]) )
{
$FAQCategory = $_POST["FAQCategory"];
if( !$FAQCategory["name"] )
{
$formErrors[] = get_phrase("faq_category_name_error");
}
if( !isset($formErrors) )
{
$buildQuery = array( "name" => $FAQCategory["name"], "sort" => $FAQCategory["sort"], "active" => $FAQCategory["active"] );
if( $type == "editCategory" )
{
$TSUE["TSUE_Database"]->update("tsue_faq_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($cid));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_faq_categories", $buildQuery);
$cid = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("faq_category_has_been_updated", $FAQCategory["name"] . " (" . $cid . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("FAQCategory[active]", $FAQCategory["active"]);
$formContents = aaaaan(get_phrase("faq_category_active"), $radioButtons);
$inputbox = inputbox("FAQCategory[name]", $FAQCategory["name"]);
$formContents .= aaaaan(get_phrase("faq_category_name"), $inputbox);
$inputbox = inputbox("FAQCategory[sort]", $FAQCategory["sort"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("faq_category_displayorder"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $type == "deleteItem" && $fid && $cid )
{
$FAQItem = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_faq WHERE fid = " . $TSUE["TSUE_Database"]->escape($fid) . " AND cid = " . $TSUE["TSUE_Database"]->escape($cid));
if( $FAQItem )
{
$TSUE["TSUE_Database"]->delete("tsue_faq", "fid = " . $TSUE["TSUE_Database"]->escape($fid));
logadminaction(get_phrase("faq_item_has_been_deleted", $FAQItem["title"] . " (" . $fid . ")"));
}
}
if( ($type == "addItem" || $type == "editItem") && $cid )
{
$FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
if( !$FAQCategory )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( get_phrase(($type == "editItem" ? "faq_edit_item" : "faq_add_item")) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&cid=" . $cid . "&type=" . $type ));
$FAQItem = array( "cid" => $cid, "title" => "", "content" => "", "sort" => "", "active" => 1 );
$aaaaam = "";
if( $type == "editItem" )
{
$FAQItem = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq WHERE fid = " . $TSUE["TSUE_Database"]->escape($fid));
if( !$FAQItem )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "fid" => $fid );
}
if( isset($_POST["FAQItem"]) )
{
$FAQItem = $_POST["FAQItem"];
if( !$FAQItem["title"] )
{
$formErrors[] = get_phrase("faq_title_error");
}
if( !$FAQItem["content"] )
{
$formErrors[] = get_phrase("faq_content_error");
}
if( !isset($formErrors) )
{
$buildQuery = array( "cid" => $cid, "title" => $FAQItem["title"], "content" => $FAQItem["content"], "sort" => $FAQItem["sort"], "active" => $FAQItem["active"] );
if( $type == "editItem" )
{
$TSUE["TSUE_Database"]->update("tsue_faq", $buildQuery, "fid=" . $TSUE["TSUE_Database"]->escape($fid));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_faq", $buildQuery);
$fid = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("faq_item_has_been_updated", $FAQItem["title"] . " (" . $fid . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("FAQItem[active]", $FAQItem["active"]);
$formContents = aaaaan(get_phrase("faq_item_active"), $radioButtons);
$inputbox = inputbox("FAQItem[title]", $FAQItem["title"]);
$formContents .= aaaaan(get_phrase("faq_item_title"), $inputbox);
$textarea = textarea("FAQItem[content]", $FAQItem["content"], true);
$formContents .= aaaaan(get_phrase("faq_item_content"), $textarea);
$inputbox = inputbox("FAQItem[sort]", $FAQItem["sort"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("faq_item_displayorder"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$aaaacc = array( );
$aaaacd = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_faq ORDER BY cid ASC");
while( $FAQItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaacd) )
{
$aaaace = aaaaae(array( "cid=" . $FAQItem["cid"] . "&fid=" . $FAQItem["fid"] . "&type=editItem" => array( "phrase" => get_phrase("button_edit") ) ));
$aaaacf = aaaaae(array( "cid=" . $FAQItem["cid"] . "&fid=" . $FAQItem["fid"] . "&type=deleteItem" => array( "phrase" => get_phrase("button_delete"), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$linkClass = (!$FAQItem["active"] ? "linkDisabled" : "");
$aaaacc[$FAQItem["cid"]][] = "
<li>[" . $aaaace . "] [" . $aaaacf . "] <span class=\"" . $linkClass . "\">" . $FAQItem["title"] . "</span></li>";
}
$aaaacg = "";
$FAQCategories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_faq_categories ORDER BY cid ASC");
while( $FAQCategory = $TSUE["TSUE_Database"]->fetch_assoc($FAQCategories) )
{
$items = "";
if( isset($aaaacc[$FAQCategory["cid"]]) )
{
$items .= "<ul>";
foreach( $aaaacc[$FAQCategory["cid"]] as $cid => $li )
{
$items .= $li;
}
$items .= "</ul>";
}
$aaaach = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=editCategory" => array( "phrase" => get_phrase("button_edit") ) ));
$aaaaci = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=addItem" => array( "phrase" => get_phrase("faq_add_item") ) ));
$aaaacj = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=deleteCategory" => array( "phrase" => get_phrase("button_delete"), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$linkClass = (!$FAQCategory["active"] ? "linkDisabled" : "");
$aaaacg .= "
<li>[" . $aaaaci . "] [" . $aaaach . "] [" . $aaaacj . "] <span class=\"" . $linkClass . "\"><b>" . $FAQCategory["name"] . "</b></span> " . $items . "</li>";
}
$aaaack = aaaaae(array( "type=addCategory" => array( "phrase" => get_phrase("faq_create_new_category") ) ));
return createtable(get_phrase("dashboard_faq_alt"), "
<tr>
<td>
<ul style=\"line-height: 2;\">
" . $aaaacg . "
</ul>
</td>
</tr>", 1, $aaaack);
}
function handletorrentcategories()
{
global $TSUE;
$HTML = "";
$aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("torrent_categories_new_category") ) ));
$tableContents = "";
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$cid = intval(getvar("cid"));
$set = trim(getvar("set"));
$confirm = intval(getvar("confirm"));
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $Cid => $Sort )
{
$Cid = intval($Cid);
$Sort = intval($Sort);
$TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid));
}
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $set && $cid )
{
$Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
if( !$Category )
{
return errormessage(get_phrase("message_content_error"));
}
if( $set == "delete" )
{
$Phrase = "delete_all_torrents_in_this_category";
}
else
{
$Phrase = "set_all_torrents_" . $set . "_in_this_category";
}
if( !isset($TSUE["TSUE_Language"]["phrase"][$Phrase]) )
{
return errormessage(get_phrase("message_content_error"));
}
$Phrase = $TSUE["TSUE_Language"]["phrase"][$Phrase] . ": " . $Category["cname"];
if( !$confirm )
{
return errormessage("
" . $Phrase . "
<p>" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "</p>
<p>" . aaaaae(array( "set=" . $set . "&cid=" . $cid . "&confirm=1" => array( "class" => "submit", "phrase" => get_phrase("button_apply") ) )) . "</p>");
}
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
switch( $set )
{
case "free":
case "non_free":
aaaacm(array( "download_multiplier" => ($set == "free" ? 0 : 1) ), $cid);
break;
case "double_upload":
case "non_double_upload":
aaaacm(array( "upload_multiplier" => ($set == "double_upload" ? 2 : 1) ), $cid);
break;
case "sticky":
case "un_sticky":
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "sticky" => ($set == "sticky" ? 1 : 0) ), "cid=" . $TSUE["TSUE_Database"]->escape($cid));
break;
case "anonymouse":
case "non_anonymouse":
aaaacm(array( "anonymouse" => ($set == "anonymouse" ? 1 : 0) ), $cid);
break;
case "record_stats":
case "non_record_stats":
aaaacm(array( "record_stats" => ($set == "record_stats" ? 1 : 0) ), $cid);
break;
case "delete":
$Torrents = $TSUE["TSUE_Database"]->query("SELECT tid FROM tsue_torrents WHERE cid = " . $cid);
if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
deletetorrent($Torrent["tid"]);
}
}
break;
}
}
if( $delete )
{
checkdemomode();
$Category = $TSUE["TSUE_Database"]->query_result("SELECT pid, cname FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Category )
{
$TSUE["TSUE_Database"]->delete("tsue_torrents_categories", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
foreach( array( "png", "gif", "jpg", "jpeg" ) as $extension )
{
$categoryImage = DATAPATH . "torrents/category_images/" . $delete . "." . $extension;
if( file_exists($categoryImage) )
{
@unlink($categoryImage);
}
}
if( !$Category["pid"] )
{
$subCategories = $TSUE["TSUE_Database"]->query("SELECT cid FROM tsue_torrents_categories WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->num_rows($subCategories) )
{
while( $subCategory = $TSUE["TSUE_Database"]->fetch_assoc($subCategories) )
{
foreach( array( "png", "gif", "jpg", "jpeg" ) as $extension )
{
$categoryImage = DATAPATH . "torrents/category_images/" . $subCategory["cid"] . "." . $extension;
if( file_exists($categoryImage) )
{
@unlink($categoryImage);
}
}
}
$TSUE["TSUE_Database"]->delete("tsue_torrents_categories", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
}
}
logadminaction(get_phrase("torrent_categories_category_has_been_deleted", $Category["cname"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $edit || $new )
{
$Category = array( "pid" => 0, "sort" => "", "cname" => "", "cviewpermissions" => array( ), "cdownloadpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Category )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]);
$Category["cdownloadpermissions"] = tsue_explode(",", $Category["cdownloadpermissions"]);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Category["cname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("torrent_categories_new_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Category"]) )
{
checkdemomode();
$Category = $_POST["Category"];
$categoryImage = $_FILES["categoryImage"];
if( !isset($Category["cviewpermissions"]) )
{
$Category["cviewpermissions"] = array( );
}
if( !isset($Category["cdownloadpermissions"]) )
{
$Category["cdownloadpermissions"] = array( );
}
if( !$Category["cname"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( $categoryImage && $categoryImage["tmp_name"] )
{
if( !is_uploaded_file($categoryImage["tmp_name"]) )
{
$flagError[] = get_phrase("upload_error3");
}
else
{
if( !$categoryImage["name"] || !$categoryImage["type"] || !$categoryImage["tmp_name"] || $categoryImage["error"] || !$categoryImage["size"] )
{
$flagError[] = get_phrase("upload_error3");
}
else
{
if( !in_array(file_extension($categoryImage["name"]), array( "png", "gif", "jpg", "jpeg" )) )
{
$flagError[] = get_phrase("upload_error6", "png,gif,jpg");
}
else
{
$aaaacn = file_extension($categoryImage["name"]);
$newFlag = $categoryImage["tmp_name"];
}
}
}
}
if( isset($flagError) )
{
$formErrors = (isset($formErrors) ? array_merge($formErrors, $flagError) : $flagError);
unset($flagError);
}
if( !isset($formErrors) )
{
$buildQuery = array( "cname" => $Category["cname"], "pid" => $Category["pid"], "sort" => $Category["sort"], "cviewpermissions" => implode(",", $Category["cviewpermissions"]), "cdownloadpermissions" => implode(",", $Category["cdownloadpermissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_torrents_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
$flagID = $edit;
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_torrents_categories", $buildQuery);
$flagID = $TSUE["TSUE_Database"]->insert_id();
}
if( isset($newFlag) && $flagID )
{
foreach( array( "png", "gif", "jpg", "jpeg" ) as $checkExtension )
{
$aaaaco = DATAPATH . "torrents/category_images/" . $flagID . "." . $checkExtension;
if( file_exists($aaaaco) )
{
@unlink($aaaaco);
}
}
$aaaacp = DATAPATH . "torrents/category_images/" . $flagID . "." . $aaaacn;
@move_uploaded_file($newFlag, $aaaacp);
}
logadminaction(get_phrase("torrent_categories_category_has_been_updated", $Category["cname"] . " (" . $flagID . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf");
$formContents = aaaaan(get_phrase("torrent_categories_category_name"), $inputbox);
$selectbox = aaaacq("Category[pid]", $Category["pid"], (isset($Category["cid"]) ? $Category["cid"] : 0));
$formContents .= aaaaan(get_phrase("global_parent_category"), $selectbox);
$inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
$aaaacr = aaaacs("categoryImage");
$formContents .= aaaaan(get_phrase("torrent_categories_category_image"), $aaaacr, ($edit ? get_phrase("global_leave_empty_keep_current_one") : ""));
$aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe);
$aaaabe = aaaaaw("Category[cdownloadpermissions][]", $Category["cdownloadpermissions"]);
$formContents .= aaaaan(get_phrase("global_download_permissions"), $aaaabe);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$aaaact = array( );
$subCategories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories WHERE pid > 0 ORDER BY `sort` ASC");
if( $TSUE["TSUE_Database"]->num_Rows($subCategories) )
{
while( $subCategory = $TSUE["TSUE_Database"]->fetch_assoc($subCategories) )
{
$aaaact[$subCategory["pid"]][] = $subCategory;
}
}
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories WHERE pid = 0 ORDER BY `sort` ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Categories) )
{
$tableContents = errormessage(get_phrase("no_results_found"));
}
else
{
$tableContents = "";
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$tableContents .= aaaacu($Category);
if( isset($aaaact[$Category["cid"]]) )
{
foreach( $aaaact[$Category["cid"]] as $subCategory )
{
$tableContents .= aaaacu($subCategory, true);
}
}
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
$HTML .= aaaabn(createtable(get_phrase("dashboard_torrent_categories_alt"), $tableContents, 3, $aaaacl));
return $HTML;
}
}
function aaaacm($Option, $Cid)
{
global $TSUE;
$Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE cid = " . $Cid);
if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
$buildQuery = array( );
$buildQuery["options"] = serialize(array_merge(unserialize($Torrent["options"]), $Option));
$buildQuery["flags"] = 2;
if( array_key_exists("upload_multiplier", $Option) )
{
$buildQuery["upload_multiplier"] = $Option["upload_multiplier"];
}
else
{
if( array_key_exists("download_multiplier", $Option) )
{
$buildQuery["download_multiplier"] = $Option["download_multiplier"];
}
}
$TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"]));
}
}
}
function aaaacu($Category, $isSubCategory = false)
{
global $TSUE;
$aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) ));
$aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete" . (($isSubCategory ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubCategory ? get_phrase("torrent_categories_category_delete_warning") : "")) ) ));
$categoryImage = get_torrent_category_image($Category["cid"]);
if( $categoryImage )
{
$categoryImage = "<img src=\"" . $categoryImage . "\" alt=\"" . $Category["cname"] . "\" title=\"" . $Category["cname"] . "\" border=\"0\"" . (($isSubCategory ? " width=\"30\" height=\"30\" style=\"margin-left: 30px;\"" : "")) . " />";
}
$Options = "
<div rel=\"dropDownMenu\" class=\"dropDownMenu\">
<span class=\"smallPassiveText\">[Options]</span>
<div id=\"dropDownMenu\">
" . aaaaae(array( "set=free&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_free_in_this_category") ) )) . "
" . aaaaae(array( "set=non_free&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_free_in_this_category") ) )) . "
" . aaaaae(array( "set=double_upload&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_double_upload_in_this_category") ) )) . "
" . aaaaae(array( "set=non_double_upload&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_double_upload_in_this_category") ) )) . "
" . aaaaae(array( "set=sticky&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_sticky_in_this_category") ) )) . "
" . aaaaae(array( "set=un_sticky&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_un_sticky_in_this_category") ) )) . "
" . aaaaae(array( "set=anonymouse&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_anonymouse_in_this_category") ) )) . "
" . aaaaae(array( "set=non_anonymouse&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_anonymouse_in_this_category") ) )) . "
" . aaaaae(array( "set=record_stats&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_record_stats_in_this_category") ) )) . "
" . aaaaae(array( "set=non_record_stats&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_record_stats_in_this_category") ) )) . "
" . aaaaae(array( "set=delete&cid=" . $Category["cid"] => array( "phrase" => get_phrase("delete_all_torrents_in_this_category") ) )) . "
</div>
</div>";
if( $isSubCategory )
{
$tableContents = aaaaag(array( array( "width" => "75%", "text" => " " . $categoryImage . " <span class=\"smallPassiveText\">-- " . $aaaacv . "</span>" . $Options ), array( "width" => "5%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaacw, "align" => "right" ) ));
}
else
{
$tableContents = aaaaag(array( array( "width" => "65%", "text" => $categoryImage . " " . $aaaacv . $Options ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) ));
}
return $tableContents;
}
function handlemarket()
{
global $TSUE;
$HTML = "";
$aaaacx = aaaaae(array( "new=1" => array( "phrase" => get_phrase("market_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Market = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Market )
{
$TSUE["TSUE_Database"]->update("tsue_market", $BuildQuery, "itemid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("market_item_x_updated", $Market["title"] . " (" . $enable_disable . ")"));
}
}
if( $delete )
{
$Market = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Market )
{
$TSUE["TSUE_Database"]->delete("tsue_market", "itemid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("market_item_x_deleted", $Market["title"] . " (" . $delete . ")"));
}
}
if( $edit || $new )
{
$Market = array( "title" => "", "description" => "", "required_points" => 0, "item_type" => "", "amount" => "", "active" => 1, "permissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Market = $TSUE["TSUE_Database"]->query_result("SELECT title,description,required_points,item_type,amount,active,permissions FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Market )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Market["permissions"] = tsue_explode(",", $Market["permissions"]);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Market["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("market_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Market"]) )
{
$Market = $_POST["Market"];
if( !$Market["title"] )
{
$formErrors[] = get_phrase("market_title_error");
}
if( !$Market["item_type"] )
{
$formErrors[] = get_phrase("market_item_type_error");
}
if( !$Market["amount"] && in_array($Market["item_type"], array( "invites_left", "uploaded", "gift", "hitrun" )) )
{
$formErrors[] = get_phrase("market_item_amount_error");
}
if( !isset($Market["permissions"]) )
{
$Market["permissions"] = array( );
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $Market["title"], "description" => $Market["description"], "required_points" => $Market["required_points"], "item_type" => $Market["item_type"], "amount" => $Market["amount"], "active" => $Market["active"], "permissions" => implode(",", $Market["permissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_market", $buildQuery, "itemid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_market", $buildQuery);
}
logadminaction(get_phrase("market_item_x_updated", $Market["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Market[active]", $Market["active"]);
$formContents = aaaaan(get_phrase("market_item_active"), $radioButtons);
$inputbox = inputbox("Market[title]", $Market["title"]);
$formContents .= aaaaan(get_phrase("market_item_title"), $inputbox);
$textarea = textarea("Market[description]", $Market["description"], true);
$formContents .= aaaaan(get_phrase("market_item_description"), $textarea);
$inputbox = inputbox("Market[required_points]", $Market["required_points"]);
$formContents .= aaaaan(get_phrase("market_required_points"), $inputbox);
$selectbox = selectbox("Market[item_type]", $Market["item_type"], array( "invites_left" => get_phrase("market_item_type_invites_left"), "custom_title" => get_phrase("market_item_type_custom_title"), "uploaded" => get_phrase("market_item_type_uploaded"), "gift" => get_phrase("market_item_type_gift"), "hitrun" => get_phrase("market_item_type_hitrun"), "change_membername" => get_phrase("change_membername") ));
$formContents .= aaaaan(get_phrase("market_item_type"), $selectbox);
$inputbox = inputbox("Market[amount]", $Market["amount"], "text texttiny", "", false, false, getimage("buttons/calculator.png", get_phrase("calculator"), "calculator"));
$formContents .= aaaaan(get_phrase("market_item_amount"), $inputbox);
$Usergroups = aaaaaw("Market[permissions][]", $Market["permissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$AllItems = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_market ORDER BY active DESC, required_points ASC");
if( !$TSUE["TSUE_Database"]->num_rows($AllItems) )
{
$tableContents = errormessage(get_phrase("market_item_no_item_yet"));
}
else
{
$tableContents = "";
while( $Market = $TSUE["TSUE_Database"]->fetch_assoc($AllItems) )
{
$linkClass = (!$Market["active"] ? "linkDisabled" : "");
$aaaacy = aaaaae(array( "edit=" . $Market["itemid"] => array( "phrase" => $Market["title"], "class" => $linkClass ) ));
$aaaacz = aaaaae(array( "delete=" . $Market["itemid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Market["active"] )
{
$aaaada = aaaaae(array( "enable_disable=" . $Market["itemid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaada = aaaaae(array( "enable_disable=" . $Market["itemid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaacy . " <span class=\"smallPassiveText\">" . get_phrase("market_required_points") . ": " . $Market["required_points"] . "</span>" ), array( "width" => "15%", "text" => $aaaada . $aaaacz, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_market_alt"), $tableContents, 2, $aaaacx);
return $HTML;
}
function handleapimanager()
{
global $TSUE;
$HTML = "";
$enable_disable = intval(getvar("enable_disable"));
$edit = intval(getvar("edit"));
$logs = intval(getvar("logs"));
if( $logs )
{
$API = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($logs));
if( !$API )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( $API["title"] . ": " . get_phrase("logs", $TSUE["TSUE_Member"]["membername"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&logs=" . $logs ));
$getLogs = $TSUE["TSUE_Database"]->query("SELECT t.amount, t.currency, t.dateline, t.full_log, p.hash, p.completed, p.memberid, u.upgrade_title, u.upgrade_length_type, u.upgrade_length, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_transaction t LEFT JOIN tsue_member_upgrades_purchases p USING(history_id) LEFT JOIN tsue_member_upgrades u ON (p.upgrade_id=u.upgrade_id) LEFT JOIN tsue_members m ON(p.memberid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE t.api_id = " . $TSUE["TSUE_Database"]->escape($logs) . " AND full_log != '' AND completed = 0 ORDER BY t.dateline DESC");
if( !$TSUE["TSUE_Database"]->num_rows($getLogs) )
{
return errormessage(get_phrase("message_nothing_found"));
}
$List = "";
while( $Log = $TSUE["TSUE_Database"]->fetch_assoc($getLogs) )
{
if( $Log["upgrade_length_type"] == "lifetime" )
{
$Log["upgrade_length"] = "";
$Log["upgrade_length_type"] = get_phrase("upgrade_lifetime");
}
else
{
if( $Log["upgrade_length_type"] )
{
$Log["upgrade_length_type"] = get_phrase("upgrade_" . $Log["upgrade_length_type"] . ((1 < $Log["upgrade_length"] ? "s" : "")));
}
}
if( $Log["amount"] )
{
$upradePrice = get_phrase("upgrade_price", $Log["amount"], strtoupper($Log["currency"]), $Log["upgrade_length"], $Log["upgrade_length_type"]);
}
else
{
$upradePrice = "[N/A]";
}
$List .= "
<div class=\"apiLogs\">
<span style=\"float: right;\">#" . $Log["hash"] . "</span>
" . $Log["upgrade_title"] . " <span class=\"smallPassiveText\">" . $upradePrice . "</span><br />
<b>" . get_phrase("upgrade_membername") . ":</b> " . aaaaaf("?p=profile&pid=18&memberid=" . $Log["memberid"], getmembername($Log["membername"], $Log["groupstyle"])) . "<br />
<b>" . get_phrase("torrents_peer_last_updated") . ":</b> " . convert_relative_time($Log["dateline"]) . "<br />
<b>" . get_phrase("logs") . ":</b> " . $Log["full_log"] . "
</div>
<br />";
}
return $List;
}
if( $edit )
{
$API = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$API )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( $API["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
$aaaaam = array( "edit" => $edit );
$APISettings = ($API["settings"] ? unserialize($API["settings"]) : false);
if( !$APISettings )
{
if( $API["classname"] == "coinbase" )
{
$APISettings = array( "secret_key" => "", "api_key" => "", "payment_inform_emails" => "", "payment_pm_owner" => "" );
}
else
{
$APISettings = array( "business" => "", "demo_mode" => 0, "payment_inform_emails" => "", "payment_pm_owner" => "" );
}
}
if( isset($_POST["APISettings"]) )
{
$APISettings = $_POST["APISettings"];
if( !isset($formErrors) )
{
$buildQuery = array( "settings" => serialize($APISettings) );
$TSUE["TSUE_Database"]->update("tsue_member_upgrades_api", $buildQuery, "api_id=" . $TSUE["TSUE_Database"]->escape($edit));
logadminaction(get_phrase("upgrade_api_has_been_updated", $API["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
if( $API["classname"] == "coinbase" )
{
$inputbox = inputbox("APISettings[secret_key]", $APISettings["secret_key"]);
$formContents = aaaaan(get_phrase("upgrade_api_secret_key"), $inputbox, get_phrase("upgrade_api_secret_key_alt"));
$inputbox = inputbox("APISettings[api_key]", $APISettings["api_key"]);
$formContents .= aaaaan(get_phrase("upgrade_api_api_key"), $inputbox, get_phrase("upgrade_api_api_key_alt"));
}
else
{
$inputbox = inputbox("APISettings[business]", $APISettings["business"]);
$formContents = aaaaan(get_phrase("upgrade_api_business"), $inputbox, get_phrase("upgrade_api_business_alt", $API["title"]));
$radioButtons = radioyesno("APISettings[demo_mode]", $APISettings["demo_mode"]);
$formContents .= aaaaan(get_phrase("upgrade_api_demo_mode"), $radioButtons);
}
$inputbox = inputbox("APISettings[payment_inform_emails]", $APISettings["payment_inform_emails"]);
$formContents .= aaaaan(get_phrase("upgrade_api_email_notification"), $inputbox, get_phrase("upgrade_api_email_notification_alt"));
$inputbox = inputbox("APISettings[payment_pm_owner]", $APISettings["payment_pm_owner"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("upgrade_api_pm_notification_owner"), $inputbox, get_phrase("upgrade_api_pm_notification_owner_alt"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$API = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $API )
{
$TSUE["TSUE_Database"]->update("tsue_member_upgrades_api", $BuildQuery, "api_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("upgrade_api_has_been_updated", $API["title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
}
}
$apiList = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_member_upgrades_api ORDER BY active DESC, title ASC");
if( !$TSUE["TSUE_Database"]->num_rows($apiList) )
{
$tableContents = errormessage(get_phrase("upgrade_no_api"));
}
else
{
$tableContents = "";
while( $API = $TSUE["TSUE_Database"]->fetch_assoc($apiList) )
{
$Image = array( "src" => "images/payment_api/" . $API["classname"] . ".png", "alt" => $API["title"], "title" => $API["title"], "class" => "middle", "id" => "", "rel" => "" );
$Image = aaaadb($Image);
$linkClass = (!$API["active"] ? "linkDisabled" : "");
$aaaadc = aaaaae(array( "edit=" . $API["api_id"] => array( "phrase" => $API["title"], "class" => $linkClass ) ));
$aaaadd = aaaaae(array( "logs=" . $API["api_id"] => array( "phrase" => getimage("buttons/examine.png", get_phrase("logs")) ) ));
if( $API["active"] )
{
$aaaade = aaaaae(array( "enable_disable=" . $API["api_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaade = aaaaae(array( "enable_disable=" . $API["api_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $Image . " " . $aaaadc . "<span class=\"smallPassiveText\">" . get_phrase("upgrade_api_supported_currency") . ": " . $API["currency"] . "</span>" ), array( "width" => "20%", "text" => $aaaadd . $aaaade, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_api_manager_alt"), $tableContents, 2);
return $HTML;
}
function handlecronentries()
{
global $TSUE;
$HTML = "";
$aaaadf = aaaaae(array( "new=1" => array( "phrase" => get_phrase("dashboard_cron_entries_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$run = intval(getvar("run"));
if( $run )
{
$BuildQuery = array( "nextrun" => TIMENOW );
$Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($run));
if( $Cron )
{
$TSUE["TSUE_Database"]->update("tsue_cron", $BuildQuery, "cid = " . $TSUE["TSUE_Database"]->escape($run));
logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"] . " (" . $run . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
}
}
if( $edit || $new )
{
$Cron = array( "title" => "", "nextrun" => TIMENOW, "minutes" => 0, "filename" => "", "function" => "", "active" => 0 );
$aaaaam = "";
if( $edit )
{
$Cron = $TSUE["TSUE_Database"]->query_result("SELECT title,nextrun,minutes,filename,function,active FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Cron )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Cron["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("dashboard_cron_entries_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Cron"]) )
{
$Cron = $_POST["Cron"];
$aaaadg = array( "years" => 365 * 24 * 60 * 60, "months" => 31 * 24 * 60 * 60, "weeks" => 7 * 24 * 60 * 60, "days" => 24 * 60 * 60, "hours" => 60 * 60, "minutes" => 60 );
$Cron["minutes"] = 0;
foreach( array( "years", "months", "weeks", "days", "hours", "minutes" ) as $aaaadh )
{
if( isset($_POST["Cron"][$aaaadh]) && $_POST["Cron"][$aaaadh] && isset($aaaadg[$aaaadh]) )
{
$Cron["minutes"] += intval($_POST["Cron"][$aaaadh]) * $aaaadg[$aaaadh];
}
}
if( !$Cron["title"] )
{
$formErrors[] = get_phrase("dashboard_cron_entries_cron_title_error");
}
if( !$Cron["filename"] || !is_file(LIBRARYPATH . "cron/" . $Cron["filename"]) )
{
$formErrors[] = get_phrase("dashboard_cron_entries_cron_file_error");
}
if( !$Cron["function"] )
{
$formErrors[] = get_phrase("dashboard_cron_entries_cron_function_error");
}
if( !$Cron["minutes"] )
{
$formErrors[] = get_phrase("dashboard_cron_entries_cron_run_period_error");
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $Cron["title"], "nextrun" => TIMENOW + $Cron["minutes"], "minutes" => $Cron["minutes"], "filename" => $Cron["filename"], "function" => $Cron["function"], "active" => $Cron["active"] );
if( $edit )
{
unset($buildQuery["nextrun"]);
$TSUE["TSUE_Database"]->update("tsue_cron", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_cron", $buildQuery);
}
logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Cron[active]", $Cron["active"]);
$formContents = aaaaan(get_phrase("dashboard_cron_entries_active"), $radioButtons);
$inputbox = inputbox("Cron[title]", $Cron["title"]);
$formContents .= aaaaan(get_phrase("dashboard_cron_entries_title"), $inputbox);
$inputbox = inputbox("Cron[filename]", $Cron["filename"]);
$formContents .= aaaaan(get_phrase("dashboard_cron_entries_filename"), $inputbox, get_phrase("global_file_path", (DEMO_MODE ? "" : LIBRARYPATH . "cron/")));
$inputbox = inputbox("Cron[function]", $Cron["function"]);
$formContents .= aaaaan(get_phrase("dashboard_cron_entries_function"), $inputbox);
$aaaadi = aaaadj($Cron["minutes"]);
$inputbox = inputbox("Cron[years]", $aaaadi["years"], "text textVeryTiny", get_phrase("dashboard_cron_entries_years"));
$inputbox .= inputbox("Cron[months]", $aaaadi["months"], "text textVeryTiny", get_phrase("dashboard_cron_entries_months"));
$inputbox .= inputbox("Cron[weeks]", $aaaadi["weeks"], "text textVeryTiny", get_phrase("dashboard_cron_entries_weeks"));
$inputbox .= inputbox("Cron[days]", $aaaadi["days"], "text textVeryTiny", get_phrase("dashboard_cron_entries_days"));
$inputbox .= inputbox("Cron[hours]", $aaaadi["hours"], "text textVeryTiny", get_phrase("dashboard_cron_entries_hours"));
$inputbox .= inputbox("Cron[minutes]", $aaaadi["minutes"], "text textVeryTiny", get_phrase("dashboard_cron_entries_minutes"));
$formContents .= aaaaan(get_phrase("dashboard_cron_entries_run_period"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Cron )
{
$TSUE["TSUE_Database"]->update("tsue_cron", $BuildQuery, "cid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"] . " (" . $enable_disable . ")"));
}
}
if( $delete )
{
$Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Cron )
{
$TSUE["TSUE_Database"]->delete("tsue_cron", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("dashboard_cron_entries_cron_deleted", $Cron["title"] . " (" . $delete . ")"));
}
}
$aaaadk = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_cron ORDER BY active DESC, filename ASC");
if( !$TSUE["TSUE_Database"]->num_rows($aaaadk) )
{
$tableContents = errormessage(get_phrase("dashboard_cron_entries_no_cron"));
}
else
{
$tableContents = "";
while( $Cron = $TSUE["TSUE_Database"]->fetch_assoc($aaaadk) )
{
$loadTime = get_phrase("load_time", round($Cron["loadTime"], 4));
$queryCount = get_phrase("query_count", number_format($Cron["queryCount"]));
$nextRun = get_phrase("dashboard_cron_entries_next_run", convert_relative_time($Cron["nextrun"]));
$linkClass = (!$Cron["active"] ? "linkDisabled" : "");
$aaaadl = aaaaae(array( "run=" . $Cron["cid"] => array( "phrase" => getimage("buttons/refresh.png", get_phrase("dashboard_cron_entries_run_cron")) ) ));
$aaaadm = aaaaae(array( "edit=" . $Cron["cid"] => array( "phrase" => $Cron["title"], "class" => $linkClass ) ));
$aaaadn = aaaaae(array( "delete=" . $Cron["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Cron["active"] )
{
$aaaado = aaaaae(array( "enable_disable=" . $Cron["cid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaado = aaaaae(array( "enable_disable=" . $Cron["cid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaadm . " <span class=\"smallPassiveText\">" . $nextRun . " | " . $queryCount . " | " . $loadTime . "</span>" ), array( "width" => "15%", "text" => $aaaado . $aaaadl . $aaaadn, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_cron_entries"), $tableContents, 2, $aaaadf);
return $HTML;
}
function handlerebuildcaches($logANDreturn = true)
{
global $TSUE;
$content = "";
$cacheContents = array( );
$Announcement = $TSUE["TSUE_Database"]->query_result("SELECT a.*, m.membername FROM tsue_announcements a LEFT JOIN tsue_members m USING(memberid) WHERE a.active = 1 ORDER BY a.date DESC LIMIT 1");
if( $Announcement )
{
$cacheContents["active_announcements_cache"] = array( "aid" => $Announcement["aid"], "memberid" => $Announcement["memberid"], "date" => $Announcement["date"], "title" => $Announcement["title"], "content" => $Announcement["content"] );
}
else
{
$cacheContents["active_announcements_cache"] = array( );
}
$News = $TSUE["TSUE_Database"]->query("SELECT n.*, m.membername FROM tsue_news n LEFT JOIN tsue_members m USING(memberid) WHERE n.active = 1 ORDER BY n.date DESC");
if( $TSUE["TSUE_Database"]->num_rows($News) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($News) )
{
$cacheContents["active_news_cache"][] = array( "nid" => $nItem["nid"], "memberid" => $nItem["memberid"], "date" => $nItem["date"], "title" => $nItem["title"], "content" => $nItem["content"] );
}
}
else
{
$cacheContents["active_news_cache"] = array( );
}
$aaaadp = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_country ORDER BY 'country'");
if( $TSUE["TSUE_Database"]->num_rows($aaaadp) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaadp) )
{
$cacheContents["banned_countries_cache"][] = $nItem["country"];
}
}
else
{
$cacheContents["banned_countries_cache"] = array( );
}
$aaaadq = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_email ORDER BY 'banned_email'");
if( $TSUE["TSUE_Database"]->num_rows($aaaadq) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaadq) )
{
$cacheContents["banned_emails_cache"][] = $nItem["banned_email"];
}
}
else
{
$cacheContents["banned_emails_cache"] = array( );
}
$bannedIPs = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ip_match WHERE match_type = 'banned'");
if( $TSUE["TSUE_Database"]->num_rows($bannedIPs) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($bannedIPs) )
{
$cacheContents["banned_ips_cache"][$nItem["first_octet"]][] = array( $nItem["start_range"], $nItem["end_range"] );
}
}
else
{
$cacheContents["banned_ips_cache"] = array( );
}
$Smilies = $TSUE["TSUE_Database"]->query("SELECT smilie_text, smilie_title, smilie_file FROM tsue_smilies");
if( $TSUE["TSUE_Database"]->num_rows($Smilies) )
{
while( $Smilie = $TSUE["TSUE_Database"]->fetch_assoc($Smilies) )
{
$cacheContents["dialog_smilies_cache"][] = $Smilie;
}
}
else
{
$cacheContents["dialog_smilies_cache"] = array( );
}
$permissions = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_permissions ORDER BY forumid ASC");
if( $TSUE["TSUE_Database"]->num_rows($permissions) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($permissions) )
{
$cacheContents["forums_permissions_cache"][] = array( "forumid" => $nItem["forumid"], "membergroupid" => $nItem["membergroupid"], "permissions" => $nItem["permissions"] );
}
}
else
{
$cacheContents["forums_permissions_cache"] = array( );
}
$prefixes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_thread_prefixes ORDER BY pname ASC");
if( $TSUE["TSUE_Database"]->num_rows($prefixes) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($prefixes) )
{
$cacheContents["forums_thread_prefixes"][] = array( "pid" => $nItem["pid"], "pname" => $nItem["pname"], "cssname" => $nItem["cssname"], "viewpermissions" => $nItem["viewpermissions"] );
}
}
else
{
$cacheContents["forums_thread_prefixes"] = array( );
}
$Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name, filename, contents, viewpermissions, pluginOptions FROM tsue_plugins WHERE `active` = 1");
if( $TSUE["TSUE_Database"]->num_rows($Plugins) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
$cacheContents["tsue_plugins_cache"][] = $nItem;
}
}
else
{
$cacheContents["tsue_plugins_cache"] = array( );
}
$Genres = $TSUE["TSUE_Database"]->query("SELECT gid, gname, gicon, categories FROM tsue_torrents_genres WHERE active = 1 ORDER BY gname ASC");
if( $TSUE["TSUE_Database"]->num_rows($Genres) )
{
while( $Genre = $TSUE["TSUE_Database"]->fetch_assoc($Genres) )
{
$cacheContents["tsue_torrents_genres_cache"][] = $Genre;
}
}
else
{
$cacheContents["tsue_torrents_genres_cache"] = array( );
}
$Themes = $TSUE["TSUE_Database"]->query("SELECT themeid FROM tsue_themes WHERE active = 1");
if( $TSUE["TSUE_Database"]->num_rows($Themes) )
{
while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) )
{
$aaaadr[] = $Theme["themeid"];
}
$TSUE["TSUE_Settings"]->settings["global_settings"]["available_themes"] = implode(",", $aaaadr);
}
$Languages = $TSUE["TSUE_Database"]->query("SELECT languageid FROM tsue_languages WHERE active = 1");
if( $TSUE["TSUE_Database"]->num_rows($Languages) )
{
while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
{
$languageCache[] = $Language["languageid"];
}
$TSUE["TSUE_Settings"]->settings["global_settings"]["available_languages"] = implode(",", $languageCache);
}
updatesettings("global_settings", $TSUE["TSUE_Settings"]->settings["global_settings"]);
$tableContents = "";
if( !empty($cacheContents) )
{
foreach( $cacheContents as $settingname => $settingvalues )
{
updatesettings($settingname, $settingvalues);
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $settingname ), array( "width" => "10%", "text" => getimage("status/success-24.png") ) ));
}
}
if( !$logANDreturn )
{
return NULL;
}
logadminaction(get_phrase("log_cache_all_caches_has_been_updated"));
$HTML = createtable(get_phrase("dashboard_cache_rebuild_caches"), $tableContents, 2);
return $HTML;
}
function aaaady($Pagination, $Type, $WHERE)
{
global $TSUE;
$tabNames = array( 1 => "tabs-1", 2 => "tabs-2", 3 => "tabs-3" );
$tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name") ), array( "width" => "20%", "text" => get_phrase("table_list_date") ), array( "width" => "50%", "text" => get_phrase("table_list_log") ), array( "width" => "10%", "text" => get_phrase("global_action") ) ), NULL, "tableContentTDHeader");
$Logs = $TSUE["TSUE_Database"]->query("SELECT l.*, m.lastactivity, mg.groupname, mg.groupstyle FROM tsue_logs l LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups mg USING(membergroupid) WHERE type = " . intval($Type) . $WHERE . " ORDER BY l.logid DESC " . $Pagination["0"]);
while( $Log = $TSUE["TSUE_Database"]->fetch_assoc($Logs) )
{
$extraText = "";
if( $Type == 3 )
{
$logText = tsue_explode("~~~", $Log["log"]);
$Log["log"] = print_r(unserialize($logText["1"]), true);
$extraText = "<div class=\"accountUpdated\">" . $logText["0"] . "</div>";
unset($logText);
}
$tableContents .= aaaaag(array( array( "width" => "20%", "valign" => "top", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Log["memberid"] => array( "phrase" => getmembername($Log["membername"], $Log["groupstyle"]) ) )) ), array( "width" => "20%", "valign" => "top", "text" => convert_relative_time($Log["date"]) ), array( "width" => "50%", "valign" => "top", "text" => $extraText . strip_tags($Log["log"]) ), array( "width" => "10%", "valign" => "top", "text" => aaaaae(array( "delete=" . $Log["logid"] . "#" . $tabNames[$Log["type"]] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )) ) ));
}
return $tableContents;
}
function handlelogs()
{
global $TSUE;
$HTML = "";
$WHERE = "";
$adminLogs = "";
$aaaads = "";
$keywords = trim(getvar("keywords"));
$prune = intval(getvar("prune"));
$aaaadt = "";
$aaaadu = DATAPATH . "errors/";
$aaaadv = intval(getvar("delete"));
if( $aaaadv && $TSUE["TSUE_Database"]->delete("tsue_logs", "logid=" . $TSUE["TSUE_Database"]->escape($aaaadv)) )
{
$HTML .= successmessage(get_phrase("message_content_has_been_deleted"));
}
if( $prune && !DEMO_MODE )
{
if( $prune == 4 )
{
$Files = scandir($aaaadu);
if( $Files )
{
foreach( $Files as $phpErrorLogFile )
{
if( file_extension($phpErrorLogFile) == "log" )
{
@unlink($aaaadu . $phpErrorLogFile);
}
}
$aaaadt = successmessage(get_phrase("message_content_has_been_deleted"));
}
}
else
{
if( $TSUE["TSUE_Database"]->delete("tsue_logs", "type=" . $TSUE["TSUE_Database"]->escape($prune)) )
{
$aaaadt = successmessage(get_phrase("message_content_has_been_deleted"));
}
}
}
if( $keywords )
{
$WHERE = " AND log LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
}
$aaaadw = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 2" . $WHERE);
if( $aaaadw["logCount"] )
{
$aaaadx = pagination($aaaadw["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#tabs-2");
$tableContents = aaaady($aaaadx, 2, $WHERE);
$adminLogs = createtable(get_phrase("logs_admin_logs"), $tableContents, 4, $aaaadx["1"]);
}
else
{
$adminLogs = get_phrase("no_results_found");
}
$aaaadz = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 1" . $WHERE);
if( $aaaadz["logCount"] )
{
$aaaaea = pagination($aaaadz["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#website-logs");
$tableContents = aaaady($aaaaea, 1, $WHERE);
$aaaads = createtable(get_phrase("logs_website_logs"), $tableContents, 4, $aaaaea["1"]);
}
else
{
$aaaads = get_phrase("no_results_found");
}
$aaaaeb = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 3" . $WHERE);
if( $aaaaeb["logCount"] )
{
$aaaaec = pagination($aaaaeb["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#member-manager");
$tableContents = aaaady($aaaaec, 3, $WHERE);
$aaaaed = createtable(get_phrase("menu_member_manager"), $tableContents, 4, $aaaaec["1"]);
}
else
{
$aaaaed = get_phrase("no_results_found");
}
$aaaaee = "";
if( !DEMO_MODE )
{
$phpErrorLogFile = trim(urldecode(getvar("phpErrorLogFile")));
if( $phpErrorLogFile && file_extension($phpErrorLogFile) == "log" && is_file($aaaadu . $phpErrorLogFile) )
{
$aaaaee .= "
<h5>" . $aaaadu . $phpErrorLogFile . "</h5>
<div class=\"phpErrorLog\">
" . nl2br(file_get_contents($aaaadu . $phpErrorLogFile)) . "
</div>";
}
}
$deletePhpErrorLogFile = trim(urldecode(getvar("deletePhpErrorLogFile")));
if( $deletePhpErrorLogFile && file_extension($deletePhpErrorLogFile) == "log" && is_file($aaaadu . $deletePhpErrorLogFile) )
{
checkdemomode();
unlink($aaaadu . $deletePhpErrorLogFile);
}
if( !DEMO_MODE )
{
$aaaaef = scandir($aaaadu);
if( $aaaaef && 4 < count($aaaaef) )
{
$aaaaee .= "
<ul class=\"phpErrorLogs\">";
foreach( $aaaaef as $FILE )
{
if( file_extension($FILE) == "log" )
{
$aaaaee .= "
<li>[<a href=\"?action=Dashboard&do=Logs&deletePhpErrorLogFile=" . urlencode($FILE) . "#tabs-4\">x</a>] <a href=\"?action=Dashboard&do=Logs&phpErrorLogFile=" . urlencode($FILE) . "#tabs-4\">" . $FILE . " (" . friendly_size(filesize($aaaadu . $FILE)) . ")</a></li>";
}
}
$aaaaee .= "
</ul>";
}
else
{
if( !$aaaaee )
{
$aaaaee = get_phrase("message_nothing_found");
}
}
}
else
{
$aaaaee = get_phrase("message_nothing_found");
}
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$searchForm = aaaabn(createtable(get_phrase("search_logs"), $searchForm), array( ), "?action=Dashboard&do=Logs#tabs-5");
$aaaaeg = "
<a href=\"?action=Dashboard&do=Logs&prune=1#tabs-6\">" . get_phrase("prune_logs_website") . "</a>
|
<a href=\"?action=Dashboard&do=Logs&prune=2#tabs-6\">" . get_phrase("prune_logs_administrator") . "</a>
|
<a href=\"?action=Dashboard&do=Logs&prune=3#tabs-6\">" . get_phrase("prune_member_manager_logs") . "</a>
|
<a href=\"?action=Dashboard&do=Logs&prune=4#tabs-6\">" . get_phrase("prune_php_logs") . "</a>";
return createtabs(array( get_phrase("logs_website_logs") => $aaaads, get_phrase("logs_admin_logs") => $adminLogs, get_phrase("menu_member_manager") => $aaaaed, "PHP" => $aaaaee, get_phrase("search_logs") => $searchForm, get_phrase("prune_logs") => $aaaadt . $aaaaeg ));
}
function handleserver()
{
global $TSUE;
checkdemomode();
$mysqlVersion = $TSUE["TSUE_Database"]->query_result("SELECT VERSION() AS version");
$serverinfo = (SAFEMODE ? "<br />Safe Mode" : "");
$serverinfo .= (ini_get("file_uploads") == 0 || strtolower(ini_get("file_uploads")) == "off" ? "<br />File Uploads: Disabled" : "");
$aaaaeh = friendly_size(foldersize(ROOTPATH));
$aaaaei = 0;
$Tables = $TSUE["TSUE_Database"]->query("SHOW TABLE STATUS");
while( $Table = $TSUE["TSUE_Database"]->fetch_assoc($Tables) )
{
$aaaaei += $Table["Data_length"] + $Table["Index_length"];
}
$offset = timezone_offset_get(new DateTimeZone("GMT"), new DateTime());
$serverTime = date("d-m-Y h:i:s") . " " . date_default_timezone_get() . " " . fetch_timezones($offset);
$Variables = array( );
$MySQLVariables = $TSUE["TSUE_Database"]->query("SHOW VARIABLES WHERE Variable_Name IN (\"ft_max_word_len\", \"ft_min_word_len\", \"max_allowed_packet\", \"max_connections\")");
while( $V = $TSUE["TSUE_Database"]->fetch_assoc($MySQLVariables) )
{
if( $V["Variable_name"] == "max_allowed_packet" )
{
$V["Value"] = friendly_size($V["Value"]);
}
$Variables[] = $V["Variable_name"] . ": " . $V["Value"];
}
$serverDetails = array( "Server Type" => PHP_OS, "Server Software" => php_uname(), "Server Time" => $serverTime, "PHP Version" => phpversion(), "PHP Memory Limit" => friendly_size(ini_get("memory_limit")), "PHP Max Post Size" => ini_get("post_max_size"), "PHP Max Upload Size" => ini_get("upload_max_filesize"), "MySQL Version" => (($mysqlVersion ? $mysqlVersion["version"] : "N/A")) . " (" . implode(" - ", $Variables) . ")", "System Load Average(s)" => loadaverage(), "PHPInfo" => "<a href=\"?action=php-info\" target=\"_blank\">Click here to view</a>", "Server Status" => "<a href=\"?action=server-status\" target=\"_blank\">Click here to view</a>", "TSUE Folder Size" => $aaaaeh, "TSUE Database Size" => friendly_size($aaaaei) );
$tableContents = "";
foreach( $serverDetails as $text => $val )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => "<b>" . $text . ":</b> " . $val ) ));
}
$HTML = createtable(get_phrase("dashboard_server_alt"), $tableContents, 1);
return $HTML;
}
function loadaverage()
{
if( strtoupper(substr(PHP_OS, 0, 3)) === "WIN" && class_exists("COM") )
{
$wmi = new COM("Winmgmts://");
$server = $wmi->execquery("SELECT LoadPercentage FROM Win32_Processor");
$cpu_num = 0;
$load_total = 0;
foreach( $server as $cpu )
{
$cpu_num++;
$load_total += $cpu->loadpercentage;
}
return (int) round($load_total / $cpu_num);
}
else
{
if( function_exists("sys_getloadavg") )
{
return implode(" - ", sys_getloadavg());
}
return "-";
}
}
function handlenotes()
{
global $TSUE;
$HTML = "";
if( isset($_POST["notes"]) )
{
$buildQuery = array( "noteType" => "admin", "notes" => trim($_POST["notes"]), "updated" => TIMENOW, "updater" => $TSUE["TSUE_Member"]["memberid"] );
$TSUE["TSUE_Database"]->replace("tsue_notes", $buildQuery);
logadminaction(get_phrase("notes_has_been_updated"));
$HTML .= successmessage(get_phrase("message_saved"));
}
$Notes = $TSUE["TSUE_Database"]->query_result("SELECT notes FROM tsue_notes WHERE noteType = 'admin'");
if( !$Notes["notes"] )
{
$Notes["notes"] = "";
}
$tableContents = aaaaag(array( array( "width" => "100%", "text" => textarea("notes", $Notes["notes"], true, "templateTextareaTinyMCE"), "align" => "left" ) ));
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left" ) ));
$HTML .= aaaabn(createtable(get_phrase("dashboard_notes_alt"), $tableContents));
return $HTML;
}
function handlestatistics()
{
global $TSUE;
global $postsCache;
global $setYear;
global $chartType;
$chartType = (isset($_GET["s"]) ? strip_tags(trim($_GET["s"])) : "primetimeMembers");
$setYear = (isset($_GET["year"]) && $_GET["year"] ? intval($_GET["year"]) : convert_time(TIMENOW, "Y"));
$prepareStats = "";
$HTML = "
<div id=\"chart_buttons\">
" . yearselectbox() . "
<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=primetimeMembers\"" . ((!$chartType || $chartType == "primetimeMembers" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_most_active") . "</a>
<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=primetimeRegistrations\"" . (($chartType == "primetimeRegistrations" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_registrations") . "</a>
<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=primetimeThreads\"" . (($chartType == "primetimeThreads" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_threads") . "</a>
<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=primetimePosts\"" . (($chartType == "primetimePosts" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_posts") . "</a>
<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=primetimeTorrents\"" . (($chartType == "primetimeTorrents" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_torrents") . "</a>
</div>";
switch( $chartType )
{
case "primetimeMembers":
$prepareStats = primetimemembers($setYear);
break;
case "primetimeRegistrations":
$prepareStats = primetimeregistrations($setYear);
break;
case "primetimeThreads":
$prepareStats = primetimethreads($setYear);
break;
case "primetimePosts":
$prepareStats = primetimeposts($setYear);
break;
case "primetimeTorrents":
$prepareStats = primetimetorrents($setYear);
break;
}
if( $prepareStats )
{
$HTML .= "
<div id=\"chart_div\">
<div id=\"chart_notice\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>
</div>
<script type=\"text/javascript\" src=\"http://www.google.com/jsapi\"></script>
<script type=\"text/javascript\">
google.load(\"visualization\", \"1\", {\"packages\":[\"corechart\"]});
google.setOnLoadCallback(drawChart);
function drawChart()
{
var data = new google.visualization.DataTable();
" . $prepareStats["buildScript"] . "
var options = {chartArea:{top:\"" . $prepareStats["top"] . "\"}, \"width\":\"" . $prepareStats["width"] . "\", height:\"" . $prepareStats["height"] . "\", legend:\"" . $prepareStats["legend"] . "\"};
var chart = new google.visualization.PieChart(document.getElementById(\"chart_div\"));
chart.draw(data, options);
}
\$('select[name=\"year\"]').change(function()
{
var \$setYear = parseInt(\$(this).val());
if(\$setYear)
{
window.location = \"?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=" . $chartType . "&year=\"+\$setYear;
}
});
</script>";
}
return $HTML;
}
function handlereadpm()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$keywords = trim(getvar("keywords"));
$WHERE = "";
$message_id = intval(getvar("message_id"));
if( $message_id )
{
$aaaaek = $TSUE["TSUE_Database"]->query_result("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE message_id = " . $TSUE["TSUE_Database"]->escape($message_id) . " AND (message.owner_deleted = 0 OR message.receiver_deleted=0)");
if( !$aaaaek )
{
return errormessage(get_phrase("message_nothing_found"));
}
addbreadcrumb(array( get_phrase("dashboard_readpm") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&message_id=" . $message_id ));
$TSUE["TSUE_Security"] = new TSUE_Security();
$TSUE["TSUE_Parser"] = new TSUE_Parser();
$aaaael = "";
$Replies = $TSUE["TSUE_Database"]->query("SELECT r.*, m.membername, g.groupstyle FROM tsue_messages_replies r LEFT JOIN tsue_members m ON(r.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE message_id = " . $TSUE["TSUE_Database"]->escape($message_id) . " ORDER BY reply_date ASC");
while( $Reply = $TSUE["TSUE_Database"]->fetch_assoc($Replies) )
{
$sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Reply["memberid"] => array( "phrase" => getmembername($Reply["membername"], $Reply["groupstyle"]) ) ));
$reply_date = convert_relative_time($Reply["reply_date"]);
$message = $TSUE["TSUE_Parser"]->parse($Reply["reply"]);
$aaaael .= "
<div style=\"float: left; margin-bottom: 10px; border: 1px solid #ccc; width: 100%;\">
<div style=\"padding: 5px;\">
<span style=\"float: right;\">" . $sender . " | " . $reply_date . "</span>
" . $message . "
</div>
</div>";
}
return $aaaael;
}
$searchType = trim(getvar("searchType"));
if( !in_array($searchType, array( "subject", "owner", "receiver" )) )
{
$searchType = "subject";
}
if( $keywords && $searchType )
{
switch( $searchType )
{
case "subject":
$WHERE = " AND message.subject LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
break;
case "owner":
$searchMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($keywords));
$WHERE = " AND message.owner_memberid = " . $searchMember["memberid"];
break;
case "receiver":
$searchMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($keywords));
$WHERE = " AND message.receiver_memberid = " . $searchMember["memberid"];
break;
}
}
$orderBy["fieldname"] = "message.message_date";
$orderBy["type"] = "DESC";
if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
{
$allowedFieldNames = array( "message.owner_memberid", "message.receiver_memberid", "message.subject", "message.message_date" );
$allowedTypes = array( "DESC", "ASC" );
if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
{
$orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
$orderBy["type"] = $_REQUEST["orderBy"]["type"];
}
}
if( isset($_POST["deleteMessages"]) && $_POST["deleteMessages"] )
{
$deleteMessages = implode(",", array_map("intval", $_POST["deleteMessages"]));
$TSUE["TSUE_Database"]->delete("tsue_messages_master", "message_id IN (" . $deleteMessages . ")");
$TSUE["TSUE_Database"]->delete("tsue_messages_replies", "message_id IN (" . $deleteMessages . ")");
$Phrase = get_phrase("messages_deleted") . " (" . $deleteMessages . ")";
logadminaction($Phrase);
$HTML .= successmessage($Phrase);
}
$aaaaem = $TSUE["TSUE_Database"]->query("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE (message.owner_deleted = 0 OR message.receiver_deleted=0)" . $WHERE);
$messageCount = $TSUE["TSUE_Database"]->num_rows($aaaaem);
if( !$messageCount )
{
return errormessage(get_phrase("message_nothing_found"));
}
$Pagination = pagination($messageCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&orderBy[type]=" . $orderBy["type"] . (($keywords ? "&keywords=" . urlencode($keywords) . "&searchType=" . $searchType : "")));
$aaaaem = $TSUE["TSUE_Database"]->query("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE (message.owner_deleted = 0 OR message.receiver_deleted=0)" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
while( $Message = $TSUE["TSUE_Database"]->fetch_assoc($aaaaem) )
{
$owner = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Message["owner_memberid"] => array( "phrase" => getmembername($Message["owner"], $Message["ownergroup"]) ) ));
$receiver = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Message["receiver_memberid"] => array( "phrase" => getmembername($Message["receiver"], $Message["receivergroup"]) ) ));
$message_date = convert_relative_time($Message["message_date"]);
$messageLink = aaaaae(array( "message_id=" . $Message["message_id"] => array( "phrase" => strip_tags($Message["subject"]) ) ));
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $messageLink . "<br /><span class=\"smallPassiveTextBlock\">" . $message_date . ", " . $owner . " ---> " . $receiver . "</span>" ), array( "width" => "20%", "text" => "<input type=\"checkbox\" name=\"deleteMessages[]\" value=\"" . $Message["message_id"] . "\" />", "align" => "right" ) ));
}
$tableContents .= aaaaag(array( array( "width" => "100%", "colspan" => 2, "align" => "right", "text" => "<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("messages_delete") . "\" /> <input type=\"checkbox\" name=\"checkALL\" value=\"deleteMessages[]\" />" ) ));
$selectBox = "
<select name=\"searchType\" class=\"selectNoWidth\">
<option value=\"subject\"" . (($searchType == "subject" ? " selected=\"selected\"" : "")) . ">" . get_phrase("messages_subject") . "</option>
<option value=\"owner\"" . (($searchType == "owner" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sender") . "</option>
<option value=\"receiver\"" . (($searchType == "receiver" ? " selected=\"selected\"" : "")) . ">" . get_phrase("receiver") . "</option>
</select>";
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
$HTML .= aaaabn(createtable(get_phrase("dashboard_readpm_alt"), $tableContents, 2, $Pagination["1"]));
$HTML .= "
<div style=\"float: right; margin-top: 10px;\">
" . aaaabn("
" . get_phrase("torrents_sort_by") . "
<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">
<option value=\"message.owner_memberid\"" . (($orderBy["fieldname"] == "message.owner_memberid" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sender") . "</option>
<option value=\"message.receiver_memberid\"" . (($orderBy["fieldname"] == "message.receiver_memberid" ? " selected=\"selected\"" : "")) . ">" . get_phrase("receiver") . "</option>
<option value=\"message.subject\"" . (($orderBy["fieldname"] == "message.subject" ? " selected=\"selected\"" : "")) . ">" . get_phrase("messages_subject") . "</option>
<option value=\"message.message_date\"" . (($orderBy["fieldname"] == "message.message_date" ? " selected=\"selected\"" : "")) . ">" . get_phrase("date_added") . "</option>
</select>
<select name=\"orderBy[type]\" class=\"selectNoWidth\">
<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>
<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>
</select>
<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "
</div>";
return $HTML;
}
function handledatabase()
{
global $TSUE;
$SQL = intval(getvar("SQL"));
$AutomaticQuery = intval(getvar("AutomaticQuery"));
$Tables = intval(getvar("Tables"));
$DatabaseBackup = intval(getvar("DatabaseBackup"));
if( $SQL )
{
addbreadcrumb(array( get_phrase("database_sql_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&SQL=1" ));
return aaaaen();
}
if( $AutomaticQuery )
{
addbreadcrumb(array( get_phrase("auto_query") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&AutomaticQuery=1" ));
return aaaaeo();
}
if( $Tables )
{
addbreadcrumb(array( get_phrase("database_tables") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&Tables=1" ));
return aaaaep();
}
if( $DatabaseBackup )
{
addbreadcrumb(array( get_phrase("database_backup") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&DatabaseBackup=1" ));
$backupDir = DATAPATH . "backups/";
if( isset($_GET["sqlFile"]) && !empty($_GET["sqlFile"]) && substr($_GET["sqlFile"], -7) === ".sql.gz" && is_file($backupDir . $_GET["sqlFile"]) )
{
$fullPath = $backupDir . $_GET["sqlFile"];
$fileSize = filesize($fullPath);
if( headers_sent() )
{
exit( "Critical Error: Headers already sent!" );
}
if( ini_get("zlib.output_compression") )
{
ini_set("zlib.output_compression", "Off");
}
$download_rate = 4096;
setheader("Content-type", "application/octet-stream", true);
setheader("ETag", TIMENOW, true);
setheader("Content-Length", $fileSize, true);
setdownloadfilename($_GET["sqlFile"]);
if( $localFile = fopen($fullPath, "rb") )
{
while( !feof($localFile) )
{
if( connection_status() != CONNECTION_NORMAL )
{
break;
}
echo fread($localFile, round($download_rate * 1024));
@flush();
sleep(1);
}
fclose($localFile);
unlink($fullPath);
exit();
}
}
if( strtoupper($_SERVER["REQUEST_METHOD"]) == "POST" )
{
$sqlFiles = (isset($_POST["sqlFiles"]) ? $_POST["sqlFiles"] : "");
if( is_array($sqlFiles) && !empty($sqlFiles) )
{
foreach( $sqlFiles as $sqlFile )
{
if( substr($sqlFile, -7) === ".sql.gz" && is_file($backupDir . $sqlFile) )
{
unlink($backupDir . $sqlFile);
logadminaction(get_phrase("sql_x_deleted", $sqlFile));
}
}
}
}
$totalSize = 0;
$sqlFiles = scandir($backupDir);
$fileCache = array( );
foreach( $sqlFiles as $sqlFile )
{
if( substr($sqlFile, -7) === ".sql.gz" )
{
$fileSize = filesize($backupDir . $sqlFile);
$totalSize += $fileSize;
$fileCache[] = array( "filename" => $sqlFile, "filesize" => $fileSize, "filectime" => filectime($backupDir . $sqlFile) );
}
}
$HTML = "";
if( $fileCache )
{
$HTML .= "
<form method=\"post\">
<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">
<tr>
<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("forums_attached_files_filename") . "</th>
<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("forums_attached_files_filesize") . "</th>
<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("date_added") . "</th>
<th style=\"text-align: center; padding: 5px; background: #ddd;\"><input type=\"checkbox\" name=\"checkALL\" value=\"sqlFiles[]\" /></th>
</tr>";
foreach( $fileCache as $File )
{
$HTML .= "
<tr>
<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\"><a href=\"?action=Dashboard&do=Database&DatabaseBackup=1&sqlFile=" . urlencode($File["filename"]) . "\">" . $File["filename"] . "</a></td>
<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\">" . friendly_size($File["filesize"]) . "</td>
<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\">" . convert_time($File["filectime"], "d-m-Y h:i") . "</td>
<td style=\"text-align: center; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\"><input type=\"checkbox\" name=\"sqlFiles[]\" value=\"" . $File["filename"] . "\" /></th>
</tr>";
}
$HTML .= "
<tr>
<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\"></th>
<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . friendly_size($totalSize) . "</th>
<th style=\"text-align: right; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\" colspan=\"2\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_delete") . "\" /></td>
</tr>";
$HTML .= "
</table>
</form><br />";
}
return "
" . $HTML . "
<div style=\"padding: 10px; border: 1px solid #ddd; line-height: 1.6\">
<div style=\"font-weight: bold; font-size: 14px;\">Automated MySQL Backup using CRON via shell.</div>
<div style=\"color: #999; font-size: 12px;\">This script allows you to automatically make a backup of your TSUE database using cron job.</div>
<div style=\"margin-top: 10px;\"><input type=\"text\" style=\"padding: 3px; border: 1px solid #ddd; font-size: 11px; color: red; width: 98%;\" value='php -q \"" . CLIPATH . "backupDatabase.php\"' /></div>
<div style=\"margin: 10px; padding: 5px; background: #f6f8fa;\">
" . nl2br("<b>cPanel</b>
Click on the Cron Job icon in your control panel and select the Once A Day option from the Common Settings dropdown menu. Then paste the cron command into the Command field.
<b>DirectAdmin</b>
The command for DirectAdmin is generally the same as above, however, you need to reference the full path to the php binary.
This can be /usr/bin/php, /usr/bin/home/php or /usr/local/bin/php but this is dependent on the server setup and you should check with your Server Administrator for the full path to the php binary.
An example command to run is:
/usr/bin/php -q \"" . CLIPATH . "backupDatabase.php\"
/usr/local/bin/php -q \"" . CLIPATH . "backupDatabase.php\"
<b>Plesk</b>
You can specify the php command using the following on Linux Plesk:
env php -q \"" . CLIPATH . "backupDatabase.php\"
<b>SSH (via crontab -e)</b>
@daily php -q \"" . CLIPATH . "backupDatabase.php\"") . "
</div>
</div>";
}
else
{
$aaaaeq = optionbox("Database/SQL", get_phrase("database_sql"), get_phrase("database_sql_alt"), "Database");
$aaaaeq .= optionbox("Database/AutomaticQuery", get_phrase("auto_query"), get_phrase("auto_query_alt"), "Database");
$aaaaeq .= optionbox("Database/Tables", get_phrase("database_tables"), get_phrase("database_tables_alt"), "Database");
$aaaaeq .= optionbox("Database/DatabaseBackup", get_phrase("database_backup"), get_phrase("database_backup_alt"), "Database");
return $aaaaeq;
}
}
function aaaaen()
{
global $TSUE;
$HTML = "";
$Query = trim(getvar("Query"));
if( ispost() && $Query )
{
checkdemomode();
$TSUE["TSUE_Database"]->query($Query);
$HTML .= successmessage(get_phrase("your_sql_query_has_been_executed"));
}
$textarea = textarea("Query", $Query);
$formContents = aaaaan(get_phrase("database_sql_alt"), $textarea);
$HTML .= aaaabg($formContents, array( ), "", "database_sql_alt");
return $HTML;
}
function aaaaeo()
{
global $TSUE;
$HTML = "";
$queryID = trim(getvar("queryID"));
$confirmed = trim(getvar("confirmed"));
$affectedRows = 0;
if( ispost() && $queryID )
{
if( $confirmed != "true" )
{
$hiddenInputBoxes = array( "AutomaticQuery" => 1, "queryID" => $queryID, "confirmed" => "true" );
$formContents = errormessage("
" . get_phrase("auto_query_" . $queryID) . "
<p>" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "</p>
<p><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_apply") . "\" /></p>");
return aaaabn($formContents, $hiddenInputBoxes);
}
$Queries = array( 1 => "ALTER TABLE `tsue_member_profile` CHANGE `torrentStyle` `torrentStyle` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '2' COMMENT 'Torrent List Style. 1: Modern 2: Classic';~UPDATE `tsue_member_profile` SET torrentStyle = 2;", 2 => "ALTER TABLE `tsue_member_profile` CHANGE `torrentStyle` `torrentStyle` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Torrent List Style. 1: Modern 2: Classic';~UPDATE `tsue_member_profile` SET torrentStyle = 1;", 3 => "UPDATE tsue_member_profile SET invites_left = 0;", 4 => "UPDATE tsue_member_profile SET uploaded = 0;", 5 => "UPDATE tsue_member_profile SET downloaded = 0;", 6 => "UPDATE tsue_member_profile SET hitRuns = 0;", 7 => "UPDATE tsue_member_profile SET total_warns = 0;", 8 => "UPDATE tsue_member_profile SET muted = 0;", 9 => "UPDATE tsue_member_profile SET points = 0;", 10 => "UPDATE tsue_members SET languageid = " . $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"], 11 => "UPDATE tsue_members SET themeid = " . $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"], 12 => "DELETE FROM tsue_messages_master;~DELETE FROM tsue_messages_replies;~UPDATE tsue_members SET unread_messages=0;", 13 => "DELETE FROM tsue_member_alerts;~UPDATE tsue_members SET unread_alerts=0;" );
if( isset($Queries[$queryID]) )
{
checkdemomode();
$Query = tsue_explode("~", $Queries[$queryID]);
if( $Query )
{
foreach( $Query as $SQL )
{
$TSUE["TSUE_Database"]->query($SQL);
$affectedRows += $TSUE["TSUE_Database"]->affected_rows();
}
$HTML .= successmessage(get_phrase("your_sql_query_has_been_executed") . " - " . get_phrase("affected_rows", $affectedRows));
}
}
else
{
$HTML .= errormessage(get_phrase("message_content_error"));
}
}
$optionArray = array( "", get_phrase("auto_query_1"), get_phrase("auto_query_2"), get_phrase("auto_query_3"), get_phrase("auto_query_4"), get_phrase("auto_query_5"), get_phrase("auto_query_6"), get_phrase("auto_query_7"), get_phrase("auto_query_8"), get_phrase("auto_query_9"), get_phrase("auto_query_10"), get_phrase("auto_query_11"), get_phrase("auto_query_12"), get_phrase("auto_query_13") );
$selectbox = selectbox("queryID", $queryID, $optionArray);
$formContents = aaaaan(get_phrase("auto_query"), $selectbox, get_phrase("auto_query_tip"));
$HTML .= aaaabg($formContents, array( ), "", "button_apply");
return $HTML;
}
function aaaaep()
{
global $TSUE;
checkdemomode();
$HTML = "";
$tableContents = "";
$requestedTables = getvar("requestedTables");
$dl = getvar("dl");
if( $dl )
{
$fullPath = DATAPATH . "cache/" . $dl;
if( !file_exists($fullPath) )
{
return errormessage(get_phrase("message_content_error"));
}
$fileSize = filesize($fullPath);
if( headers_sent() )
{
exit( "Critical Error: Headers already sent!" );
}
if( ini_get("zlib.output_compression") )
{
ini_set("zlib.output_compression", "Off");
}
$download_rate = 4096;
setheader("Content-type", "application/octet-stream", true);
setheader("ETag", TIMENOW, true);
setheader("Content-Length", $fileSize, true);
setdownloadfilename($dl);
if( $localFile = fopen($fullPath, "rb") )
{
while( !feof($localFile) )
{
if( connection_status() != CONNECTION_NORMAL )
{
break;
}
echo fread($localFile, round($download_rate * 1024));
@flush();
sleep(1);
}
fclose($localFile);
unlink($fullPath);
exit();
}
return errormessage(get_phrase("message_content_error"));
}
if( IS_AJAX && $requestedTables && ($requestedTables = tsue_explode(",", $requestedTables)) )
{
$time = convert_time(TIMENOW, "dS F Y \a\t H:i");
$mysqlversion = $TSUE["TSUE_Database"]->query_result("SELECT VERSION() AS version");
$backupSQL = "-- -------------------------------------------
-- TSUE Database Backup
-- Generated: " . $time . "
-- PHP Version: " . phpversion() . "
-- MySQL Version: " . $mysqlversion["version"] . "
-- TSUE Version: " . V . "
-- -------------------------------------------
";
foreach( $requestedTables as $Table )
{
if( preg_match("#^[a-zA-Z_]+\$#", $Table) )
{
$backupSQL .= "
-- ----------------------------------------------------------------------
";
$backupSQL .= "-- Table structure for table `" . $Table . "`";
$backupSQL .= "
-- ----------------------------------------------------------------------
";
$Query = $TSUE["TSUE_Database"]->query_result("SHOW CREATE TABLE `" . $Table . "`");
$backupSQL .= $Query["Create Table"] . ";
";
$backupSQL .= "
-- ----------------------------------------------------------------------
";
$backupSQL .= "-- Dumping data for table `" . $Table . "`";
$backupSQL .= "
-- ----------------------------------------------------------------------
";
$Fields = array( );
$rowTypes = array( );
$Rows = $TSUE["TSUE_Database"]->query("SHOW COLUMNS FROM " . $Table);
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Rows) )
{
$Fields[] = "`" . $Row["Field"] . "`";
$rowTypes[] = $Row["Type"];
}
$Datas = $TSUE["TSUE_Database"]->query("SELECT * FROM " . $Table);
if( $TSUE["TSUE_Database"]->num_rows($Datas) )
{
while( $Data = $TSUE["TSUE_Database"]->fetch_row($Datas) )
{
foreach( $Data as $j => $k )
{
if( preg_match("#binary|blob#isU", strtolower($rowTypes[$j])) )
{
$Data[$j] = (!$k ? "''" : "0x" . bin2hex($k));
}
else
{
$Data[$j] = $TSUE["TSUE_Database"]->escape($k);
}
}
$backupSQL .= "INSERT INTO " . $Table . " (" . implode(",", $Fields) . ") VALUES (" . implode(",", $Data) . ");
";
}
}
}
}
$fileName = "tsue_db_backup_" . TIMENOW . ".sql";
if( function_exists("gzopen") )
{
$fileName .= ".gz";
$fp = gzopen(DATAPATH . "cache/" . $fileName, "w9");
gzwrite($fp, $backupSQL);
}
else
{
$fp = fopen(DATAPATH . "cache/" . $fileName . ".sql", "w");
fwrite($fp, $backupSQL);
}
exit( get_phrase("your_backup_is_ready", "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&Tables=1&dl=" . $fileName) );
}
else
{
$Phrases = array( "Name" => get_phrase("database_table"), "Engine" => get_phrase("database_engine"), "Rows" => get_phrase("database_rows"), "Data_length" => get_phrase("database_data_length"), "Index_length" => get_phrase("database_index"), "Collation" => get_phrase("database_collation") );
$tableContents .= aaaaag(array( array( "width" => "25%", "text" => $Phrases["Name"] ), array( "width" => "13%", "text" => $Phrases["Engine"] ), array( "width" => "10%", "text" => $Phrases["Rows"] ), array( "width" => "13%", "text" => $Phrases["Data_length"] ), array( "width" => "12%", "text" => $Phrases["Index_length"] ), array( "width" => "20%", "text" => $Phrases["Collation"] ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"requestedTables[]\" />" ) ), "tableContentTR", "tableContentTDHeader");
$totalSize = 0;
$Tables = $TSUE["TSUE_Database"]->query("SHOW TABLE STATUS");
while( $Table = $TSUE["TSUE_Database"]->fetch_assoc($Tables) )
{
$totalSize += $Table["Data_length"] + $Table["Index_length"];
$tableContents .= aaaaag(array( array( "width" => "25%", "text" => $Table["Name"] ), array( "width" => "13%", "text" => $Table["Engine"] ), array( "width" => "10%", "text" => number_format($Table["Rows"]) ), array( "width" => "13%", "text" => ($Table["Data_length"] ? friendly_size($Table["Data_length"]) : "0") ), array( "width" => "12%", "text" => ($Table["Index_length"] ? friendly_size($Table["Index_length"]) : "0") ), array( "width" => "20%", "text" => $Table["Collation"] ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"requestedTables[]\" value=\"" . $Table["Name"] . "\"" . (($requestedTables && in_array($Table["Name"], $requestedTables) ? " checked=\"checked\"" : "")) . " />" ) ), "", "tableContentTD small");
}
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => "<span style=\"margin-right: 40px;\">" . get_phrase("database_size", "<b>" . friendly_size($totalSize) . "</b>") . "</span> " . aaaabm(get_phrase("database_backup_selected_tables")), "align" => "right", "colspan" => 7 ) ));
$script = "
<script type=\"text/javascript\">
\$(\"#simpleForm\").submit(function(e)
{
e.preventDefault();
var \$requestedTables = new Array();
var \$rCount=0;
\$searchCheckboxes = \$('input[name=\"requestedTables[]\"]', this).each(function()
{
if(\$(this).is(\":checked\"))
{
\$requestedTables[\$rCount] = \$(this).val();
\$rCount++;
}
});
if(!\$rCount)
{
return;
}
\$(\"#mainText\").html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("backup_is_being_generated") . "');
buildQuery = \"isAjax=1&action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&Tables=1&requestedTables=\"+\$requestedTables.join(\",\");
\$.ajax
({
type: \"POST\",
data: buildQuery,
beforeSend: function()
{
TSUEAdmin.hideLoader();
},
success: function(result)
{
\$(\"#mainText\").html(result);
}
});
return false;
})
</script>";
$HTML .= aaaabn(createtable(get_phrase("database_tables_alt"), $tableContents, 7), array( ), "", $script);
return $HTML;
}
}
function handleannouncements()
{
global $TSUE;
$HTML = "";
$aaaaer = aaaaae(array( "new=1" => array( "phrase" => get_phrase("announcement_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$tweet = intval(getvar("tweet"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Announcement = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Announcement )
{
$TSUE["TSUE_Database"]->update("tsue_announcements", $BuildQuery, "aid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("announcement_x_has_been_updated", $Announcement["title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
}
}
if( $delete )
{
$Announcement = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Announcement )
{
$TSUE["TSUE_Database"]->delete("tsue_announcements", "aid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("announcement_x_has_been_deleted", $Announcement["title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
if( $edit || $new )
{
$Announcement = array( "active" => 1, "title" => "", "content" => "", "reset" => 0 );
$aaaaam = "";
if( $edit )
{
$Announcement = $TSUE["TSUE_Database"]->query_result("SELECT active,title,content FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Announcement )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Announcement["reset"] = (isset($_POST["Announcement"]["reset"]) ? intval($_POST["Announcement"]["reset"]) : 0);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Announcement["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("announcement_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Announcement"]) )
{
$Announcement = $_POST["Announcement"];
if( !$Announcement["title"] )
{
$formErrors[] = get_phrase("news_error_no_title");
}
if( !$Announcement["content"] )
{
$formErrors[] = get_phrase("news_error_no_content");
}
if( !isset($formErrors) )
{
$buildQuery = array( "active" => $Announcement["active"], "title" => $Announcement["title"], "content" => $Announcement["content"] );
if( $edit )
{
if( $Announcement["reset"] )
{
$buildQuery["date"] = TIMENOW;
}
$TSUE["TSUE_Database"]->update("tsue_announcements", $buildQuery, "aid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$buildQuery["memberid"] = $TSUE["TSUE_Member"]["memberid"];
$buildQuery["date"] = TIMENOW;
$TSUE["TSUE_Database"]->insert("tsue_announcements", $buildQuery);
}
logadminaction(get_phrase("announcement_x_has_been_updated", $Announcement["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
handlerebuildcaches(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Announcement[active]", $Announcement["active"]);
$formContents = aaaaan(get_phrase("announcement_active"), $radioButtons);
if( $edit )
{
$radioButtons = radioyesno("Announcement[reset]", $Announcement["reset"]);
$formContents .= aaaaan(get_phrase("reset_announcement"), $radioButtons, get_phrase("reset_announcement_alt"));
}
$inputbox = inputbox("Announcement[title]", $Announcement["title"]);
$formContents .= aaaaan(get_phrase("announcement_title"), $inputbox);
$textarea = textarea("Announcement[content]", $Announcement["content"], true);
$formContents .= aaaaan(get_phrase("announcement_content"), $textarea);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $tweet )
{
$Announcement = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($tweet));
if( $Announcement )
{
$HTML .= posttotwitter($Announcement["content"], 120);
}
}
$Announcements = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_announcements ORDER BY active DESC, date DESC");
if( !$TSUE["TSUE_Database"]->num_rows($Announcements) )
{
$tableContents = errormessage(get_phrase("announcements_no_announcement_yet"));
}
else
{
$tableContents = "";
while( $Announcement = $TSUE["TSUE_Database"]->fetch_assoc($Announcements) )
{
$linkClass = (!$Announcement["active"] ? "linkDisabled" : "");
$aaaaes = aaaaae(array( "edit=" . $Announcement["aid"] => array( "phrase" => $Announcement["title"], "class" => $linkClass ) ));
$aaaaet = aaaaae(array( "delete=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaaca = aaaaae(array( "tweet=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/twitter.png", "Tweet") ) ));
if( $Announcement["active"] )
{
$aaaaeu = aaaaae(array( "enable_disable=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaaeu = aaaaae(array( "enable_disable=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaaes . " <span class=\"smallPassiveText\">" . get_phrase("news_created", convert_relative_time($Announcement["date"])) . "</span>" ), array( "width" => "20%", "text" => $aaaaca . $aaaaeu . $aaaaet, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_announcements"), $tableContents, 2, $aaaaer);
return $HTML;
}
function handletorrents()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$manageTorrents = getvar("manageTorrents", false, false);
$torrentAction = getvar("torrentAction");
$hit_run_ratio = getvar("hit_run_ratio");
$new_category = intval(getvar("new_category"));
$upload_multiplier = getvar("upload_multiplier");
$download_multiplier = getvar("download_multiplier");
$tags = getvar("tags");
$searchType = trim(getvar("searchType"));
$keywords = trim(getvar("keywords"));
$categories = getvar("categories", false, false);
$sortOptions = getvar("sortOptions", false, false);
$showOnly = getvar("showOnly");
$WHERE = "";
$aaaaev = "";
$pagerConditions = array( );
$orderBY = " ORDER BY t.sticky DESC, t.added DESC";
$SelectedSortBy["added"] = " selected=\"selected\"";
$SelectedSortBy["times_completed"] = "";
$SelectedSortBy["size"] = $SelectedSortBy["times_completed"];
$SelectedSortBy["leechers"] = $SelectedSortBy["size"];
$SelectedSortBy["seeders"] = $SelectedSortBy["leechers"];
$SelectedOrderBy["desc"] = " selected=\"selected\"";
$SelectedOrderBy["asc"] = "";
if( !empty($sortOptions) && is_array($sortOptions) && count($sortOptions) == 2 )
{
$availableSortBY = array( "added", "seeders", "leechers", "size", "times_completed" );
$availableOrderBy = array( "asc", "desc" );
if( !empty($sortOptions["sortBy"]) && !empty($sortOptions["sortOrder"]) && in_array($sortOptions["sortOrder"], $availableOrderBy) && in_array($sortOptions["sortBy"], $availableSortBY) )
{
$SelectedSortBy[$sortOptions["sortBy"]] = " selected=\"selected\"";
$SelectedOrderBy[$sortOptions["sortOrder"]] = " selected=\"selected\"";
$orderBY = " ORDER BY t." . $sortOptions["sortBy"] . " " . strtoupper($sortOptions["sortOrder"]);
$pagerConditions[] = "sortOptions[sortBy]=" . $sortOptions["sortBy"];
$pagerConditions[] = "sortOptions[sortOrder]=" . $sortOptions["sortOrder"];
}
}
if( !$showOnly || !in_array($showOnly, array( "anonymouse", "record_stats", "upload_multiplier", "download_multiplier", "nuked", "hitRunRatio", "external", "dead", "sticky", "torrents_has_no_imdb", "silver_torrents", "x2_torrents" )) )
{
$showOnly = "";
}
if( ispost() && $torrentAction && $manageTorrents )
{
$tids = array_map("intval", $manageTorrents);
$escaped = "tid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $tids)) . ")";
switch( $torrentAction )
{
case "free":
aaaaew("download_multiplier", $escaped, 1, 0, 1);
$Phrase = get_phrase("set_free_non_free");
break;
case "double":
aaaaew("upload_multiplier", $escaped, 2, 1, 2);
$Phrase = get_phrase("set_double_non_double");
break;
case "sticky":
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "sticky" => array( "escape" => 0, "value" => "IF(sticky>0,0,1)" ) ), $escaped);
$Phrase = get_phrase("set_sticky_un_sticky");
break;
case "anonymouse":
aaaaew("anonymouse", $escaped, 1, 0, 1);
$Phrase = get_phrase("set_anonymouse_non_anonymouse");
break;
case "record_stats":
aaaaew("record_stats", $escaped, 1, 0, 1);
$Phrase = get_phrase("set_record_stats_non_record_stats");
break;
case "reset_hit_run":
aaaaew("hitRunRatio", $escaped, "", "", "", "!=");
$Phrase = get_phrase("reset_hit_and_run_ratio");
break;
case "set_hit_run":
aaaaew("hitRunRatio", $escaped, $hit_run_ratio, $hit_run_ratio, $hit_run_ratio, "!=");
$Phrase = get_phrase("set_hit_and_run_ratio");
break;
case "reset_tags":
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "tags" => "" ), $escaped);
$Phrase = get_phrase("reset_tags");
break;
case "set_tags":
if( $tags )
{
$tags = tsue_explode(",", cleartags(strip_tags(trim($tags))));
if( $tags )
{
$safeTags = array( );
foreach( $tags as $tag )
{
$tag = trim(strip_tags($tag));
if( 2 < strlen($tag) )
{
$tag = ucfirst(strtolower($tag));
if( !in_array($tag, $safeTags) && $tag )
{
$safeTags[] = $tag;
$TSUE["TSUE_Database"]->replace("tsue_tags", array( "tag" => $tag ));
}
}
}
$tags = implode(",", $safeTags);
unset($safeTags);
}
else
{
$tags = "";
}
if( $tags )
{
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "tags" => $tags ), $escaped);
}
}
$Phrase = get_phrase("set_tags");
break;
case "move_torrents":
if( $new_category )
{
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "cid" => $new_category ), $escaped);
$Phrase = get_phrase("move_to_another_category");
}
break;
case "remove_imdb":
aaaaex($tids);
$Phrase = get_phrase("remove_imdb");
break;
case "set_multipliers":
$Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE " . $escaped);
if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
$torrentOptions = unserialize($Torrent["options"]);
$torrentOptions["upload_multiplier"] = $upload_multiplier;
$torrentOptions["download_multiplier"] = $download_multiplier;
$buildQuery = array( "options" => serialize($torrentOptions), "flags" => 2, "upload_multiplier" => $upload_multiplier, "download_multiplier" => $download_multiplier );
$TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"]));
}
}
$Phrase = get_phrase("set_multipliers");
break;
case "delete_torrents":
$Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,name FROM tsue_torrents WHERE " . $escaped);
if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
deletetorrent($Torrent["tid"]);
}
}
$Phrase = get_phrase("delete_selected_torrents");
break;
}
if( isset($Phrase) && $tids )
{
$tids = implode(" ,", $tids);
$Phrase = get_phrase("dashboard_torrents_alt") . " -> " . get_phrase("select_an_action_to_apply") . " -> " . $Phrase . " -> " . $tids;
logadminaction($Phrase);
$HTML .= successmessage(get_phrase("message_saved"));
}
}
if( $keywords )
{
$pagerConditions[] = "keywords=" . html_clean($keywords);
$pagerConditions[] = "searchType=" . html_clean($searchType);
switch( $searchType )
{
case "name":
$whereConditions[] = explodesearchkeywords("t.name", $keywords);
break;
case "description":
$whereConditions[] = explodesearchkeywords("t.description", $keywords);
break;
case "uploader":
if( !is_valid_string($keywords) )
{
return errormessage(get_phrase("no_results_found"));
}
$whereConditions[] = "m.membername=" . $TSUE["TSUE_Database"]->escape($keywords);
break;
case "both":
case "default":
$whereConditions[] = explodesearchkeywords("t.name,t.description", $keywords);
break;
}
}
if( $categories )
{
if( !is_array($categories) )
{
$categories = tsue_explode(",", $categories);
}
$categories = array_map("intval", $categories);
$categories = implode(",", $categories);
$pagerConditions[] = "categories=" . $categories;
$whereConditions[] = "t.cid IN (" . $categories . ")";
}
if( isset($whereConditions) )
{
$WHERE = " WHERE " . implode(" AND ", $whereConditions);
}
if( !empty($pagerConditions) )
{
$aaaaev = implode("&", $pagerConditions);
}
$totalTorrents = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE t.tid, m.membername FROM tsue_torrents t LEFT JOIN tsue_members m ON(t.owner=m.memberid)" . $WHERE);
if( !$totalTorrents )
{
return errormessage(get_phrase("message_nothing_found"));
}
if( $showOnly )
{
$Pagination["1"] = "";
$Pagination["0"] = $Pagination["1"];
}
else
{
$Pagination = pagination($totalTorrents, $aaaaev);
}
$aaaaey = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE t.*, m.membername, g.groupname, g.groupstyle, c.cname, c.cviewpermissions, c.cdownloadpermissions, cc.cname as parentCategoryName, a.filename, i.content as IMDBContent FROM tsue_torrents t LEFT JOIN tsue_members m on (t.owner=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_torrents_categories c ON(t.cid=c.cid) LEFT JOIN tsue_torrents_categories cc ON(c.pid=cc.cid) LEFT JOIN tsue_attachments a ON (a.content_type='torrent_images' AND a.content_id=t.tid) LEFT JOIN tsue_imdb i USING(tid)" . $WHERE . " GROUP BY t.tid " . $orderBY . " " . $Pagination["0"]);
$tableContents .= aaaaag(array( array( "width" => "45%", "text" => get_phrase("torrent_name") ), array( "width" => "25%", "text" => get_phrase("torrent_categories_category_name") ), array( "width" => "25%", "text" => get_phrase("torrents_seeders") . "/" . get_phrase("torrents_leechers") . "/" . get_phrase("torrents_times_completed") ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"manageTorrents[]\" />" ) ), "tableContentTR", "tableContentTDHeader");
if( $showOnly )
{
$aaaaez = array( );
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($aaaaey) )
{
$torrentOptions = unserialize($Torrent["options"]);
if( isset($torrentOptions[$showOnly]) || in_array($showOnly, array( "external", "dead", "sticky", "torrents_has_no_imdb", "silver_torrents", "x2_torrents" )) )
{
switch( $showOnly )
{
case "anonymouse":
if( $torrentOptions[$showOnly] )
{
$aaaaez[] = $Torrent;
}
break;
case "record_stats":
if( !$torrentOptions[$showOnly] || !$torrentOptions["download_multiplier"] )
{
$aaaaez[] = $Torrent;
}
break;
case "upload_multiplier":
if( $torrentOptions[$showOnly] != "1" )
{
$aaaaez[] = $Torrent;
}
break;
case "download_multiplier":
if( $torrentOptions[$showOnly] != "1" )
{
$aaaaez[] = $Torrent;
}
break;
case "nuked":
if( $torrentOptions[$showOnly] )
{
$aaaaez[] = $Torrent;
}
break;
case "hitRunRatio":
if( $torrentOptions[$showOnly] )
{
$aaaaez[] = $Torrent;
}
break;
case "external":
if( $Torrent["external"] )
{
$aaaaez[] = $Torrent;
}
break;
case "dead":
if( !$Torrent["seeders"] )
{
$aaaaez[] = $Torrent;
}
break;
case "sticky":
if( $Torrent["sticky"] )
{
$aaaaez[] = $Torrent;
}
break;
case "torrents_has_no_imdb":
if( !$Torrent["IMDBContent"] )
{
$aaaaez[] = $Torrent;
}
break;
case "silver_torrents":
if( $torrentOptions["download_multiplier"] == "0.5" )
{
$aaaaez[] = $Torrent;
}
break;
case "x2_torrents":
if( $torrentOptions["upload_multiplier"] == "2" )
{
$aaaaez[] = $Torrent;
}
break;
}
}
}
if( !empty($aaaaez) )
{
foreach( $aaaaez as $Torrent )
{
$tableContents .= aaaafa($Torrent, $manageTorrents);
}
}
}
else
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($aaaaey) )
{
$tableContents .= aaaafa($Torrent, $manageTorrents);
}
}
$selectBox = "
<select name=\"searchType\" class=\"selectNoWidth\">
<option value=\"name\"" . (($searchType == "name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_name") . "</option>
<option value=\"description\"" . (($searchType == "description" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_description") . "</option>
<option value=\"both\"" . (($searchType == "both" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_both") . "</option>
<option value=\"owner\"" . (($searchType == "owner" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_uploader") . "</option>
</select>";
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texttiny") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) . " <input type=\"button\" id=\"categories\" name=\"categories\" value=\"" . get_phrase("categories") . "\" class=\"submit\" />" ) ));
$script = "
<script type=\"text/javascript\">
\$('input[name=\"categories\"]').click(function(e)
{
e.preventDefault();
\$this = \$(this);
\$(\"#categoryList\").remove();
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=searchInTorrentsShowCatz&categories=" . $categories . "\",
success: function(result)
{
\$('<div id=\"categoryList\">'+result+'</div>').insertAfter(\$this);
}
});
return false;
});
</script>";
$HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], $script, "searchForm") . "<br />";
$selectBox = "
<input type=\"hidden\" name=\"hit_run_ratio\" value=\"\" />
<input type=\"hidden\" name=\"new_category\" value=\"\" />
<input type=\"hidden\" name=\"upload_multiplier\" value=\"\" />
<input type=\"hidden\" name=\"download_multiplier\" value=\"\" />
<input type=\"hidden\" name=\"tags\" value=\"\" />
<select name=\"torrentAction\" class=\"selectNoWidth\">
<option value=\"\"></option>
<option value=\"free\">" . get_phrase("set_free_non_free") . "</option>
<option value=\"double\">" . get_phrase("set_double_non_double") . "</option>
<option value=\"sticky\">" . get_phrase("set_sticky_un_sticky") . "</option>
<option value=\"anonymouse\">" . get_phrase("set_anonymouse_non_anonymouse") . "</option>
<option value=\"record_stats\">" . get_phrase("set_record_stats_non_record_stats") . "</option>
<option value=\"fix_info_hashes\">" . get_phrase("fix_info_hashes") . "</option>
<option value=\"reset_hit_run\">" . get_phrase("reset_hit_and_run_ratio") . "</option>
<option value=\"set_hit_run\">" . get_phrase("set_hit_and_run_ratio") . "</option>
<option value=\"reset_tags\">" . get_phrase("reset_tags") . "</option>
<option value=\"set_tags\">" . get_phrase("set_tags") . "</option>
<option value=\"move_torrents\">" . get_phrase("move_to_another_category") . "</option>
<option value=\"remove_imdb\">" . get_phrase("remove_imdb") . "</option>
<option value=\"reset_imdb\">" . get_phrase("reset_imdb") . "</option>
<option value=\"set_multipliers\">" . get_phrase("set_multipliers") . "</option>
<option value=\"delete_torrents\">" . get_phrase("delete_selected_torrents") . "</option>
</select>";
$script = "
<script type=\"text/javascript\">
var \$simpleForm = \$('#simpleForm');
\$simpleForm.on(\"submit\", function(e)
{
var \$tids = new Array(), \$torrentAction = \$('select[name=\"torrentAction\"]').val();
\$('input[name=\"manageTorrents[]\"]:checked').each(function()
{
\$tids.push(\$(this).val());
});
var \$total = \$tids.length;
if(!\$total || !\$torrentAction)
{
alert(\"" . get_phrase("message_required_fields_error") . "\");
return false;
}
else
{
if(\$torrentAction == \"fix_info_hashes\" || \$torrentAction == \"reset_imdb\")
{
e.preventDefault();
\$noLoader = true;
if(\$torrentAction == \"fix_info_hashes\")
{
TSUEAdmin.dialog('<h2>" . get_phrase("fix_info_hashes") . "</h2><div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>', false, false);
\$(\$tids).each(function(index, element)
{
handleFixTorrentHashResult(element, \$total, index+1);
});
}
else if(\$torrentAction == \"reset_imdb\")
{
TSUEAdmin.dialog('<h2>" . get_phrase("reset_imdb") . "</h2><div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("torrent_upload_step_2") . "</div>', false, false);
\$(\$tids).each(function(index, element)
{
handleResetIMDB(element, \$total, index+1);
});
}
return false;
}
else if(\$torrentAction == \"delete_torrents\")
{
return confirm(\"" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "\");
}
return true;
}
});
function endTorrentAction()
{
\$(\"#ajax-loader\").remove();
\$('<div class=\"successStay\">" . get_phrase("operation_completed") . "</div>').prependTo(\".overlay_text\");
return false;
}
function handleResetIMDB(tid, total, count)
{
if(tid)
{
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=resetIMDB&tid=\"+tid,
success: function(result)
{
result = result.split(\"~~~\");
var imdbURL = result[0], torrentName = result[1];
if(imdbURL == \"no_imdb\")
{
\$('<div class=\"torrentFixed\">" . getimage("status/warning-24.png") . " ('+torrentName+') " . get_phrase("no_imdb") . "</div>').appendTo('.overlay_text');
}
else
{
\$('<div class=\"torrentFixed\">" . getimage("status/success-24.png") . " '+torrentName+' ('+imdbURL+')</div>').appendTo('.overlay_text');
}
\$(\"#ajax-loader\").remove();
if(count == total)
{
endTorrentAction();
}
else
{
\$('<div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("torrent_upload_step_2") . "</div>').appendTo(\".overlay_text\");
}
}
});
}
}
function handleFixTorrentHashResult(tid, total, count)
{
if(tid)
{
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=fixTorrentHash&tid=\"+tid,
success: function(result)
{
result = result.split(\"~~~\");
var torrentName = result[0], infoHash = result[1];
\$('<div class=\"torrentFixed\">" . getimage("status/success-24.png") . " '+torrentName+' ('+infoHash+')</div>').appendTo('.overlay_text');
\$(\"#ajax-loader\").remove();
if(count == total)
{
endTorrentAction();
}
else
{
\$('<div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>').appendTo(\".overlay_text\");
}
}
});
}
}
\$('select[name=\"torrentAction\"]').change(function()
{
var \$selectBox = \$(this), \$torrentAction = \$selectBox.val();
switch(\$torrentAction)
{
case \"set_hit_run\":
var \$setHitRun = '<form name=\"set_hit_run_form\" method=\"post\" action=\"\">" . get_phrase("set_hit_and_run_ratio") . ": <input type=\"text\" name=\"hit_run_value\" value=\"\" class=\"text texttiny\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';
TSUEAdmin.dialog(\$setHitRun, false, true);
\$('form[name=\"set_hit_run_form\"]').submit(function(e)
{
e.preventDefault();
\$(\"#hitRunError\").remove();
var \$hitRunForm = \$(this), \$hitRunValue = \$('input[name=\"hit_run_value\"]', \$hitRunForm).val();
if(!\$hitRunValue)
{
\$('<div id=\"hitRunError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$hitRunForm);
}
else
{
\$('input[name=\"hit_run_ratio\"]').val(\$hitRunValue);
\$(\"#hitRunError\").remove();
TSUEAdmin.closeDialog();
\$simpleForm.submit();
}
return false;
});
break;
case \"move_torrents\":
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=torrentCategoriesInbutboxes&name=category_id\",
success: function(result)
{
var \$moveTorrent = '<h2>" . get_phrase("move_to_another_category") . "</h2><form name=\"move_torrent_form\" method=\"post\" action=\"\">'+result+' <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';
TSUEAdmin.dialog(\$moveTorrent, false, true);
\$('form[name=\"move_torrent_form\"]').on(\"submit\", function(e)
{
e.preventDefault();
\$(\"#newCategoryError\").remove();
var \$moveTorrentForm = \$(this), \$newCategory = \$('input[name=\"category_id\"]:checked', \$moveTorrentForm).val();
if(!\$newCategory)
{
\$('<div id=\"hitRunError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$moveTorrentForm);
}
else
{
\$('input[name=\"new_category\"]').val(\$newCategory);
\$(\"#newCategoryError\").remove();
TSUEAdmin.closeDialog();
\$simpleForm.submit();
}
return false;
});
}
});
break;
case \"set_multipliers\":
var \$multipliers = '<h2>" . get_phrase("set_multipliers") . "</h2><form name=\"multipliers_form\" method=\"post\" action=\"\">" . get_phrase("torrent_upload_multiplier") . ": <input type=\"text\" name=\"upload_multiplier_value\" value=\"\" class=\"text texttiny\" /> " . get_phrase("torrent_download_multiplier") . ": <input type=\"text\" name=\"download_multiplier_value\" value=\"\" class=\"text texttiny\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';
TSUEAdmin.dialog(\$multipliers, false, true);
\$('form[name=\"multipliers_form\"]').submit(function(e)
{
e.preventDefault();
\$(\"#multipliersError\").remove();
var \$multipliersForm = \$(this), \$uploadMultipliervalue = \$('input[name=\"upload_multiplier_value\"]', \$multipliersForm).val(), \$downloadMultipliervalue = \$('input[name=\"download_multiplier_value\"]', \$multipliersForm).val();
if(!\$uploadMultipliervalue || !\$downloadMultipliervalue)
{
\$('<div id=\"multipliersError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$multipliersForm);
}
else
{
\$('input[name=\"upload_multiplier\"]').val(\$uploadMultipliervalue);
\$('input[name=\"download_multiplier\"]').val(\$downloadMultipliervalue);
\$(\"#multipliersError\").remove();
TSUEAdmin.closeDialog();
\$simpleForm.submit();
}
return false;
});
break;
case \"set_tags\":
var \$setTags = '<h2>" . get_phrase("set_tags") . "</h2><form name=\"set_tags_form\" method=\"post\" action=\"\"><input type=\"text\" name=\"tags_value\" value=\"\" class=\"text textnormal\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /> <span class=\"smallPassiveTextBlock\">" . get_phrase("tags_altv2") . "</span></form>';
TSUEAdmin.dialog(\$setTags, false, true);
\$('form[name=\"set_tags_form\"]').submit(function(e)
{
e.preventDefault();
\$(\"#setTagsError\").remove();
var \$setTagsForm = \$(this), \$setTagsValue = \$('input[name=\"tags_value\"]', \$setTagsForm).val();
if(!\$setTagsValue)
{
\$('<div id=\"setTagsError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$setTagsForm);
}
else
{
\$('input[name=\"tags\"]').val(\$setTagsValue);
\$(\"#setTagsError\").remove();
TSUEAdmin.closeDialog();
\$simpleForm.submit();
}
return false;
});
break;
}
});
</script>";
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("select_an_action_to_apply") . " " . $selectBox . " " . aaaabm(get_phrase("button_apply")), "align" => "right", "colspan" => 4 ) ));
$HTML .= aaaabn(createtable(get_phrase("dashboard_torrents_alt"), $tableContents, 7, $Pagination["1"]), array( ), "", $script);
$displayOptions = "
<select name=\"sortOptions[sortBy]\" class=\"selectNoWidth\">
<option value=\"added\"" . $SelectedSortBy["added"] . ">" . get_phrase("torrents_sort_by_added") . "</option>
<option value=\"seeders\"" . $SelectedSortBy["seeders"] . ">" . get_phrase("torrents_seeders") . "</option>
<option value=\"leechers\"" . $SelectedSortBy["leechers"] . ">" . get_phrase("torrents_leechers") . "</option>
<option value=\"size\"" . $SelectedSortBy["size"] . ">" . get_phrase("torrents_size") . "</option>
<option value=\"times_completed\"" . $SelectedSortBy["times_completed"] . ">" . get_phrase("torrents_times_completed") . "</option>
</select>
<select name=\"sortOptions[sortOrder]\" class=\"selectNoWidth\">
<option value=\"desc\"" . $SelectedOrderBy["desc"] . ">" . get_phrase("torrents_sort_order_desc") . "</option>
<option value=\"asc\"" . $SelectedOrderBy["asc"] . ">" . get_phrase("torrents_sort_order_asc") . "</option>
</select>
";
$tableContents = aaaaag(array( array( "width" => "80%", "text" => get_phrase("torrents_sort_by") . ": " . $displayOptions . " " . aaaabm(get_phrase("button_apply"), get_phrase("button_reset")) ) ));
$HTML .= "<br />" . aaaabn(createtable(get_phrase("torrents_display_options"), $tableContents), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], "", "displayOptions");
$aaaafb = "
<select name=\"showOnly\" class=\"selectNoWidth\">
<option value=\"anonymouse\"" . (($showOnly == "anonymouse" ? " selected=\"selected\"" : "")) . ">" . get_phrase("anonymouse_torrents") . "</option>
<option value=\"record_stats\"" . (($showOnly == "record_stats" ? " selected=\"selected\"" : "")) . ">" . get_phrase("free_no_stats_torrents") . "</option>
<option value=\"upload_multiplier\"" . (($showOnly == "upload_multiplier" ? " selected=\"selected\"" : "")) . ">" . get_phrase("different_upload_multiplier") . "</option>
<option value=\"download_multiplier\"" . (($showOnly == "download_multiplier" ? " selected=\"selected\"" : "")) . ">" . get_phrase("different_download_multiplier") . "</option>
<option value=\"nuked\"" . (($showOnly == "nuked" ? " selected=\"selected\"" : "")) . ">" . get_phrase("nuked_torrents") . "</option>
<option value=\"hitRunRatio\"" . (($showOnly == "hitRunRatio" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_have_hit_run_ratio") . "</option>
<option value=\"external\"" . (($showOnly == "external" ? " selected=\"selected\"" : "")) . ">" . get_phrase("external_torrents") . "</option>
<option value=\"dead\"" . (($showOnly == "dead" ? " selected=\"selected\"" : "")) . ">" . get_phrase("dead_torrents") . "</option>
<option value=\"sticky\"" . (($showOnly == "sticky" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sticky_torrents") . "</option>
<option value=\"torrents_has_no_imdb\"" . (($showOnly == "torrents_has_no_imdb" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_has_no_imdb") . "</option>
<option value=\"silver_torrents\"" . (($showOnly == "silver_torrents" ? " selected=\"selected\"" : "")) . ">" . get_phrase("silver_torrents") . "</option>
<option value=\"x2_torrents\"" . (($showOnly == "x2_torrents" ? " selected=\"selected\"" : "")) . ">" . get_phrase("x2_torrents") . "</option>
</select>";
$tableContents = aaaaag(array( array( "width" => "80%", "text" => "Show Only: " . $aaaafb . " " . aaaabm(get_phrase("button_apply"), get_phrase("button_reset")) ) ));
$HTML .= "<br />" . aaaabn(createtable(get_phrase("torrents_display_options"), $tableContents), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], "", "showOnly");
return $HTML;
}
function aaaafa($Torrent, $manageTorrents)
{
global $TSUE;
if( $Torrent["flags"] != 1 && $Torrent["size"] && $Torrent["name"] )
{
$Torrent["options"] = unserialize($Torrent["options"]);
$torrentImage = get_torrent_image($Torrent["filename"], ($Torrent["IMDBContent"] ? unserialize($Torrent["IMDBContent"]) : ""));
$torrentName = strip_tags($Torrent["name"]);
$torrentFlags = gettorrentmultipliers($Torrent);
$size = friendly_size($Torrent["size"]);
$aaaafc = get_phrase("torrents_owner", convert_relative_time($Torrent["added"]), getmembername($Torrent["membername"], $Torrent["groupstyle"]));
$aaaafd = strip_tags($Torrent["cname"]);
if( $Torrent["parentCategoryName"] )
{
$aaaafd = strip_tags($Torrent["parentCategoryName"]) . " > " . $aaaafd;
}
$seeders = number_format($Torrent["seeders"]);
$leechers = number_format($Torrent["leechers"]);
$aaaafe = number_format($Torrent["times_completed"]);
return aaaaag(array( array( "width" => "45%", "valign" => "top", "text" => "
<div class=\"torrentImage\">" . $torrentImage . "</div>
<div class=\"torrentDetails\">" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Torrent["tid"], $torrentName) . "</div>
<div class=\"torrentDetails\">" . $torrentFlags . "</div>
<span class=\"smallPassiveTextBlock\">" . $size . " - " . aaaaaf("?p=profile&pid=18&memberid=" . $Torrent["owner"], $aaaafc) . "</span>" ), array( "width" => "25%", "valign" => "top", "text" => $aaaafd ), array( "width" => "25%", "valign" => "top", "text" => $seeders . "/" . $leechers . "/" . $aaaafe ), array( "width" => "5%", "valign" => "top", "text" => "<input type=\"checkbox\" name=\"manageTorrents[]\" value=\"" . $Torrent["tid"] . "\"" . (($manageTorrents && in_array($Torrent["tid"], $manageTorrents) ? " checked=\"checked\"" : "")) . " />" ) ));
}
}
function cleartags($tags)
{
$tags = removewhitespaces($tags);
$tags = preg_replace("/,+/", ",", $tags);
$tags = trim($tags, ",");
$tags = trim($tags);
return $tags;
}
function aaaaew($Option, $escaped, $if, $so, $otherwise, $type = "==")
{
global $TSUE;
$Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE " . $escaped);
if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
$torrentOptions = unserialize($Torrent["options"]);
if( $type == "==" )
{
$torrentOptions[$Option] = ($torrentOptions[$Option] == $if ? $so : $otherwise);
}
else
{
if( $type == "!=" )
{
$torrentOptions[$Option] = ($torrentOptions[$Option] != $if ? $so : $otherwise);
}
}
$buildQuery = array( );
$buildQuery["options"] = serialize($torrentOptions);
$buildQuery["flags"] = 2;
if( $Option == "upload_multiplier" )
{
$buildQuery["upload_multiplier"] = $torrentOptions[$Option];
}
else
{
if( $Option == "download_multiplier" )
{
$buildQuery["download_multiplier"] = $torrentOptions[$Option];
}
}
$TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"]));
}
}
}
function gettorrentmultipliers($Torrent)
{
global $TSUE;
$multipliers = $newIndicatorText = "";
$defaultThemeName = aaaaff();
if( $Torrent["options"]["record_stats"] == 0 )
{
$newIndicatorText[] = "torrent_no_record";
}
else
{
if( $Torrent["options"]["download_multiplier"] == 0 || $Torrent["download_multiplier"] == 0 )
{
$newIndicatorText[] = "torrent_free";
}
else
{
if( $Torrent["options"]["download_multiplier"] != 1 || $Torrent["download_multiplier"] != 1 )
{
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_free.png", "alt" => "", "title" => get_phrase("torrent_download_multiplier") . ": " . $Torrent["options"]["download_multiplier"], "class" => "middle", "id" => "", "rel" => "" );
$multipliers .= aaaadb($Image);
}
}
if( $Torrent["options"]["upload_multiplier"] != 1 || $Torrent["upload_multiplier"] != 1 )
{
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_multiple_upload.png", "alt" => "", "title" => get_phrase("torrent_upload_multiplier") . ": " . $Torrent["options"]["upload_multiplier"], "class" => "middle", "id" => "", "rel" => "" );
$multipliers .= aaaadb($Image);
}
}
if( $Torrent["sticky"] )
{
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/sticky.png", "alt" => "", "title" => get_phrase("sticky_torrent"), "class" => "middle", "id" => "", "rel" => "" );
$multipliers .= aaaadb($Image);
}
if( $Torrent["options"]["nuked"] )
{
$nuked_reason_x = str_replace("\"", "", strip_tags($Torrent["options"]["nuked"]));
$nuked_reason_x = get_phrase("nuked_reason_x", $nuked_reason_x);
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/buttons/nuke.png", "alt" => $nuked_reason_x, "title" => $nuked_reason_x, "class" => "middle", "id" => "", "rel" => "" );
$multipliers .= aaaadb($Image);
}
if( $newIndicatorText )
{
foreach( $newIndicatorText as $text )
{
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/" . $text . ".png", "alt" => "", "title" => get_phrase($text), "class" => "middle", "id" => "", "rel" => "" );
$multipliers .= aaaadb($Image);
}
}
if( $Torrent["external"] )
{
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/buttons/refresh.png", "alt" => $Torrent["tid"], "title" => get_phrase("refresh_external_torrent_status"), "class" => "middle clickable", "id" => "update_external_torrent", "rel" => "" );
$multipliers .= aaaadb($Image);
}
return $multipliers;
}
function aaaadb($Image = array( ))
{
return "<img src=\"" . $Image["src"] . "\" alt=\"" . $Image["alt"] . "\" title=\"" . $Image["title"] . "\" class=\"" . $Image["class"] . "\" id=\"" . $Image["id"] . "\" rel=\"" . $Image["rel"] . "\" />";
}
function get_torrent_image($filename, $IMDBContent = "")
{
global $TSUE;
if( $filename && is_file(DATAPATH . "torrents/torrent_images/s/" . $filename) )
{
$image = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/torrent_images/s/" . $filename;
}
else
{
if( $IMDBContent && is_file(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg") )
{
$image = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/imdb/" . $IMDBContent["title_id"] . ".jpg";
}
}
if( !isset($image) )
{
$defaultThemeName = aaaaff();
return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_s.png\" alt=\"\" title=\"\" />";
}
$Image = array( "src" => $image, "alt" => "", "title" => "", "class" => "middle", "id" => "", "rel" => "" );
return aaaadb($Image);
}
function handleaddons()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaafg = aaaaae(array( "install=1" => array( "phrase" => get_phrase("install_addon") ) ));
$aaaafh = aaaaae(array( "TSUEAddonStore=1" => array( "phrase" => get_phrase("tsue_store") ) ));
$aaaafi = aaaaae(array( "checkAddonUpdates=1" => array( "phrase" => get_phrase("check_updates") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$run = intval(getvar("run"));
$install = intval(getvar("install"));
$permissions = intval(getvar("permissions"));
$TSUEAddonStore = intval(getvar("TSUEAddonStore"));
$checkAddonUpdates = intval(getvar("checkAddonUpdates"));
$_SESSION["load-addon"] = "";
if( $checkAddonUpdates )
{
addbreadcrumb(array( get_phrase("check_updates") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&checkAddonUpdates=1" ));
return "
<div class=\"ajaxLoaderDiv\" id=\"updatesAreBeingChecked\">
" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "
" . get_phrase("please_wait_while_updates_are_being_checked") . "
</div>
<script type=\"text/javascript\">
setTimeout(function()
{
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=checkAddonUpdates\",
success: function(result)
{
\$(\"<div>\"+result+\"</div>\").insertBefore(\"#updatesAreBeingChecked\");
\$(\"#updatesAreBeingChecked\").remove();
}
});
}, 1000);
</script>";
}
if( $permissions )
{
$Addon = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($permissions));
if( $Addon )
{
addbreadcrumb(array( get_phrase("set_permissions") . ": " . $Addon["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&permissions=" . $Addon["addon_id"] ));
$Permissions = ($Addon["permissions"] ? explode(",", $Addon["permissions"]) : array( ));
if( ispost() )
{
$Permissions = getvar("Permissions", array( ), false);
$newPerms = implode(",", array_map("intval", $Permissions));
$TSUE["TSUE_Database"]->update("tsue_admincp_addons", array( "permissions" => $newPerms ), "addon_id = " . $TSUE["TSUE_Database"]->escape($permissions));
$Phrase = get_phrase("addon_perms_updated", $Addon["title"]);
logadminaction($Phrase);
handlerebuildcaches(false);
$HTML .= successmessage($Phrase);
}
if( !$HTML )
{
$Usergroups = aaaaaw("Permissions[]", $Permissions);
$formContents = aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents);
return $HTML;
}
}
}
if( $run )
{
$Addon = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($run));
if( $Addon )
{
addbreadcrumb(array( $Addon["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&run=" . $Addon["addon_id"] ));
$addonFile = "./addons/files/" . $Addon["filename"] . ".php";
if( !is_file($addonFile) )
{
return errormessage("Add-on file does not exists: addons/files/" . $Addon["filename"] . ".php");
}
if( $Addon["permissions"] )
{
$aPerms = explode(",", $Addon["permissions"]);
if( !in_array($TSUE["TSUE_Member"]["membergroupid"], $aPerms) )
{
return errormessage(get_phrase("permission_denied"));
}
}
$_SESSION["load-addon"] = base64_encode(strrev(md5($Addon["filename"])));
$HTML .= "
<iframe name=\"addonIframe\" id=\"addonIframe\" src=\"addons/load-addon.php?load=" . $Addon["filename"] . "\" frameborder=\"0\" border=\"0\" cellspacing=\"0\" style=\"border: 1px solid #ccc;width: 100%; height: 50px; margin-bottom: 10px;\"></iframe>
<script type=\"text/javascript\" src=\"./js/jquery.iframe-auto-height.js\"></script>
<script type=\"text/javascript\">\$(\"#addonIframe\").iframeAutoHeight();</script>";
}
}
if( $delete )
{
checkdemomode();
$Addon = $TSUE["TSUE_Database"]->query_result("SELECT filename,title FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Addon )
{
$TSUE["TSUE_Database"]->delete("tsue_admincp_addons", "addon_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( is_file("./addons/files/" . $Addon["filename"] . ".php") )
{
@unlink("./addons/files/" . $Addon["filename"] . ".php");
}
$Phrase = get_phrase("addon_x_has_been_deleted", $Addon["title"] . " (" . $delete . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
$HTML .= successmessage($Phrase);
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Addon = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Addon )
{
$TSUE["TSUE_Database"]->update("tsue_admincp_addons", $BuildQuery, "addon_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
$Phrase = get_phrase("addon_has_been_updated", $Addon["title"] . " (" . $enable_disable . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
$HTML .= successmessage($Phrase);
}
}
if( $TSUEAddonStore )
{
addbreadcrumb(array( get_phrase("tsue_store") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&TSUEAddonStore=1" ));
$HTML = "
<div id=\"getTSUEAddons\">
" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "
</div>
<script type=\"text/javascript\">
\$(window).load(function()
{
buildQuery = \"isAjax=1&action=getTSUEAddons\";
\$.ajax
({
type: \"POST\",
data: buildQuery,
success: function(response)
{
if(!response)
{
response = \"" . get_phrase("message_nothing_found") . "\";
}
\$(\"#getTSUEAddons\").html(response);
\$('#getTSUEAddons div[class=\"install_addon\"]').on(\"click\", function(e)
{
e.preventDefault();
var \$installButton = \$(this), \$addonID = parseInt(\$installButton.attr(\"rel\"));
\$(\"#purchaseFormDiv\").remove();
var purchaseFormHTML = '<div style=\"display: none; padding: 8px; margin: 5px 0; border: 1px solid #ccc; width: 400px;\" id=\"purchaseFormDiv\">'+
'<form method=\"post\" id=\"purchaseForm\">'+
'<div style=\"font-weight: bold; color: red; margin-bottom: 4px;\">" . get_phrase("enter_customer_number") . "</div>'+
'" . get_phrase("customer_number") . ": <input type=\"text\" class=\"text texttiny\" name=\"customerNumber\" />'+
' <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("upgrade_purchase") . "\" />'+
' <input type=\"button\" class=\"submit\" value=\"" . get_phrase("button_close") . "\" id=\"purchaseFormCancelButton\" />'+
'</form>'+
'</div>';
\$(purchaseFormHTML).insertBefore(\$installButton).fadeIn(\"slow\").expose({closeOnEsc: false, closeOnClick: false});
\$(\"#purchaseForm\").submit(function(e)
{
e.preventDefault();
var \$customerNumber = \$('input[name=\"customerNumber\"]', \$(this)).val();
if(\$customerNumber.length == 10)
{
\$installButton.hide();
\$(\"#purchaseFormDiv\").html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "').css({\"text-align\":\"center\", \"color\": \"red\", \"border\": \"2px solid #000\"}).expose({closeOnEsc: false, closeOnClick: false});
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=purchaseTSUEAddon&customerNumber=\"+\$customerNumber+\"&addon_id=\"+\$addonID,
success: function(response)
{
\$(\"#purchaseFormDiv\").html(response);
\$(\"#purchaseFormCancelButton\").click(function(e)
{
e.preventDefault();
\$.mask.close();
\$(\"#purchaseFormDiv\").remove();
\$installButton.show();
return false;
});
}
});
}
else
{
\$(\"#purchaseFormDiv\").effect(\"shake\", { times: 3 }, 300);
}
return false;
});
\$(\"#purchaseFormCancelButton\").click(function(e)
{
e.preventDefault();
\$.mask.close();
\$(\"#purchaseFormDiv\").remove();
\$installButton.show();
return false;
});
return false;
}).hover
(
function()
{
\$(this).css({\"background\":\"#16cc16\"});
}
,
function()
{
\$(this).css({\"background\":\"#d8b654\"});
}
);
}
});
});
</script>";
return $HTML;
}
if( $install )
{
addbreadcrumb(array( get_phrase("install_addon") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&install=1" ));
checkdemomode();
if( !function_exists("simplexml_load_file") )
{
return errormessage("TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>.");
}
if( ispost() )
{
$addonFile = (isset($_FILES["addon_file"]) ? $_FILES["addon_file"] : "");
if( $addonFile )
{
if( !$addonFile["name"] || !$addonFile["tmp_name"] || $addonFile["error"] || !$addonFile["size"] )
{
$HTML .= errormessage(get_phrase("upload_error3") . " (PE-" . $addonFile["error"] . ")");
}
else
{
if( !preg_match("#xml#", $addonFile["type"]) || file_extension($addonFile["name"]) != "xml" )
{
$HTML .= errormessage(get_phrase("upload_error6", "xml"));
}
else
{
if( !($Addon = simplexml_load_file($addonFile["tmp_name"])) )
{
$HTML .= errormessage(get_phrase("failed_to_open_x", htmlspecialchars($addonFile["name"])));
}
else
{
if( !isset($Addon->filename) || !isset($Addon->title) || !isset($Addon->description) || !isset($Addon->version_string) || !isset($Addon->version_id) || !isset($Addon->active) || !isset($Addon->permissions) )
{
$HTML .= errormessage(get_phrase("invalid_addon_xml"));
}
else
{
if( !preg_match("#^[a-zA-Z0-9_\-]+\$#", $Addon->filename) )
{
$HTML .= errormessage("Addon filename contains bad chars. Only [a-z A-Z 0-9 - _] allowed.");
}
else
{
if( !is_file("./addons/files/" . $Addon->filename . ".php") )
{
$HTML .= errormessage("Add-on file does not exists: addons/files/" . $Addon->filename . ".php");
}
else
{
$aaaafj = $TSUE["TSUE_Database"]->query_result("SELECT filename FROM tsue_admincp_addons WHERE filename = " . $TSUE["TSUE_Database"]->escape($Addon->filename));
if( $aaaafj )
{
return errormessage(get_phrase("x_is_already_installed", $Addon->filename));
}
$buildQuery = array( "filename" => $Addon->filename, "title" => strip_tags($Addon->title), "description" => strip_tags($Addon->description), "version_string" => htmlspecialchars($Addon->version_string), "version_id" => htmlspecialchars($Addon->version_id), "active" => ($Addon->active == 1 ? 1 : 0), "permissions" => htmlspecialchars($Addon->permissions) );
$TSUE["TSUE_Database"]->insert("tsue_admincp_addons", $buildQuery);
$Phrase = get_phrase("new_addon_installed", $Addon->filename);
logadminaction($Phrase);
handlerebuildcaches(false);
return successmessage($Phrase);
}
}
}
}
}
}
}
else
{
$HTML .= errormessage(get_phrase("upload_error3"));
}
}
$aaaacr = aaaacs("addon_file");
$formContents = aaaaan(get_phrase("install_from_uploaded_file"), $aaaacr);
$HTML .= aaaabg($formContents, array( ), "", "install_addon");
return $HTML;
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => get_phrase("installed_addons") ), array( "width" => "20%", "text" => "" ) ), "tableContentTR", "tableContentTDHeader");
$Addons = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_admincp_addons ORDER BY active DESC, title ASC");
if( $TSUE["TSUE_Database"]->num_rows($Addons) )
{
while( $Addon = $TSUE["TSUE_Database"]->fetch_assoc($Addons) )
{
$linkClass = (!$Addon["active"] ? "linkDisabled" : "");
$aaaafk = aaaaae(array( "run=" . $Addon["addon_id"] => array( "phrase" => $Addon["title"], "class" => $linkClass ) ));
$aaaafl = aaaaae(array( "delete=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaafm = aaaaae(array( "permissions=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/permissions.png", get_phrase("set_permissions")) ) ));
if( $Addon["active"] )
{
$aaaafn = aaaaae(array( "enable_disable=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaafn = aaaaae(array( "enable_disable=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaafk . "<span class=\"smallPassiveText\">(" . $Addon["version_string"] . ") " . $Addon["description"] . "</span>" ), array( "width" => "20%", "text" => $aaaafm . $aaaafn . $aaaafl, "align" => "right" ) ));
}
}
else
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("there_is_no_any_addon_installed_yet"), "colspan" => "2" ) ));
}
$HTML .= aaaabn(createtable(get_phrase("addons_alt"), $tableContents, 2, $aaaafh . " | " . $aaaafg . " | " . $aaaafi));
return $HTML;
}
function handlerecentcomments()
{
global $TSUE;
$HTML = "";
$deleteComment = intval(getvar("deleteComment"));
$deleteReply = intval(getvar("deleteReply"));
if( $deleteComment )
{
$TSUE["TSUE_Database"]->delete("tsue_comments", "comment_id = " . $TSUE["TSUE_Database"]->escape($deleteComment) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")");
$TSUE["TSUE_Database"]->delete("tsue_comments_replies", "comment_id = " . $TSUE["TSUE_Database"]->escape($deleteComment) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")");
$Phrase = get_phrase("comment_x_has_been_deleted", $deleteComment);
logadminaction($Phrase);
$HTML = successmessage($Phrase);
}
if( $deleteReply )
{
$TSUE["TSUE_Database"]->delete("tsue_comments_replies", "reply_id = " . $TSUE["TSUE_Database"]->escape($deleteReply) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")");
$Phrase = get_phrase("comment_x_has_been_deleted", $deleteComment);
logadminaction($Phrase);
$HTML = successmessage($Phrase);
}
$totalComments = $TSUE["TSUE_Database"]->row_count("SELECT comment_id FROM tsue_comments WHERE content_type IN (\"torrent_comments\", \"profile_comments\")");
if( !$totalComments )
{
return errormessage(get_phrase("message_nothing_found"));
}
$Pagination = pagination($totalComments, "", 3, 20);
$Comments = $TSUE["TSUE_Database"]->query("SELECT c.*, m.membername, g.groupstyle FROM tsue_comments c LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE c.content_type IN (\"torrent_comments\", \"profile_comments\") ORDER BY post_date DESC " . $Pagination["0"]);
$aaaafo = $profileComments = $aaaafp = array( );
while( $Comment = $TSUE["TSUE_Database"]->fetch_assoc($Comments) )
{
$aaaafp[] = $Comment["comment_id"];
if( $Comment["content_type"] == "torrent_comments" )
{
$aaaafo[] = $Comment;
}
else
{
if( $Comment["content_type"] == "profile_comments" )
{
$profileComments[] = $Comment;
}
}
}
$commentReplyCache = array( );
$aaaafq = $TSUE["TSUE_Database"]->query("SELECT r.*, m.membername, g.groupstyle FROM tsue_comments_replies r LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE r.comment_id IN (0," . implode(",", $aaaafp) . ") ORDER BY post_date ASC");
if( $TSUE["TSUE_Database"]->num_rows($aaaafq) )
{
while( $Reply = $TSUE["TSUE_Database"]->fetch_assoc($aaaafq) )
{
$commentReplyCache[$Reply["comment_id"]][] = $Reply;
}
}
$TSUE["TSUE_Database"]->free($Comments);
$TSUE["TSUE_Database"]->free($aaaafq);
$TSUE["TSUE_Security"] = new TSUE_Security();
$TSUE["TSUE_Parser"] = new TSUE_Parser();
$tC = "";
if( $aaaafo )
{
foreach( $aaaafo as $Comment )
{
$tC .= buildcommentlist($Comment, "torrent_comments", 1, $commentReplyCache);
}
}
$pC = "";
if( $profileComments )
{
foreach( $profileComments as $Comment )
{
$pC .= buildcommentlist($Comment, "profile_posts", 2, $commentReplyCache);
}
}
$createTabs = createtabs(array( get_phrase("torrent_comments") => $tC, get_phrase("profile_posts") => $pC ));
return $HTML . createtable(get_phrase("recent_comments"), "<tr><td>" . $createTabs . "</td></tr>", 1, $Pagination["1"]);
}
function buildcommentlist($Comment, $Type, $tabNumber, $commentReplyCache)
{
global $TSUE;
$Sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Comment["memberid"] => array( "phrase" => getmembername($Comment["membername"], $Comment["groupstyle"]) ) ));
$postDate = convert_relative_time($Comment["post_date"]);
$Message = $TSUE["TSUE_Parser"]->parse($Comment["message"]);
if( $Type == "torrent_comments" )
{
$URL = "?p=torrents&pid=10&action=details&tid=" . $Comment["content_id"] . "#torrent_comments";
}
else
{
$URL = "?p=profile&pid=18&memberid=" . $Comment["content_id"] . "#profile_posts";
}
$Link = aaaaaf($URL, getimage("buttons/view_comment.png", get_phrase("view_comment")));
$Delete = aaaaae(array( "deleteComment=" . $Comment["comment_id"] . "#tabs-" . $tabNumber => array( "phrase" => getimage("buttons/delete_comment.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaafr = aaaafs($Comment["comment_id"], $Type, $tabNumber, $commentReplyCache);
return "
<div style=\"margin-bottom: 10px; border-bottom: 3px solid #ccc;\">
<div style=\"background: #fff; padding: 5px; font-size: 13px;\">
<span style=\"float: right;\">" . $Link . " " . $Delete . "</span>
" . $Sender . " | " . $postDate . "
</div>
<div style=\"padding: 5px; font-size: 12px;\">
" . $Message . "
" . $aaaafr . "
</div>
</div>";
}
function aaaafs($comment_id, $Type, $tabNumber, $commentReplyCache)
{
global $TSUE;
if( isset($commentReplyCache[$comment_id]) )
{
$Replies = "";
foreach( $commentReplyCache[$comment_id] as $Comment )
{
$Sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Comment["memberid"] => array( "phrase" => getmembername($Comment["membername"], $Comment["groupstyle"]) ) ));
$postDate = convert_relative_time($Comment["post_date"]);
$Message = $TSUE["TSUE_Parser"]->parse($Comment["message"]);
if( $Type == "torrent_comments" )
{
$URL = "?p=torrents&pid=10&action=details&tid=" . $Comment["content_id"] . "#torrent_comments";
}
else
{
$URL = "?p=profile&pid=18&memberid=" . $Comment["content_id"] . "#profile_posts";
}
$Link = aaaaaf($URL, getimage("buttons/view_comment.png", get_phrase("view_comment")));
$Delete = aaaaae(array( "deleteReply=" . $Comment["reply_id"] . "#tabs-" . $tabNumber => array( "phrase" => getimage("buttons/delete_comment.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$Replies .= "
<div style=\"margin: 10px; border-bottom: 1px solid #ccc; border-top: 1px solid #ccc;\">
<div style=\"background: #e1e0e0; padding: 0; font-size: 10px;\">
<span style=\"float: right;\">" . $Link . " " . $Delete . "</span>
" . $Sender . " | " . $postDate . "
</div>
<div style=\"padding: 5px; font-size: 9px;\">" . $Message . "</div>
</div>";
}
return $Replies;
}
}
function handletorrentgenres()
{
global $TSUE;
$HTML = "";
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$genreImagesFullURL = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/torrent_genres/";
$aaaaft = DATAPATH . "torrents/torrent_genres/";
$tableContents = "";
if( !is_dir($aaaaft) || !is_writable($aaaaft) )
{
return errormessage(get_phrase("torrent_genres_folder_error"));
}
if( $new || $edit )
{
checkdemomode();
$Genre = array( "gname" => "", "gicon" => "", "active" => 0, "categories" => "" );
$aaaaam = "";
if( $edit )
{
$Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname, gicon, active, categories FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Genre )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$aaaafu = $Genre["gicon"];
$Genre["categories"] = explode(",", $Genre["categories"]);
addbreadcrumb(array( get_phrase("button_edit") . ": <img src=\"" . $genreImagesFullURL . $Genre["gicon"] . "\" style=\"width: 16px; height: 16px; border: 0; vertical-align: middle; margin: 0 3px;\" /> " . $Genre["gname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_new_genre") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Genre"]) )
{
$Genre = $_POST["Genre"];
if( !isset($Genre["categories"]) || !$Genre["categories"] )
{
$Genre["categories"] = array( );
}
if( !$Genre["gname"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
else
{
if( isset($_FILES["gicon"]) )
{
$aaaafv = $_FILES["gicon"];
if( !$aaaafv["size"] || $aaaafv["error"] )
{
if( !$edit )
{
$formErrors[] = get_phrase("upload_error3");
}
}
else
{
if( !in_array(file_extension($aaaafv["name"]), array( "gif", "jpg", "png", "jpeg" )) )
{
$formErrors[] = get_phrase("upload_error6", "gif, jpg, png");
}
else
{
if( is_file($aaaaft . $aaaafv["name"]) )
{
$formErrors[] = get_phrase("upload_error7");
}
else
{
if( !move_uploaded_file($aaaafv["tmp_name"], $aaaaft . $aaaafv["name"]) )
{
$formErrors[] = get_phrase("upload_error8");
}
else
{
$aaaafw = $aaaaft . $aaaafv["name"];
}
}
}
}
}
}
if( !$edit && (!isset($aaaafw) || !is_file($aaaafw)) )
{
$formErrors[] = get_phrase("genre_icon_error");
}
if( isset($formErrors) )
{
if( isset($aaaafw) )
{
@unlink($aaaafw);
}
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$buildQuery = array( "gname" => $Genre["gname"], "active" => $Genre["active"], "categories" => implode(",", $Genre["categories"]) );
if( $edit )
{
if( isset($aaaafw) )
{
if( is_file($aaaaft . $aaaafu) )
{
unlink($aaaaft . $aaaafu);
}
$buildQuery["gicon"] = str_replace($aaaaft, "", $aaaafw);
}
$Phrase = get_phrase("genre_x_updated", $Genre["gname"]);
$TSUE["TSUE_Database"]->update("tsue_torrents_genres", $buildQuery, "gid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$Phrase = get_phrase("new_genre_x_created", $Genre["gname"]);
$buildQuery["gicon"] = str_replace($aaaaft, "", $aaaafw);
$TSUE["TSUE_Database"]->insert("tsue_torrents_genres", $buildQuery);
}
$HTML .= successmessage($Phrase);
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$uploadDone = true;
}
}
if( !isset($uploadDone) )
{
$inputbox = inputbox("Genre[gname]", $Genre["gname"]);
$formContents = aaaaan(get_phrase("genre_name"), $inputbox);
$radioButtons = radioyesno("Genre[active]", $Genre["active"]);
$formContents .= aaaaan(get_phrase("genre_active"), $radioButtons);
$aaaacr = aaaacs("gicon");
$formContents .= aaaaan(get_phrase("genre_icon"), $aaaacr, ($edit ? get_phrase("global_leave_empty_keep_current_one") : ""));
$aaaact = array( );
$aaaafx = array( );
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
if( $Category["pid"] )
{
$aaaact[$Category["pid"]][] = $Category;
}
else
{
$aaaafx[] = $Category;
}
}
$aaaafy = "
<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
<tr>";
$Count = 0;
$maxPerRow = 4;
foreach( $aaaafx as $Category )
{
if( $Count % $maxPerRow == 0 )
{
$aaaafy .= "
</tr><tr>";
}
$Count++;
$subCategoryList = "";
if( isset($aaaact[$Category["cid"]]) )
{
foreach( $aaaact[$Category["cid"]] as $subCategory )
{
$checked = "";
if( in_array($subCategory["cid"], $Genre["categories"]) )
{
$checked = " checked=\"checked\"";
}
$subCategoryList .= "
<div style=\"margin-left: 20px;\" class=\"forumSub\">
<label><input type=\"checkbox\" name=\"Genre[categories][]\" value=\"" . $subCategory["cid"] . "\"" . $checked . " /> " . $subCategory["cname"] . "</label>
</div>";
}
}
$checked = "";
if( in_array($Category["cid"], $Genre["categories"]) )
{
$checked = " checked=\"checked\"";
}
$aaaafy .= "
<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
<label><input type=\"checkbox\" name=\"Genre[categories][]\" value=\"" . $Category["cid"] . "\"" . $checked . " /> " . $Category["cname"] . "</label>
" . $subCategoryList . "
</td>";
}
$aaaafy .= "
</tr>
</table>";
$formContents .= aaaaan(get_phrase("select_torrent_categories"), $aaaafy, get_phrase("select_torrent_categories_alt"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
checkdemomode();
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Genre )
{
$TSUE["TSUE_Database"]->update("tsue_torrents_genres", $BuildQuery, "gid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
$Phrase = get_phrase("torrent_genre_x_updated", $Genre["gname"] . " (" . $enable_disable . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( $delete )
{
checkdemomode();
$Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname, gicon FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Genre )
{
$TSUE["TSUE_Database"]->delete("tsue_torrents_genres", "gid = " . $TSUE["TSUE_Database"]->escape($delete));
if( is_file($aaaaft . $Genre["gicon"]) )
{
@unlink($aaaaft . $Genre["gicon"]);
}
$Phrase = get_phrase("torrent_genre_x_deleted", $Genre["gname"] . " (" . $delete . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( !$tableContents )
{
$Genres = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_genres ORDER BY active DESC, gname ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Genres) )
{
$tableContents = errormessage(get_phrase("message_nothing_found"));
}
else
{
$tableContents = "";
while( $Genre = $TSUE["TSUE_Database"]->fetch_assoc($Genres) )
{
$linkClass = (!$Genre["active"] ? "linkDisabled" : "");
$aaaafz = aaaaae(array( "edit=" . $Genre["gid"] => array( "phrase" => $Genre["gname"], "class" => $linkClass ) ));
$aaaaga = aaaaae(array( "delete=" . $Genre["gid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Genre["active"] )
{
$aaaagb = aaaaae(array( "enable_disable=" . $Genre["gid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaagb = aaaaae(array( "enable_disable=" . $Genre["gid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => "<img src=\"" . $genreImagesFullURL . $Genre["gicon"] . "\" style=\"width: 26px; height: 26px; border: 0; vertical-align: middle; margin-right: 5px;\" /> " . $aaaafz ), array( "width" => "10%", "text" => $aaaagb . $aaaaga, "align" => "center" ) ));
}
}
}
$aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) ));
$HTML .= createtable(get_phrase("torrent_genres"), $tableContents, 2, $aaaagc);
return $HTML;
}
function handleadvertisements()
{
global $TSUE;
$HTML = "";
$aaaagd = aaaaae(array( "new=1" => array( "phrase" => get_phrase("ads_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Ads = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Ads )
{
$TSUE["TSUE_Database"]->update("tsue_ads", $BuildQuery, "id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("ads_x_has_been_updated", $Ads["title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
}
}
if( $delete )
{
$Ads = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Ads )
{
$TSUE["TSUE_Database"]->delete("tsue_ads", "id = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("ads_x_has_been_deleted", $Ads["title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
if( $edit || $new )
{
$Ads = array( "title" => "", "content" => "", "position" => 0, "active" => 1, "permissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Ads = $TSUE["TSUE_Database"]->query_result("SELECT title, content, position, active, permissions FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Ads )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Ads["permissions"] = tsue_explode(",", $Ads["permissions"]);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Ads["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("ads_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Ads"]) )
{
$Ads = $_POST["Ads"];
if( !$Ads["title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$Ads["content"] )
{
$formErrors[] = get_phrase("error_no_content");
}
if( !isset($Ads["permissions"]) )
{
$Ads["permissions"] = array( );
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $Ads["title"], "content" => $Ads["content"], "position" => $Ads["position"], "active" => $Ads["active"], "permissions" => implode(",", $Ads["permissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_ads", $buildQuery, "id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_ads", $buildQuery);
}
logadminaction(get_phrase("ads_x_has_been_updated", $Ads["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
handlerebuildcaches(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Ads[active]", $Ads["active"]);
$formContents = aaaaan(get_phrase("ads_active"), $radioButtons);
$inputbox = inputbox("Ads[title]", $Ads["title"]);
$formContents .= aaaaan(get_phrase("ads_title"), $inputbox);
$textarea = textarea("Ads[content]", $Ads["content"], true);
$formContents .= aaaaan(get_phrase("ads_content"), $textarea);
$inputbox = inputbox("Ads[position]", $Ads["position"]);
$formContents .= aaaaan(get_phrase("ads_position"), $inputbox);
$Usergroups = aaaaaw("Ads[permissions][]", $Ads["permissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$aaaage = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ads ORDER BY active DESC, position ASC");
if( !$TSUE["TSUE_Database"]->num_rows($aaaage) )
{
$tableContents = errormessage(get_phrase("ads_no_ads_yet"));
}
else
{
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $id => $position )
{
$id = intval($id);
$position = intval($position);
$TSUE["TSUE_Database"]->update("tsue_ads", array( "position" => $position ), "id=" . $TSUE["TSUE_Database"]->escape($id));
}
logadminaction(get_phrase("ads_all_pages_updated"));
handlerebuildcaches(false);
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
$tableContents = "";
while( $Ads = $TSUE["TSUE_Database"]->fetch_assoc($aaaage) )
{
$linkClass = (!$Ads["active"] ? "linkDisabled" : "");
$aaaagf = aaaaae(array( "edit=" . $Ads["id"] => array( "phrase" => $Ads["title"], "class" => $linkClass ) ));
$aaaagg = aaaaae(array( "delete=" . $Ads["id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Ads["active"] )
{
$aaaagh = aaaaae(array( "enable_disable=" . $Ads["id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaagh = aaaaae(array( "enable_disable=" . $Ads["id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "70%", "text" => $aaaagf . " <span class=\"smallPassiveText\"></span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Ads["id"] . "]", $Ads["position"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaagh . $aaaagg, "align" => "right" ) ));
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
}
$HTML .= aaaabn(createtable(get_phrase("dashboard_ads"), $tableContents, 3, $aaaagd));
return $HTML;
}
function handleshoutboxchannels()
{
global $TSUE;
$HTML = "";
$aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_channel") ) ));
$tableContents = "";
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$cid = intval(getvar("cid"));
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $Cid => $Sort )
{
$Cid = intval($Cid);
$Sort = intval($Sort);
$TSUE["TSUE_Database"]->update("tsue_shoutbox_channels", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid));
}
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $delete )
{
checkdemomode();
if( $delete == 1 )
{
return errormessage(get_phrase("shoutbox_default_channel_cant_be_deleted"));
}
$Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_shoutbox_channels WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Category )
{
$TSUE["TSUE_Database"]->delete("tsue_shoutbox_channels", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("shoutbox_channel_deleted", $Category["cname"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $edit || $new )
{
$Category = array( "sort" => "", "cname" => "", "cviewpermissions" => array( ), "cshoutpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_shoutbox_channels WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Category )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]);
$Category["cshoutpermissions"] = tsue_explode(",", $Category["cshoutpermissions"]);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Category["cname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_new_channel") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Category"]) )
{
checkdemomode();
$Category = $_POST["Category"];
if( !isset($Category["cviewpermissions"]) )
{
$Category["cviewpermissions"] = array( );
}
if( !isset($Category["cshoutpermissions"]) )
{
$Category["cshoutpermissions"] = array( );
}
if( !$Category["cname"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( isset($flagError) )
{
$formErrors = (isset($formErrors) ? array_merge($formErrors, $flagError) : $flagError);
unset($flagError);
}
if( !isset($formErrors) )
{
$buildQuery = array( "cname" => $Category["cname"], "sort" => $Category["sort"], "cviewpermissions" => ($edit && $edit == 1 ? "" : implode(",", $Category["cviewpermissions"])), "cshoutpermissions" => implode(",", $Category["cshoutpermissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_shoutbox_channels", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
$flagID = $edit;
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_shoutbox_channels", $buildQuery);
$flagID = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("shoutbox_channel_updated", $Category["cname"] . " (" . $flagID . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf");
$formContents = aaaaan(get_phrase("channel_name"), $inputbox);
$inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
if( !($edit && $edit == 1) )
{
$aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe, get_phrase("global_leave_empty_all"));
}
$aaaabe = aaaaaw("Category[cshoutpermissions][]", $Category["cshoutpermissions"]);
$formContents .= aaaaan(get_phrase("global_shout_permissions"), $aaaabe, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_shoutbox_channels ORDER BY `sort` ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Categories) )
{
$tableContents = errormessage(get_phrase("no_results_found"));
}
else
{
$tableContents = "";
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) ));
$aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "65%", "text" => $aaaacv ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) ));
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
$HTML .= aaaabn(createtable(get_phrase("shoutbox_channels"), $tableContents, 3, $aaaacl));
return $HTML;
}
}
function aaaaah()
{
global $TSUE;
$HTML = "";
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$options = intval(getvar("options"));
if( $options )
{
$Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name, pluginOptions FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($options));
if( $Plugin && $Plugin["pluginOptions"] )
{
addbreadcrumb(array( get_phrase("dashboard_options") . ": " . $Plugin["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&options=" . $options ));
$Plugin["pluginOptions"] = unserialize($Plugin["pluginOptions"]);
$formContents = "";
if( isset($_POST["pluginOptions"]) )
{
$newOptions = array( );
foreach( $_POST["pluginOptions"] as $fieldType => $Fields )
{
foreach( $Fields as $fieldName => $fieldValue )
{
$newOptions[] = array( "fieldType" => $fieldType, "fieldName" => $fieldName, "fieldValue" => $fieldValue );
}
}
$buildQuery = array( "pluginOptions" => serialize($newOptions) );
$TSUE["TSUE_Database"]->update("tsue_plugins", $buildQuery, "pluginid=" . $TSUE["TSUE_Database"]->escape($options));
$Plugin["pluginOptions"] = $newOptions;
logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
$formContents = aaaagi($Plugin["pluginOptions"]);
$HTML .= aaaabg($formContents);
return $HTML;
}
else
{
return errormessage(get_phrase("message_nothing_found"));
}
}
else
{
if( $edit || $new )
{
$Plugin = array( "name" => "", "filename" => "", "contents" => "", "active" => 0, "viewpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name,filename,contents,active,viewpermissions FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Plugin )
{
return errormessage(get_phrase("message_content_error"));
}
$Plugin["viewpermissions"] = tsue_explode(",", $Plugin["viewpermissions"]);
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Plugin["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("plugin_manager_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&new=1" ));
}
if( isset($_POST["Plugin"]) )
{
$Plugin = $_POST["Plugin"];
if( !$Plugin["name"] )
{
$formErrors[] = get_phrase("dashboard_cron_entries_cron_title_error");
}
if( $Plugin["filename"] && !is_file(LIBRARYPATH . "plugins/" . $Plugin["filename"]) )
{
$formErrors[] = get_phrase("plugin_manager_plugin_file_error");
}
if( !$Plugin["filename"] && !$Plugin["contents"] )
{
$formErrors[] = get_phrase("plugin_manager_create_fatal_error");
}
if( !isset($Plugin["viewpermissions"]) )
{
$Plugin["viewpermissions"] = array( );
}
if( !isset($formErrors) )
{
$buildQuery = array( "name" => $Plugin["name"], "filename" => $Plugin["filename"], "active" => $Plugin["active"], "contents" => $Plugin["contents"], "viewpermissions" => implode(",", $Plugin["viewpermissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_plugins", $buildQuery, "pluginid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_plugins", $buildQuery);
}
logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Plugin[active]", $Plugin["active"]);
$formContents = aaaaan(get_phrase("plugin_manager_plugin_active"), $radioButtons);
$inputbox = inputbox("Plugin[name]", $Plugin["name"]);
$formContents .= aaaaan(get_phrase("plugin_manager_plugin_name"), $inputbox);
$inputbox = inputbox("Plugin[filename]", $Plugin["filename"]);
$formContents .= aaaaan(get_phrase("plugin_manager_plugin_filename"), $inputbox, get_phrase("global_file_path", (DEMO_MODE ? "" : LIBRARYPATH . "plugins/")));
$textarea = textarea("Plugin[contents]", $Plugin["contents"], true);
$formContents .= aaaaan(get_phrase("plugin_manager_plugin_contents"), $textarea, get_phrase("plugin_manager_plugin_contents_alt"));
$Usergroups = aaaaaw("Plugin[viewpermissions][]", $Plugin["viewpermissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Plugin )
{
$TSUE["TSUE_Database"]->update("tsue_plugins", $BuildQuery, "pluginid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $delete )
{
$Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Plugin )
{
$TSUE["TSUE_Database"]->delete("tsue_plugins", "pluginid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("plugin_manager_plugin_deleted", $Plugin["name"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
$Plugins = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_plugins ORDER BY active DESC, name ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Plugins) )
{
$tableContents = errormessage(get_phrase("plugin_manager_no_plugin"));
}
else
{
$tableContents = "";
while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
$linkClass = (!$Plugin["active"] ? "linkDisabled" : "");
$aaaagj = aaaaae(array( "edit=" . $Plugin["pluginid"] => array( "phrase" => $Plugin["name"], "class" => $linkClass ) ));
$aaaagk = aaaaae(array( "delete=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaagl = "";
if( $Plugin["pluginOptions"] )
{
$aaaagl = aaaaae(array( "options=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/options.png", get_phrase("dashboard_options")) ) ));
}
if( $Plugin["active"] )
{
$aaaagm = aaaaae(array( "enable_disable=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaagm = aaaaae(array( "enable_disable=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaagj . "<span class=\"smallPassiveText\">" . $Plugin["filename"] . "</span>" ), array( "width" => "20%", "text" => $aaaagl . $aaaagm . $aaaagk, "align" => "right" ) ));
}
}
$aaaagn = aaaaae(array( "new=1" => array( "phrase" => get_phrase("plugin_manager_create_new") ) ));
$HTML .= createtable(get_phrase("plugin_manager_plugin_list"), $tableContents, 2, $aaaagn);
return $HTML;
}
}
function getpluginoption($Options = array( ), $optionFieldName = "", $defaultFieldValue = "")
{
foreach( $Options as $Option )
{
if( $Option["fieldName"] == $optionFieldName )
{
return $Option["fieldValue"];
}
}
return $defaultFieldValue;
}
function aaaagi($pluginOptions)
{
global $TSUE;
$formContents = "";
if( $pluginOptions )
{
foreach( $pluginOptions as $Options )
{
if( isset($Options["fieldType"]) && $Options["fieldType"] && isset($Options["fieldName"]) && $Options["fieldName"] )
{
$optionName = "pluginOptions[" . $Options["fieldType"] . "][" . $Options["fieldName"] . "]";
switch( $Options["fieldType"] )
{
case "input":
$inputbox = inputbox($optionName, getpluginoption($pluginOptions, $Options["fieldName"]));
$formContents .= aaaaan(get_phrase("plugin_" . $Options["fieldName"]), $inputbox);
break;
case "radioYesNo":
$radiobox = radioyesno($optionName, getpluginoption($pluginOptions, $Options["fieldName"]));
$formContents .= aaaaan(get_phrase("plugin_" . $Options["fieldName"]), $radiobox);
}
}
}
}
return $formContents;
}
function aaaago($Permissions, $parentid = 0)
{
$aaaagp = aaaagq(array( "canview_forum", "canview_thread_list", "canview_thread_posts" ), $Permissions, "forums_viewing_permissions");
$formContents = aaaaan(get_phrase("forums_viewing_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canupload", "candownload" ), $Permissions, "forums_attachment_permissions");
$formContents .= aaaaan(get_phrase("forums_attachment_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canreply_threads", "canpost_new_thread", "candelete_own_posts", "canedit_own_posts", "canedit_own_threads", "cansubscribe_to_threads" ), $Permissions, "forums_post_thread_permissions");
$formContents .= aaaaan(get_phrase("forums_post_thread_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canpost_polls", "candelete_own_polls", "canedit_own_polls" ), $Permissions, "forum_poll_permissions");
$formContents .= aaaaan(get_phrase("forum_poll_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "candelete_posts", "candelete_threads", "canedit_posts", "canedit_threads", "canmanage_locked_threads", "canmove_threads", "canlock_threads", "cansticky_threads", "candelete_polls", "canedit_polls" ), $Permissions, "forums_admin_mod_permissions");
$formContents .= aaaaan(get_phrase("forums_admin_mod_permissions"), $aaaagp);
$extra = "";
if( $parentid == -1 )
{
$extra = "<label><input type=\"checkbox\" name=\"apply_to_subforums\" value=\"1\" checked=\"checked\" /> " . get_phrase("forums_apply_to_subforums") . "</label>";
}
return array( $formContents, $extra );
}
function handleforums()
{
global $TSUE;
$HTML = "";
$aaaagr = aaaaae(array( "new=1" => array( "phrase" => get_phrase("forums_create_new") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$permissions = intval(getvar("permissions"));
$membergroupid = intval(getvar("membergroupid"));
$type = trim(getvar("type"));
$quickPermissions = intval(getvar("quickPermissions"));
$defaultTheme = aaaaff();
$aaaags = ROOTPATH . "styles/" . $defaultTheme . "/forums/forum_icons/";
$forumIconsFullURL = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/forums/forum_icons/";
if( isset($_POST["displayorder"]) )
{
foreach( $_POST["displayorder"] as $forumID => $displayorder )
{
$forumID = intval($forumID);
$displayorder = intval($displayorder);
$TSUE["TSUE_Database"]->update("tsue_forums", array( "displayorder" => $displayorder ), "forumid=" . $TSUE["TSUE_Database"]->escape($forumID));
}
logadminaction(get_phrase("forums_forum_has_been_updated"));
handlerebuildcaches(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $edit || $new )
{
$Forum = array( "forumid" => 0, "parentid" => -1, "title" => "", "description" => "", "icon" => "1.png", "displayorder" => "", "password" => "", "external_link" => "", "last_post_info" => "" );
$aaaaam = "";
if( $edit )
{
$Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Forum )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Forum["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("forums_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Forum"]) )
{
$Forum = $_POST["Forum"];
$usePassword = (isset($_POST["usePassword"]) && $_POST["usePassword"] == 1 ? true : false);
if( !$Forum["title"] )
{
$formErrors[] = get_phrase("forums_title_error");
}
if( !isset($formErrors) )
{
$buildQuery = array( "parentid" => $Forum["parentid"], "title" => $Forum["title"], "description" => $Forum["description"], "icon" => $Forum["icon"], "displayorder" => intval($Forum["displayorder"]), "external_link" => $Forum["external_link"], "last_post_info" => "" );
if( $Forum["password"] && $usePassword )
{
$buildQuery["password"] = sha1($Forum["password"]);
}
else
{
if( !$usePassword )
{
$buildQuery["password"] = "";
}
}
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_forums", $buildQuery, "forumid=" . $TSUE["TSUE_Database"]->escape($edit));
$Forum["forumid"] = $edit;
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_forums", $buildQuery);
$Forum["forumid"] = $TSUE["TSUE_Database"]->insert_id();
aaaagt($Forum["forumid"]);
}
logadminaction(get_phrase("forums_forum_has_been_updated", $Forum["title"] . " (" . $Forum["forumid"] . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
handlerebuildcaches(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Forum[title]", $Forum["title"]);
$formContents = aaaaan(get_phrase("forums_forum_title"), $inputbox);
$inputbox = inputbox("Forum[description]", $Forum["description"]);
$formContents .= aaaaan(get_phrase("forums_forum_description"), $inputbox);
$inputbox = inputbox("Forum[displayorder]", $Forum["displayorder"], "text veryTinyText");
$formContents .= aaaaan(get_phrase("forums_forum_displayorder"), $inputbox);
$aaaagu = aaaagv("Forum[parentid]", $Forum["parentid"], (isset($Forum["forumid"]) ? $Forum["forumid"] : 0));
$formContents .= aaaaan(get_phrase("forums_parent_forum"), $aaaagu, get_phrase("forums_parent_forum_alt"));
$inputbox = inputbox("Forum[password]", NULL);
$formContents .= aaaaan("<label><input type=\"checkbox\" name=\"usePassword\" checked=\"checked\" value=\"1\" class=\"middle\" /> " . get_phrase("forums_forum_password") . "</label>", $inputbox, get_phrase("forums_forum_password_alt"));
$inputbox = inputbox("Forum[external_link]", $Forum["external_link"]);
$formContents .= aaaaan(get_phrase("forums_forum_external_link"), $inputbox, get_phrase("forums_forum_external_link_alt"));
$aaaagw = scandir($aaaags);
if( 3 < count($aaaagw) )
{
$Icons = "<input type=\"hidden\" name=\"Forum[icon]\" value=\"" . $Forum["icon"] . "\" />";
foreach( $aaaagw as $Icon )
{
if( in_array(file_extension($Icon), array( "jpg", "jpeg", "png", "gif" )) )
{
$Icons .= "
<div class=\"forumIcon" . (($Forum["icon"] == $Icon ? " selectedForumIcon" : "")) . "\"><img src=\"" . $forumIconsFullURL . $Icon . "\" alt=\"" . $Icon . "\" title=\"" . $Icon . "\" rel=\"" . $Icon . "\" /></div>";
}
}
$Icons .= "
<div class=\"clear\"></div>
<script type=\"text/javascript\">
\$(\"div.forumIcon\").on(\"click\", function(e)
{
e.preventDefault();
var \$this = \$(this), \$hiddenIconInputBox = \$('input[name=\"Forum[icon]\"]'), \$selectedNewIcon = \$this.find(\"img\").attr(\"alt\");
\$(\"div.forumIcon\").removeClass(\"selectedForumIcon\");
\$this.addClass(\"selectedForumIcon\");
\$hiddenIconInputBox.val(\$selectedNewIcon);
return false;
});
</script>";
$formContents .= aaaaan(get_phrase("forum_icon"), $Icons, get_phrase("forum_icon_alt"));
}
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $delete )
{
$Forum = $TSUE["TSUE_Database"]->query_result("SELECT parentid, title FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Forum )
{
deleteforum($delete);
if( $Forum["parentid"] == -1 )
{
$subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->num_rows($subForums) )
{
while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) )
{
deleteforum($subForum["forumid"]);
$deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"]));
if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
{
while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
{
deleteforum($deepSubForum["forumid"]);
}
}
}
}
}
else
{
$deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
{
while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
{
deleteforum($deepSubForum["forumid"]);
}
}
}
logadminaction(get_phrase("forums_forum_has_been_deleted", $Forum["title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
if( $permissions )
{
$Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions));
if( !$Forum )
{
return errormessage(get_phrase("message_content_error"));
}
$TITLE = get_phrase("membergroups_forum_permissions") . " : " . $Forum["title"];
addbreadcrumb(array( get_phrase("membergroups_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&permissions=" . $permissions ));
$forumPermissions = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums_permissions WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions));
if( !$forumPermissions )
{
aaaagt($permissions);
}
if( $type == "edit" && $membergroupid )
{
$membergroup = $TSUE["TSUE_Database"]->query_result("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups WHERE membergroupid=" . $TSUE["TSUE_Database"]->escape($membergroupid));
if( !$membergroup )
{
return errormessage(get_phrase("message_content_error"));
}
$forumPermissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_forums_permissions WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions) . " AND membergroupid = " . $TSUE["TSUE_Database"]->escape($membergroupid));
if( !$forumPermissions )
{
return errormessage(get_phrase("message_content_error"));
}
$Permissions = unserialize($forumPermissions["permissions"]);
addbreadcrumb(array( get_phrase("forums_view_permissions") . ": " . $membergroup["groupname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&permissions=" . $permissions . "&type=" . $type . "&membergroupid=" . $membergroupid ));
if( isset($_POST["Permissions"]) )
{
$newPermissions = serialize($_POST["Permissions"]);
$Permissions = $_POST["Permissions"];
$buildQuery = array( "forumid" => $permissions, "membergroupid" => $membergroupid, "permissions" => $newPermissions );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
if( $Forum["parentid"] == -1 && isset($_POST["apply_to_subforums"]) && $_POST["apply_to_subforums"] == 1 )
{
$subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($permissions));
if( $TSUE["TSUE_Database"]->num_rows($subForums) )
{
while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) )
{
$buildQuery = array( "forumid" => $subForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $newPermissions );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
$deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"]));
if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
{
while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
{
$buildQuery = array( "forumid" => $deepSubForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $newPermissions );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
}
}
}
}
}
logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $permissions . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
$aaaagx = aaaago($Permissions, $Forum["parentid"]);
$HTML .= "<h3>" . $Forum["title"] . "</h3>" . aaaabg($aaaagx["0"], array( ), $aaaagx["1"]);
return $HTML;
}
$aaaagy = "";
$membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups ORDER BY membergroupid ASC");
while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
{
$aaaagz = aaaaae(array( "permissions=" . $Forum["forumid"] . "&type=edit&membergroupid=" . $membergroup["membergroupid"] => array( "phrase" => get_phrase("forums_view_permissions") ) ));
$aaaagy .= "<li>[" . $aaaagz . "] " . getmembername($membergroup["groupname"], $membergroup["groupstyle"]) . "</li>";
}
$aaaaha = aaaaae(array( "edit=" . $Forum["forumid"] => array( "phrase" => $Forum["title"] ) ));
return createtable($TITLE, "
<tr>
<td>
<ul style=\"line-height: 2;\">
<li>
" . $aaaaha . "
<ul>" . $aaaagy . "</ul>
</li>
</ul>
</td>
</tr>");
}
if( $quickPermissions )
{
$formErrors = array( );
$membergroups = array( );
$HTML = "";
$Permissions = aaaahb();
$Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($quickPermissions));
if( !$Forum )
{
return errormessage(get_phrase("message_content_error"));
}
$TITLE = get_phrase("quick_forum_permissions") . " : " . $Forum["title"];
addbreadcrumb(array( get_phrase("quick_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&quickPermissions=" . $quickPermissions ));
if( ispost() && isset($_POST["save_options"]) )
{
$membergroups = (isset($_POST["membergroups"]) ? $_POST["membergroups"] : "");
$Permissions = (isset($_POST["Permissions"]) ? $_POST["Permissions"] : "");
if( !$membergroups )
{
$formErrors[] = get_phrase("select_membergroups_to_apply_perms");
}
if( $formErrors )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$aaaahc = serialize($Permissions);
foreach( $membergroups as $membergroupid )
{
$buildQuery = array( "forumid" => $quickPermissions, "membergroupid" => $membergroupid, "permissions" => $aaaahc );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
if( $Forum["parentid"] == -1 && isset($_POST["apply_to_subforums"]) && $_POST["apply_to_subforums"] == 1 )
{
$subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($quickPermissions));
if( $TSUE["TSUE_Database"]->num_rows($subForums) )
{
while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) )
{
$buildQuery = array( "forumid" => $subForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $aaaahc );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
$deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"]));
if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
{
while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
{
$buildQuery = array( "forumid" => $deepSubForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $aaaahc );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
}
}
}
}
}
}
logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $permissions . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
}
$Usergroups = aaaaaw("membergroups[]", $membergroups);
$formContents = aaaaan(get_phrase("select_membergroups_to_apply_perms"), $Usergroups);
$aaaagx = aaaago($Permissions, $Forum["parentid"]);
$formContents .= $aaaagx["0"];
$HTML .= "<h3>" . $TITLE . "</h3>" . aaaabg($formContents, array( ), $aaaagx["1"]);
return $HTML;
}
$Forums = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums ORDER BY displayorder ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Forums) )
{
$tableContents = errormessage(get_phrase("no_results_found"));
}
else
{
$forumCategories = $subForums = array( );
while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
{
if( $Forum["parentid"] == -1 )
{
$forumCategories[] = $Forum;
}
else
{
$subForums[$Forum["parentid"]][] = $Forum;
}
}
$tableContents = "";
foreach( $forumCategories as $Forum )
{
$tableContents .= aaaahd($Forum, false, false, $forumIconsFullURL);
if( isset($subForums[$Forum["forumid"]]) )
{
foreach( $subForums[$Forum["forumid"]] as $subForum )
{
$tableContents .= aaaahd($subForum, true, false, $forumIconsFullURL);
if( isset($subForums[$subForum["forumid"]]) )
{
foreach( $subForums[$subForum["forumid"]] as $deepSubForum )
{
$tableContents .= aaaahd($deepSubForum, true, true, $forumIconsFullURL);
}
}
}
}
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
$HTML .= aaaabn(createtable(get_phrase("menu_forum_manager"), $tableContents, 3, $aaaagr));
return $HTML;
}
}
function aaaaai()
{
global $TSUE;
$formErrors = array( );
$membergroups = array( );
$forums = array( );
$HTML = "";
$Permissions = aaaahb();
if( ispost() && isset($_POST["save_options"]) )
{
$forums = (isset($_POST["forums"]) ? $_POST["forums"] : "");
$membergroups = (isset($_POST["membergroups"]) ? $_POST["membergroups"] : "");
$Permissions = (isset($_POST["Permissions"]) ? $_POST["Permissions"] : "");
if( !$forums )
{
$formErrors[] = get_phrase("select_forums_to_apply_permissions");
}
if( !$membergroups )
{
$formErrors[] = get_phrase("select_membergroups_to_apply_perms");
}
if( $formErrors )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$aaaahc = serialize($Permissions);
foreach( $forums as $forumid )
{
$forumid = intval($forumid);
if( $forumid )
{
$Forum = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
if( $Forum )
{
foreach( $membergroups as $membergroupid )
{
$membergroupid = intval($membergroupid);
if( $membergroupid )
{
$buildQuery = array( "forumid" => $forumid, "membergroupid" => $membergroupid, "permissions" => $aaaahc );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
}
}
logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $forumid . ")"));
}
}
}
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
}
$Forums = aaaabc("forums[]", $forums);
$formContents = aaaaan(get_phrase("select_forums_to_apply_permissions"), $Forums);
$Usergroups = aaaaaw("membergroups[]", $membergroups);
$formContents .= aaaaan(get_phrase("select_membergroups_to_apply_perms"), $Usergroups);
$aaaagx = aaaago($Permissions);
$formContents .= $aaaagx["0"];
$HTML .= aaaabg($formContents);
return $HTML;
}
function aaaahd($Forum, $isSubForum = false, $isDeepSubForum = false, $forumIconsFullURL)
{
global $TSUE;
$aaaaha = aaaaae(array( "edit=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/edit" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("button_edit")) ) ));
$aaaahe = aaaaae(array( "permissions=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/permissions" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("forums_view_permissions")) ) ));
$aaaahf = aaaaae(array( "quickPermissions=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/quickpermissions" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("forums_set_quick_permissions")) ) ));
$aaaahg = aaaaae(array( "delete=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/delete" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubForum ? get_phrase("pages_page_delete_warning") : "")) ) ));
$forumIcon = "";
if( $Forum["icon"] )
{
$forumIcon = "<img src=\"" . $forumIconsFullURL . $Forum["icon"] . "\" alt=\"\" title=\"\" style=\"width: 16px; margin-right: 2px;\" />";
}
$pageLink = "
<span style=\"padding-left: 9px;\">
<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/?p=forums&pid=11&fid=" . $Forum["forumid"] . "\" target=\"_blank\" style=\"color: #ccc; font-weight: normal; font-size: 10px;\">?p=forums&pid=11&fid=" . $Forum["forumid"] . "</a>
</span>";
if( $isDeepSubForum )
{
$tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumDeepSub\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) ));
}
else
{
if( $isSubForum )
{
$tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumSub\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) ));
}
else
{
$tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumMain\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) ));
}
}
return $tableContents;
}
function aaaagt($forumid = 0)
{
global $TSUE;
if( !$forumid )
{
return false;
}
$aaaahh = aaaahb();
$membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, permissions FROM tsue_membergroups ORDER BY membergroupid ASC");
while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
{
$groupPerm = unserialize($membergroup["permissions"]);
$aaaahi = serialize((isset($groupPerm["canlogin_admincp"]) && $groupPerm["canlogin_admincp"] ? $aaaahh["adminForumPermissions"] : $aaaahh["defaultForumPermissions"]));
$buildQuery = array( "forumid" => $forumid, "membergroupid" => $membergroup["membergroupid"], "permissions" => $aaaahi );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
}
}
function deleteforum($forumid = 0)
{
global $TSUE;
checkdemomode();
if( !$forumid )
{
return false;
}
$TSUE["TSUE_Database"]->delete("tsue_forums", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
$TSUE["TSUE_Database"]->delete("tsue_forums_permissions", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
$Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads WHERE forumid=" . $TSUE["TSUE_Database"]->escape($forumid));
if( $TSUE["TSUE_Database"]->num_rows($Threads) )
{
while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
{
$threadCache[] = $Thread["threadid"];
}
$postCache = array( );
$aaaahj = array( );
$Posts = $TSUE["TSUE_Database"]->query("SELECT postid, memberid FROM tsue_forums_posts WHERE threadid IN (" . implode(",", $threadCache) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Posts) )
{
while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) )
{
if( isset($aaaahj[$Post["memberid"]]) )
{
$aaaahj[$Post["memberid"]] += 1;
}
else
{
$aaaahj[$Post["memberid"]] = 1;
}
$postCache[] = $Post["postid"];
}
}
if( $aaaahj )
{
foreach( $aaaahj as $memberid => $postCount )
{
$BuildQuery = array( "total_posts" => array( "escape" => 0, "value" => "IF(total_posts>" . $postCount . ", total_posts-" . $postCount . ", 0)" ) );
$TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $memberid);
}
}
$Attachments = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type ='posts' AND content_id IN (" . implode(",", $postCache) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Attachments) )
{
while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) )
{
$filePath = DATAPATH . "posts/" . $Attachment["filename"];
@unlink($filePath);
}
$TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type ='posts' AND content_id IN (" . implode(",", $postCache) . ")");
}
$TSUE["TSUE_Database"]->delete("tsue_forums_posts", "threadid IN (" . implode(",", $threadCache) . ")");
$TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "threadid IN (" . implode(",", $threadCache) . ")");
}
$TSUE["TSUE_Database"]->delete("tsue_forums_threads", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
return true;
}
function threadprefixes()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaahk = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_thread_prefix") ) ));
$new = intval(getvar("new"));
$edit = intval(getvar("edit"));
$delete = intval(getvar("delete"));
if( $edit || $new )
{
$Prefix = array( "pname" => "", "cssname" => "pink", "viewpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Prefix = $TSUE["TSUE_Database"]->query_result("SELECT pname, cssname, viewpermissions FROM tsue_forums_thread_prefixes WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Prefix )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
if( !$Prefix["viewpermissions"] )
{
$Prefix["viewpermissions"] = array( );
}
else
{
$Prefix["viewpermissions"] = unserialize($Prefix["viewpermissions"]);
}
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Prefix["pname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_new_thread_prefix") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Prefix"]) )
{
$Prefix = $_POST["Prefix"];
if( !isset($Prefix["viewpermissions"]) || !$Prefix["viewpermissions"] )
{
$Prefix["viewpermissions"] = array( );
}
if( !$Prefix["pname"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
if( !$Prefix["cssname"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
}
if( !isset($formErrors) )
{
$buildQuery = array( "pname" => $Prefix["pname"], "cssname" => $Prefix["cssname"], "viewpermissions" => ($Prefix["viewpermissions"] ? serialize($Prefix["viewpermissions"]) : "") );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_forums_thread_prefixes", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_forums_thread_prefixes", $buildQuery);
}
logadminaction(get_phrase("prefix_has_been_updated", $Prefix["pname"] . " (" . $edit . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Prefix[pname]", $Prefix["pname"]);
$formContents = aaaaan(get_phrase("forums_title"), $inputbox);
$selectbox = "
<label>
<input type=\"radio\" name=\"Prefix[cssname]\" value=\"pink\"" . (($Prefix["cssname"] == "pink" ? " checked=\"checked\"" : "")) . " />
<span class=\"prefixButton pink\">Test</span>
</label>
<label>
<input type=\"radio\" name=\"Prefix[cssname]\" value=\"green\"" . (($Prefix["cssname"] == "green" ? " checked=\"checked\"" : "")) . " />
<span class=\"prefixButton green\">Test</span>
</label>
<label>
<input type=\"radio\" name=\"Prefix[cssname]\" value=\"red\"" . (($Prefix["cssname"] == "red" ? " checked=\"checked\"" : "")) . " />
<span class=\"prefixButton red\">Test</span>
</label>
<label>
<input type=\"radio\" name=\"Prefix[cssname]\" value=\"orange\"" . (($Prefix["cssname"] == "orange" ? " checked=\"checked\"" : "")) . " />
<span class=\"prefixButton orange\">Test</span>
</label>
<label>
<input type=\"radio\" name=\"Prefix[cssname]\" value=\"blue\"" . (($Prefix["cssname"] == "blue" ? " checked=\"checked\"" : "")) . " />
<span class=\"prefixButton blue\">Test</span>
</label>
<label>
<input type=\"radio\" name=\"Prefix[cssname]\" value=\"yellow\"" . (($Prefix["cssname"] == "yellow" ? " checked=\"checked\"" : "")) . " />
<span class=\"prefixButton yellow\">Test</span>
</label>
<label>
<input type=\"radio\" name=\"Prefix[cssname]\" value=\"black\"" . (($Prefix["cssname"] == "black" ? " checked=\"checked\"" : "")) . " />
<span class=\"prefixButton black\">Test</span>
</label>
";
$formContents .= aaaaan(get_phrase("display_styling"), $selectbox);
$Usergroups = aaaaaw("Prefix[viewpermissions][]", $Prefix["viewpermissions"]);
$formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $delete )
{
$Prefix = $TSUE["TSUE_Database"]->query_result("SELECT pname FROM tsue_forums_thread_prefixes WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Prefix )
{
$TSUE["TSUE_Database"]->delete("tsue_forums_thread_prefixes", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
$TSUE["TSUE_Database"]->update("tsue_forums_thread_prefixes", array( "pid" => 0 ), "pid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("prefix_has_been_deleted", $Prefix["pname"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
$Prefixes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_thread_prefixes ORDER BY pname ASC");
if( $TSUE["TSUE_Database"]->num_rows($Prefixes) )
{
while( $Prefix = $TSUE["TSUE_Database"]->fetch_assoc($Prefixes) )
{
$aaaahl = aaaaae(array( "edit=" . $Prefix["pid"] => array( "phrase" => $Prefix["pname"] ) ));
$aaaahm = aaaaae(array( "delete=" . $Prefix["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<span class=\"prefixButton " . $Prefix["cssname"] . "\">" . $Prefix["cssname"] . "</span> " . $aaaahl ), array( "width" => "15%", "text" => $aaaahm, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("thread_prefixes"), $tableContents, 2, $aaaahk);
return $HTML;
}
function rebuildforumcounters()
{
return "
<div class=\"ajaxLoaderDiv\" id=\"forumCountersUpdating\">
" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "
" . get_phrase("please_wait_while_forum_counters_are_updated") . "
</div>
<script type=\"text/javascript\">
setTimeout(function()
{
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=rebuildForumCounters\",
success: function(result)
{
\$(\"#forumCountersUpdating\").css({\"text-align\": \"left\"}).html(result)
}
});
}, 1000);
</script>";
}
function handlethemes()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$themeid = intval(getvar("themeid"));
$enable_disable = intval(getvar("enable_disable"));
$type = trim(getvar("type"));
$template = intval(getvar("template"));
$editTemplate = intval(getvar("editTemplate"));
$deleteTemplate = intval(getvar("deleteTemplate"));
$newTemplate = intval(getvar("newTemplate"));
$revertTemplate = intval(getvar("revertTemplate"));
$style = intval(getvar("style"));
$editStyle = intval(getvar("editStyle"));
$newStyle = intval(getvar("newStyle"));
$revertStyle = intval(getvar("revertStyle"));
$searchPhrase = trim(getvar("searchPhrase", "", false));
$export = intval(getvar("export"));
$import = intval(getvar("import"));
$WHERE = "";
if( $import )
{
if( !extension_loaded("zip") )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (i1) http://php.net/manual/en/book.zip.php");
}
checkdemomode();
addbreadcrumb(array( get_phrase("import_a_theme") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&import=1" ));
if( isset($_FILES["theme"]) )
{
$importTheme = $_FILES["theme"];
if( $importTheme["error"] != UPLOAD_ERR_OK )
{
switch( $importTheme["error"] )
{
case 1:
$formErrors[] = get_phrase("upload_error1");
break;
case 4:
$formErrors[] = get_phrase("upload_error3");
break;
default:
$formErrors[] = get_phrase("an_error_hash_occurded") . ": (UE-" . $importTheme["error"] . ")";
break;
}
}
else
{
if( file_extension($importTheme["name"]) != "zip" )
{
$formErrors[] = get_phrase("upload_error6", "zip");
}
else
{
$zip = new ZipArchive();
$res = $zip->open($importTheme["tmp_name"]);
if( $res === true )
{
$tmpFolder = DATAPATH . "cache/tmp_theme_folder/";
if( is_dir($tmpFolder) )
{
rrmdir($tmpFolder);
}
if( !mkdir($tmpFolder, 511) )
{
$formErrors[] = get_phrase("an_error_hash_occurded") . ": (i3)";
}
else
{
$zip->extractTo($tmpFolder);
$zip->close();
$aaaahn = $tmpFolder . "install_tsue_theme.xml";
if( !file_exists($aaaahn) )
{
$formErrors[] = get_phrase("pls_install_a_valid_theme");
}
else
{
$XML = simplexml_load_file($aaaahn);
if( !$XML )
{
$formErrors[] = get_phrase("an_error_hash_occurded") . ": (i4) " . $aaaahn;
}
else
{
$checkTheme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themename = " . $TSUE["TSUE_Database"]->escape($XML->themename));
if( $checkTheme )
{
$formErrors[] = get_phrase("theme_manager_theme_name_alt");
}
else
{
$buildQuery = array( "themename" => $XML->themename, "viewpermissions" => $XML->viewpermissions, "active" => $XML->active );
if( $TSUE["TSUE_Database"]->insert("tsue_themes", $buildQuery) )
{
$themeID = $TSUE["TSUE_Database"]->insert_id();
foreach( $XML->styles->style as $style )
{
$buildQuery = array( "stylename" => $style->stylename, "themeid" => $themeID, "css" => $style->css_content, "last_updated" => $style->last_updated, "orj_css" => $style->orj_css_content );
$TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery);
}
foreach( $XML->templates->template as $template )
{
$buildQuery = array( "themeid" => $themeID, "templatename" => $template->templatename, "template" => aaaaho($template->template_content), "last_updated" => $template->last_updated, "orj_template" => aaaaho($template->orj_template_content) );
$TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery);
}
if( is_dir(DATAPATH . "cache/" . $XML->themename) )
{
rrmdir(DATAPATH . "cache/" . $XML->themename);
}
if( !rename($tmpFolder, DATAPATH . "cache/" . $XML->themename) )
{
$aaaahp = "I can not rename the folder name. Please rename this: " . $tmpFolder . " with this: " . DATAPATH . "cache/" . $XML->themename . " and then move " . DATAPATH . "cache/" . $XML->themename . " into " . ROOTPATH . "styles/";
}
else
{
if( !is_writable(ROOTPATH . "styles") )
{
$aaaahp = ROOTPATH . "styles is not writable. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/";
}
else
{
if( !copy_directory(DATAPATH . "cache/" . $XML->themename, ROOTPATH . "styles/" . $XML->themename) )
{
$aaaahp = "I can not move the folder. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/";
}
else
{
if( !is_dir(ROOTPATH . "styles/" . $XML->themename) )
{
$aaaahp = "I can not move the folder. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/";
}
else
{
rrmdir(DATAPATH . "cache/" . $XML->themename);
unlink(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml");
}
}
}
}
$phrase = get_phrase("theme_manager_theme_imported", $XML->themename);
if( isset($aaaahp) )
{
if( is_file(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml") )
{
unlink(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml");
}
if( is_file(DATAPATH . "cache/" . $XML->themename) )
{
unlink(DATAPATH . "cache/" . $XML->themename . "/install_tsue_theme.xml");
}
if( is_file($aaaahn) )
{
unlink($aaaahn);
}
$phrase .= "<br /><br />" . $aaaahp;
}
logadminaction($phrase);
$HTML .= successmessage($phrase);
handlerebuildcaches(false);
handleprune(false);
$importDone = true;
}
else
{
$formErrors[] = get_phrase("database_error") . ": (i5)";
}
}
}
}
}
}
else
{
$formErrors[] = get_phrase("an_error_hash_occurded") . ": (i2)";
}
}
}
if( isset($formErrors) )
{
if( isset($tmpFolder) && is_dir($tmpFolder) )
{
rrmdir($tmpFolder);
}
if( isset($XML->themename) && is_dir(DATAPATH . "cache/" . $XML->themename) )
{
rrmdir(DATAPATH . "cache/" . $XML->themename);
}
if( isset($XML->themename) && is_dir(ROOTPATH . "styles/" . $XML->themename) )
{
rrmdir(ROOTPATH . "styles/" . $XML->themename);
}
if( isset($themeID) )
{
$TSUE["TSUE_Database"]->delete("tsue_themes", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID));
$TSUE["TSUE_Database"]->delete("tsue_templates", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID));
$TSUE["TSUE_Database"]->delete("tsue_styles", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID));
}
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($importDone) )
{
$aaaacr = aaaacs("theme");
$formContents = aaaaan(get_phrase("theme_manager_import_from_uploaded_file"), $aaaacr);
$HTML .= aaaabg($formContents);
$HTML .= "
<script type=\"text/javascript\">
\$(\"#overlay_form\").submit(function(e)
{
\$(this).hide();
\$('<div style=\"font-size: 20px; font-weight: bold; color: red; border: 1px solid #ddd; padding: 15px; text-align: center;\"> " . getimage("ajax/ajax-loader.gif") . " " . get_phrase("please_wait_uploading") . "</div>').appendTo(\"#mainText\");
});
</script>";
return $HTML;
}
}
if( $export )
{
checkdemomode();
if( !extension_loaded("zip") )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (e1) http://php.net/manual/en/book.zip.php");
}
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename, viewpermissions, active FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export));
if( !$Theme )
{
return errormessage(get_phrase("message_content_error") . " (e2)");
}
$Styles = $TSUE["TSUE_Database"]->query("SELECT stylename, css, last_updated, orj_css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export));
if( !$Styles )
{
return errormessage(get_phrase("message_content_error") . " (e3)");
}
$Templates = $TSUE["TSUE_Database"]->query("SELECT templatename, template, last_updated, orj_template FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export));
if( !$Templates )
{
return errormessage(get_phrase("message_content_error") . " (e4)");
}
$xmlOutput = "<?xml version=\"1.0\" encoding=\"" . $TSUE["TSUE_Language"]["charset"] . "\"?>
<tsuetheme>
<themename>" . $Theme["themename"] . "</themename>
<viewpermissions>" . $Theme["viewpermissions"] . "</viewpermissions>
<active>" . $Theme["active"] . "</active>";
$xmlOutput .= "
<styles>";
while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) )
{
$xmlOutput .= "
<style>
<stylename>" . $Style["stylename"] . "</stylename>
<css_content><![CDATA[" . $Style["css"] . "]]></css_content>
<last_updated>" . $Style["last_updated"] . "</last_updated>
<orj_css_content><![CDATA[" . $Style["orj_css"] . "]]></orj_css_content>
</style>";
}
$xmlOutput .= "
</styles>";
$xmlOutput .= "
<templates>";
while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) )
{
$xmlOutput .= "
<template>
<templatename>" . $Template["templatename"] . "</templatename>
<template_content><![CDATA[" . aaaahq($Template["template"]) . "]]></template_content>
<last_updated>" . $Template["last_updated"] . "</last_updated>
<orj_template_content><![CDATA[" . aaaahq($Template["orj_template"]) . "]]></orj_template_content>
</template>";
}
$xmlOutput .= "
</templates>";
$xmlOutput .= "
</tsuetheme>";
$xmlOutput = utf8_encode($xmlOutput);
$aaaahr = safe_names($Theme["themename"]);
$aaaahs = DATAPATH . "cache/" . $aaaahr . "/";
$createXMLFile = $aaaahs . "install_tsue_theme.xml";
if( is_dir($aaaahs) )
{
rrmdir($aaaahs);
}
if( !is_dir($aaaahs) && !mkdir($aaaahs, 511) )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (e5) " . $aaaahs);
}
if( !file_put_contents($createXMLFile, $xmlOutput) )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (e6) " . $createXMLFile);
}
$XML = simplexml_load_file($createXMLFile);
if( !$XML )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (e7) " . $createXMLFile);
}
$themeFiles = ROOTPATH . "styles/" . $Theme["themename"] . "/";
copy_directory($themeFiles, $aaaahs);
$zipFileName = "tsue_theme_" . V . "_" . $aaaahr . ".zip";
$createZipFile = DATAPATH . "cache/" . $zipFileName;
if( is_file($createZipFile) )
{
unlink($createZipFile);
}
if( !zip($aaaahs, $createZipFile) )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (e8) " . $createZipFile);
}
rrmdir($aaaahs);
downloadfile($createZipFile, $zipFileName);
unlink($createZipFile);
exit();
}
if( $type == "manageTemplates" && $themeid )
{
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid));
if( !$Theme )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( get_phrase("theme_manager_manage_templates") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageTemplates" ));
if( $deleteTemplate )
{
$Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($deleteTemplate));
if( !$Template )
{
return errormessage(get_phrase("message_content_error"));
}
$TSUE["TSUE_Database"]->delete("tsue_templates", "templateid = " . $TSUE["TSUE_Database"]->escape($deleteTemplate));
$Phrase = get_phrase("template_x_has_been_deleted", $Template["templatename"]);
$HTML .= errormessage($Phrase);
handlerebuildcaches(false);
handleprune(false);
}
if( $revertTemplate )
{
$Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename,template FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($revertTemplate));
if( !$Template )
{
return errormessage(get_phrase("message_content_error"));
}
$BuildQuery = array( "template" => array( "escape" => 0, "value" => "orj_template" ) );
$TSUE["TSUE_Database"]->update("tsue_templates", $BuildQuery, "templateid = " . $TSUE["TSUE_Database"]->escape($revertTemplate));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
}
if( $searchPhrase )
{
$WHERE = " AND (templatename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%' OR template LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%')";
}
$Templates = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE . " ORDER BY last_updated DESC, templatename ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Templates) )
{
return errormessage(get_phrase("message_content_error"));
}
if( $editTemplate || $newTemplate )
{
if( isset($_GET["created"]) && !ispost() )
{
$HTML .= successmessage(get_phrase("message_saved"));
}
$Template = array( "templatename" => "", "template" => "" );
$aaaaam = "";
if( $editTemplate )
{
$Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename,template FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($editTemplate));
if( !$Template )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "editTemplate" => $editTemplate );
$aaaaht = $Template["templatename"];
addbreadcrumb(array( $Template["templatename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageTemplates&editTemplate=" . $editTemplate ));
}
else
{
addbreadcrumb(array( get_phrase("theme_manage_create_new_template") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageTemplates&newTemplate=1" ));
}
if( isset($_POST["Template"]) )
{
$Template = $_POST["Template"];
if( !$Template["templatename"] || !$Template["template"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( $Template["templatename"] && (!$editTemplate || $editTemplate && $aaaaht != $Template["templatename"]) )
{
$checkTemplate = $TSUE["TSUE_Database"]->query_result("SELECT templatename FROM tsue_templates WHERE templatename = " . $TSUE["TSUE_Database"]->escape($Template["templatename"]) . " AND themeid = " . $TSUE["TSUE_Database"]->escape($themeid));
if( $checkTemplate )
{
$formErrors[] = get_phrase("theme_manager_template_name_alt");
}
}
if( !isset($formErrors) )
{
$buildQuery = array( "themeid" => $themeid, "templatename" => $Template["templatename"], "template" => $Template["template"], "last_updated" => TIMENOW );
if( $editTemplate )
{
$TSUE["TSUE_Database"]->update("tsue_templates", $buildQuery, "templateid=" . $TSUE["TSUE_Database"]->escape($editTemplate));
}
else
{
$buildQuery["orj_template"] = $buildQuery["template"];
$TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery);
$aaaahu = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("theme_manager_template_updated", $Template["templatename"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
if( !$editTemplate )
{
header("Location: ?action=" . $TSUE["action"] . "&do=Themes&themeid=" . $themeid . "&type=manageTemplates&editTemplate=" . $aaaahu . "&created=1");
exit();
}
$Templates = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Template[templatename]", $Template["templatename"], "text");
$formContents = aaaaan(get_phrase("theme_manager_template_name"), $inputbox, get_phrase("theme_manager_template_name_alt"));
$inputbox = textarea("Template[template]", $Template["template"], false, "templateTextarea");
$formContents .= aaaaan(get_phrase("theme_manager_template_html"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$tableContents = "";
while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) )
{
$aaaahv = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&deleteTemplate=" . $Template["templateid"] . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")) => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaahw = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&editTemplate=" . $Template["templateid"] => array( "phrase" => $Template["templatename"] ) ));
$aaaahx = "";
if( $Template["template"] != $Template["orj_template"] )
{
$aaaahx = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&revertTemplate=" . $Template["templateid"] => array( "phrase" => get_phrase("revert") ) ));
}
$last_updated = convert_relative_time($Template["last_updated"]);
$size = friendly_size(strlen($Template["template"]));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaahv . " " . $aaaahw . "<span class=\"smallPassiveText\">" . get_phrase("torrents_peer_last_updated") . ": " . $last_updated . " (" . $size . ")</span>" ), array( "width" => "15%", "text" => "<span class=\"revertTemplate\">" . $aaaahx . "</span>", "align" => "right" ) ));
}
$aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_search_in_templates_keywords"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("theme_manager_search_in_templates"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageTemplates&search=1");
$aaaahz = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&newTemplate=1" => array( "phrase" => get_phrase("theme_manage_create_new_template") ) ));
$HTML .= "
<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">
" . createtable(get_phrase("theme_manager_manage_templates") . " (" . $Theme["themename"] . ")", $tableContents, 2, $aaaahz) . "
</div>";
return $HTML;
}
if( $type == "manageStyles" && $themeid )
{
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid));
if( !$Theme )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( get_phrase("theme_manager_manage_styles") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageStyles" ));
if( $searchPhrase )
{
$WHERE = " AND (stylename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%' OR css LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%')";
}
if( $revertStyle )
{
/*$Style = $TSUE["TSUE_Database"]->query_result("SELECT stylename FROM tsue_styles WHERE styleid = " . $TSUE["TSUE_Database"]->escape($revertStyle));
if( !$Style )
{
return errormessage(get_phrase("message_content_error"));
}
$BuildQuery = array( "css" => array( "escape" => 0, "value" => "orj_css" ) );
$TSUE["TSUE_Database"]->update("tsue_styles", $BuildQuery, "styleid = " . $TSUE["TSUE_Database"]->escape($revertStyle));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);*/
}
$Styles = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE . " ORDER BY last_updated DESC");
if( !$TSUE["TSUE_Database"]->num_rows($Styles) )
{
return errormessage(get_phrase("message_content_error"));
}
if( $editStyle || $newStyle )
{
$Style = array( "stylename" => "", "css" => "" );
$aaaaam = "";
if( $editStyle )
{
$Style = $TSUE["TSUE_Database"]->query_result("SELECT stylename,css FROM tsue_styles WHERE styleid = " . $TSUE["TSUE_Database"]->escape($editStyle));
if( !$Style )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "editStyle" => $editStyle );
$aaaaia = $Style["stylename"];
addbreadcrumb(array( $Style["stylename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageStyles&editStyle=" . $editStyle ));
}
else
{
addbreadcrumb(array( get_phrase("theme_manage_create_new_style") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageStyles&newStyle=1" ));
}
if( isset($_POST["Style"]) )
{
$Style = $_POST["Style"];
if( !$Style["stylename"] || !$Style["css"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( $Style["stylename"] && (!$editStyle || $editStyle && $aaaaia != $Style["stylename"]) )
{
$checkStyle = $TSUE["TSUE_Database"]->query_result("SELECT stylename FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . " AND stylename = " . $TSUE["TSUE_Database"]->escape($Style["stylename"]));
if( $checkStyle )
{
$formErrors[] = get_phrase("theme_manager_style_name_alt");
}
}
if( !isset($formErrors) )
{
$buildQuery = array( "stylename" => $Style["stylename"], "themeid" => $themeid, "css" => $Style["css"], "last_updated" => TIMENOW );
if( $editStyle )
{
$TSUE["TSUE_Database"]->update("tsue_styles", $buildQuery, "styleid=" . $TSUE["TSUE_Database"]->escape($editStyle));
}
else
{
$buildQuery["orj_css"] = $buildQuery["css"];
$TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery);
}
logadminaction(get_phrase("theme_manager_style_updated", $Style["stylename"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$Styles = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
$inputbox = inputbox("Style[stylename]", $Style["stylename"], "text");
$formContents = aaaaan(get_phrase("theme_manager_style_name"), $inputbox, get_phrase("theme_manager_style_name_alt"));
$inputbox = textarea("Style[css]", $Style["css"], false, "templateTextarea");
$formContents .= aaaaan(get_phrase("theme_manager_style_css"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
$tableContents = "";
while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) )
{
$aaaaib = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&editStyle=" . $Style["styleid"] => array( "phrase" => $Style["stylename"] ) ));
$aaaahx = "";
if( $Style["css"] != $Style["orj_css"] )
{
$aaaahx = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&revertStyle=" . $Style["styleid"] => array( "phrase" => get_phrase("revert") ) ));
}
$last_updated = convert_relative_time($Style["last_updated"]);
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaaib . "<span class=\"smallPassiveText\">" . get_phrase("torrents_peer_last_updated") . ": " . $last_updated . "</span>" ), array( "width" => "15%", "text" => "<span class=\"revertTemplate\">" . $aaaahx . "</span>", "align" => "right" ) ));
}
$aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_search_in_templates_keywords"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("theme_manager_search_in_styles"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageStyles&search=1");
$aaaaic = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&newStyle=1" => array( "phrase" => get_phrase("theme_manage_create_new_style") ) ));
$HTML .= "
<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">
" . createtable(get_phrase("theme_manager_manage_styles") . " (" . $Theme["themename"] . ")", $tableContents, 2, $aaaaic) . "
</div>";
return $HTML;
}
if( $delete )
{
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Theme )
{
if( !$TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid != " . $TSUE["TSUE_Database"]->escape($delete) . " AND active = 1") )
{
return errormessage(get_phrase("you_cant_delete_disable_this_theme"));
}
$TSUE["TSUE_Database"]->delete("tsue_themes", "themeid = " . $TSUE["TSUE_Database"]->escape($delete));
$TSUE["TSUE_Database"]->delete("tsue_templates", "themeid = " . $TSUE["TSUE_Database"]->escape($delete));
$TSUE["TSUE_Database"]->delete("tsue_styles", "themeid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("theme_manager_theme_deleted", $Theme["themename"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $edit || $new )
{
$Theme = array( "themename" => "", "viewpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename, viewpermissions FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Theme )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$aaaaid = $Theme["themename"];
if( $Theme["viewpermissions"] )
{
$Theme["viewpermissions"] = unserialize($Theme["viewpermissions"]);
}
else
{
$Theme["viewpermissions"] = array( );
}
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("theme_manager_create_new_theme") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Theme"]) )
{
$Theme = $_POST["Theme"];
if( !isset($Theme["viewpermissions"]) )
{
$Theme["viewpermissions"] = array( );
}
if( !$Theme["themename"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
if( !$edit || $edit && $aaaaid != $Theme["themename"] )
{
$checkTheme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themename = " . $TSUE["TSUE_Database"]->escape($Theme["themename"]));
if( $checkTheme )
{
$formErrors[] = get_phrase("theme_manager_theme_name_alt");
}
}
}
if( !is_dir(STYLEPATH . $Theme["themename"]) )
{
$formErrors[] = get_phrase("theme_manager_theme_folder_error", (DEMO_MODE ? "" : STYLEPATH));
}
if( !isset($formErrors) )
{
$buildQuery = array( "themename" => $Theme["themename"] );
if( $Theme["viewpermissions"] )
{
$buildQuery["viewpermissions"] = serialize($Theme["viewpermissions"]);
}
else
{
$buildQuery["viewpermissions"] = "";
}
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_themes", $buildQuery, "themeid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_themes", $buildQuery);
$aaaaie = $TSUE["TSUE_Database"]->insert_id();
$defaultThemeID = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"];
if( $aaaaie && $defaultThemeID )
{
$allTemplates = $TSUE["TSUE_Database"]->query("SELECT templatename, template, last_updated, orj_template FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($defaultThemeID));
if( $TSUE["TSUE_Database"]->num_rows($allTemplates) )
{
while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($allTemplates) )
{
$buildQuery = array( "themeid" => $aaaaie, "templatename" => $Template["templatename"], "template" => $Template["template"], "last_updated" => $Template["last_updated"], "orj_template" => $Template["orj_template"] );
$TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery);
}
}
$allStyles = $TSUE["TSUE_Database"]->query("SELECT stylename, css, last_updated, orj_css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($defaultThemeID));
if( $TSUE["TSUE_Database"]->num_rows($allStyles) )
{
while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($allStyles) )
{
$buildQuery = array( "themeid" => $aaaaie, "stylename" => $Style["stylename"], "css" => $Style["css"], "last_updated" => $Style["last_updated"], "orj_css" => $Style["orj_css"] );
$TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery);
}
}
}
}
logadminaction(get_phrase("theme_manager_theme_updated", $Theme["themename"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Theme[themename]", $Theme["themename"], "text texthalf");
$formContents = aaaaan(get_phrase("theme_manager_theme_name"), $inputbox, get_phrase("theme_manager_theme_name_alt"));
$Usergroups = aaaaaw("Theme[viewpermissions][]", $Theme["viewpermissions"]);
$formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Query = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Query )
{
if( !$TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid != " . $TSUE["TSUE_Database"]->escape($enable_disable) . " AND active = 1") )
{
return errormessage(get_phrase("you_cant_delete_disable_this_theme"));
}
$TSUE["TSUE_Database"]->update("tsue_themes", $BuildQuery, "themeid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("theme_manager_theme_updated", $Query["themename"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
$Themes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_themes ORDER BY active DESC, themename ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Themes) )
{
$tableContents = errormessage(get_phrase("theme_manager_no_theme"));
}
else
{
$tableContents = "";
while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) )
{
$linkClass = (!$Theme["active"] ? "linkDisabled" : "");
$aaaaif = aaaaae(array( "edit=" . $Theme["themeid"] => array( "phrase" => $Theme["themename"], "class" => $linkClass ) ));
$aaaaig = aaaaae(array( "themeid=" . $Theme["themeid"] . "&type=manageTemplates" => array( "phrase" => getimage("buttons/managetemplates.png", get_phrase("theme_manager_manage_templates")) ) ));
$aaaaih = aaaaae(array( "export=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/save.png", get_phrase("button_export")), "target" => "_blank" ) ));
$aaaaii = aaaaae(array( "themeid=" . $Theme["themeid"] . "&type=manageStyles" => array( "phrase" => getimage("buttons/managestyles.png", get_phrase("theme_manager_manage_styles")) ) ));
$aaaaij = aaaaae(array( "delete=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Theme["active"] )
{
$aaaaik = aaaaae(array( "enable_disable=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaaik = aaaaae(array( "enable_disable=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "70%", "text" => $aaaaif . ((DEMO_MODE ? "" : "<span class=\"smallPassiveText\">" . get_phrase("theme_manager_themepath", STYLEPATH . $Theme["themename"]) . "</span>")) ), array( "width" => "30%", "text" => $aaaaik . $aaaaig . $aaaaii . $aaaaih . $aaaaij, "align" => "right" ) ));
}
}
$aaaail = aaaaae(array( "new=1" => array( "phrase" => get_phrase("theme_manager_create_new_theme") ) ));
$aaaaim = aaaaae(array( "import=1" => array( "phrase" => get_phrase("import_a_theme") ) ));
$HTML .= createtable(get_phrase("theme_manager_themes_alt"), $tableContents, 2, $aaaail . " - " . $aaaaim);
return $HTML;
}
function handlelanguages()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$enable_disable = intval(getvar("enable_disable"));
$languageid = intval(getvar("languageid"));
$type = trim(getvar("type"));
$import = intval(getvar("import"));
$examine = intval(getvar("examine"));
$fixMissing = intval(getvar("fixMissing"));
$searchPhrase = trim(getvar("searchPhrase", "", false));
if( $delete )
{
checkdemomode();
$Language = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Language )
{
if( !$TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($delete) . " AND active = 1") )
{
return errormessage(get_phrase("you_cant_delete_disable_this_language"));
}
$TSUE["TSUE_Database"]->delete("tsue_languages", "languageid = " . $TSUE["TSUE_Database"]->escape($delete));
if( file_exists(DATAPATH . "languageFlags/" . $delete . ".png") )
{
@unlink(DATAPATH . "languageFlags/" . $delete . ".png");
}
logadminaction(get_phrase("theme_manager_language_deleted", $Language["title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $edit || $new )
{
$Language = array( "title" => "", "content_language" => "", "charset" => "", "date_format" => "", "time_format" => "" );
$aaaaam = "";
if( $edit )
{
$Language = $TSUE["TSUE_Database"]->query_result("SELECT title,content_language,charset,date_format,time_format FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Language )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Language["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("theme_manager_create_new_language") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Language"]) )
{
checkdemomode();
$Language = $_POST["Language"];
$Flag = $_FILES["flag"];
if( !$Language["title"] || !$Language["content_language"] || !$Language["charset"] || !$Language["date_format"] || !$Language["date_format"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
$TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]);
}
if( !$Flag )
{
$flagErrors[] = get_phrase("upload_error3");
}
else
{
if( !is_uploaded_file($Flag["tmp_name"]) )
{
$flagError[] = get_phrase("upload_error3");
}
else
{
if( !$Flag["name"] || !$Flag["type"] || !$Flag["tmp_name"] || $Flag["error"] || !$Flag["size"] )
{
$flagError[] = get_phrase("upload_error3");
}
else
{
if( !in_array(file_extension($Flag["name"]), array( "png" )) )
{
$flagError[] = get_phrase("upload_error6", "png");
}
else
{
$newFlag = $Flag["tmp_name"];
}
}
}
}
if( isset($flagError) && !$edit )
{
$formErrors = array_merge($formErrors, $flagError);
unset($flagError);
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $Language["title"], "content_language" => $Language["content_language"], "charset" => $Language["charset"], "date_format" => $Language["date_format"], "time_format" => $Language["time_format"] );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid=" . $TSUE["TSUE_Database"]->escape($edit));
$flagID = $edit;
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_languages", $buildQuery);
$flagID = $TSUE["TSUE_Database"]->insert_id();
$newLanguageID = $flagID;
$defaultLanguageID = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"];
if( $newLanguageID && $defaultLanguageID )
{
$phraseGlobal = $TSUE["TSUE_Database"]->query_result("SELECT phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($defaultLanguageID));
if( $phraseGlobal )
{
$buildQuery = array( "phrase_global" => $phraseGlobal["phrase_global"] );
$TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($newLanguageID));
}
}
}
if( isset($newFlag) && $flagID )
{
@move_uploaded_file($newFlag, DATAPATH . "languageFlags/" . $flagID . ".png");
}
logadminaction(get_phrase("theme_manager_language_updated", $Language["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Language[title]", $Language["title"], "text texthalf");
$formContents = aaaaan(get_phrase("theme_manager_language_title"), $inputbox);
$inputbox = inputbox("Language[content_language]", $Language["content_language"], "text texthalf");
$formContents .= aaaaan(get_phrase("theme_manager_content_language"), $inputbox, get_phrase("theme_manager_content_language_alt"));
$inputbox = inputbox("Language[charset]", $Language["charset"], "text texthalf");
$formContents .= aaaaan(get_phrase("theme_manager_language_charset"), $inputbox);
$inputbox = inputbox("Language[date_format]", $Language["date_format"], "text texthalf");
$formContents .= aaaaan(get_phrase("theme_manager_language_date_format"), $inputbox, get_phrase("theme_manager_language_date_time_help"));
$inputbox = inputbox("Language[time_format]", $Language["time_format"], "text texthalf");
$formContents .= aaaaan(get_phrase("theme_manager_language_time_format"), $inputbox, get_phrase("theme_manager_language_date_time_help"));
$aaaacr = aaaacs("flag");
$formContents .= aaaaan(get_phrase("theme_manager_language_flag"), $aaaacr, ($edit ? get_phrase("theme_manager_language_flag_alt") : ""));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $type == "deletePhrase" )
{
$aaaain = trim(getvar("text"));
if( !$aaaain )
{
return errormessage(get_phrase("message_content_error"));
}
$checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
if( !$checkPhrase )
{
return errormessage(get_phrase("message_content_error"));
}
$phraseGlobal = unserialize($checkPhrase["phrase_global"]);
if( !isset($phraseGlobal[$aaaain]) )
{
return errormessage(get_phrase("message_content_error"));
}
unset($phraseGlobal[$aaaain]);
$phraseGlobal = serialize($phraseGlobal);
$BuildQuery = array( "phrase_global" => $phraseGlobal );
$TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $languageid);
if( $TSUE["TSUE_Database"]->affected_rows() )
{
logadminaction(get_phrase("theme_manager_language_updated", $checkPhrase["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$type = "phraseList";
}
else
{
return errormessage(get_phrase("database_error"));
}
}
if( $type == "editPhrase" || $type == "newPhrase" )
{
addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=phraseList&languageid=" . $languageid ));
$text = trim(getvar("text"));
if( !$text && $type == "editPhrase" )
{
return errormessage(get_phrase("message_content_error"));
}
$checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, charset, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
if( !$checkPhrase )
{
return errormessage(get_phrase("message_content_error"));
}
$TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]);
$phrase = unserialize($checkPhrase["phrase_global"]);
if( $type == "editPhrase" && !isset($phrase[$text]) )
{
return errormessage(get_phrase("message_content_error"));
}
if( isset($_POST["Phrase"]) )
{
$_POST["Phrase"]["title"] = trim($_POST["Phrase"]["title"]);
if( $type == "newPhrase" && isset($phrase[$_POST["Phrase"]["title"]]) )
{
return errormessage(get_phrase("theme_manager_phrase_title_alt"));
}
if( !$_POST["Phrase"]["title"] || !aaaaio($_POST["Phrase"]["title"]) )
{
return errormessage(get_phrase("theme_manager_phrase_title_error"));
}
$phrase[$_POST["Phrase"]["title"]] = trim($_POST["Phrase"]["text"]);
$phrase = serialize($phrase);
$BuildQuery = array( "phrase_global" => $phrase );
$TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $languageid);
if( $TSUE["TSUE_Database"]->affected_rows() )
{
$aaaaip = $TSUE["TSUE_Database"]->query("SELECT languageid, phrase_global FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($languageid));
if( $TSUE["TSUE_Database"]->num_rows($aaaaip) )
{
while( $aaaaiq = $TSUE["TSUE_Database"]->fetch_assoc($aaaaip) )
{
$aaaair = unserialize($aaaaiq["phrase_global"]);
if( !isset($aaaair[$_POST["Phrase"]["title"]]) )
{
$aaaair[$_POST["Phrase"]["title"]] = trim($_POST["Phrase"]["text"]);
$BuildQuery = array( "phrase_global" => serialize($aaaair) );
$TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $aaaaiq["languageid"]);
}
}
}
logadminaction(get_phrase("theme_manager_language_updated", $checkPhrase["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$aaaais = true;
$type = "phraseList";
}
else
{
return errormessage(get_phrase("database_error"));
}
}
if( !isset($aaaais) )
{
$aaaaam = array( "type" => $type, "languageid" => $languageid, "text" => $text );
$inputbox = inputbox("Phrase[title]", $text, "text");
$formContents = aaaaan(get_phrase("theme_manager_phrase_title"), $inputbox, get_phrase("theme_manager_phrase_title_alt"));
$inputbox = textarea("Phrase[text]", (isset($phrase[$text]) ? $phrase[$text] : ""), false, "phraseTextarea");
$formContents .= aaaaan(get_phrase("theme_manager_phrase_text"), $inputbox, get_phrase("theme_manager_phrase_text_alt"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $type == "phraseList" )
{
$page = intval(getvar("page"));
addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=phraseList&languageid=" . $languageid ));
$checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, charset, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
if( !$checkPhrase )
{
return errormessage(get_phrase("message_content_error"));
}
$TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]);
$phrase_global = unserialize($checkPhrase["phrase_global"]);
if( !isset($_GET["noSort"]) )
{
ksort($phrase_global);
}
$aaaait = array( );
foreach( $phrase_global as $name => $value )
{
if( $searchPhrase )
{
if( stristr($name, $searchPhrase) !== false || stristr($value, $searchPhrase) !== false )
{
$aaaait[] = array( "name" => trim($name), "value" => trim($value) );
}
}
else
{
$aaaait[] = array( "name" => trim($name), "value" => trim($value) );
}
}
unset($phrase_global);
if( $aaaait )
{
$pages = array_chunk($aaaait, $TSUE["array_items_perpage"]);
$countPages = count($aaaait);
$Pagination = pagination($countPages, "type=" . $type . "&languageid=" . $languageid . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")), 3, $TSUE["array_items_perpage"], true);
unset($aaaait);
$tableContents = "";
foreach( $pages[$page] as $Phrase )
{
$aaaaiu = aaaaae(array( "type=editPhrase&languageid=" . $languageid . "&text=" . $Phrase["name"] => array( "phrase" => $Phrase["name"] ) ));
$aaaaiv = aaaaae(array( "type=deletePhrase&languageid=" . $languageid . "&text=" . $Phrase["name"] . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")) => array( "phrase" => "[x]", "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => $aaaaiv . " " . $aaaaiu . " <span class=\"smallPassiveText\">" . htmlspecialchars($Phrase["value"]) . "</span>" ) ));
}
}
else
{
$Pagination["0"] = "";
$Pagination["1"] = "";
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("theme_manager_search_phrases_no_result") ) ));
}
$aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_phrase_text"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("theme_manager_search_phrases"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=" . $type . "&languageid=" . $languageid);
$aaaaiw = aaaaae(array( "type=newPhrase&languageid=" . $languageid => array( "phrase" => get_phrase("theme_manager_phrase_new") ) ));
$HTML .= "
<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">
" . createtable(get_phrase("theme_manager_language_phrases") . ": " . $checkPhrase["title"] . " (" . $aaaaiw . ")", $tableContents, 1, $Pagination["1"]) . "
</div>";
return $HTML;
}
else
{
if( $type == "export" )
{
addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=phraseList&languageid=" . $languageid ));
$checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
if( !$checkPhrase )
{
return errormessage(get_phrase("message_content_error"));
}
$TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]);
$fileName = "language-" . $checkPhrase["title"] . "-" . $checkPhrase["content_language"] . ".txt";
$phraseGlobal = unserialize($checkPhrase["phrase_global"]);
$phraseList = PHP_EOL;
foreach( $phraseGlobal as $aaaain => $aaaaix )
{
$phraseList .= "[PHRASE][PHRASE_TITLE]" . $aaaain . "[/PHRASE_TITLE][PHRASE_CONTENT]" . $aaaaix . "[/PHRASE_CONTENT][/PHRASE]" . PHP_EOL . PHP_EOL;
}
$Contents = "[TITLE]" . $checkPhrase["title"] . "[/TITLE]" . PHP_EOL . "[CONTENT_LANGUAGE]" . $checkPhrase["content_language"] . "[/CONTENT_LANGUAGE]" . PHP_EOL . "[CHARSET]" . $checkPhrase["charset"] . "[/CHARSET]" . PHP_EOL . "[DATE_FORMAT]" . $checkPhrase["date_format"] . "[/DATE_FORMAT]" . PHP_EOL . "[TIME_FORMAT]" . $checkPhrase["time_format"] . "[/TIME_FORMAT]" . PHP_EOL . $phraseList;
downloadfile(NULL, $fileName, $Contents);
exit();
}
else
{
if( $import )
{
checkdemomode();
addbreadcrumb(array( get_phrase("theme_manager_import") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&import=1" ));
if( isset($_FILES["language"]) )
{
$Language = $_FILES["language"];
if( !$Language["size"] || $Language["error"] )
{
$formErrors[] = get_phrase("theme_manager_import_valid_file");
}
else
{
if( file_extension($Language["name"]) != "txt" )
{
$formErrors[] = get_phrase("upload_error6", "txt");
}
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$Language = file_get_contents($Language["tmp_name"]);
if( !$Language )
{
$formErrors[] = get_phrase("theme_manager_import_valid_file");
}
else
{
preg_match("#\[TITLE\](.*?)\[\/TITLE\]#esi", $Language, $Title);
$Title = (isset($Title["1"]) && $Title["1"] ? $Title["1"] : "");
preg_match("#\[CONTENT_LANGUAGE\](.*?)\[\/CONTENT_LANGUAGE\]#esi", $Language, $contentLanguage);
$contentLanguage = (isset($contentLanguage["1"]) && $contentLanguage["1"] ? $contentLanguage["1"] : "");
preg_match("#\[CHARSET\](.*?)\[\/CHARSET\]#esi", $Language, $Charset);
$Charset = (isset($Charset["1"]) && $Charset["1"] ? $Charset["1"] : "");
preg_match("#\[DATE_FORMAT\](.*?)\[\/DATE_FORMAT\]#esi", $Language, $dateFormat);
$dateFormat = (isset($dateFormat["1"]) && $dateFormat["1"] ? $dateFormat["1"] : "");
preg_match("#\[TIME_FORMAT\](.*?)\[\/TIME_FORMAT\]#esi", $Language, $timeFormat);
$timeFormat = (isset($timeFormat["1"]) && $timeFormat["1"] ? $timeFormat["1"] : "");
$phraseGlobal = array( );
preg_match_all("#\[PHRASE\](.*?)\[\/PHRASE\]#esi", $Language, $PHRASES);
foreach( $PHRASES["1"] as $PHRASE )
{
preg_match("#\[PHRASE_TITLE\](.*?)\[\/PHRASE_TITLE\]#esi", $PHRASE, $aaaain);
preg_match("#\[PHRASE_CONTENT\](.*?)\[\/PHRASE_CONTENT\]#esi", $PHRASE, $aaaaix);
$phraseGlobal[$aaaain["1"]] = $aaaaix["1"];
}
$aaaaiy = $TSUE["TSUE_Database"]->query_result("SELECT phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"]));
$aaaaiy = unserialize($aaaaiy["phrase_global"]);
$aaaaiz = array( );
foreach( $aaaaiy as $aaaain => $phraseValue )
{
if( !isset($phraseGlobal[$aaaain]) )
{
$aaaaiz[$aaaain] = $phraseValue;
}
}
if( $aaaaiz )
{
$phraseGlobal = array_merge($phraseGlobal, $aaaaiz);
}
$buildQuery = array( "title" => $Title, "content_language" => $contentLanguage, "charset" => $Charset, "date_format" => $dateFormat, "time_format" => $timeFormat, "phrase_global" => serialize($phraseGlobal) );
$TSUE["TSUE_Database"]->insert("tsue_languages", $buildQuery);
$newLanguageID = $TSUE["TSUE_Database"]->insert_id();
logadminaction(get_phrase("theme_manager_language_imported", $Title));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=Languages&edit=" . $newLanguageID);
exit();
}
}
}
$aaaacr = aaaacs("language");
$formContents = aaaaan(get_phrase("theme_manager_import_from_uploaded_file"), $aaaacr);
$HTML .= aaaabg($formContents);
return $HTML;
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Query = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Query )
{
if( !$TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($enable_disable) . " AND active = 1") )
{
return errormessage(get_phrase("you_cant_delete_disable_this_language"));
}
$TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("theme_manager_language_updated", $Query["title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $examine )
{
$aaaaja = $TSUE["TSUE_Database"]->query_result("SELECT title, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($examine));
if( !$aaaaja )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( get_phrase("examine_this_language") . " (" . $aaaaja["title"] . ")" => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&examine=" . $examine ));
$aaaajb = @unserialize($aaaaja["phrase_global"]);
$aaaajc = array( );
$aaaaiz = array( );
$orjPhrases = @unserialize(@trim(@file_get_contents("oops")));
if( !$orjPhrases )
{
return errormessage(get_phrase("unable_fetch_orj_language"));
}
foreach( $orjPhrases as $phraseName => $phraseValue )
{
if( !isset($aaaajb[$phraseName]) )
{
$aaaaiz[$phraseName] = $phraseValue;
}
}
foreach( $aaaajb as $phraseName => $phraseValue )
{
if( !isset($orjPhrases[$phraseName]) )
{
$aaaajc[$phraseName] = $phraseValue;
}
}
if( empty($aaaajc) && empty($aaaaiz) )
{
return successmessage(get_phrase("language_x_is_valid", $aaaaja["title"]));
}
$Output = "";
if( $fixMissing )
{
foreach( $aaaaiz as $phraseName => $phraseValue )
{
$aaaajb[$phraseName] = $phraseValue;
}
$buildQuery = array( "phrase_global" => serialize($aaaajb) );
$TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($examine));
$Status = get_phrase("missing_phrases_for_x_has_been_fixed", $aaaaja["title"]);
logadminaction($Status);
handlerebuildcaches(false);
handleprune(false);
return successmessage($Status);
}
else
{
if( !empty($aaaajc) )
{
$tableContents = "";
foreach( $aaaajc as $phraseName => $phraseValue )
{
$tableContents .= aaaaag(array( array( "width" => "30%", "text" => $phraseName ), array( "width" => "70%", "text" => htmlspecialchars($phraseValue) ) ));
}
$Output .= createtable(get_phrase("following_phrases_are_outdated"), $tableContents, 2);
}
if( !empty($aaaaiz) )
{
$tableContents = "";
foreach( $aaaaiz as $phraseName => $phraseValue )
{
$tableContents .= aaaaag(array( array( "width" => "30%", "text" => $phraseName ), array( "width" => "70%", "text" => htmlspecialchars($phraseValue) ) ));
}
if( $Output )
{
$Output .= "<br />";
}
$aaaajd = aaaaae(array( "examine=" . $examine . "&fixMissing=1" => array( "phrase" => get_phrase("fix_missing_phrases") ) ));
$Output .= createtable(get_phrase("following_phrases_are_missing"), $tableContents, 2, $aaaajd);
}
return $Output;
}
}
else
{
$Languages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_languages ORDER BY active DESC, title ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Languages) )
{
$tableContents = errormessage(get_phrase("theme_manager_no_language"));
}
else
{
$tableContents = "";
while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
{
$linkClass = (!$Language["active"] ? "linkDisabled" : "");
$aaaaje = aaaaae(array( "edit=" . $Language["languageid"] => array( "phrase" => $Language["title"], "class" => $linkClass ) ));
$aaaajf = aaaaae(array( "delete=" . $Language["languageid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaajg = aaaaae(array( "type=phraseList&languageid=" . $Language["languageid"] => array( "phrase" => getimage("buttons/phrases.png", get_phrase("theme_manager_language_phrases")) ) ));
$aaaajh = aaaaae(array( "type=export&languageid=" . $Language["languageid"] => array( "phrase" => getimage("buttons/save.png", get_phrase("button_export")), "target" => "_blank" ) ));
$aaaaji = aaaaae(array( "examine=" . $Language["languageid"] => array( "phrase" => getimage("buttons/examine.png", get_phrase("examine_this_language")) ) ));
if( $Language["active"] )
{
$aaaajj = aaaaae(array( "enable_disable=" . $Language["languageid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaajj = aaaaae(array( "enable_disable=" . $Language["languageid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "70%", "text" => aaaajk($Language["languageid"]) . " " . $aaaaje . "<span class=\"smallPassiveText\">" . $Language["charset"] . "</span>" ), array( "width" => "30%", "align" => "right", "text" => $aaaajg . $aaaaji . $aaaajh . $aaaajj . $aaaajf ) ));
}
}
$aaaajl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("theme_manager_create_new_language") ) ));
$aaaajm = aaaaae(array( "import=1" => array( "phrase" => get_phrase("theme_manager_import") ) ));
$HTML .= createtable(get_phrase("theme_manager_themes_alt"), $tableContents, 2, $aaaajl . " - " . $aaaajm);
return $HTML;
}
}
}
}
function handleuploadtorrent()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$createNewField = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_field") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$enable_disable = intval(getvar("enable_disable"));
$htmlCode = intval(getvar("htmlCode"));
$aaaajn = array( 1 => get_phrase("torrent_details"), 2 => get_phrase("torrent_options"), 3 => get_phrase("torrent_file"), 4 => get_phrase("torrent_finish_upload") );
$aaaajo = array( 1 => "Input Text", 2 => "Textarea", 3 => "Selectbox", 4 => "Input Checkbox(es)", 5 => "Input Radio Button(s)" );
if( $htmlCode )
{
$Field = $TSUE["TSUE_Database"]->query_result("SELECT title,name FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($htmlCode));
if( !$Field )
{
return errormessage(get_phrase("message_content_error"));
}
exit( "<div style=\"font-weight: bold; font-size: 14px;\">" . get_phrase("generate_html_code") . ": " . $Field["title"] . "</div>
<div style=\"border-bottom: 1px solid #ddd; font-size: 12px; padding-bottom: 2px; margin-bottom: 2px;\">" . get_phrase("generated_html_code_tip") . "</div>
" . highlight_string("{\$Torrent['" . $Field["name"] . "']}", true) );
}
if( $new || $edit )
{
checkdemomode();
$Field = array( "area" => 1, "title" => "", "name" => "", "type" => 1, "default_value" => "", "tip_phrase" => "", "active" => 1, "display_order" => 0 );
$aaaaam = "";
if( $edit )
{
$Field = $TSUE["TSUE_Database"]->query_result("SELECT field_id, area, title, name, type, default_value, tip_phrase, active, display_order FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Field )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$aaaajp = $Field["name"];
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Field["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_new_field") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Field"]) )
{
$Field = $_POST["Field"];
if( !$Field["title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$Field["name"] )
{
$formErrors[] = get_phrase("you_must_enter_unique_field_name");
}
else
{
if( !preg_match("#^[a-zA-Z0-9\_]+\$#", $Field["name"]) )
{
$formErrors[] = get_phrase("invalid_field_name");
}
else
{
if( !$edit && $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) || $edit && $aaaajp != $Field["name"] && $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) )
{
$formErrors[] = get_phrase("you_must_enter_unique_field_name");
}
else
{
$checkFieldName = $TSUE["TSUE_Database"]->query_result("SELECT field_id FROM tsue_torrents_upload_extra_fields WHERE name = " . $TSUE["TSUE_Database"]->escape($Field["name"]) . (($edit ? " AND field_id != " . $TSUE["TSUE_Database"]->escape($edit) : "")));
if( $checkFieldName )
{
$formErrors[] = get_phrase("you_must_enter_unique_field_name");
}
}
}
}
if( !isset($aaaajn[$Field["area"]]) )
{
$formErrors[] = get_phrase("field_area_error");
}
if( !isset($aaaajo[$Field["type"]]) )
{
$formErrors[] = get_phrase("field_type_error");
}
if( in_array($Field["type"], array( 3, 4, 5 )) && !$Field["default_value"] )
{
$formErrors[] = get_phrase("field_default_value_error");
}
if( $Field["tip_phrase"] && !$TSUE["TSUE_Language"]["phrase"][$Field["tip_phrase"]] )
{
$formErrors[] = get_phrase("the_specific_phrase_x_does_not_exists", $Field["tip_phrase"]);
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$buildQuery = array( "area" => $Field["area"], "title" => $Field["title"], "name" => strtolower($Field["name"]), "type" => $Field["type"], "default_value" => $Field["default_value"], "tip_phrase" => $Field["tip_phrase"], "active" => $Field["active"], "display_order" => $Field["display_order"] );
if( $edit )
{
if( $aaaajp != $Field["name"] )
{
if( $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $aaaajp) )
{
$TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` DROP `" . $aaaajp . "`");
}
$TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` ADD `" . $Field["name"] . "` MEDIUMBLOB");
}
$Phrase = get_phrase("new_field_x_updated", $Field["title"]);
$TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", $buildQuery, "field_id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` ADD `" . $Field["name"] . "` MEDIUMBLOB");
$Phrase = get_phrase("new_field_x_updated", $Field["title"]);
$TSUE["TSUE_Database"]->insert("tsue_torrents_upload_extra_fields", $buildQuery);
}
$HTML .= successmessage($Phrase);
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$uploadDone = true;
}
}
if( !isset($uploadDone) )
{
$radioButtons = radioyesno("Field[active]", $Field["active"]);
$formContents = aaaaan(get_phrase("field_is_active"), $radioButtons);
$inputbox = inputbox("Field[title]", $Field["title"]);
$formContents .= aaaaan(get_phrase("field_title"), $inputbox);
$inputbox = inputbox("Field[name]", $Field["name"]);
$formContents .= aaaaan(get_phrase("field_name"), $inputbox);
$selectbox = selectbox("Field[area]", $Field["area"], $aaaajn);
$formContents .= aaaaan(get_phrase("field_area"), $selectbox);
$selectbox = selectbox("Field[type]", $Field["type"], $aaaajo);
$formContents .= aaaaan(get_phrase("field_type"), $selectbox);
$textarea = textarea("Field[default_value]", $Field["default_value"], false, "phraseTextarea textareaHeightNormal");
$formContents .= aaaaan(get_phrase("field_default_values"), $textarea, get_phrase("field_default_values_alt"));
$inputbox = inputbox("Field[tip_phrase]", $Field["tip_phrase"]);
$formContents .= aaaaan(get_phrase("field_tip_phrase"), $inputbox);
$inputbox = inputbox("Field[display_order]", $Field["display_order"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
checkdemomode();
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Field )
{
$TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", $BuildQuery, "field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
$Phrase = get_phrase("new_field_x_updated", $Field["title"] . " (" . $enable_disable . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( $delete )
{
checkdemomode();
$Field = $TSUE["TSUE_Database"]->query_result("SELECT title, name FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Field )
{
$TSUE["TSUE_Database"]->delete("tsue_torrents_upload_extra_fields", "field_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) )
{
$TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` DROP `" . $Field["name"] . "`");
}
$Phrase = get_phrase("field_x_has_been_deleted", $Field["title"] . " (" . $delete . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( !$tableContents )
{
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $field_id => $display_order )
{
$field_id = intval($field_id);
$display_order = intval($display_order);
$TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", array( "display_order" => $display_order ), "field_id=" . $TSUE["TSUE_Database"]->escape($field_id));
}
$HTML .= successmessage(get_phrase("field_display_options_updated"));
logadminaction(get_phrase("field_display_options_updated"));
handleprune(false);
}
$Fields = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_upload_extra_fields ORDER BY active DESC, display_order ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Fields) )
{
$tableContents = errormessage(get_phrase("message_nothing_found"));
}
else
{
$tableContents = "";
while( $Field = $TSUE["TSUE_Database"]->fetch_assoc($Fields) )
{
$linkClass = (!$Field["active"] ? "linkDisabled" : "");
$aaaajq = aaaaae(array( "edit=" . $Field["field_id"] => array( "phrase" => $Field["title"], "class" => $linkClass ) ));
$aaaajr = aaaaae(array( "delete=" . $Field["field_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Field["active"] )
{
$aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$aaaajt = aaaaae(array( "htmlCode=" . $Field["field_id"] => array( "phrase" => getimage("buttons/generateHTMLcode.png", get_phrase("generate_html_code")), "rel" => $Field["field_id"], "class" => "generateHTMLCode" ) ));
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => $aaaajq . " <span class=\"smallPassiveText\">" . $aaaajn[$Field["area"]] . " - " . $aaaajo[$Field["type"]] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Field["field_id"] . "]", $Field["display_order"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "15%", "text" => $aaaajt . $aaaajs . $aaaajr, "align" => "center" ) ));
}
$tableContents = "
<script type=\"text/javascript\">
\$(document).on(\"click\", \".generateHTMLCode\", function(e)
{
e.preventDefault();
var \$field_id = parseInt(\$(this).attr(\"rel\"));
\$.ajax
({
method: \"POST\",
data: \"isAjax=1&action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&htmlCode=\"+\$field_id,
success: function(response)
{
TSUEAdmin.dialog(response, true, true);
}
});
return false;
});
</script>" . $tableContents;
}
}
$tableContents .= aaaaag(array( array( "width" => "70%", "text" => NULL ), array( "width" => "30%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
$aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) ));
$HTML .= aaaabn(createtable(get_phrase("navigation_upload_torrent") . " | " . get_phrase("add_extra_fields"), $tableContents, 3, $createNewField));
return $HTML;
}
function handleautodescription()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$createNewField = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_field") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$enable_disable = intval(getvar("enable_disable"));
$aaaaju = "(" . get_phrase("auto_description") . ") ";
$aaaajn = array( 1 => get_phrase("navigation_upload_torrent"), 2 => get_phrase("messages_new_message"), 3 => get_phrase("forums_post_new_thread") );
if( $new || $edit )
{
checkdemomode();
$Field = array( "area" => 1, "title" => "", "default_value" => "", "active" => 1, "display_order" => 0, "viewpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Field = $TSUE["TSUE_Database"]->query_result("SELECT field_id, area, title, default_value, active, display_order, viewpermissions FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Field )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
if( !$Field["viewpermissions"] )
{
$Field["viewpermissions"] = array( );
}
else
{
$Field["viewpermissions"] = unserialize($Field["viewpermissions"]);
}
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Field["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_new_field") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Field"]) )
{
$Field = $_POST["Field"];
if( !$Field["title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !isset($aaaajn[$Field["area"]]) )
{
$formErrors[] = get_phrase("field_area_error");
}
if( !$Field["default_value"] )
{
$formErrors[] = get_phrase("field_default_value_error");
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
if( !isset($Field["viewpermissions"]) || !$Field["viewpermissions"] )
{
$Field["viewpermissions"] = array( );
}
$buildQuery = array( "area" => $Field["area"], "title" => $Field["title"], "default_value" => $Field["default_value"], "active" => $Field["active"], "display_order" => $Field["display_order"], "viewpermissions" => ($Field["viewpermissions"] ? serialize($Field["viewpermissions"]) : "") );
if( $edit )
{
$Phrase = get_phrase("new_field_x_updated", $Field["title"]);
$TSUE["TSUE_Database"]->update("tsue_auto_description", $buildQuery, "field_id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$Phrase = get_phrase("new_field_x_updated", $Field["title"]);
$TSUE["TSUE_Database"]->insert("tsue_auto_description", $buildQuery);
}
$HTML .= successmessage($Phrase);
logadminaction($aaaaju . $Phrase);
handlerebuildcaches(false);
handleprune(false);
$uploadDone = true;
}
}
if( !isset($uploadDone) )
{
$radioButtons = radioyesno("Field[active]", $Field["active"]);
$formContents = aaaaan(get_phrase("field_is_active"), $radioButtons);
$inputbox = inputbox("Field[title]", $Field["title"]);
$formContents .= aaaaan(get_phrase("field_title"), $inputbox);
$selectbox = selectbox("Field[area]", $Field["area"], $aaaajn);
$formContents .= aaaaan(get_phrase("field_area"), $selectbox);
$textarea = textarea("Field[default_value]", $Field["default_value"], false, "phraseTextarea textareaHeightNormal");
$formContents .= aaaaan(get_phrase("field_default_values"), $textarea, get_phrase("field_default_values_alt"));
$inputbox = inputbox("Field[display_order]", $Field["display_order"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
$Usergroups = aaaaaw("Field[viewpermissions][]", $Field["viewpermissions"]);
$formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
checkdemomode();
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Field )
{
$TSUE["TSUE_Database"]->update("tsue_auto_description", $BuildQuery, "field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
$Phrase = get_phrase("new_field_x_updated", $Field["title"] . " (" . $enable_disable . ")");
logadminaction($aaaaju . $Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( $delete )
{
checkdemomode();
$Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Field )
{
$TSUE["TSUE_Database"]->delete("tsue_auto_description", "field_id = " . $TSUE["TSUE_Database"]->escape($delete));
$Phrase = get_phrase("field_x_has_been_deleted", $Field["title"] . " (" . $delete . ")");
logadminaction($aaaaju . $Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( !$tableContents )
{
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $field_id => $display_order )
{
$field_id = intval($field_id);
$display_order = intval($display_order);
$TSUE["TSUE_Database"]->update("tsue_auto_description", array( "display_order" => $display_order ), "field_id=" . $TSUE["TSUE_Database"]->escape($field_id));
}
$HTML .= successmessage(get_phrase("field_display_options_updated"));
logadminaction($aaaaju . get_phrase("field_display_options_updated"));
handleprune(false);
}
$Fields = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_auto_description ORDER BY active DESC, display_order ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Fields) )
{
$tableContents = errormessage(get_phrase("message_nothing_found"));
}
else
{
$tableContents = "";
while( $Field = $TSUE["TSUE_Database"]->fetch_assoc($Fields) )
{
$linkClass = (!$Field["active"] ? "linkDisabled" : "");
$aaaajq = aaaaae(array( "edit=" . $Field["field_id"] => array( "phrase" => $Field["title"], "class" => $linkClass ) ));
$aaaajr = aaaaae(array( "delete=" . $Field["field_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Field["active"] )
{
$aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => $aaaajq . " <span class=\"smallPassiveText\">" . $aaaajn[$Field["area"]] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Field["field_id"] . "]", $Field["display_order"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "15%", "text" => $aaaajs . $aaaajr, "align" => "center" ) ));
}
}
}
$tableContents .= aaaaag(array( array( "width" => "70%", "text" => NULL ), array( "width" => "30%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
$aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) ));
$HTML .= aaaabn(createtable(get_phrase("auto_description"), $tableContents, 3, $createNewField));
return $HTML;
}
function aaaaaj($Query = NULL)
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaajv = aaaaae(array( "new=1" => array( "phrase" => get_phrase("members_create_new") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( $delete )
{
$Member = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE memberid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Member )
{
deletemember($delete);
logadminaction(get_phrase("members_member_deleted", $Member["membername"] . " (" . $delete . ")"));
}
}
if( $edit || $new )
{
$Member = array( "membergroupid" => 2, "membername" => "", "password" => "", "passkey" => "", "email" => "", "themeid" => 1, "languageid" => 1, "timezone" => 1, "gender" => "", "visible" => 1, "accountParked" => 0 );
$memberProfile = array( "date_of_birth" => "", "signature" => "", "country" => "", "custom_title" => "", "uploaded" => 0, "downloaded" => 0, "total_posts" => 0, "invites_left" => 0, "points" => 0, "total_warns" => 0, "hitRuns" => 0, "torrent_pass" => "", "torrentStyle" => 1, "defaultTorrentCategories" => "" );
$memberPrivacy = array( "allow_view_profile" => "members", "receive_admin_email" => 1, "receive_pm_email" => 1, "show_your_age" => 1 );
$aaaajw = "";
$defaultEmail = "";
if( $edit )
{
$Member = $TSUE["TSUE_Database"]->query_result("SELECT m.membergroupid, m.membername, m.passkey, m.email, m.themeid, m.languageid, m.timezone, m.gender, m.visible, m.accountParked, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_member_bans b USING(memberid) WHERE m.memberid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Member )
{
return errormessage(get_phrase("member_not_found"));
}
$aaaajw = $Member["membername"];
$defaultEmail = $Member["email"];
$memberProfile = $TSUE["TSUE_Database"]->query_result("SELECT date_of_birth, signature, country, custom_title, uploaded, downloaded, total_posts, invites_left, points, total_warns, hitRuns, torrent_pass, torrentStyle, defaultTorrentCategories FROM tsue_member_profile WHERE memberid = " . $TSUE["TSUE_Database"]->escape($edit));
$memberPrivacy = $TSUE["TSUE_Database"]->query_result("SELECT allow_view_profile, receive_admin_email, receive_pm_email, show_your_age FROM tsue_member_privacy WHERE memberid = " . $TSUE["TSUE_Database"]->escape($edit));
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Member["membername"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("members_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Member"]) )
{
$Member = $_POST["Member"];
$memberProfile = $_POST["memberProfile"];
$memberPrivacy = $_POST["memberPrivacy"];
if( !isset($_POST["Member"]["visible"]) )
{
$Member["visible"] = 0;
}
if( !isset($_POST["Member"]["accountParked"]) )
{
$Member["accountParked"] = 0;
}
if( !isset($_POST["memberPrivacy"]["receive_admin_email"]) )
{
$memberPrivacy["receive_admin_email"] = 0;
}
if( !isset($_POST["memberPrivacy"]["receive_pm_email"]) )
{
$memberPrivacy["receive_pm_email"] = 0;
}
if( !isset($_POST["memberPrivacy"]["show_your_age"]) )
{
$memberPrivacy["show_your_age"] = 0;
}
if( !isset($_POST["memberProfile"]["defaultTorrentCategories"]) || empty($_POST["memberProfile"]["defaultTorrentCategories"]) )
{
$memberProfile["defaultTorrentCategories"] = "";
}
else
{
$aaaajx = array( );
foreach( $_POST["memberProfile"]["defaultTorrentCategories"] as $dtcid )
{
$dtcid = intval($dtcid);
if( $dtcid )
{
$aaaajx[] = $dtcid;
}
}
$memberProfile["defaultTorrentCategories"] = implode(",", $aaaajx);
unset($aaaajx);
}
if( !$Member["membername"] || !is_valid_string($Member["membername"]) )
{
$formErrors[] = get_phrase("invalid_membername");
}
else
{
if( strlen($Member["membername"]) < $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"] )
{
$formErrors[] = get_phrase("invalid_membername_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"]);
}
else
{
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"] < strlen($Member["membername"]) )
{
$formErrors[] = get_phrase("invalid_membername_max_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"]);
}
else
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($Member["membername"]));
if( $checkMember && $Member["membername"] != $aaaajw )
{
$formErrors[] = get_phrase("invalid_membername_in_use");
}
else
{
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"] )
{
$member_name_illegal_member_names = preg_split("/\r?\n/", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"], -1, PREG_SPLIT_NO_EMPTY);
if( $member_name_illegal_member_names )
{
foreach( $member_name_illegal_member_names as $name )
{
$name = trim($name);
if( $name === "" )
{
continue;
}
if( stripos($Member["membername"], $name) !== false && $Member["membername"] != $aaaajw )
{
$formErrors[] = get_phrase("invalid_membername_in_use");
}
}
}
}
}
}
}
}
if( !is_valid_email($Member["email"]) )
{
$formErrors[] = get_phrase("invalid_email");
}
else
{
$checkEmail = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE email = " . $TSUE["TSUE_Database"]->escape($Member["email"]));
if( $checkEmail && $Member["email"] != $defaultEmail )
{
$formErrors[] = get_phrase("invalid_email_in_use");
}
}
if( !$Member["passkey"] )
{
$Member["passkey"] = generatepasskey();
}
if( $Member["password"] )
{
if( strlen($Member["password"]) < $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"] )
{
$formErrors[] = get_phrase("invalid_memberpassword_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"]);
}
else
{
if( $Member["password"] == $Member["membername"] )
{
$formErrors[] = get_phrase("invalid_memberpassword_same_as_name");
}
}
}
else
{
if( $new )
{
$formErrors[] = get_phrase("invalid_memberpassword_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"]);
}
}
if( !$memberProfile["date_of_birth"] || substr_count($memberProfile["date_of_birth"], "/") != 2 || 10 < strlen($memberProfile["date_of_birth"]) )
{
$formErrors[] = get_phrase("invalid_date_of_birth");
}
else
{
list($day, $month, $year) = @tsue_explode("/", $memberProfile["date_of_birth"]);
if( !checkdate($month, $day, $year) || date("Y") <= $year )
{
$formErrors[] = get_phrase("invalid_date_of_birth");
}
}
if( !isset($formErrors) )
{
if( empty($Member["password"]) )
{
unset($Member["password"]);
}
else
{
$Member["password"] = md5($Member["password"]);
}
$memberProfile["custom_title"] = html_declean($memberProfile["custom_title"]);
$memberProfile["torrent_pass"] = substr($Member["passkey"], 0, 32);
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_members", $Member, "memberid=" . $TSUE["TSUE_Database"]->escape($edit));
$TSUE["TSUE_Database"]->update("tsue_member_profile", $memberProfile, "memberid=" . $TSUE["TSUE_Database"]->escape($edit));
$TSUE["TSUE_Database"]->update("tsue_member_privacy", $memberPrivacy, "memberid=" . $TSUE["TSUE_Database"]->escape($edit));
$Member["memberid"] = $edit;
}
else
{
$Member["password_date"] = TIMENOW;
$Member["joindate"] = TIMENOW;
$TSUE["TSUE_Database"]->insert("tsue_members", $Member);
$Member["memberid"] = $TSUE["TSUE_Database"]->insert_id();
$memberProfile["memberid"] = $Member["memberid"];
$TSUE["TSUE_Database"]->insert("tsue_member_profile", $memberProfile);
$memberPrivacy["memberid"] = $Member["memberid"];
$TSUE["TSUE_Database"]->insert("tsue_member_privacy", $memberPrivacy);
}
$aaaajy = get_phrase("members_member_updated", $Member["membername"] . " (" . $Member["memberid"] . ")");
logadminaction($aaaajy);
$memberQuery = array_merge($Member, $memberProfile, $memberPrivacy);
logadminaction($aaaajy . "~~~" . serialize($memberQuery), 3);
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$table1 = "
<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">
<tr>
<td style=\"text-align: right;\">" . get_phrase("your_name") . "</td>
<td>" . inputbox("Member[membername]", $Member["membername"]) . " " . ((isset($Member["isBanned"]) && $Member["isBanned"] ? "<span class=\"smallPassiveText\">" . get_phrase("banned") . "</span>" : "")) . "</td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("your_email") . "</td>
<td>" . inputbox("Member[email]", $Member["email"]) . "</td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("your_password") . "</td>
<td>" . inputbox("Member[password]", NULL) . "</td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("your_passkey") . "</td>
<td>" . inputbox("Member[passkey]", $Member["passkey"], "text" . (($edit ? " textanormal" : "")), NULL, false, false, ($edit ? "<a href=\"#\" id=\"reset_passkey\" data=\"" . $edit . "\">[" . get_phrase("reset_passkey") . "]</a>" : "")) . "</td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("your_membergroup") . "</td>
<td>" . aaaabf("Member[membergroupid]", $Member["membergroupid"]) . "</td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("memberinfo_custom_title") . "</td>
<td>" . inputbox("memberProfile[custom_title]", strip_tags($memberProfile["custom_title"])) . "</td>
</tr>
</table>
<script type=\"text/javascript\">
\$(\"#reset_passkey\").click(function(e)
{
e.preventDefault();
var \$this = \$(this), \$memberid = parseInt(\$this.attr(\"data\"));
if(\$memberid)
{
buildQuery = \"isAjax=1&action=reset_passkey&memberid=\"+\$memberid;
\$.ajax
({
type: \"POST\",
data: buildQuery,
success: function(response)
{
if(response.length == 40)
{
\$('<div class=\"success\">" . get_phrase("reset_passkey_message", $Member["membername"]) . "</div>').insertAfter(\"#reset_passkey\");
\$this.remove();
\$('input[name=\"Member[passkey]\"]').val(response);
}
}
});
}
return false;
});
</script>";
$table2 = "
<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">
<tr>
<td style=\"text-align: right;\">" . get_phrase("stats_uploaded") . "</td>
<td>" . inputbox("memberProfile[uploaded]", $memberProfile["uploaded"], "text texthalf", friendly_size($memberProfile["uploaded"])) . "</td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("stats_downloaded") . "</td>
<td>" . inputbox("memberProfile[downloaded]", $memberProfile["downloaded"], "text texthalf", friendly_size($memberProfile["downloaded"])) . "</td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("stats_total_posts") . "</td>
<td>" . inputbox("memberProfile[total_posts]", $memberProfile["total_posts"], "text texthalf") . "</td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("stats_total_invites") . "</td>
<td>" . inputbox("memberProfile[invites_left]", $memberProfile["invites_left"], "text texthalf") . "</td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("stats_points") . "</td>
<td>" . inputbox("memberProfile[points]", $memberProfile["points"], "text texthalf") . "</td>
</tr>
</table>";
$table3 = "
<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">
<tr>
<td style=\"text-align: right;\">" . get_phrase("memberinfo_gender") . "</td>
<td>
<select name=\"Member[gender]\" class=\"select\">
<option value=\"m\"" . (($Member["gender"] == "m" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_male") . "</option>
<option value=\"f\"" . (($Member["gender"] == "f" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_female") . "</option>
<option value=\"\"" . (($Member["gender"] == "" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_unspecified") . "</option>
</select>
</td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("memberinfo_date_of_birth") . "</td>
<td>" . inputbox("memberProfile[date_of_birth]", $memberProfile["date_of_birth"], "text", NULL, true) . "</td>
</tr>
<tr>
<td style=\"text-align: right; vertical-align: top;\">" . get_phrase("memberinfo_country") . "</td>
<td>" . inputbox("memberProfile[country]", $memberProfile["country"]) . " " . (($memberProfile["country"] ? getcountryflag($memberProfile["country"]) : "")) . "</td>
</tr>
</table>";
$torrentCategoriesInbutboxes = torrentcategoriesinbutboxes("memberProfile[defaultTorrentCategories][]", "checkbox", explode(",", $memberProfile["defaultTorrentCategories"]));
$table4 = "
<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">
<tr>
<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_style") . "</td>
<td style=\"vertical-align: top;\">" . selectbox("Member[themeid]", $Member["themeid"], aaaaap()) . "</td>
</tr>
<tr>
<td style=\"text-align: right; width: 150px;\">" . get_phrase("torrent_listing") . "</td>
<td style=\"vertical-align: top;\">" . selectbox("memberProfile[torrentStyle]", $memberProfile["torrentStyle"], array( 1 => get_phrase("modern"), 2 => get_phrase("classic") )) . "</td>
</tr>
<tr>
<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_language") . "</td>
<td style=\"vertical-align: top;\">" . selectbox("Member[languageid]", $Member["languageid"], aaaaaq()) . "</td>
</tr>
<tr>
<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_timezone") . "</td>
<td style=\"vertical-align: top;\">" . selectbox("Member[timezone]", $Member["timezone"], fetch_timezones()) . "</td>
</tr>
<tr>
<td colspan=\"2\" style=\"border-top: 1px solid #ccc;\"></td>
</tr>
<tr>
<td style=\"text-align: right;vertical-align: top; width: 150px;\">" . get_phrase("default_categories") . "</td>
<td style=\"vertical-align: top;\">" . $torrentCategoriesInbutboxes . "</td>
</tr>
<tr>
<td colspan=\"2\" style=\"border-top: 1px solid #ccc;\"></td>
</tr>
<tr>
<td style=\"text-align: right; width: 150px; vertical-align: top;\">" . get_phrase("park_account") . "</td>
<td style=\"vertical-align: top;\"><input type=\"checkbox\" name=\"Member[accountParked]\" value=\"1\"" . (($Member["accountParked"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("park_account_info") . "</span></td>
</tr>
</table>";
$table5 = "
<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">
<tr>
<td style=\"text-align: right;\">" . get_phrase("membercp_online_status") . "</td>
<td><input type=\"checkbox\" name=\"Member[visible]\" value=\"1\"" . (($Member["visible"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_online_status_info") . "</span></td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("membercp_receive_email") . "</td>
<td><input type=\"checkbox\" name=\"memberPrivacy[receive_admin_email]\" value=\"1\"" . (($memberPrivacy["receive_admin_email"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_receive_email_info") . "</span></td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("membercp_receive_pm_email") . "</td>
<td><input type=\"checkbox\" name=\"memberPrivacy[receive_pm_email]\" value=\"1\"" . (($memberPrivacy["receive_pm_email"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_receive_pm_email_info") . "</span></td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("show_your_age") . "</td>
<td><input type=\"checkbox\" name=\"memberPrivacy[show_your_age]\" value=\"1\"" . (($memberPrivacy["show_your_age"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("show_your_age_info") . "</span></td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("membercp_view_your_details") . "</td>
<td>" . selectbox("memberPrivacy[allow_view_profile]", $memberPrivacy["allow_view_profile"], array( "everyone" => get_phrase("membercp_all_visitors"), "members" => get_phrase("membercp_members_only"), "followed" => get_phrase("membercp_people_you_follow"), "none" => get_phrase("membercp_none") )) . "</td>
</tr>
</table>";
$table6 = "
<table border=\"0\" cellpadding=\"5\" width=\"100%\" cellspacing=\"0\">
<tr>
<td style=\"align: right; vertical-align: top;\">" . textarea("memberProfile[signature]", $memberProfile["signature"], true) . "</td>
</tr>
</table>";
$table7 = "
<table border=\"0\" cellpadding=\"5\" width=\"100%\" cellspacing=\"0\">
<tr>
<td style=\"text-align: right;\">" . get_phrase("stats_total_warns") . "</td>
<td>" . inputbox("memberProfile[total_warns]", $memberProfile["total_warns"], "text texthalf") . "</td>
</tr>
<tr>
<td style=\"text-align: right;\">" . get_phrase("stats_hitrun_warns") . "</td>
<td>" . inputbox("memberProfile[hitRuns]", $memberProfile["hitRuns"], "text texthalf") . "</td>
</tr>
</table>";
$createTabs = createtabs(array( get_phrase("members_member_essantials") => $table1, get_phrase("stats_title") => $table2, get_phrase("navigation_membercp_personal_details") => $table3, get_phrase("navigation_membercp_preferences") => $table4, get_phrase("navigation_membercp_privacy") => $table5, get_phrase("navigation_membercp_signature") => $table6, get_phrase("member_manager_warned_members") => $table7 ));
$HTML .= "
" . $createTabs . "
<div id=\"submit_reset_container\">
" . (($edit ? "<span class=\"floatRight\">" . aaaaaf("?p=profile&pid=18&memberid=" . $edit, get_phrase("memberinfo_title", $Member["membername"])) . "</span>" : "")) . "
" . aaaabm(get_phrase("button_save"), get_phrase("button_reset")) . "
</div>";
$aaaaam = ($edit ? array( "edit" => $edit ) : "");
$HTML = aaaabn($HTML, $aaaaam);
}
if( !isset($updateDone) )
{
return $HTML;
}
}
if( $Query )
{
$membersCount = $TSUE["TSUE_Database"]->num_rows($Query);
}
else
{
$membersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as membersCount FROM tsue_members");
}
if( !$membersCount )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 2 ) ));
}
else
{
$aaaajz = array( );
$bannedMembers = $TSUE["TSUE_Database"]->query("SELECT memberid FROM tsue_member_bans", true);
if( $TSUE["TSUE_Database"]->num_rows($bannedMembers) )
{
while( $bannedMember = $TSUE["TSUE_Database"]->fetch_assoc($bannedMembers) )
{
$aaaajz[$bannedMember["memberid"]] = true;
}
}
if( $Query )
{
$Members = $Query;
$Pagination["0"] = "";
$Pagination["1"] = "";
}
else
{
$Pagination = pagination($membersCount["membersCount"]);
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.ipaddress, m.joindate, m.lastactivity, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid) ORDER BY membername ASC " . $Pagination["0"]);
}
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
if( !isset($aaaajz[$Member["memberid"]]) )
{
$aaaaka = aaaaae(array( "?action=Member Manager&do=Banned Members&ban=1&membername=" . $Member["membername"] => array( "phrase" => getimage("options/bannedmembers.png", get_phrase("banned_ban_member"), "", "16") ) ));
}
else
{
$aaaaka = aaaaae(array( "?action=Member Manager&do=Banned Members&lift=" . $Member["memberid"] => array( "phrase" => getimage("options/prune.png", get_phrase("banned_lift_ban"), "", "16") ) ));
}
$aaaakb = aaaaae(array( "edit=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) ));
$aaaakc = aaaaae(array( "delete=" . $Member["memberid"] => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$joinDate = get_phrase("memberinfo_membersince", convert_time($Member["joindate"], "d-m-Y"));
$lastActivity = get_phrase("memberinfo_lastactivity", convert_time($Member["lastactivity"], "d-m-Y"));
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . "<span class=\"smallPassiveTextlowMargin\">" . (($Member["isBanned"] ? "(" . get_phrase("banned") . ") " : "")) . strip_tags($Member["ipaddress"]) . " / " . strip_tags($Member["email"]) . " / UL:" . friendly_size($Member["uploaded"]) . " / DL:" . friendly_size($Member["downloaded"]) . " / R:" . member_ratio($Member["uploaded"], $Member["downloaded"]) . " / " . $joinDate . " / " . $lastActivity . "</span>" ), array( "width" => "10%", "align" => "right", "text" => $aaaaka . $aaaakc ) ));
}
}
$HTML .= createtable(get_phrase("member_manager_list_all_members_alt") . " (" . number_format(($Query ? $membersCount : $membersCount["membersCount"])) . ") (" . $aaaajv . ")", $tableContents, 2, $Pagination["1"]);
return $HTML;
}
function manageawaitingapproval()
{
global $TSUE;
$HTML = "";
$tableContents = "";
if( isset($_POST["approve"]) && !empty($_POST["approve"]) )
{
$aaaakd = array( );
foreach( $_POST["approve"] as $MemberID )
{
if( intval($MemberID) )
{
$aaaakd[] = $MemberID;
}
}
if( !empty($aaaakd) )
{
$aaaakd = implode(",", $aaaakd);
$Members = $TSUE["TSUE_Database"]->query("SELECT memberid, membername, email FROM tsue_members WHERE memberid IN(" . $aaaakd . ") AND membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
if( $TSUE["TSUE_Database"]->num_rows($Members) )
{
if( isset($_POST["deleteMembers"]) )
{
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
deletemember($Member["memberid"]);
logadminaction(get_phrase("members_member_deleted", $Member["membername"] . " (" . $Member["memberid"] . ")"));
}
}
else
{
if( isset($_POST["approve_notify"]) && $_POST["approve_notify"] == 1 )
{
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$subject = get_phrase("approve_account_approved_title", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]);
$message = get_phrase("approve_account_approved_body", $Member["membername"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
sent_mail($Member["email"], $Member["membername"], $subject, $message);
}
}
$TSUE["TSUE_Database"]->update("tsue_members", array( "membergroupid" => is_member_of("registeredusers") ), "memberid IN(" . $aaaakd . ") AND membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
logadminaction(get_phrase("approve_members_approved", $aaaakd));
}
}
}
}
$unapprovedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as unapprovedMembersCount FROM tsue_members WHERE membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
if( !$unapprovedMembersCount["unapprovedMembersCount"] )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("approve_no_results") ) ));
return createtable(get_phrase("member_manager_awaiting_approval_alt"), $tableContents);
}
$Pagination = pagination($unapprovedMembersCount["unapprovedMembersCount"]);
$Members = $TSUE["TSUE_Database"]->query("SELECT m.*, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ") " . $Pagination["0"]);
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) ));
$joinDate = get_phrase("approve_account_created", convert_relative_time($Member["joindate"]));
$tableContents .= aaaaag(array( array( "width" => "99%", "text" => $aaaakb . " <span class=\"smallPassiveText\">(" . strip_tags($Member["email"]) . ") -- " . $joinDate . "</span>" ), array( "width" => "1%", "text" => "<input type=\"checkbox\" name=\"approve[]\" value=\"" . $Member["memberid"] . "\" />" ) ));
}
$tableContents .= aaaaag(array( array( "width" => "99%", "text" => "<label><input type=\"checkbox\" name=\"approve_notify\" value=\"1\" checked=\"checked\" /> " . get_phrase("approve_notify") . "</label>
<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("approve_approve_account") . "\" name=\"approveMembers\" />
<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("delete_selected_members") . "\" name=\"deleteMembers\" />", "align" => "left" ), array( "width" => "1%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"approve[]\" />", "align" => "right" ) ));
$HTML .= aaaabn(createtable(get_phrase("member_manager_awaiting_approval_alt"), $tableContents, 2, $Pagination["1"]));
return $HTML;
}
function managebannedmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaake = aaaaae(array( "ban=1" => array( "phrase" => get_phrase("banned_ban_member") ) ));
$ban = intval(getvar("ban"));
$lift = intval(getvar("lift"));
if( $lift )
{
$bannedMember = $TSUE["TSUE_Database"]->query_result("SELECT b.*, m.membername, mm.membername AS bannedBy FROM tsue_member_bans b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.banned_by=mm.memberid) WHERE b.memberid=" . $TSUE["TSUE_Database"]->escape($lift));
if( !$bannedMember )
{
return errormessage(get_phrase("member_not_found"));
}
$TSUE["TSUE_Database"]->delete("tsue_member_bans", "memberid=" . $TSUE["TSUE_Database"]->escape($lift));
logadminaction(get_phrase("banned_ban_has_been_lifted", $bannedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
if( $ban )
{
$banMember = array( "membername" => (isset($_GET["membername"]) ? strip_tags($_GET["membername"]) : ""), "memberid" => "", "banned_by" => $TSUE["TSUE_Member"]["memberid"], "ban_date" => TIMENOW, "end_date" => 0, "reason" => "" );
if( isset($_POST["banMember"]) )
{
$banMember = array_merge($banMember, $_POST["banMember"]);
if( !$banMember["membername"] )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($banMember["membername"]));
if( !$checkMember )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$banMember["memberid"] = $checkMember["memberid"];
$aaaakf = $banMember["membername"];
unset($banMember["membername"]);
}
}
if( $banMember["end_date"] )
{
$end_date = list($day, $month, $year) = tsue_explode("/", $banMember["end_date"]);
$end_date = strtotime((string) $year . "/" . $month . "/" . $day);
if( !checkdate($month, $day, $year) || $end_date <= TIMENOW )
{
$formErrors[] = get_phrase("banned_invalid_date");
}
}
if( !isset($formErrors) )
{
if( isset($end_date) )
{
$banMember["end_date"] = $end_date;
}
else
{
$banMember["end_date"] = 0;
}
$TSUE["TSUE_Database"]->replace("tsue_member_bans", $banMember);
logadminaction(get_phrase("banned_member_has_been_banned", $aaaakf, $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("banMember[membername]", (isset($banMember["membername"]) ? $banMember["membername"] : $aaaakf), "text", NULL, false, true);
$formContents = aaaaan(get_phrase("your_name"), $inputbox);
$inputbox = inputbox("banMember[reason]", $banMember["reason"]);
$formContents .= aaaaan(get_phrase("banned_reason"), $inputbox, get_phrase("banned_reason_alt"));
$inputbox = inputbox("banMember[end_date]", $banMember["end_date"], "text texthalf", get_phrase("banned_ban_length_alt"), true);
$formContents .= aaaaan(get_phrase("banned_ban_length"), $inputbox, get_phrase("banned_ban_length_alt"));
$HTML .= aaaabg($formContents);
return $HTML;
}
}
$bannedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as bannedMembersCount FROM tsue_member_bans");
if( !$bannedMembersCount["bannedMembersCount"] )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("banned_no_banned_members") ) ));
return createtable(get_phrase("member_manager_banned_members_alt") . " (" . $aaaake . ")", $tableContents);
}
$Pagination = pagination($bannedMembersCount["bannedMembersCount"]);
$bannedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS bannedBy FROM tsue_member_bans b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.banned_by=mm.memberid) " . $Pagination["0"]);
while( $bannedMember = $TSUE["TSUE_Database"]->fetch_assoc($bannedMembers) )
{
$reason = get_phrase("banned_reason") . ": " . (($bannedMember["reason"] ? strip_tags($bannedMember["reason"]) : ".."));
$ban_date = get_phrase("banned_ban_started", convert_relative_time($bannedMember["ban_date"]));
$end_date = get_phrase("banned_ban_ends", ($bannedMember["end_date"] && TIMENOW < $bannedMember["end_date"] ? convert_time($bannedMember["end_date"], "d/m/Y") : get_phrase("banned_ban_ends_never")));
$banned_by = get_phrase("banned_banned_by", $bannedMember["bannedBy"]);
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $bannedMember["memberid"] => array( "phrase" => $bannedMember["membername"] ) ));
$aaaakg = aaaaae(array( "lift=" . $bannedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("banned_lift_ban")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $ban_date . " -- " . $end_date . " -- " . $banned_by . " -- " . $reason . "</span>" ), array( "width" => "10%", "text" => $aaaakg ) ));
}
$HTML .= createtable(get_phrase("member_manager_banned_members_alt") . " (" . number_format($bannedMembersCount["bannedMembersCount"]) . ") (" . $aaaake . ")", $tableContents, 2, $Pagination["1"]);
return $HTML;
}
function managewarnedmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaakh = aaaaae(array( "warn=1" => array( "phrase" => get_phrase("warned_warn_member") ) ));
$warn = intval(getvar("warn"));
$lift = intval(getvar("lift"));
if( $lift )
{
$warnedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername, mm.membername AS warnedBy FROM tsue_member_warns w LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (w.warned_by=mm.memberid) WHERE w.warnid=" . $TSUE["TSUE_Database"]->escape($lift));
if( !$warnedMember )
{
return errormessage(get_phrase("member_not_found"));
}
$TSUE["TSUE_Database"]->delete("tsue_member_warns", "warnid=" . $TSUE["TSUE_Database"]->escape($lift));
$BuildQuery = array( "total_warns" => array( "escape" => 0, "value" => "IF(total_warns > 0, total_warns-1, 0)" ) );
$TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $warnedMember["memberid"]);
alert_member($warnedMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "warns", 0, "warn_lifted");
logadminaction(get_phrase("warned_warn_has_been_lifted", $warnedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
if( $warn )
{
$warnMember = array( "membername" => (isset($_GET["membername"]) ? strip_tags($_GET["membername"]) : ""), "memberid" => "", "warned_by" => $TSUE["TSUE_Member"]["memberid"], "warn_date" => TIMENOW, "end_date" => 0, "notes" => "" );
if( isset($_POST["warnMember"]) )
{
$warnMember = array_merge($warnMember, $_POST["warnMember"]);
if( !$warnMember["membername"] )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($warnMember["membername"]));
if( !$checkMember )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$warnMember["memberid"] = $checkMember["memberid"];
$aaaaki = $warnMember["membername"];
unset($warnMember["membername"]);
}
}
if( $warnMember["end_date"] )
{
$end_date = list($day, $month, $year) = tsue_explode("/", $warnMember["end_date"]);
$end_date = strtotime((string) $year . "/" . $month . "/" . $day);
if( !checkdate($month, $day, $year) || $end_date <= TIMENOW )
{
$formErrors[] = get_phrase("warned_invalid_date");
}
}
if( !isset($formErrors) )
{
if( isset($end_date) )
{
$warnMember["end_date"] = $end_date;
}
else
{
$warnMember["end_date"] = 0;
}
$TSUE["TSUE_Database"]->replace("tsue_member_warns", $warnMember);
$BuildQuery = array( "total_warns" => array( "escape" => 0, "value" => "total_warns+1" ) );
$TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $warnMember["memberid"]);
alert_member($warnMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "warns", 0, "warn_member");
logadminaction(get_phrase("warned_member_has_been_warned", $aaaaki, $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("warnMember[membername]", (isset($warnMember["membername"]) ? $warnMember["membername"] : $aaaaki), "text", NULL, false, true);
$formContents = aaaaan(get_phrase("your_name"), $inputbox);
$inputbox = inputbox("warnMember[notes]", $warnMember["notes"]);
$formContents .= aaaaan(get_phrase("warned_reason"), $inputbox, get_phrase("warned_reason_alt"));
$inputbox = inputbox("warnMember[end_date]", $warnMember["end_date"], "text texthalf", get_phrase("warned_warn_length_alt"), true);
$formContents .= aaaaan(get_phrase("warned_warn_length"), $inputbox, get_phrase("warned_warn_length_alt"));
$HTML .= aaaabg($formContents);
return $HTML;
}
}
$warnedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as warnedMembersCount FROM tsue_member_warns");
if( !$warnedMembersCount["warnedMembersCount"] )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("warned_no_warned_members") ) ));
return createtable(get_phrase("member_manager_warned_members_alt") . " (" . $aaaakh . ")", $tableContents);
}
$Pagination = pagination($warnedMembersCount["warnedMembersCount"]);
$warnedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS warnedBy FROM tsue_member_warns b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.warned_by=mm.memberid) " . $Pagination["0"]);
while( $warnedMember = $TSUE["TSUE_Database"]->fetch_assoc($warnedMembers) )
{
$notes = get_phrase("warned_reason") . ": " . (($warnedMember["notes"] ? strip_tags($warnedMember["notes"]) : ".."));
$warn_date = get_phrase("warned_warn_started", convert_relative_time($warnedMember["warn_date"]));
$end_date = get_phrase("warned_warn_ends", ($warnedMember["end_date"] && TIMENOW < $warnedMember["end_date"] ? convert_time($warnedMember["end_date"], "d/m/Y") : get_phrase("warned_warn_ends_never")));
$warned_by = get_phrase("warned_warned_by", $warnedMember["warnedBy"]);
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $warnedMember["memberid"] => array( "phrase" => $warnedMember["membername"] ) ));
$aaaakj = aaaaae(array( "lift=" . $warnedMember["warnid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("warned_lift_warn")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $warn_date . " -- " . $end_date . " -- " . $warned_by . " -- " . $notes . "</span>" ), array( "width" => "10%", "text" => $aaaakj ) ));
}
$HTML .= createtable(get_phrase("member_manager_warned_members_alt") . " (" . number_format($warnedMembersCount["warnedMembersCount"]) . ") (" . $aaaakh . ")", $tableContents, 2, $Pagination["1"]);
return $HTML;
}
function managemembergroups()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaakk = aaaaae(array( "new=1" => array( "phrase" => get_phrase("membergroups_create_new") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$copy = intval(getvar("copy"));
$Permissions = array( "canview_member_profiles" => 1, "canreport" => 1, "canfollow" => 1, "canupload_avatar" => 0, "canpost_signature" => 0, "canvote_polls" => 1, "cansend_invite" => 1, "canpark_account" => 1, "canchange_own_email" => 1, "canreceive_pm_email" => 0, "canchange_birthday" => 0, "canview_torrents" => 1, "canview_torrent_details" => 1, "canview_peers" => 0, "canview_torrent_filelist" => 1, "candownload_torrents" => 1, "canupload_torrents" => 0, "canedit_own_torrents" => 1, "candelete_own_torrents" => 0, "canrequest_reseed" => 1, "canrefresh_imdb" => 0, "canupdate_external_torrents" => 1, "do_not_record_download_stats" => 0, "canuse_bookmarks" => 1, "force_to_read_unread_pm" => 0, "max_slot_limit" => 0, "minratio_dl_torrents" => 0, "canview_subtitles" => 1, "canupload_subtitles" => 0, "candownload_subtitles" => 1, "canpost_comments" => 1, "canedit_own_comments" => 1, "candelete_own_comments" => 0, "canpost_a_new_message" => 1, "canpost_a_reply_to_message" => 1, "canlike" => 1, "canview_like_list" => 0, "canview_any_forum" => 1, "cansearch_in_forums" => 1, "canview_shout" => 1, "canpost_shout" => 1, "canedit_own_shout" => 1, "candelete_own_shout" => 0, "canview_market" => 1, "canpurchase_item" => 1, "canrequest_torrent" => 1, "canvote_request" => 1, "canfill_request" => 0, "request_limit" => 1, "canview_dm" => 1, "candownload_dm" => 1, "canupload_dm" => 0, "canedit_own_files" => 0, "candelete_own_files" => 0, "speed_throttling_dm" => 250, "max_simultaneous_downloads" => 3, "max_bandwidth_usage_per_day" => 1073741824, "max_downloads_per_day" => 5, "canview_image_gallery" => 1, "canupload_image" => 0, "candelete_own_image" => 1, "max_image_uploads" => 10, "canlogin_admincp" => 0, "canedit_shout" => 0, "candelete_shout" => 0, "canprune_shouts" => 0, "canpost_notice" => 0, "canedit_comments" => 0, "candelete_comments" => 0, "canedit_torrents" => 0, "candelete_torrents" => 0, "canset_multipliers" => 0, "canview_invisible_members" => 0, "canview_special_details" => 0, "canview_debug" => 0, "canview_offline_website" => 0, "canview_all_profiles" => 0, "canmanage_reports" => 0, "canedit_subtitles" => 0, "candelete_subtitles" => 0, "canwarn_member" => 0, "canban_member" => 0, "canview_member_history" => 0, "canmute_member" => 0, "canremove_avatar" => 0, "canset_hitrun_ratio" => 0, "canmanage_applications" => 0, "candelete_request" => 0, "canedit_request" => 0, "cansticky_torrents" => 0, "canview_all_content" => 0, "candelete_files" => 0, "canedit_files" => 0, "cannuke_torrents" => 0, "candelete_image_gallery_files" => 0, "canreply_staff_messages" => 0, "candelete_staff_messages" => 0, "canreset_passkey" => 0, "canaward_members" => 0, "canreset_request" => 0, "canadd_note" => 0, "candelete_staff_notes" => 0, "canview_poll_voters" => 0, "canfill_upcomingreleases" => 0, "canedit_upcomingreleases" => 0, "candelete_upcomingreleases" => 0, "canbump_torrents" => 0, "candelete_applications" => 0, "can_moderate_torrents" => 0, "canuse_spam_cleaner" => 0 );
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $aaaakl => $Sort )
{
$aaaakl = intval($aaaakl);
$Sort = intval($Sort);
$TSUE["TSUE_Database"]->update("tsue_membergroups", array( "sort" => $Sort ), "membergroupid=" . $TSUE["TSUE_Database"]->escape($aaaakl));
}
logadminaction(get_phrase("pages_all_pages_updated"));
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $delete )
{
$Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT groupname, protected FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
if( !$Membergroup )
{
return errormessage(get_phrase("message_content_error"));
}
if( $Membergroup["protected"] == 1 )
{
return errormessage(get_phrase("membergroups_cant_delete_default"));
}
$checkMembers = $TSUE["TSUE_Database"]->query("SELECT memberid, membergroupid FROM tsue_members WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->num_rows($checkMembers) )
{
$TSUE["TSUE_Database"]->update("tsue_members", array( "membergroupid" => is_member_of("registeredusers") ), "membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
}
$TSUE["TSUE_Database"]->delete("tsue_membergroups", "membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("membergroups_membergroup_deleted", $Membergroup["groupname"]));
$HTML .= successmessage(get_phrase("membergroups_membergroup_deleted", $Membergroup["groupname"]));
handlerebuildcaches(false);
}
if( $copy )
{
$Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($copy));
if( !$Membergroup )
{
return errormessage(get_phrase("message_content_error"));
}
$Permissions = unserialize($Membergroup["permissions"]);
$new = 1;
}
if( $edit || $new )
{
$Membergroup = array( "groupname" => "", "groupstyle" => "{membername}", "flood_limit" => 30, "showOnStaff" => 0, "passwordExpires" => 184 );
$aaaaam = "";
if( $edit )
{
$Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Membergroup )
{
return errormessage(get_phrase("message_content_error"));
}
$Permissions = unserialize($Membergroup["permissions"]);
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( getmembername($Membergroup["groupname"], $Membergroup["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("membergroups_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Membergroup"]) )
{
$Membergroup = $_POST["Membergroup"];
if( !$Membergroup["groupname"] )
{
$formErrors[] = get_phrase("membergroups_invalid_groupname");
}
if( !preg_match("#\{membername\}#", $Membergroup["groupstyle"]) )
{
$formErrors[] = get_phrase("membergroups_invalid_groupstyle");
}
$Permissions = $_POST["Permissions"];
if( !isset($formErrors) )
{
$buildQuery = array( "groupname" => $Membergroup["groupname"], "groupstyle" => html_declean($Membergroup["groupstyle"]), "flood_limit" => intval($Membergroup["flood_limit"]), "permissions" => serialize($Permissions), "showOnStaff" => $Membergroup["showOnStaff"], "passwordExpires" => $Membergroup["passwordExpires"] );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_membergroups", $buildQuery, "membergroupid=" . $TSUE["TSUE_Database"]->escape($edit));
$aaaakm = $edit;
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_membergroups", $buildQuery);
$aaaakn = $TSUE["TSUE_Database"]->insert_id();
$aaaahh = aaaahb();
if( !$aaaakn )
{
return NULL;
}
$aaaakm = $aaaakn;
$Forums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums ORDER BY forumid ASC");
if( $TSUE["TSUE_Database"]->num_rows($Forums) )
{
while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
{
$aaaahi = serialize((isset($Permissions["canlogin_admincp"]) && $Permissions["canlogin_admincp"] ? $aaaahh["adminForumPermissions"] : $aaaahh["defaultForumPermissions"]));
$buildQuery = array( "forumid" => $Forum["forumid"], "membergroupid" => $aaaakn, "permissions" => $aaaahi );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
}
}
}
if( $aaaakm )
{
$pagePermissions = getvar("pagePermissions", array( ), false);
$aaaako = array( );
if( is_array($pagePermissions) && !empty($pagePermissions) )
{
foreach( $pagePermissions as $pageID => $value )
{
$pageID = intval($pageID);
if( $pageID && $value == 1 )
{
$aaaako[] = $pageID;
}
}
}
if( !empty($aaaako) )
{
$Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, viewpermissions FROM tsue_pages WHERE pageid IN (" . implode(",", $aaaako) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Pages) )
{
while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
{
$viewpermissions = tsue_explode(",", $Page["viewpermissions"]);
if( empty($viewpermissions) )
{
$viewpermissions = aaaakp();
}
else
{
if( !in_array($aaaakm, $viewpermissions) )
{
$viewpermissions[] = $aaaakm;
}
}
$TSUE["TSUE_Database"]->update("tsue_pages", array( "viewpermissions" => implode(",", $viewpermissions) ), "pageid=" . $TSUE["TSUE_Database"]->escape($Page["pageid"]));
}
$Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, viewpermissions FROM tsue_pages WHERE pageid NOT IN (" . implode(",", $aaaako) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Pages) )
{
while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
{
$viewpermissions = tsue_explode(",", $Page["viewpermissions"]);
if( empty($viewpermissions) )
{
$viewpermissions = aaaakp($aaaakm);
}
$viewpermissions = aaaakq($viewpermissions, $aaaakm);
$TSUE["TSUE_Database"]->update("tsue_pages", array( "viewpermissions" => implode(",", $viewpermissions) ), "pageid=" . $TSUE["TSUE_Database"]->escape($Page["pageid"]));
}
}
}
}
$pluginPermissions = getvar("pluginPermissions", array( ), false);
$aaaakr = array( );
if( is_array($pluginPermissions) && !empty($pluginPermissions) )
{
foreach( $pluginPermissions as $pluginID => $value )
{
$pluginID = intval($pluginID);
if( $pluginID && $value == 1 )
{
$aaaakr[] = $pluginID;
}
}
}
if( !empty($aaaakr) )
{
$Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, viewpermissions FROM tsue_plugins WHERE pluginid IN (" . implode(",", $aaaakr) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Plugins) )
{
while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
$viewpermissions = tsue_explode(",", $Plugin["viewpermissions"]);
if( empty($viewpermissions) )
{
$viewpermissions = aaaakp();
}
else
{
if( !in_array($aaaakm, $viewpermissions) )
{
$viewpermissions[] = $aaaakm;
}
}
$TSUE["TSUE_Database"]->update("tsue_plugins", array( "viewpermissions" => implode(",", $viewpermissions) ), "pluginid=" . $TSUE["TSUE_Database"]->escape($Plugin["pluginid"]));
}
$Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, viewpermissions FROM tsue_plugins WHERE pluginid NOT IN (" . implode(",", $aaaakr) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Plugins) )
{
while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
$viewpermissions = tsue_explode(",", $Plugin["viewpermissions"]);
if( empty($viewpermissions) )
{
$viewpermissions = aaaakp($aaaakm);
}
$viewpermissions = aaaakq($viewpermissions, $aaaakm);
$TSUE["TSUE_Database"]->update("tsue_plugins", array( "viewpermissions" => implode(",", $viewpermissions) ), "pluginid=" . $TSUE["TSUE_Database"]->escape($Plugin["pluginid"]));
}
}
}
}
$torrentCategoryViewPermissions = getvar("torrentCategoryViewPermissions", array( ), false);
$torrentCategoryDownloadPermissions = getvar("torrentCategoryDownloadPermissions", array( ), false);
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$cviewpermissions = tsue_explode(",", $Category["cviewpermissions"]);
if( isset($torrentCategoryViewPermissions[$Category["cid"]]) && !in_array($aaaakm, $cviewpermissions) )
{
$cviewpermissions[] = $aaaakm;
}
else
{
if( !isset($torrentCategoryViewPermissions[$Category["cid"]]) && in_array($aaaakm, $cviewpermissions) )
{
$cviewpermissions = aaaakq($cviewpermissions, $aaaakm);
}
}
$cviewpermissions = implode(",", $cviewpermissions);
$TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "cviewpermissions" => $cviewpermissions ), "cid=" . $TSUE["TSUE_Database"]->escape($Category["cid"]));
}
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$cdownloadpermissions = tsue_explode(",", $Category["cdownloadpermissions"]);
if( isset($torrentCategoryDownloadPermissions[$Category["cid"]]) && !in_array($aaaakm, $cdownloadpermissions) )
{
$cdownloadpermissions[] = $aaaakm;
}
else
{
if( !isset($torrentCategoryDownloadPermissions[$Category["cid"]]) && in_array($aaaakm, $cdownloadpermissions) )
{
$cdownloadpermissions = aaaakq($cdownloadpermissions, $aaaakm);
}
}
$cdownloadpermissions = implode(",", $cdownloadpermissions);
$TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "cdownloadpermissions" => $cdownloadpermissions ), "cid=" . $TSUE["TSUE_Database"]->escape($Category["cid"]));
}
}
logadminaction(get_phrase("membergroups_membergroup_updated", $Membergroup["groupname"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune();
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Membergroup[groupname]", $Membergroup["groupname"]);
$formContents = aaaaan(get_phrase("membergroups_groupname"), $inputbox);
$inputbox = inputbox("Membergroup[groupstyle]", html_clean($Membergroup["groupstyle"]), "text", "", false, false, getmembername($Membergroup["groupname"], $Membergroup["groupstyle"]));
$formContents .= aaaaan(get_phrase("membergroups_groupstyle"), $inputbox);
$inputbox = inputbox("Membergroup[flood_limit]", intval($Membergroup["flood_limit"]));
$formContents .= aaaaan(get_phrase("membergroups_flood_limit"), $inputbox, get_phrase("set_to_0_for_no_limit"));
$inputbox = radioyesno("Membergroup[showOnStaff]", intval($Membergroup["showOnStaff"]));
$formContents .= aaaaan(get_phrase("membergroups_show_on_staff_page"), $inputbox);
$inputbox = inputbox("Membergroup[passwordExpires]", intval($Membergroup["passwordExpires"]));
$formContents .= aaaaan(get_phrase("membergroups_password_expires"), $inputbox, get_phrase("membergroups_password_expires_alt"));
$aaaagp = aaaagq(array( "canview_member_profiles", "canreport", "canfollow", "canupload_avatar", "canpost_signature", "canvote_polls", "cansend_invite", "canpark_account", "canchange_own_email", "canreceive_pm_email", "canchange_birthday" ), $Permissions, "membergroups_general_permissions");
$formContents .= aaaaan(get_phrase("membergroups_general_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_torrents", "canview_torrent_details", "canview_peers", "canview_torrent_filelist", "candownload_torrents", "canupload_torrents" => array( "canupload_torrents" => array( get_phrase("option_yes") => 1, get_phrase("option_no") => 0, get_phrase("option_moderate") => 2 ) ), "canedit_own_torrents", "candelete_own_torrents", "canrequest_reseed", "canrefresh_imdb", "canupdate_external_torrents", "do_not_record_download_stats", "force_to_read_unread_pm", "canuse_bookmarks" ), $Permissions, "membergroups_torrent_permissions");
$aaaagp .= aaaaks(array( "max_slot_limit" => get_phrase("set_to_0_for_no_limit"), "minratio_dl_torrents" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
$formContents .= aaaaan(get_phrase("membergroups_torrent_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_subtitles", "canupload_subtitles", "candownload_subtitles" ), $Permissions, "membergroups_subtitles_permissions");
$formContents .= aaaaan(get_phrase("membergroups_subtitles_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canpost_comments", "canedit_own_comments", "candelete_own_comments" ), $Permissions, "membergroups_comment_permissions");
$formContents .= aaaaan(get_phrase("membergroups_comment_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canpost_a_new_message", "canpost_a_reply_to_message" ), $Permissions, "membergroups_pm_permissions");
$formContents .= aaaaan(get_phrase("membergroups_pm_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canlike", "canview_like_list" ), $Permissions, "membergroups_like_permissions");
$formContents .= aaaaan(get_phrase("membergroups_like_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_any_forum", "cansearch_in_forums" ), $Permissions, "membergroups_forum_permissions");
$formContents .= aaaaan(get_phrase("membergroups_forum_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_shout", "canpost_shout", "canedit_own_shout", "candelete_own_shout" ), $Permissions, "membergroups_shoutbox_permissions");
$formContents .= aaaaan(get_phrase("membergroups_shoutbox_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_market", "canpurchase_item" ), $Permissions, "membergroups_market_permissions");
$formContents .= aaaaan(get_phrase("membergroups_market_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canrequest_torrent", "canvote_request", "canfill_request" ), $Permissions, "request_a_torrent_permissions");
$aaaagp .= aaaaks(array( "request_limit" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
$formContents .= aaaaan(get_phrase("request_a_torrent_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_dm", "candownload_dm", "canupload_dm", "canedit_own_files", "candelete_own_files" ), $Permissions, "dm_title");
$aaaagp .= aaaaks(array( "speed_throttling_dm" => get_phrase("set_to_0_for_no_limit"), "max_simultaneous_downloads" => get_phrase("set_to_0_for_no_limit"), "max_bandwidth_usage_per_day" => friendly_size($Permissions["max_bandwidth_usage_per_day"]) . " | " . get_phrase("set_to_0_for_no_limit"), "max_downloads_per_day" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
$formContents .= aaaaan(get_phrase("dm_title") . " (" . get_phrase("dm_title_alt") . ")", $aaaagp);
$aaaagp = aaaagq(array( "canview_image_gallery", "canupload_image", "candelete_own_image" ), $Permissions, "image_gallery_permissions");
$aaaagp .= aaaaks(array( "max_image_uploads" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
$formContents .= aaaaan(get_phrase("image_gallery_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canlogin_admincp", "canedit_shout", "candelete_shout", "canprune_shouts", "canpost_notice", "canedit_comments", "candelete_comments", "canedit_torrents", "candelete_torrents", "canset_multipliers", "canview_invisible_members", "canview_special_details", "canview_debug", "canview_offline_website", "canview_all_profiles", "canmanage_reports", "canedit_subtitles", "candelete_subtitles", "canwarn_member", "canban_member", "canview_member_history", "canmute_member", "canremove_avatar", "canset_hitrun_ratio", "canmanage_applications", "candelete_request", "canedit_request", "cansticky_torrents", "canview_all_content", "candelete_files", "canedit_files", "cannuke_torrents", "candelete_image_gallery_files", "canreply_staff_messages", "candelete_staff_messages", "canreset_passkey", "canaward_members", "canreset_request", "canadd_note", "candelete_staff_notes", "canview_poll_voters", "canfill_upcomingreleases", "canedit_upcomingreleases", "candelete_upcomingreleases", "canbump_torrents", "candelete_applications", "can_moderate_torrents", "canuse_spam_cleaner" ), $Permissions, "membergroups_administrator_permissions");
$formContents .= aaaaan(get_phrase("membergroups_administrator_permissions"), $aaaagp);
$subPagesCache = array( );
$aaaakt = array( );
$Pages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages ORDER BY sort ASC");
while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
{
if( $Page["parentid"] )
{
$subPagesCache[$Page["parentid"]][] = $Page;
}
else
{
$aaaakt[] = $Page;
}
}
$pagePermissions = "
" . get_phrase("select_pages_to_allow_view_for_this_group") . "
<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
<tr>";
$Count = 0;
$maxPerRow = 4;
foreach( $aaaakt as $Page )
{
if( $Count % $maxPerRow == 0 )
{
$pagePermissions .= "
</tr><tr>";
}
$Count++;
$aaaaku = "";
if( isset($subPagesCache[$Page["pageid"]]) )
{
foreach( $subPagesCache[$Page["pageid"]] as $subPage )
{
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $subPage["viewpermissions"])) || isset($_POST["pagePermissions"][$subPage["pageid"]]) || empty($subPage["viewpermissions"]) )
{
$checked = " checked=\"checked\"";
}
$aaaaku .= "
<div style=\"margin-left: 20px;\" class=\"forumSub\">
<label><input type=\"checkbox\" name=\"pagePermissions[" . $subPage["pageid"] . "]\" value=\"1\"" . $checked . " /> " . $TSUE["TSUE_Language"]["phrase"][$subPage["phrase"]] . "</label>
</div>";
}
}
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $Page["viewpermissions"])) || isset($_POST["pagePermissions"][$Page["pageid"]]) || empty($Page["viewpermissions"]) )
{
$checked = " checked=\"checked\"";
}
$pagePermissions .= "
<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
<label><input type=\"checkbox\" name=\"pagePermissions[" . $Page["pageid"] . "]\" value=\"1\"" . $checked . " /> " . $TSUE["TSUE_Language"]["phrase"][$Page["phrase"]] . "</label>
" . $aaaaku . "
</td>";
}
$pagePermissions .= "
</tr>
</table>";
$pluginPermissions = "
" . get_phrase("select_plugins_to_allow_view_for_this_group") . "
<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
<tr>";
$Count = 0;
$maxPerRow = 3;
$Plugins = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_plugins ORDER BY name ASC");
while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
if( $Count % $maxPerRow == 0 )
{
$pluginPermissions .= "
</tr><tr>";
}
$Count++;
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $Plugin["viewpermissions"])) || isset($_POST["pluginPermissions"][$Plugin["pluginid"]]) || empty($Plugin["viewpermissions"]) )
{
$checked = " checked=\"checked\"";
}
$pluginPermissions .= "
<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
<label><input type=\"checkbox\" name=\"pluginPermissions[" . $Plugin["pluginid"] . "]\" value=\"1\"" . $checked . " /> " . $Plugin["name"] . "</label>
</td>";
}
$pluginPermissions .= "
</tr>
</table>";
$aaaact = array( );
$aaaafx = array( );
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
if( $Category["pid"] )
{
$aaaact[$Category["pid"]][] = $Category;
}
else
{
$aaaafx[] = $Category;
}
}
$torrentCategoryViewPermissions = "
" . get_phrase("select_torrent_categories_to_allow_view_for_this_group") . "
<h3>" . get_phrase("global_view_permissions") . "</h3>
<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
<tr>";
$Count = 0;
$maxPerRow = 4;
foreach( $aaaafx as $Category )
{
if( $Count % $maxPerRow == 0 )
{
$torrentCategoryViewPermissions .= "
</tr><tr>";
}
$Count++;
$subCategoryList = "";
if( isset($aaaact[$Category["cid"]]) )
{
foreach( $aaaact[$Category["cid"]] as $subCategory )
{
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $subCategory["cviewpermissions"])) || isset($_POST["torrentCategoryViewPermissions"][$subCategory["cid"]]) )
{
$checked = " checked=\"checked\"";
}
$subCategoryList .= "
<div style=\"margin-left: 20px;\" class=\"forumSub\">
<label><input type=\"checkbox\" name=\"torrentCategoryViewPermissions[" . $subCategory["cid"] . "]\" value=\"1\"" . $checked . " /> " . $subCategory["cname"] . "</label>
</div>";
}
}
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $Category["cviewpermissions"])) || isset($_POST["torrentCategoryViewPermissions"][$Category["cid"]]) )
{
$checked = " checked=\"checked\"";
}
$torrentCategoryViewPermissions .= "
<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
<label><input type=\"checkbox\" name=\"torrentCategoryViewPermissions[" . $Category["cid"] . "]\" value=\"1\"" . $checked . " /> " . $Category["cname"] . "</label>
" . $subCategoryList . "
</td>";
}
$torrentCategoryViewPermissions .= "
</tr>
</table>";
$torrentCategoryDownloadPermissions = "
<h3>" . get_phrase("global_download_permissions") . "</h3>
<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
<tr>";
$Count = 0;
$maxPerRow = 4;
foreach( $aaaafx as $Category )
{
if( $Count % $maxPerRow == 0 )
{
$torrentCategoryDownloadPermissions .= "
</tr><tr>";
}
$Count++;
$subCategoryList = "";
if( isset($aaaact[$Category["cid"]]) )
{
foreach( $aaaact[$Category["cid"]] as $subCategory )
{
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $subCategory["cdownloadpermissions"])) || isset($_POST["torrentCategoryDownloadPermissions"][$subCategory["cid"]]) )
{
$checked = " checked=\"checked\"";
}
$subCategoryList .= "
<div style=\"margin-left: 20px;\" class=\"forumSub\">
<label><input type=\"checkbox\" name=\"torrentCategoryDownloadPermissions[" . $subCategory["cid"] . "]\" value=\"1\"" . $checked . " /> " . $subCategory["cname"] . "</label>
</div>";
}
}
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $Category["cdownloadpermissions"])) || isset($_POST["torrentCategoryDownloadPermissions"][$Category["cid"]]) )
{
$checked = " checked=\"checked\"";
}
$torrentCategoryDownloadPermissions .= "
<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
<label><input type=\"checkbox\" name=\"torrentCategoryDownloadPermissions[" . $Category["cid"] . "]\" value=\"1\"" . $checked . " /> " . $Category["cname"] . "</label>
" . $subCategoryList . "
</td>";
}
$torrentCategoryDownloadPermissions .= "
</tr>
</table>";
$createTabs = createtabs(array( get_phrase("membergroup_options_and_perms") => $formContents, get_phrase("pages_view_permissions") => $pagePermissions, get_phrase("plugins_view_permissions") => $pluginPermissions, get_phrase("torrents_view_and_download_permissions") => $torrentCategoryViewPermissions . $torrentCategoryDownloadPermissions ));
$HTML .= aaaabn($createTabs . "
<div id=\"submit_reset_container\">
" . aaaabm(get_phrase("button_save"), get_phrase("button_reset")) . "
</div>", $aaaaam);
return $HTML;
}
}
$membergroupCache = array( );
$Members = $TSUE["TSUE_Database"]->query("SELECT membergroupid FROM tsue_members", true);
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
if( isset($membergroupCache[$Member["membergroupid"]]) )
{
$membergroupCache[$Member["membergroupid"]]++;
}
else
{
$membergroupCache[$Member["membergroupid"]] = 1;
}
}
$Membergroups = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_membergroups");
while( $Membergroup = $TSUE["TSUE_Database"]->fetch_assoc($Membergroups) )
{
$aaaakv = aaaaae(array( "edit=" . $Membergroup["membergroupid"] => array( "phrase" => getmembername($Membergroup["groupname"], $Membergroup["groupstyle"]) ) ));
$aaaakw = aaaaae(array( "delete=" . $Membergroup["membergroupid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaakx = aaaaae(array( "copy=" . $Membergroup["membergroupid"] => array( "phrase" => getimage("buttons/copy.png", get_phrase("create_a_new_membergroup_based_on_this")) ) ));
$tableContents .= aaaaag(array( array( "text" => $aaaakv . " <span class=\"smallPassiveText\">" . get_phrase("membergroups_groupid", $Membergroup["membergroupid"]) . " / " . get_phrase("membergroups_total_members", (isset($membergroupCache[$Membergroup["membergroupid"]]) ? number_format($membergroupCache[$Membergroup["membergroupid"]]) : 0)) . "</span>" ), array( "text" => inputbox("sort[" . $Membergroup["membergroupid"] . "]", $Membergroup["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "12%", "text" => $aaaakx . $aaaakw, "align" => "right" ) ));
}
$tableContents .= aaaaag(array( array( "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "right", "colspan" => 2 ), array( "text" => " ", "align" => "right", "colspan" => 1, "width" => "12%" ) ));
$HTML .= aaaabn(createtable(get_phrase("member_manager_membergroups_alt"), $tableContents, 3, $aaaakk));
return $HTML;
}
}
function aaaagq($permNames, $Permissions, $REL)
{
global $TSUE;
$List = "
<table cellpadding=\"5\" cellspacing=\"0\" border=\"0\">
<tr>
<td> </td>
<td>
<a href=\"javascript:void(0);\" id=\"setALLYes\" rel=\"" . $REL . "\">" . getimage("status/checkall_yes.png", get_phrase("global_setall_yes")) . "</a>
<a href=\"javascript:void(0);\" id=\"setALLNo\" rel=\"" . $REL . "\">" . getimage("status/checkall_no.png", get_phrase("global_setall_no")) . "</a>
</td>
</tr>";
foreach( $permNames as $Name )
{
if( !is_array($Name) )
{
$phrase = $Name;
$radioBox = radioyesno("Permissions[" . $Name . "]", (isset($Permissions[$Name]) ? $Permissions[$Name] : ""), NULL, $REL) . ((isset($TSUE["TSUE_Language"]["phrase"][(string) $Name . "_tip"]) ? aaaaky($TSUE["TSUE_Language"]["phrase"][(string) $Name . "_tip"]) : ""));
}
else
{
$radioBox = "";
foreach( $Name as $nName => $nValues )
{
$phrase = $nName;
foreach( $nValues as $nm => $val )
{
$radioBox .= aaaakz("Permissions[" . $nName . "]", $val, isset($Permissions[$nName]) && $Permissions[$nName] == $val, $nm, (isset($TSUE["TSUE_Language"]["phrase"][(string) $nName . "_tip"]) ? aaaaky($TSUE["TSUE_Language"]["phrase"][(string) $nName . "_tip"]) : ""));
}
}
}
$phrase = get_phrase($phrase);
if( 50 < strlen($phrase) )
{
$phrase = "<span style=\"font-size: 11px;\">" . $phrase . "</span>";
}
$List .= "
<tr class=\"tableContentTR\">
<td style=\"text-align: right; font-weight: bold; width: 350px; vertical-align: top;\" width=\"350\" valign=\"top\">" . $phrase . "</td>
<td style=\"text-align: left; width: 300px;\" width=\"300\">" . $radioBox . "</td>
</tr>";
}
$List .= "</table>";
return $List;
}
function aaaaks($permNames, $Permissions)
{
global $TSUE;
$List = "
<table cellpadding=\"5\" cellspacing=\"0\" border=\"0\">";
foreach( $permNames as $permName => $nextToInputText )
{
$Options = array( "Phrase" => $permName, "fieldName" => "Permissions[" . $permName . "]", "Value" => (isset($Permissions[$permName]) ? $Permissions[$permName] : ""), "altPhrase" => (isset($TSUE["TSUE_Language"]["phrase"][$permName . "_alt"]) ? $TSUE["TSUE_Language"]["phrase"][$permName . "_alt"] : ""), "nextToInputText" => $nextToInputText );
$phrase = get_phrase($Options["Phrase"]);
if( 50 < strlen($phrase) )
{
$phrase = "<span style=\"font-size: 11px;\">" . $phrase . "</span>";
}
$List .= "
<tr class=\"tableContentTR\">
<td style=\"text-align: right; font-weight: bold; width: 350px; vertical-align: top;\" width=\"350\" valign=\"top\">" . $phrase . "</td>
<td style=\"text-align: left; width: 300px;\" width=\"300\">
" . inputbox($Options["fieldName"], $Options["Value"], "text", $Options["altPhrase"]) . "
<span class=\"smallPassiveText\">" . $Options["nextToInputText"] . "</span>
</td>
</tr>";
}
$List .= "</table>";
return $List;
}
function manageemailmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$emailMembers = array( "from_name" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"], "from_email" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"], "email_title" => "", "email_body" => "", "receive_admin_email" => 1, "membername" => "", "email" => "", "joindate" => "", "lastactivity" => "", "membergroup" => array( ) );
if( isset($_POST["emailMembers"]) )
{
checkdemomode();
$emailMembers = $_POST["emailMembers"];
if( !isset($emailMembers["membergroup"]) )
{
$emailMembers["membergroup"] = array( );
}
if( !isset($emailMembers["receive_admin_email"]) )
{
$emailMembers["receive_admin_email"] = 0;
}
foreach( array( "from_name", "from_email", "email_title", "email_body" ) as $required )
{
if( empty($emailMembers[$required]) )
{
$errorDetected = true;
}
}
if( isset($errorDetected) )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( !is_valid_email($emailMembers["from_email"]) )
{
$formErrors[] = get_phrase("invalid_email");
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$Where = "";
$searchCriteria = array( );
if( $emailMembers["receive_admin_email"] )
{
$searchCriteria[] = "privacy.receive_admin_email = 1";
}
if( $emailMembers["membername"] )
{
$searchCriteria[] = "m.membername = " . $TSUE["TSUE_Database"]->escape($emailMembers["membername"]);
}
if( $emailMembers["email"] )
{
$searchCriteria[] = "m.email = " . $TSUE["TSUE_Database"]->escape($emailMembers["email"]);
}
if( $emailMembers["joindate"] )
{
$joindate = list($day, $month, $year) = tsue_explode("/", $emailMembers["joindate"]);
$joindate = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.joindate > " . $joindate;
}
if( $emailMembers["lastactivity"] )
{
$lastactivity = list($day, $month, $year) = tsue_explode("/", $emailMembers["lastactivity"]);
$lastactivity = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.lastactivity > " . $lastactivity;
}
$aaaala = false;
if( !empty($emailMembers["membergroup"]) )
{
$aaaala = in_array(is_member_of("banned"), $emailMembers["membergroup"]);
$searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $emailMembers["membergroup"])) . ")";
}
if( !empty($searchCriteria) )
{
$WHERE = " WHERE " . implode(" AND ", $searchCriteria);
}
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, b.memberid AS isBanned, g.groupstyle, p.uploaded, p.downloaded
FROM tsue_members m
LEFT JOIN tsue_member_bans b USING(memberid)
LEFT JOIN tsue_membergroups g USING(membergroupid)
LEFT JOIN tsue_member_profile p USING(memberid)
LEFT JOIN tsue_member_privacy privacy USING(memberid)
" . $WHERE . " ORDER BY membername ASC");
if( !($totalMembers = $TSUE["TSUE_Database"]->num_rows($Members)) )
{
$HTML .= errormessage(get_phrase("no_members_matched"));
}
else
{
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
if( !($aaaala && $Member["isBanned"]) )
{
sent_mail($Member["email"], $Member["membername"], $emailMembers["email_title"], $emailMembers["email_body"], $emailMembers["from_email"], $emailMembers["from_name"], false);
}
}
$HTML .= successmessage(get_phrase("email_members_email_was_sent", number_format($totalMembers)));
}
}
}
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_from_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[from_name]", $emailMembers["from_name"]) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_from_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[from_email]", $emailMembers["from_email"]) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_email_title"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[email_title]", $emailMembers["email_title"]) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_email_body"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => textarea("emailMembers[email_body]", $emailMembers["email_body"], true) ) ));
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("global_search_criteria"), "colspan" => 2 ) ), "tableContentTDHeader");
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => "<input type=\"checkbox\" name=\"emailMembers[receive_admin_email]\" value=\"1\"" . (($emailMembers["receive_admin_email"] == 1 ? " checked=\"checked\"" : "")) . " /> " . get_phrase("email_members_only_to_members_receive_email_enabled") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[membername]", $emailMembers["membername"], "text texthalf", NULL, false, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[email]", $emailMembers["email"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[joindate]", $emailMembers["joindate"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[lastactivity]", $emailMembers["lastactivity"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("emailMembers[membergroup][]", $emailMembers["membergroup"], 3) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("member_manager_email_members"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("member_manager_email_members_alt"), $tableContents, 2)) . "
<script type=\"text/javascript\">
\$(\"#simpleForm\").submit(function(e)
{
TSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("sending_email") . "', false, false);
});
</script>";
return $HTML;
}
function managesearchmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$Search = array( "membername" => "", "email" => "", "passkey" => "", "joindate" => "", "lastactivity" => "", "ipaddress" => "", "uploaded" => "", "downloaded" => "", "ratio" => "", "ratioType" => "", "total_posts" => "", "membergroup" => array( ) );
if( isset($_POST["Search"]) )
{
$Search = $_POST["Search"];
$Where = "";
$searchCriteria = array( );
if( !isset($Search["membergroup"]) )
{
$Search["membergroup"] = array( );
}
if( $Search["membername"] )
{
$searchCriteria[] = "m.membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["membername"]) . "%'";
}
if( $Search["email"] )
{
$searchCriteria[] = "m.email LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["email"]) . "%'";
}
if( $Search["passkey"] )
{
$searchCriteria[] = "m.passkey LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["passkey"]) . "%'";
}
if( $Search["joindate"] )
{
$joindate = list($day, $month, $year) = tsue_explode("/", $Search["joindate"]);
$joindate = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.joindate > " . $joindate;
}
if( $Search["lastactivity"] )
{
$lastactivity = list($day, $month, $year) = tsue_explode("/", $Search["lastactivity"]);
$lastactivity = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.lastactivity > " . $lastactivity;
}
if( $Search["ipaddress"] )
{
$searchCriteria[] = "m.ipaddress LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["ipaddress"]) . "%'";
}
if( $Search["uploaded"] )
{
$searchCriteria[] = "p.uploaded > " . (0 + $Search["uploaded"]);
}
if( $Search["downloaded"] )
{
$searchCriteria[] = "p.downloaded > " . (0 + $Search["downloaded"]);
}
$Search["ratio"] = 0 + $Search["ratio"];
if( $Search["ratio"] && in_array($Search["ratioType"], array( "=", ">", ">=", "<", "<=" )) )
{
$searchCriteria[] = "(p.downloaded > 0 AND p.uploaded/p.downloaded " . $Search["ratioType"] . " " . $Search["ratio"] . ")";
}
if( $Search["total_posts"] )
{
$searchCriteria[] = "p.total_posts > " . (0 + $Search["total_posts"]);
}
if( !empty($Search["membergroup"]) )
{
$searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $Search["membergroup"])) . ")";
}
if( empty($searchCriteria) )
{
$HTML .= errormessage(get_phrase("no_members_matched"));
}
else
{
$WHERE = " WHERE " . implode(" AND ", $searchCriteria);
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.joindate, m.lastactivity, m.ipaddress, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid)" . $WHERE . " ORDER BY m.membername ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Members) )
{
$HTML .= errormessage(get_phrase("no_members_matched"));
}
else
{
$TSUE["do"] = "All Members";
return aaaaaj($Members);
}
}
}
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[membername]", $Search["membername"], "text texthalf", NULL, false, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[email]", $Search["email"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_passkey"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[passkey]", $Search["passkey"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[joindate]", $Search["joindate"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[lastactivity]", $Search["lastactivity"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_ip"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[ipaddress]", $Search["ipaddress"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_uploaded"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[uploaded]", $Search["uploaded"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_downloaded"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[downloaded]", $Search["downloaded"], "text texthalf") ) ));
$aaaaao = array( "=" => "=", ">" => ">", ">=" => ">=", "<" => "<", "<=" => "<=" );
$selectbox = selectbox("Search[ratioType]", $Search["ratioType"], $aaaaao, "select smallSelect");
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_ratio"), "align" => "right" ), array( "width" => "80%", "text" => $selectbox . inputbox("Search[ratio]", $Search["ratio"], "text texttiny") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_total_posts"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[total_posts]", $Search["total_posts"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("Search[membergroup][]", $Search["membergroup"], 3) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("member_manager_search_members_alt"), $tableContents, 2));
return $HTML;
}
function managepeers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$delete = intval(getvar("delete"));
$keywords = trim(getvar("keywords"));
$searchType = trim(getvar("searchType"));
$WHERE = "";
if( !in_array($searchType, array( "membername", "torrentname" )) )
{
$searchType = "membername";
}
if( $keywords && $searchType )
{
switch( $searchType )
{
case "membername":
$WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords);
break;
case "torrentname":
$WHERE = " AND t.name LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
break;
}
}
if( getsetting("xbt", "active") )
{
$orderBy["fieldname"] = "p.mtime";
}
else
{
$orderBy["fieldname"] = "p.last_updated";
}
$orderBy["type"] = "DESC";
if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
{
$allowedFieldNames = array( "m.membername", "t.name", "p.ipaddress", "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed", "p.announced", "p.last_updated" );
$allowedTypes = array( "DESC", "ASC" );
if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
{
$orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
$orderBy["type"] = $_REQUEST["orderBy"]["type"];
}
}
if( $delete )
{
if( getsetting("xbt", "active") )
{
$memberid = intval(getvar("memberid"));
$Peer = $TSUE["TSUE_Database"]->query_result("SELECT SQL_NO_CACHE uid FROM xbt_files_users WHERE fid = " . $TSUE["TSUE_Database"]->escape($delete) . " AND uid=" . $TSUE["TSUE_Database"]->escape($memberid));
if( $Peer )
{
$TSUE["TSUE_Database"]->delete("xbt_files_users", "fid=" . $TSUE["TSUE_Database"]->escape($delete) . " AND uid=" . $TSUE["TSUE_Database"]->escape($memberid));
logadminaction(get_phrase("peers_peer_deleted", $delete));
}
}
else
{
$Peer = $TSUE["TSUE_Database"]->query_result("SELECT SQL_NO_CACHE memberid FROM tsue_torrents_peers WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Peer )
{
$TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "pid=" . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("peers_peer_deleted", $delete));
}
}
}
if( getsetting("xbt", "active") )
{
$peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE);
}
else
{
$peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE);
}
$tableContents .= aaaaag(array( array( "width" => "25%", "text" => get_phrase("your_name") ), array( "width" => "15%", "text" => get_phrase("search_criteria_ip") ), array( "width" => "15%", "text" => get_phrase("stats_uploaded") ), array( "width" => "15%", "text" => get_phrase("stats_downloaded") ), array( "width" => "10%", "text" => get_phrase("torrents_peer_announced") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_last_updated") ), array( "width" => "5%", "text" => get_phrase("global_action") ) ), "tableContentTR", "tableContentTDHeader");
if( !$peerCount )
{
$Pagination["1"] = "";
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 7 ) ));
}
else
{
$Pagination = pagination($peerCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&orderBy[type]=" . $orderBy["type"] . (($keywords ? "&keywords=" . urlencode($keywords) . "&searchType=" . $searchType : "")));
if( getsetting("xbt", "active") )
{
$aaaalb["fieldname"] = str_replace(array( "p.ipaddress", "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed", "p.last_updated" ), array( "m.ipaddress", "p.uploaded", "p.up_rate", "p.downloaded", "p.down_rate", "p.mtime" ), $orderBy["fieldname"]);
$Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.fid as pid, p.announced, p.port, p.downloaded as total_downloaded, p.uploaded as total_uploaded, p.mtime as last_updated, p.up_rate as upload_speed, p.down_rate as download_speed, t.tid, t.name, m.memberid, m.membername, m.ipaddress, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE . " ORDER BY " . $aaaalb["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
}
else
{
$Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
}
while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
{
$torrentName = strip_tags($Peer["name"]);
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) ));
$aaaalc = aaaaae(array( "delete=" . $Peer["pid"] . "&memberid=" . $Peer["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "text" => $aaaakb . "<br />" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], "<span title=\"" . $torrentName . "\">" . substr($torrentName, 0, 25) . "</span>", $torrentName) ), array( "text" => strip_tags($Peer["ipaddress"]) . ":" . intval($Peer["port"]) . ((getsetting("xbt", "active") ? "" : "<div style=\"font-size: 10px;\">" . get_phrase("peer_id") . ": " . friendlypeerid($Peer["peer_id"]) . "</div>")) ), array( "text" => friendly_size($Peer["total_uploaded"]) . "<br />" . friendly_size($Peer["upload_speed"]) . "/s" ), array( "text" => friendly_size($Peer["total_downloaded"]) . "<br />" . friendly_size($Peer["download_speed"]) . "/s" ), array( "text" => number_format($Peer["announced"]) ), array( "text" => convert_relative_time($Peer["last_updated"]) ), array( "text" => $aaaalc ) ));
}
}
$selectBox = "
<select name=\"searchType\" class=\"selectNoWidth\">
<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
<option value=\"torrentname\"" . (($searchType == "torrentname" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>
</select>";
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
$HTML .= createtable(get_phrase("member_manager_peers_alt"), $tableContents, 7, $Pagination["1"]);
$HTML .= "
<div style=\"float: right; margin-top: 10px;\">
" . aaaabn("
" . get_phrase("torrents_sort_by") . "
<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">
<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
<option value=\"t.name\"" . (($orderBy["fieldname"] == "t.name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>
<option value=\"p.ipaddress\"" . (($orderBy["fieldname"] == "p.ipaddress" ? " selected=\"selected\"" : "")) . ">" . get_phrase("search_criteria_ip") . "</option>
<option value=\"p.total_uploaded\"" . (($orderBy["fieldname"] == "p.total_uploaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_uploaded") . "</option>
<option value=\"p.upload_speed\"" . (($orderBy["fieldname"] == "p.upload_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_uploaded") . "</option>
<option value=\"p.total_downloaded\"" . (($orderBy["fieldname"] == "p.total_downloaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_downloaded") . "</option>
<option value=\"p.download_speed\"" . (($orderBy["fieldname"] == "p.download_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_downloaded") . "</option>
<option value=\"p.announced\"" . (($orderBy["fieldname"] == "p.announced" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_announced") . "</option>
<option value=\"p.last_updated\"" . (($orderBy["fieldname"] == "p.last_updated" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_last_updated") . "</option>
</select>
<select name=\"orderBy[type]\" class=\"selectNoWidth\">
<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>
<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>
</select>
<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "
</div>";
return $HTML;
}
function manageaccountupgrades()
{
global $TSUE;
$HTML = "";
$aaaald = aaaaae(array( "new=1" => array( "phrase" => get_phrase("upgrade_create_new") ) ));
$aaaale = aaaaae(array( "list_active_upgrades=1" => array( "phrase" => get_phrase("upgrade_list_active_upgrades") ) ));
$aaaalf = aaaaae(array( "list_active_upgrades=1&create_new_active_upgrade=1" => array( "phrase" => get_phrase("create_new_active_upgrade") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$list_active_upgrades = intval(getvar("list_active_upgrades"));
$promotion_id = intval(getvar("promotion_id"));
$create_new_active_upgrade = intval(getvar("create_new_active_upgrade"));
$edit_promotion_id = intval(getvar("edit_promotion_id"));
if( $list_active_upgrades )
{
if( $promotion_id )
{
$aaaalg = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, u.upgrade_title, m.membername FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_members m USING(memberid) WHERE p.promotion_id = " . $TSUE["TSUE_Database"]->escape($promotion_id) . " AND p.active = 1");
if( !$aaaalg )
{
return errormessage(get_phrase("message_content_error"));
}
$buildQuery = array( "expiry_date" => TIMENOW );
$TSUE["TSUE_Database"]->update("tsue_member_upgrades_promotions", $buildQuery, "promotion_id =" . $TSUE["TSUE_Database"]->escape($promotion_id));
aaaabd("expired.php");
logadminaction(get_phrase("upgrade_member_downrage_completed", $aaaalg["membername"], $aaaalg["upgrade_title"]));
$HTML .= successmessage(get_phrase("message_saved"));
}
addbreadcrumb(array( get_phrase("upgrade_list_active_upgrades") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_upgrades=1" ));
if( $create_new_active_upgrade )
{
$membername = getvar("membername");
$upgrade_id = intval(getvar("upgrade_id"));
addbreadcrumb(array( get_phrase("create_new_active_upgrade") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_upgrades=1&create_new_active_upgrade=1" ));
if( ispost() )
{
return aaaalh($membername, $upgrade_id);
}
$inputbox = inputbox("membername", $membername, "text", "", false, true);
$formContents = aaaaan(get_phrase("upgrade_membername"), $inputbox);
$optionArray = array( );
$Upgrades = $TSUE["TSUE_Database"]->query("SELECT upgrade_id, upgrade_title FROM tsue_member_upgrades");
while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($Upgrades) )
{
$optionArray[$Upgrade["upgrade_id"]] = $Upgrade["upgrade_title"];
}
$selectbox = selectbox("upgrade_id", $upgrade_id, $optionArray);
$formContents .= aaaaan(get_phrase("upgrade_account_upgrades"), $selectbox);
$HTML .= aaaabg($formContents);
return $HTML;
}
if( $edit_promotion_id )
{
$aaaali = $TSUE["TSUE_Database"]->query_result("SELECT p.promotion_id, p.start_date, p.expiry_date, p.memberid, p.active, u.upgrade_title, u.upgrade_length, u.upgrade_length_type, t.txn_id, t.amount, t.currency, a.title as processor, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_member_upgrades_transaction t USING(txn_id) LEFT JOIN tsue_member_upgrades_api a USING(api_id) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.promotion_id = " . $TSUE["TSUE_Database"]->escape($edit_promotion_id) . " AND p.active = 1");
if( $aaaali )
{
addbreadcrumb(array( $aaaali["upgrade_title"] . ": " . getmembername($aaaali["membername"], $aaaali["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_upgrades=1&edit_promotion_id=" . $edit_promotion_id ));
if( ispost() )
{
$expiry_date = getvar("expiry_date");
if( $expiry_date )
{
$expiry_date = str_replace("/", "-", $expiry_date);
$expiry_date = strtotime($expiry_date);
}
if( $expiry_date )
{
$TSUE["TSUE_Database"]->update("tsue_member_upgrades_promotions", array( "expiry_date" => $expiry_date ), "promotion_id = " . $TSUE["TSUE_Database"]->escape($edit_promotion_id) . " AND active = 1");
$aaaali["expiry_date"] = $expiry_date;
logadminaction(get_phrase("upgrade_item_has_been_updated", $aaaali["upgrade_title"] . ": " . getmembername($aaaali["membername"], $aaaali["groupstyle"])));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
if( !$expiry_date )
{
$HTML .= errormessage(get_phrase("message_required_fields_error"));
}
}
if( !isset($updateDone) )
{
if( $aaaali["upgrade_length_type"] == "lifetime" || !$aaaali["expiry_date"] )
{
$expiry_date = "";
}
else
{
$expiry_date = date("d/m/Y", $aaaali["expiry_date"]);
}
$inputbox = inputbox("expiry_date", $expiry_date, "text", "", true);
$formContents = aaaaan(get_phrase("upgrade_item_expires"), $inputbox);
$HTML .= aaaabg($formContents);
return $HTML;
}
}
}
$aaaalj = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as upgradesCount FROM tsue_member_upgrades_promotions WHERE active = 1");
$Pagination = pagination($aaaalj["upgradesCount"], "list_active_upgrades=1");
if( $aaaalj && $aaaalj["upgradesCount"] )
{
$memberUpgrades = $TSUE["TSUE_Database"]->query("SELECT p.promotion_id, p.start_date, p.expiry_date, p.memberid, p.active, u.upgrade_title, u.upgrade_length, u.upgrade_length_type, t.txn_id, t.amount, t.currency, a.title as processor, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_member_upgrades_transaction t USING(txn_id) LEFT JOIN tsue_member_upgrades_api a USING(api_id) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1 GROUP BY txn_id ORDER BY p.expiry_date " . $Pagination["0"]);
$tableContents = aaaaag(array( array( "width" => "15%", "text" => get_phrase("upgrade_membername") ), array( "width" => "25%", "text" => get_phrase("upgrade_item_title") ), array( "width" => "20%", "text" => get_phrase("upgrade_item_length") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_start_date") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_expires") ), array( "width" => "10%", "text" => get_phrase("global_action") ) ), NULL, "tableContentTDHeader");
while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($memberUpgrades) )
{
$noAction = 0;
if( $Upgrade["upgrade_length_type"] == "lifetime" || !$Upgrade["expiry_date"] )
{
$Upgrade["upgrade_length"] = "";
$Upgrade["upgrade_length_type"] = get_phrase("upgrade_lifetime");
}
else
{
if( $Upgrade["upgrade_length_type"] )
{
$Upgrade["upgrade_length_type"] = get_phrase("upgrade_" . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : "")));
}
}
if( !$Upgrade["txn_id"] )
{
$Upgrade["txn_id"] = "N/A";
}
if( $Upgrade["amount"] )
{
$upradePrice = get_phrase("upgrade_price", $Upgrade["amount"], strtoupper($Upgrade["currency"]), $Upgrade["upgrade_length"], $Upgrade["upgrade_length_type"]);
}
else
{
$upradePrice = "[N/A]";
}
$Upgrade["start_date"] = convert_relative_time($Upgrade["start_date"]);
if( !$Upgrade["active"] )
{
$Upgrade["expiry_date"] = get_phrase("upgrade_disabled");
}
else
{
if( !$Upgrade["expiry_date"] || $Upgrade["upgrade_length_type"] == "lifetime" )
{
$Upgrade["expiry_date"] = get_phrase("upgrade_lifetime");
}
else
{
if( $Upgrade["expiry_date"] <= TIMENOW )
{
$Upgrade["expiry_date"] = get_phrase("upgrade_expired_waiting_cron");
$noAction = 1;
}
else
{
$Upgrade["expiry_date"] = convert_time($Upgrade["expiry_date"]);
}
}
}
$editLink = aaaaae(array( "list_active_upgrades=1&edit_promotion_id=" . $Upgrade["promotion_id"] => array( "phrase" => getimage("buttons/edit_s.png", get_phrase("button_edit")) ) ));
$aaaalk = ($noAction ? "" : aaaaae(array( "list_active_upgrades=1&promotion_id=" . $Upgrade["promotion_id"] => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("upgrade_downgrade")), "confirmation" => get_phrase("upgrade_downgrade_confirm", $Upgrade["membername"]) ) )));
$tableContents .= aaaaag(array( array( "width" => "15%", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Upgrade["memberid"] => array( "phrase" => getmembername($Upgrade["membername"], $Upgrade["groupstyle"]) ) )) . " <span class=\"smallPassiveTextBlock\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Upgrade["memberid"] => array( "phrase" => getmembername($Upgrade["groupname"], $Upgrade["groupstyle"]) ) )) . "</span>" ), array( "width" => "25%", "text" => $Upgrade["upgrade_title"] . " <span class=\"smallPassiveTextBlock\">" . $Upgrade["processor"] . " [#" . $Upgrade["txn_id"] . "]</span>" ), array( "width" => "20%", "text" => $upradePrice ), array( "width" => "15", "text" => $Upgrade["start_date"] ), array( "width" => "15%", "text" => $Upgrade["expiry_date"] ), array( "width" => "10%", "text" => $editLink . $aaaalk ) ));
}
$HTML .= createtable(get_phrase("upgrade_list_active_upgrades") . " (" . number_format($aaaalj["upgradesCount"]) . ") (" . $aaaalf . ")", $tableContents, 6, $Pagination["1"]);
return $HTML;
}
return errormessage(get_phrase("upgrade_no_active_upgrades") . " " . $aaaalf);
}
if( $edit || $new )
{
$Upgrade = array( "upgrade_title" => "", "upgrade_description" => "", "upgrade_length" => "", "upgrade_length_type" => "", "upgrade_membergroupid" => "", "upgrade_points" => "", "upgrade_invites" => "", "upgrade_upload" => "", "upgrade_price" => "", "upgrade_currency" => "", "viewpermissions" => array( ), "upgrade_demote_to" => 0 );
$aaaaam = "";
if( $edit )
{
$Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Upgrade )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
if( !$Upgrade["viewpermissions"] )
{
$Upgrade["viewpermissions"] = array( );
}
else
{
$Upgrade["viewpermissions"] = unserialize($Upgrade["viewpermissions"]);
}
}
if( isset($_POST["Upgrade"]) )
{
$Upgrade = $_POST["Upgrade"];
if( !isset($Upgrade["viewpermissions"]) || !$Upgrade["viewpermissions"] )
{
$Upgrade["viewpermissions"] = array( );
}
if( !$Upgrade["upgrade_title"] )
{
$formErrors[] = get_phrase("upgrade_title_error");
}
if( !$Upgrade["upgrade_price"] )
{
$formErrors[] = get_phrase("upgrade_price_error");
}
if( !isset($formErrors) )
{
if( $Upgrade["upgrade_length_type"] == "lifetime" )
{
$Upgrade["upgrade_length"] = 0;
}
$buildQuery = array( "upgrade_title" => $Upgrade["upgrade_title"], "upgrade_description" => $Upgrade["upgrade_description"], "upgrade_length" => $Upgrade["upgrade_length"], "upgrade_length_type" => $Upgrade["upgrade_length_type"], "upgrade_membergroupid" => $Upgrade["upgrade_membergroupid"], "upgrade_points" => $Upgrade["upgrade_points"], "upgrade_invites" => $Upgrade["upgrade_invites"], "upgrade_upload" => $Upgrade["upgrade_upload"], "upgrade_price" => $Upgrade["upgrade_price"], "upgrade_currency" => $Upgrade["upgrade_currency"], "upgrade_demote_to" => intval($Upgrade["upgrade_demote_to"]), "viewpermissions" => ($Upgrade["viewpermissions"] ? serialize($Upgrade["viewpermissions"]) : "") );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_member_upgrades", $buildQuery, "upgrade_id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_member_upgrades", $buildQuery);
}
logadminaction(get_phrase("upgrade_item_has_been_updated", $Upgrade["upgrade_title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Upgrade[upgrade_title]", $Upgrade["upgrade_title"]);
$formContents = aaaaan(get_phrase("upgrade_item_title"), $inputbox);
$textarea = textarea("Upgrade[upgrade_description]", $Upgrade["upgrade_description"], true);
$formContents .= aaaaan(get_phrase("upgrade_item_description"), $textarea);
$inputbox = inputbox("Upgrade[upgrade_length]", $Upgrade["upgrade_length"], "text textVeryTiny");
$optionArray = array( "day" => get_phrase("upgrade_day"), "week" => get_phrase("upgrade_week"), "month" => get_phrase("upgrade_month"), "year" => get_phrase("upgrade_year"), "lifetime" => get_phrase("upgrade_lifetime") );
$selectbox = selectbox("Upgrade[upgrade_length_type]", $Upgrade["upgrade_length_type"], $optionArray, "select smallSelect");
$formContents .= aaaaan(get_phrase("upgrade_length"), $inputbox . $selectbox);
$Usergroups = aaaabf("Upgrade[upgrade_membergroupid]", $Upgrade["upgrade_membergroupid"], true);
$formContents .= aaaaan(get_phrase("upgrade_membergroup"), $Usergroups, get_phrase("upgrade_membergroup_alt"));
$Usergroups = aaaabf("Upgrade[upgrade_demote_to]", $Upgrade["upgrade_demote_to"], true, get_phrase("previous_membergroup"));
$formContents .= aaaaan(get_phrase("upgrade_demote_membergroup"), $Usergroups, get_phrase("upgrade_demote_membergroup_alt"));
$inputbox = inputbox("Upgrade[upgrade_points]", $Upgrade["upgrade_points"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("upgrade_gift_points"), $inputbox);
$inputbox = inputbox("Upgrade[upgrade_invites]", $Upgrade["upgrade_invites"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("upgrade_gift_invites"), $inputbox);
$inputbox = inputbox("Upgrade[upgrade_upload]", $Upgrade["upgrade_upload"], "text textVeryTiny", "GB");
$formContents .= aaaaan(get_phrase("upgrade_gift_upload"), $inputbox);
$inputbox = inputbox("Upgrade[upgrade_price]", $Upgrade["upgrade_price"], "text textVeryTiny");
$optionArray = currencycodes();
$selectbox = selectbox("Upgrade[upgrade_currency]", $Upgrade["upgrade_currency"], $optionArray, "select smallSelect", "", true);
$formContents .= aaaaan(get_phrase("upgrade_item_price_currency"), $inputbox . $selectbox);
$Usergroups = aaaaaw("Upgrade[viewpermissions][]", $Upgrade["viewpermissions"]);
$formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT upgrade_title FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Upgrade )
{
$TSUE["TSUE_Database"]->update("tsue_member_upgrades", $BuildQuery, "upgrade_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("upgrade_item_has_been_updated", $Upgrade["upgrade_title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
}
}
if( $delete )
{
$Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT upgrade_title FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Upgrade )
{
$TSUE["TSUE_Database"]->delete("tsue_member_upgrades", "upgrade_id = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("upgrade_item_has_been_deleted", $Upgrade["upgrade_title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
$Upgrades = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_member_upgrades ORDER BY active DESC, upgrade_price ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Upgrades) )
{
$tableContents = errormessage(get_phrase("upgrade_account_no_items"));
}
else
{
$membergroupCache = array( );
$membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups");
while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
{
$membergroupCache[$membergroup["membergroupid"]] = getmembername($membergroup["groupname"], $membergroup["groupstyle"]);
}
$tableContents = "";
while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($Upgrades) )
{
$linkClass = (!$Upgrade["active"] ? "linkDisabled" : "");
$aaaall = aaaaae(array( "edit=" . $Upgrade["upgrade_id"] => array( "phrase" => $Upgrade["upgrade_title"], "class" => $linkClass ) ));
$aaaalm = aaaaae(array( "delete=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Upgrade["upgrade_length_type"] == "lifetime" )
{
$Upgrade["upgrade_length"] = "";
$Upgrade["upgrade_length_type"] = get_phrase("upgrade_lifetime");
}
else
{
$Upgrade["upgrade_length_type"] = get_phrase("upgrade_" . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : "")));
}
$upradePrice = get_phrase("upgrade_price", $Upgrade["upgrade_price"], strtoupper($Upgrade["upgrade_currency"]), $Upgrade["upgrade_length"], $Upgrade["upgrade_length_type"]);
$Promotions = "";
if( $Upgrade["upgrade_membergroupid"] )
{
$Promotions[] = get_phrase("upgrade_membergroup_x", $membergroupCache[$Upgrade["upgrade_membergroupid"]]);
}
if( $Upgrade["upgrade_points"] )
{
$Promotions[] = get_phrase("upgrade_points_x", number_format($Upgrade["upgrade_points"]));
}
if( $Upgrade["upgrade_invites"] )
{
$Promotions[] = get_phrase("upgrade_invites_x", number_format($Upgrade["upgrade_invites"]));
}
if( $Upgrade["upgrade_upload"] )
{
$Promotions[] = get_phrase("upgrade_upload_x", friendly_size($Upgrade["upgrade_upload"] * 1073741824));
}
if( $Promotions )
{
$Promotions = "<br />" . implode(" - ", $Promotions);
}
if( $Upgrade["active"] )
{
$aaaaln = aaaaae(array( "enable_disable=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaaln = aaaaae(array( "enable_disable=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaall . "<span class=\"smallPassiveText\">" . $upradePrice . " " . $Promotions . "</span>" ), array( "width" => "15%", "text" => $aaaaln . $aaaalm ) ));
}
}
$HTML .= createtable(get_phrase("upgrade_account_upgrades_alt"), $tableContents, 2, $aaaald . " - " . $aaaale);
return $HTML;
}
function aaaalh($membername, $upgrade_id)
{
global $TSUE;
$Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($upgrade_id));
if( !$Upgrade )
{
return errormessage(get_phrase("upgrade_invalid_item"));
}
$Member = $TSUE["TSUE_Database"]->query_result("SELECT memberid, membername, membergroupid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($membername));
if( !$Member )
{
return errormessage(get_phrase("member_not_found"));
}
$hash = md5($Member["memberid"] . $Upgrade["upgrade_title"] . $Upgrade["upgrade_id"] . generatepasskey(10));
$BuildQuery = array( "hash" => $hash, "upgrade_id" => $Upgrade["upgrade_id"], "memberid" => $Member["memberid"], "completed" => 1, "created" => TIMENOW );
$TSUE["TSUE_Database"]->insert("tsue_member_upgrades_purchases", $BuildQuery);
$history_id = $TSUE["TSUE_Database"]->insert_id();
$BuildQuery = array( "history_id" => $history_id, "amount" => $Upgrade["upgrade_price"], "currency" => $Upgrade["upgrade_currency"], "state" => 1, "dateline" => TIMENOW, "api_id" => 1, "full_log" => "Added via Admin CP by " . $TSUE["TSUE_Member"]["membername"] );
$TSUE["TSUE_Database"]->insert("tsue_member_upgrades_transaction", $BuildQuery);
$txn_id = $TSUE["TSUE_Database"]->insert_id();
$buildPromotion = array( );
$buildPromotion["upgrade_id"] = $Upgrade["upgrade_id"];
$buildPromotion["history_id"] = $history_id;
$buildPromotion["txn_id"] = $txn_id;
$buildPromotion["start_date"] = TIMENOW;
if( $Upgrade["upgrade_length"] && $Upgrade["upgrade_length_type"] != "lifetime" )
{
$buildPromotion["expiry_date"] = strtotime("+" . $Upgrade["upgrade_length"] . " " . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : "")));
}
else
{
$buildPromotion["expiry_date"] = 0;
}
$buildPromotion["memberid"] = $Member["memberid"];
$previousUpgrade = $TSUE["TSUE_Database"]->query_result("SELECT old_membergroupid FROM tsue_member_upgrades_promotions WHERE memberid = " . $TSUE["TSUE_Database"]->escape($Member["memberid"]) . " AND (expiry_date = 0 OR expiry_date > " . TIMENOW . ") AND active = 1 ORDER BY start_date ASC LIMIT 1");
if( $previousUpgrade )
{
$buildPromotion["old_membergroupid"] = $previousUpgrade["old_membergroupid"];
}
else
{
$buildPromotion["old_membergroupid"] = $Member["membergroupid"];
}
$buildPromotion["active"] = 1;
$TSUE["TSUE_Database"]->insert("tsue_member_upgrades_promotions", $buildPromotion);
$updateAccount = array( );
$profileUpdate = array( );
if( $Upgrade["upgrade_membergroupid"] )
{
$updateAccount["membergroupid"] = $Upgrade["upgrade_membergroupid"];
}
if( $Upgrade["upgrade_points"] )
{
$profileUpdate["points"] = array( "escape" => 0, "value" => "points+" . $Upgrade["upgrade_points"] );
}
if( $Upgrade["upgrade_invites"] )
{
$profileUpdate["invites_left"] = array( "escape" => 0, "value" => "invites_left+" . $Upgrade["upgrade_invites"] );
}
if( $Upgrade["upgrade_upload"] )
{
$profileUpdate["uploaded"] = array( "escape" => 0, "value" => "uploaded+" . $Upgrade["upgrade_upload"] * 1024 * 1024 * 1024 );
}
if( $updateAccount )
{
$TSUE["TSUE_Database"]->update("tsue_members", $updateAccount, "memberid=" . $TSUE["TSUE_Database"]->escape($Member["memberid"]));
}
if( $profileUpdate )
{
profileupdate($Member["memberid"], $profileUpdate);
}
$subject = get_phrase("upgrade_thank_you_subject");
$message = nl2br(get_phrase("upgrade_thank_you_message", $Member["membername"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]));
sendpm($subject, $TSUE["TSUE_Member"]["memberid"], $Member["memberid"], $message);
aaaabd("expired.php");
logadminaction(get_phrase("new_active_upgrade_added", $Upgrade["upgrade_title"], $Member["membername"] . " (" . $Member["memberid"] . ")"));
handlerebuildcaches(false);
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_upgrades=1");
exit();
}
function managemutedmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaalo = aaaaae(array( "mute=1" => array( "phrase" => get_phrase("mute_member") ) ));
$mute = intval(getvar("mute"));
$lift = intval(getvar("lift"));
if( $lift )
{
$mutedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername, mm.membername AS mutedBy FROM tsue_member_mutes w LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (w.muted_by=mm.memberid) WHERE w.memberid=" . $TSUE["TSUE_Database"]->escape($lift));
if( !$mutedMember )
{
return errormessage(get_phrase("member_not_found"));
}
$TSUE["TSUE_Database"]->delete("tsue_member_mutes", "memberid=" . $TSUE["TSUE_Database"]->escape($lift));
$BuildQuery = array( "muted" => 0 );
$TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $mutedMember["memberid"]);
alert_member($mutedMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "mutes", 0, "mute_lifted");
logadminaction(get_phrase("mute_has_been_lifted", $mutedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
if( $mute )
{
$muteMember = array( "membername" => "", "memberid" => "", "muted_by" => $TSUE["TSUE_Member"]["memberid"], "mute_date" => TIMENOW, "end_date" => 0, "notes" => "" );
if( isset($_POST["muteMember"]) )
{
$muteMember = array_merge($muteMember, $_POST["muteMember"]);
if( !$muteMember["membername"] )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($muteMember["membername"]));
if( !$checkMember )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$muteMember["memberid"] = $checkMember["memberid"];
$aaaalp = $muteMember["membername"];
unset($muteMember["membername"]);
}
}
$mutetype = getvar("mutetype", array( ), false);
if( empty($mutetype) )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
$mutetype = array_map("intval", $mutetype);
if( empty($mutetype) )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
}
$mutetype = implode("", $mutetype);
if( $muteMember["end_date"] )
{
$end_date = list($day, $month, $year) = tsue_explode("/", $muteMember["end_date"]);
$end_date = strtotime((string) $year . "/" . $month . "/" . $day);
if( !checkdate($month, $day, $year) || $end_date <= TIMENOW )
{
$formErrors[] = get_phrase("mute_invalid_date");
}
}
if( !isset($formErrors) )
{
if( isset($end_date) )
{
$muteMember["end_date"] = $end_date;
}
else
{
$muteMember["end_date"] = 0;
}
$TSUE["TSUE_Database"]->replace("tsue_member_mutes", $muteMember);
$BuildQuery = array( "muted" => $mutetype );
$TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $muteMember["memberid"]);
alert_member($muteMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "mutes", 0, "mute_member");
logadminaction(get_phrase("member_has_been_muted", $aaaalp, $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("muteMember[membername]", (isset($muteMember["membername"]) ? $muteMember["membername"] : $aaaalp), "text", NULL, false, true);
$formContents = aaaaan(get_phrase("your_name"), $inputbox);
$inputbox = inputbox("muteMember[notes]", $muteMember["notes"]);
$formContents .= aaaaan(get_phrase("mute_reason"), $inputbox, get_phrase("mute_reason_alt"));
$inputbox = inputbox("muteMember[end_date]", $muteMember["end_date"], "text texthalf", get_phrase("mute_length_alt"), true);
$formContents .= aaaaan(get_phrase("mute_length"), $inputbox, get_phrase("mute_length_alt"));
$inputbox = aaaalq();
$formContents .= aaaaan(get_phrase("mute_type"), $inputbox);
$HTML .= aaaabg($formContents);
return $HTML;
}
}
$mutedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as mutedMembersCount FROM tsue_member_mutes");
if( !$mutedMembersCount["mutedMembersCount"] )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_muted_members") ) ));
return createtable(get_phrase("mute_reason_alt") . " (" . $aaaalo . ")", $tableContents);
}
$Pagination = pagination($mutedMembersCount["mutedMembersCount"]);
$mutedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS mutedBy, p.muted FROM tsue_member_mutes b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.muted_by=mm.memberid) LEFT JOIN tsue_member_profile p ON (b.memberid=p.memberid) " . $Pagination["0"]);
while( $mutedMember = $TSUE["TSUE_Database"]->fetch_assoc($mutedMembers) )
{
$listMutes = get_phrase("mute_type") . ": " . listmutes($mutedMember["muted"], false);
$notes = get_phrase("mute_reason") . ": " . (($mutedMember["notes"] ? strip_tags($mutedMember["notes"]) : ".."));
$mute_date = get_phrase("mute_started", convert_relative_time($mutedMember["mute_date"]));
$end_date = get_phrase("mute_end_date") . ": " . (($mutedMember["end_date"] && TIMENOW < $mutedMember["end_date"] ? convert_time($mutedMember["end_date"], "d/m/Y") : get_phrase("mutes_end_date_never")));
$muted_by = get_phrase("muted_by") . ": " . $mutedMember["mutedBy"];
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $mutedMember["memberid"] => array( "phrase" => $mutedMember["membername"] ) ));
$aaaalr = aaaaae(array( "lift=" . $mutedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("lift_mute")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $mute_date . " -- " . $end_date . " -- " . $muted_by . " -- " . $notes . " -- " . $listMutes . "</span>" ), array( "width" => "10%", "text" => $aaaalr ) ));
}
$HTML .= createtable(get_phrase("member_manager_muted_members_alt") . " (" . $aaaalo . ")", $tableContents, 2, $Pagination["1"]);
return $HTML;
}
function aaaalq()
{
return "
<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">
<tr>
<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"1\" id=\"mute_in_comments\" /></td>
<td><label for=\"mute_in_comments\">" . get_phrase("mute_in_comments") . "</label></td>
</tr>
<tr>
<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"2\" id=\"mute_in_forums\" /></td>
<td><label for=\"mute_in_forums\">" . get_phrase("mute_in_forums") . "</label></td>
</tr>
<tr>
<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"3\" id=\"mute_in_shoutbox\" /></td>
<td><label for=\"mute_in_shoutbox\">" . get_phrase("mute_in_shoutbox") . "</label></td>
</tr>
<tr>
<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"4\" id=\"mute_in_pm\" /></td>
<td><label for=\"mute_in_pm\">" . get_phrase("mute_in_pm") . "</label></td>
</tr>
</table>";
}
function managepmmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$pmMembers = array( "sender" => $TSUE["TSUE_Member"]["membername"], "subject" => "", "reply" => "", "joindate" => "", "lastactivity" => "", "membergroup" => array( ) );
if( isset($_POST["pmMembers"]) )
{
$pmMembers = $_POST["pmMembers"];
if( !isset($pmMembers["membergroup"]) )
{
$pmMembers["membergroup"] = array( );
}
foreach( array( "sender", "subject", "reply" ) as $required )
{
if( !isset($pmMembers[$required]) || empty($pmMembers[$required]) )
{
$errorDetected = true;
}
}
if( isset($errorDetected) )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
$Sender = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membergroupid, m.gender, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($pmMembers["sender"]));
if( !$Sender )
{
$formErrors[] = get_phrase("member_not_found");
}
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$Where = "";
$searchCriteria = array( );
if( $pmMembers["joindate"] )
{
$joindate = list($day, $month, $year) = tsue_explode("/", $pmMembers["joindate"]);
$joindate = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.joindate > " . $joindate;
}
if( $pmMembers["lastactivity"] )
{
$lastactivity = list($day, $month, $year) = tsue_explode("/", $pmMembers["lastactivity"]);
$lastactivity = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.lastactivity > " . $lastactivity;
}
if( !empty($pmMembers["membergroup"]) )
{
$searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $pmMembers["membergroup"])) . ")";
}
$WHERE = "";
if( !empty($searchCriteria) )
{
$WHERE = " WHERE " . implode(" AND ", $searchCriteria);
}
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, g.groupstyle, p.uploaded FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid)" . $WHERE . " ORDER BY membername ASC");
if( !($totalMembers = $TSUE["TSUE_Database"]->num_rows($Members)) )
{
$HTML .= errormessage(get_phrase("no_members_matched"));
}
else
{
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
sendpm($pmMembers["subject"], $Sender["memberid"], $Member["memberid"], $pmMembers["reply"]);
}
$HTML .= successmessage(get_phrase("pm_members_pm_sent", number_format($totalMembers)));
}
}
}
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("sender"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[sender]", $pmMembers["sender"], "text texthalf", NULL, false, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_subject"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[subject]", $pmMembers["subject"]) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_message"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => textarea("pmMembers[reply]", $pmMembers["reply"], true) ) ));
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("global_search_criteria"), "colspan" => 2 ) ), "tableContentTDHeader");
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[joindate]", $pmMembers["joindate"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[lastactivity]", $pmMembers["lastactivity"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("pmMembers[membergroup][]", $pmMembers["membergroup"], 3) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("button_send"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("member_manager_pm_members_alt"), $tableContents, 2)) . "
<script type=\"text/javascript\">
\$(\"#simpleForm\").submit(function(e)
{
TSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("sending_pm") . "', false, false);
});
</script>";
return $HTML;
}
function managepromotions()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaaam = "";
$aaaals = aaaaae(array( "list_active_promotions=1" => array( "phrase" => get_phrase("promotions_list_active_promotions") ) ));
$aaaalt = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_a_new_promotion") ) ));
$list_active_promotions = intval(getvar("list_active_promotions"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
if( $list_active_promotions )
{
addbreadcrumb(array( get_phrase("promotions_list_active_promotions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_promotions=1" ));
$aaaalu = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as promotionCount FROM tsue_member_promotions");
$Pagination = pagination($aaaalu["promotionCount"], "list_active_promotions=1");
if( $aaaalu && $aaaalu["promotionCount"] )
{
$aaaalv = $TSUE["TSUE_Database"]->query("SELECT p.*, m.membername, g.groupname, g.groupstyle, gg.groupname AS prevGroupname, gg.groupstyle AS prevGroupstyle FROM tsue_member_promotions p INNER JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_membergroups gg ON(p.beforeMembergroupid=gg.membergroupid) " . $Pagination["0"]);
$tableContents = aaaaag(array( array( "width" => "15%", "text" => get_phrase("upgrade_membername") ), array( "width" => "15%", "text" => get_phrase("promotions_previous_membergroup") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_start_date") ) ), NULL, "tableContentTDHeader");
while( $Promotion = $TSUE["TSUE_Database"]->fetch_assoc($aaaalv) )
{
$Promotion["date"] = convert_relative_time($Promotion["date"]);
$tableContents .= aaaaag(array( array( "width" => "40%", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Promotion["memberid"] => array( "phrase" => getmembername($Promotion["membername"], $Promotion["groupstyle"]) ) )) . " <span class=\"smallPassiveTextBlock\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Promotion["memberid"] => array( "phrase" => getmembername($Promotion["groupname"], $Promotion["groupstyle"]) ) )) . "</span>" ), array( "width" => "40%", "text" => getmembername($Promotion["prevGroupname"], $Promotion["prevGroupstyle"]) ), array( "width" => "20%", "text" => $Promotion["date"] ) ));
}
$HTML .= createtable(get_phrase("promotions_list_active_promotions"), $tableContents, 3, $Pagination["1"]);
return $HTML;
}
return errormessage(get_phrase("promotions_no_active_promotion"));
}
if( $enable_disable )
{
$BuildQuery = array( "promotionSystemActive" => array( "escape" => 0, "value" => "IF(promotionSystemActive>0,0,1)" ) );
$Promotion = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Promotion )
{
$TSUE["TSUE_Database"]->update("tsue_auto_promotions", $BuildQuery, "pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("promotion_x_has_been_updated", $Promotion["title"] . " (" . $enable_disable . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
}
}
if( $delete )
{
$Promotion = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Promotion )
{
$TSUE["TSUE_Database"]->delete("tsue_auto_promotions", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("promotion_x_has_been_deleted", $Promotion["title"] . " (" . $delete . ")"));
}
}
if( $edit || $new )
{
$Promotion = array( "title" => "", "promotionSystemActive" => 0, "checkForMembergroupid" => 0, "promoteMembergroupid" => 0, "minDaysRegistered" => 0, "minUpload" => 0, "minRatio" => 0, "minPosts" => 0 );
if( $edit )
{
$Promotion = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Promotion )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
}
if( isset($_POST["Promotion"]) )
{
$Promotion = $_POST["Promotion"];
if( !$Promotion["title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$Promotion["checkForMembergroupid"] || !$Promotion["promoteMembergroupid"] )
{
$formErrors[] = get_phrase("select_promotion_membergroups_to_apply");
}
else
{
if( $Promotion["checkForMembergroupid"] == $Promotion["promoteMembergroupid"] )
{
$formErrors[] = get_phrase("select_promotion_membergroups_to_apply");
}
}
if( !$Promotion["minDaysRegistered"] && !$Promotion["minUpload"] && !$Promotion["minRatio"] && !$Promotion["minPosts"] )
{
$formErrors[] = get_phrase("enter_at_least_one_promotion_rule");
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $Promotion["title"], "promotionSystemActive" => $Promotion["promotionSystemActive"], "checkForMembergroupid" => $Promotion["checkForMembergroupid"], "promoteMembergroupid" => $Promotion["promoteMembergroupid"], "minDaysRegistered" => $Promotion["minDaysRegistered"], "minUpload" => $Promotion["minUpload"], "minRatio" => $Promotion["minRatio"], "minPosts" => $Promotion["minPosts"] );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_auto_promotions", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_auto_promotions", $buildQuery);
$edit = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("promotion_x_has_been_updated", $Promotion["title"] . " (" . $edit . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = radioyesno("Promotion[promotionSystemActive]", intval($Promotion["promotionSystemActive"]));
$formContents = aaaaan(get_phrase("promotions_system_active"), $inputbox);
$inputbox = inputbox("Promotion[title]", $Promotion["title"], "text");
$formContents .= aaaaan(get_phrase("promotion_title"), $inputbox);
$Usergroups = aaaabf("Promotion[checkForMembergroupid]", $Promotion["checkForMembergroupid"], true);
$formContents .= aaaaan(get_phrase("promotion_checkfor_membergroupid"), $Usergroups, get_phrase("promotion_checkfor_membergroupid_alt"));
$Usergroups = aaaabf("Promotion[promoteMembergroupid]", $Promotion["promoteMembergroupid"], true);
$formContents .= aaaaan(get_phrase("promotion_promoteMembergroupid"), $Usergroups, get_phrase("promotion_promoteMembergroupid_alt"));
$inputbox = inputbox("Promotion[minDaysRegistered]", $Promotion["minDaysRegistered"], "text texttiny");
$formContents .= aaaaan(get_phrase("promotion_minDaysRegistered"), $inputbox, get_phrase("promotion_minDaysRegistered_alt"));
$inputbox = inputbox("Promotion[minUpload]", $Promotion["minUpload"], "text texttiny", "GB");
$formContents .= aaaaan(get_phrase("promotion_minUpload"), $inputbox, get_phrase("promotion_minUpload_alt"));
$inputbox = inputbox("Promotion[minRatio]", $Promotion["minRatio"], "text texttiny");
$formContents .= aaaaan(get_phrase("promotion_minRatio"), $inputbox, get_phrase("promotion_minRatio_alt"));
$inputbox = inputbox("Promotion[minPosts]", $Promotion["minPosts"], "text texttiny");
$formContents .= aaaaan(get_phrase("promotion_minPosts"), $inputbox, get_phrase("promotion_minPosts_alt"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$Promotions = $TSUE["TSUE_Database"]->query("SELECT p.*, g.groupname, g.groupstyle, gg.groupname as groupname2, gg.groupstyle as groupstyle2 FROM tsue_auto_promotions p LEFT JOIN tsue_membergroups g ON (p.checkForMembergroupid=g.membergroupid) LEFT JOIN tsue_membergroups gg ON (p.promoteMembergroupid=gg.membergroupid) ORDER BY p.promotionSystemActive DESC, p.title ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Promotions) )
{
return errormessage(get_phrase("no_promotion_found", "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1"));
}
$tableContents = "";
while( $Promotion = $TSUE["TSUE_Database"]->fetch_assoc($Promotions) )
{
$linkClass = (!$Promotion["promotionSystemActive"] ? "linkDisabled" : "");
$aaaalw = aaaaae(array( "edit=" . $Promotion["pid"] => array( "phrase" => $Promotion["title"], "class" => $linkClass ) ));
$aaaalx = aaaaae(array( "delete=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Promotion["promotionSystemActive"] )
{
$aaaaly = aaaaae(array( "enable_disable=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaaly = aaaaae(array( "enable_disable=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$aaaalz = getmembername($Promotion["groupname"], $Promotion["groupstyle"]) . " => " . getmembername($Promotion["groupname2"], $Promotion["groupstyle2"]);
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaalw . "<span class=\"smallPassiveText\">(" . $aaaalz . ")</span>" ), array( "width" => "20%", "text" => $aaaaly . $aaaalx, "align" => "right" ) ));
}
$HTML .= createtable(get_phrase("promotions"), $tableContents, 2, $aaaals . " - " . $aaaalt);
return $HTML;
}
function manageduplicateips()
{
global $TSUE;
$HTML = "";
$counter = $TSUE["TSUE_Database"]->query("
SELECT ipaddress, count(*) as tot
FROM tsue_members
GROUP BY ipaddress
HAVING tot > 1
ORDER BY ipaddress");
if( !$TSUE["TSUE_Database"]->num_rows($counter) )
{
return errormessage(get_phrase("message_nothing_found"));
}
$x = "";
while( $ipaddress = $TSUE["TSUE_Database"]->fetch_assoc($counter) )
{
$ipaddress["ipaddress"] = preg_replace("/[^0-9-\.]/u", "-", trim($ipaddress["ipaddress"]));
if( $ipaddress["ipaddress"] != "" )
{
$x .= "'" . $ipaddress["ipaddress"] . "',";
}
}
$x .= "'XXX'";
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.joindate, m.lastactivity, m.ipaddress, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid) WHERE m.ipaddress IN (" . $x . ") ORDER BY m.ipaddress");
$TSUE["do"] = "All Members";
return aaaaaj($Members);
}
function aaaaak()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$keywords = trim(getvar("keywords"));
$searchType = trim(getvar("searchType"));
$fixAll = intval(getvar("fixAll"));
$WHERE = "";
if( !in_array($searchType, array( "membername", "torrentname" )) )
{
$searchType = "membername";
}
if( $keywords && $searchType )
{
switch( $searchType )
{
case "membername":
$WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords);
break;
case "torrentname":
$WHERE = " AND t.name LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
break;
}
}
$orderBy["fieldname"] = "m.memberid";
$orderBy["type"] = "DESC";
if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
{
$allowedFieldNames = array( "m.membername", "t.name", "t.size", "p.total_uploaded", "p.active", "p.upload_speed", "p.total_downloaded", "p.download_speed" );
$allowedTypes = array( "DESC", "ASC" );
if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
{
$orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
$orderBy["type"] = $_REQUEST["orderBy"]["type"];
}
}
if( getsetting("xbt", "active") )
{
$peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE);
}
else
{
$peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE);
}
$tableContents .= aaaaag(array( array( "width" => "18%", "text" => get_phrase("your_name") ), array( "width" => "29%", "text" => get_phrase("torrent_name") . "/" . get_phrase("torrents_size") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_downloaded") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_uploaded") ), array( "width" => "16%", "text" => get_phrase("torrent_hitrun_ratio") ), array( "width" => "7%", "text" => get_phrase("stats_ratio") ) ), "tableContentTR", "tableContentTDHeader");
if( !$peerCount )
{
$Pagination["1"] = "";
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 6 ) ));
}
else
{
if( $fixAll )
{
if( getsetting("xbt", "active") )
{
$Peers = $TSUE["TSUE_Database"]->query("SELECT fid, uid FROM xbt_files_users WHERE isWarned=1");
while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
{
aaaama($Peer["fid"], $Peer["uid"]);
}
}
else
{
$Peers = $TSUE["TSUE_Database"]->query("SELECT pid, tid, memberid FROM tsue_torrents_peers WHERE isWarned=1");
while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
{
aaaamb($Peer["pid"], $Peer["memberid"], $Peer["tid"]);
}
}
}
if( isset($_POST["fixRatios"]) && is_array($_POST["fixRatios"]) && !empty($_POST["fixRatios"]) )
{
if( getsetting("xbt", "active") )
{
foreach( $_POST["fixRatios"] as $array )
{
list($fid, $uid) = tsue_explode("|", $array);
aaaama($fid, $uid);
}
}
else
{
foreach( $_POST["fixRatios"] as $array )
{
list($pid, $memberid, $tid) = tsue_explode("|", $array);
aaaamb($pid, $memberid, $tid);
}
}
}
$Pagination = pagination($peerCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&orderBy[type]=" . $orderBy["type"] . (($keywords ? "&keywords=" . urlencode($keywords) . "&searchType=" . $searchType : "")));
if( getsetting("xbt", "active") )
{
$aaaalb["fieldname"] = str_replace(array( "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed" ), array( "p.uploaded", "p.up_rate", "p.downloaded", "p.down_rate" ), $orderBy["fieldname"]);
$Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.fid, p.uid, p.uploaded as total_uploaded, p.downloaded as total_downloaded, p.up_rate as upload_speed, p.down_rate as download_speed, p.active, t.tid, t.name, t.size, t.options, m.memberid, m.membername, m.email, m.joindate, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE . " ORDER BY " . $aaaalb["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
}
else
{
$Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, m.joindate, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
}
while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
{
$torrentOptions = unserialize($Peer["options"]);
$torrentName = strip_tags($Peer["name"]);
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) ));
$tableContents .= aaaaag(array( array( "text" => $aaaakb . "<div class=\"verySmall\">" . get_phrase("memberinfo_membersince", convert_time($Peer["joindate"], "d-m-Y")) . "</div>" ), array( "text" => aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], substr($torrentName, 0, 30), $torrentName) . "<div class=\"verySmall\">" . friendly_size($Peer["size"]) . "</div>" ), array( "text" => friendly_size($Peer["total_downloaded"]) . "<br />" . friendly_size($Peer["download_speed"]) . "/s" ), array( "text" => friendly_size($Peer["total_uploaded"]) . "<br />" . friendly_size($Peer["upload_speed"]) . "/s" ), array( "text" => (isset($torrentOptions["hitRunRatio"]) ? 0 + $torrentOptions["hitRunRatio"] : 0) ), array( "text" => "<label>" . member_ratio($Peer["total_uploaded"], $Peer["size"]) . "<div><input type=\"checkbox\" name=\"fixRatios[]\" value=\"" . ((getsetting("xbt", "active") ? $Peer["fid"] . "|" . $Peer["uid"] : $Peer["pid"] . "|" . $Peer["memberid"] . "|" . $Peer["tid"])) . "\" /></div></label>" ) ), ($Peer["active"] ? "" : "greyBackground"));
}
}
$selectBox = "
<select name=\"searchType\" class=\"selectNoWidth\">
<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
<option value=\"torrentname\"" . (($searchType == "torrentname" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>
</select>";
if( $peerCount )
{
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
}
if( !$peerCount )
{
$fixRatios = "";
}
else
{
$fixRatios = aaaaag(array( array( "colspan" => 6, "text" => aaaabm(get_phrase("fix_remove_hit_run")), "align" => "right" ) ));
}
$aaaamc = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&fixAll=1" => array( "phrase" => get_phrase("remove_all_hit_run_warnings") ) ));
$HTML .= aaaabn(createtable(get_phrase("hit_and_runners"), $tableContents . $fixRatios, 6, $aaaamc . $Pagination["1"]));
if( $peerCount )
{
$HTML .= "
<div style=\"margin-top: 10px;\">
<span style=\"float: left; margin-right: 8px; padding: 6px 10px; font-size: 11px; color: #000;\" class=\"greyBackground\">" . get_phrase("inactive_peer") . "</span>
" . aaaabn("
" . get_phrase("torrents_sort_by") . "
<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">
<option value=\"p.active\"" . (($orderBy["fieldname"] == "p.active" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_active") . "</option>
<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
<option value=\"t.name\"" . (($orderBy["fieldname"] == "t.name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>
<option value=\"t.size\"" . (($orderBy["fieldname"] == "t.size" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_size") . "</option>
<option value=\"p.total_uploaded\"" . (($orderBy["fieldname"] == "p.total_uploaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_uploaded") . "</option>
<option value=\"p.upload_speed\"" . (($orderBy["fieldname"] == "p.upload_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_uploaded") . "</option>
<option value=\"p.total_downloaded\"" . (($orderBy["fieldname"] == "p.total_downloaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_downloaded") . "</option>
<option value=\"p.download_speed\"" . (($orderBy["fieldname"] == "p.download_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_downloaded") . "</option>
</select>
<select name=\"orderBy[type]\" class=\"selectNoWidth\">
<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>
<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>
</select>
<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "
</div>";
}
return $HTML;
}
function aaaamb($pid = 0, $memberid = 0, $tid = 0)
{
global $TSUE;
if( $pid && $memberid && $tid )
{
$Torrent = $TSUE["TSUE_Database"]->query_result("SELECT size FROM tsue_torrents WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
if( $Torrent && $Torrent["size"] )
{
$TSUE["TSUE_Database"]->update("tsue_torrents_peers", array( "isWarned" => 0, "total_uploaded" => array( "escape" => 0, "value" => "IF(total_downloaded>0 && total_uploaded<" . $Torrent["size"] . "," . $Torrent["size"] . ",total_uploaded)" ) ), "pid=" . $TSUE["TSUE_Database"]->escape($pid));
$TSUE["TSUE_Database"]->update("tsue_member_profile", array( "hitRuns" => array( "escape" => 0, "value" => "IF(hitRuns>0,hitRuns-1,0)" ) ), "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
}
}
}
function aaaama($fid = 0, $uid = 0)
{
global $TSUE;
if( $fid && $uid )
{
$Torrent = $TSUE["TSUE_Database"]->query_result("SELECT size FROM tsue_torrents WHERE tid = " . $TSUE["TSUE_Database"]->escape($fid));
if( $Torrent && $Torrent["size"] )
{
$TSUE["TSUE_Database"]->update("xbt_files_users", array( "isWarned" => 0, "uploaded" => array( "escape" => 0, "value" => "IF(downloaded>0 && uploaded<" . $Torrent["size"] . "," . $Torrent["size"] . ",uploaded)" ) ), "fid=" . $TSUE["TSUE_Database"]->escape($fid) . " AND uid=" . $TSUE["TSUE_Database"]->escape($uid));
$TSUE["TSUE_Database"]->update("tsue_member_profile", array( "hitRuns" => array( "escape" => 0, "value" => "IF(hitRuns>0,hitRuns-1,0)" ) ), "memberid=" . $TSUE["TSUE_Database"]->escape($uid));
}
}
}
function managetestpermissions()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$membername = "";
if( isset($_POST["membername"]) )
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($_POST["membername"]));
if( !$checkMember )
{
return errormessage(get_phrase("member_not_found"));
}
cookie_set("testPermissions", $_POST["membername"]);
header("Location: " . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
exit();
}
$aaaaam = "";
$inputbox = inputbox("membername", $membername, "text texthalf", get_phrase("test_permissions_input"), false, true);
$formContents = aaaaan(get_phrase("test_permissions"), $inputbox, get_phrase("test_permissions_info"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
function manageadministrators()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$editPerm = intval(getvar("editPerm"));
$new = intval(getvar("new"));
$delete = intval(getvar("delete"));
if( $delete )
{
$Member = $TSUE["TSUE_Database"]->query_result("SELECT p.*, m.membername, g.groupname, g.groupstyle FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.memberid=" . $TSUE["TSUE_Database"]->escape($delete));
if( !$Member )
{
return errormessage(get_phrase("member_not_found"));
}
$TSUE["TSUE_Database"]->delete("tsue_staffcp_permissions", "memberid=" . $TSUE["TSUE_Database"]->escape($delete));
$Phrase = get_phrase("x_admin_perms_deleted", $Member["membername"] . " (" . $Member["memberid"] . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
return successmessage($Phrase);
}
if( $new )
{
addbreadcrumb(array( get_phrase("create_new_administrator") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&&new=1" ));
return aaaamd();
}
if( $editPerm )
{
$Member = $TSUE["TSUE_Database"]->query_result("SELECT p.*, m.membername, m.membergroupid, g.groupname, g.groupstyle, g.permissions as groupPermissions FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.memberid=" . $TSUE["TSUE_Database"]->escape($editPerm));
if( !$Member )
{
return errormessage(get_phrase("member_not_found"));
}
addbreadcrumb(array( getmembername($Member["membername"], $Member["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&&editPerm=" . $editPerm ));
$Permissions = unserialize($Member["permissions"]);
return aaaame($Permissions, $Member);
}
$Members = $TSUE["TSUE_Database"]->query("SELECT p.memberid, m.membername, g.groupname, g.groupstyle FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid)");
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$membername = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&editPerm=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) ));
$deleteLink = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&delete=" . $Member["memberid"] => array( "phrase" => get_phrase("button_delete") ) ));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $membername . " <span class=\"smallPassiveText\">" . $Member["groupname"] . " [" . $deleteLink . "]</span>" ), array( "width" => "15%", "text" => "", "align" => "right" ) ));
}
$HTML .= createtable(get_phrase("administrators"), $tableContents, 2, aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" => array( "phrase" => get_phrase("create_new_administrator") ) )));
return $HTML;
}
function aaaamd()
{
global $TSUE;
$staffCPAvailableActions = aaaamf();
if( ispost() )
{
$membername = (isset($_POST["membername"]) ? $_POST["membername"] : "");
if( !$membername )
{
return errormessage(get_phrase("member_not_found"));
}
$Member = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membername, m.membergroupid, g.permissions FROM tsue_members m INNER JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($membername));
if( !$Member )
{
return errormessage(get_phrase("member_not_found"));
}
$memberPermissions = unserialize($Member["permissions"]);
if( !isset($memberPermissions["canlogin_admincp"]) || !$memberPermissions["canlogin_admincp"] )
{
return errormessage(get_phrase("insufficient_permission", TSUE_ADMINCP_URL . "?action=Member Manager&do=Membergroups&edit=" . $Member["membergroupid"] . "#administratorpermissions"));
}
$newPerms = array( );
if( isset($_POST["permissions"]) && $_POST["permissions"] )
{
foreach( $_POST["permissions"] as $Action )
{
$newPerms[$Action] = 1;
}
}
$staffCPAvailableActions = array_merge($staffCPAvailableActions, $newPerms);
$TSUE["TSUE_Database"]->replace("tsue_staffcp_permissions", array( "memberid" => $Member["memberid"], "permissions" => serialize($staffCPAvailableActions) ));
$Phrase = get_phrase("x_admin_perms_updated", $Member["membername"] . " (" . $Member["memberid"] . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
return successmessage($Phrase);
}
else
{
$Checkboxes = "
<div>" . get_phrase("your_name") . ":<br />" . inputbox("membername", "", "text texthalf", get_phrase("administrator_tip"), false, true) . "</div>
<ul class=\"adminPerms\">";
ksort($staffCPAvailableActions);
foreach( $staffCPAvailableActions as $Action => $Perm )
{
$Checkboxes .= "
<li><label><input type=\"checkbox\" name=\"permissions[]\" value=\"" . $Action . "\"" . (($Perm ? " checked=\"checked\"" : "")) . " /> " . $Action . "</label></li>";
}
$Checkboxes .= "
<div class=\"clear\"></div>
</ul>
" . aaaabm(get_phrase("create_new_administrator"), get_phrase("button_reset"));
$tableContents = aaaaag(array( array( "width" => "100%", "text" => $Checkboxes ) ));
$aaaaam = array( "new" => 1 );
$aaaamg = "<input type=\"checkbox\" name=\"checkALL\" value=\"permissions[]\" />";
return aaaabn(createtable(get_phrase("administrators_alt"), $tableContents, 1, $aaaamg), $aaaaam);
}
}
function aaaame($Permissions, $Member)
{
global $TSUE;
$staffCPAvailableActions = aaaamf();
if( ispost() )
{
$memberPermissions = unserialize($Member["groupPermissions"]);
if( !isset($memberPermissions["canlogin_admincp"]) || !$memberPermissions["canlogin_admincp"] )
{
return errormessage(get_phrase("insufficient_permission", TSUE_ADMINCP_URL . "?action=Member Manager&do=Membergroups&edit=" . $Member["membergroupid"] . "#administratorpermissions"));
}
$newPerms = array( );
if( isset($_POST["permissions"]) && $_POST["permissions"] )
{
foreach( $_POST["permissions"] as $Action )
{
$newPerms[$Action] = 1;
}
}
$staffCPAvailableActions = array_merge($staffCPAvailableActions, $newPerms);
$TSUE["TSUE_Database"]->replace("tsue_staffcp_permissions", array( "memberid" => $Member["memberid"], "permissions" => serialize($staffCPAvailableActions) ));
$Phrase = get_phrase("x_admin_perms_updated", $Member["membername"] . " (" . $Member["memberid"] . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
return successmessage($Phrase);
}
else
{
$staffCPAvailableActions = array_merge($staffCPAvailableActions, $Permissions);
$Checkboxes = "
<ul class=\"adminPerms\">";
ksort($staffCPAvailableActions);
foreach( $staffCPAvailableActions as $Action => $Perm )
{
$Checkboxes .= "
<li><label><input type=\"checkbox\" name=\"permissions[]\" value=\"" . $Action . "\"" . (($Perm ? " checked=\"checked\"" : "")) . " /> " . $Action . "</label></li>";
}
$Checkboxes .= "
<div class=\"clear\"></div>
</ul>
" . aaaabm(get_phrase("button_save"), get_phrase("button_reset"));
$tableContents = aaaaag(array( array( "width" => "100%", "text" => $Checkboxes ) ));
$aaaaam = array( "editPerm" => $Member["memberid"] );
$aaaamg = "<input type=\"checkbox\" name=\"checkALL\" value=\"permissions[]\" />";
return aaaabn(createtable(get_phrase("administrators_alt"), $tableContents, 1, $aaaamg), $aaaaam);
}
}
function aaaamf()
{
return array( "Options" => 0, "Pages" => 0, "Polls" => 0, "News" => 0, "FAQ" => 0, "Torrent Categories" => 0, "Market" => 0, "API Manager" => 0, "Cron Entries" => 0, "Rebuild Caches" => 0, "Logs" => 0, "Server" => 0, "Notes" => 0, "Statistics" => 0, "Read PM" => 0, "Database" => 0, "Announcements" => 0, "Torrents" => 0, "Add-ons" => 0, "TSUE Store" => 0, "Recent Comments" => 0, "Torrent Genres" => 0, "Advertisements" => 0, "Shoutbox Channels" => 0, "Plugin Manager" => 0, "Forum Manager" => 0, "Appearance" => 0, "All Members" => 0, "Awaiting Approval" => 0, "Banned Members" => 0, "Warned Members" => 0, "Membergroups" => 0, "Email Members" => 0, "Search Members" => 0, "Peers" => 0, "Account Upgrades" => 0, "Muted Members" => 0, "PM Members" => 0, "Promotions" => 0, "Duplicate Ips" => 0, "Hit and Runners" => 0, "Test Permissions" => 0, "Administrators" => 0, "Gift" => 0, "Mass Invite" => 0, "Awards" => 0, "Auto Warned Members" => 0, "Uploader Activity" => 0, "First Line Support" => 0, "Spam Cleaner" => 0, "Prune" => 0, "Smilies" => 0, "Country Flags" => 0, "Attachment Browser" => 0, "Downloads" => 0, "Permissions" => 0, "Cleanup" => 0 );
}
function managegift()
{
global $TSUE;
$formErrors = "";
$Gift = array( "membernames" => "", "membergroups" => array( ), "gift_amount" => "", "gift_type" => "", "send_pm" => "" );
if( ispost() )
{
$Gift = array_merge($Gift, $_POST["Gift"]);
$Gift["gift_amount"] = 0 + $Gift["gift_amount"];
$Gift["gift_type"] = (in_array($Gift["gift_type"], array( "gift_upload", "gift_invite", "gift_point" )) ? $Gift["gift_type"] : "");
$Gift["send_pm"] = 0 + $Gift["send_pm"];
if( !$Gift["membernames"] && !$Gift["membergroups"] || !$Gift["gift_amount"] || !$Gift["gift_type"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
if( $Gift["membernames"] )
{
$membernames = tsue_explode("-", trim($Gift["membernames"]));
foreach( $membernames as $membername )
{
if( !is_valid_string($membername) )
{
$formErrors[] = "(" . html_clean($membername) . ") " . get_phrase("invalid_membername");
}
}
if( !$formErrors && $membernames )
{
foreach( $membernames as $membername )
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername=" . $TSUE["TSUE_Database"]->escape($membername) . " LIMIT 1");
if( !$checkMember )
{
$formErrors[] = "(" . html_clean($membername) . ") " . get_phrase("member_not_found");
}
}
if( !$formErrors )
{
$WHERE = "membername IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $membernames)) . ")";
}
}
}
else
{
if( $Gift["membergroups"] )
{
foreach( $Gift["membergroups"] as $membergroup )
{
$membergroup = intval($membergroup);
if( !is_int($membergroup) )
{
$formErrors[] = "(" . html_clean($membergroup) . ") " . get_phrase("invalid_membergroup");
}
}
if( !$formErrors )
{
foreach( $Gift["membergroups"] as $membergroup )
{
$checkGroup = $TSUE["TSUE_Database"]->query_result("SELECT groupname FROM tsue_membergroups WHERE membergroupid=" . $TSUE["TSUE_Database"]->escape($membergroup) . " LIMIT 1");
if( !$checkGroup )
{
$formErrors[] = "(" . html_clean($membergroup) . ") " . get_phrase("invalid_membergroup");
}
}
if( !$formErrors )
{
$WHERE = "membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $Gift["membergroups"])) . ")";
}
}
}
}
}
}
if( $formErrors )
{
$formErrors = errormessage(implode("<br />", $formErrors));
}
else
{
if( isset($WHERE) && ispost() )
{
$getMembers = $TSUE["TSUE_Database"]->query("SELECT memberid, membername FROM tsue_members WHERE " . $WHERE);
if( !$TSUE["TSUE_Database"]->num_rows($getMembers) )
{
return errormessage(get_phrase("message_nothing_found"));
}
$Members = $aaaamh = array( );
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($getMembers) )
{
$Members[] = $Member["memberid"];
$aaaamh[] = $Member["membername"];
}
switch( $Gift["gift_type"] )
{
case "gift_upload":
$aaaami = array( "uploaded" => array( "escape" => 0, "value" => "uploaded + " . $Gift["gift_amount"] ) );
break;
case "gift_invite":
$aaaami = array( "invites_left" => array( "escape" => 0, "value" => "invites_left + " . $Gift["gift_amount"] ) );
break;
case "gift_point":
$aaaami = array( "points" => array( "escape" => 0, "value" => "points + " . $Gift["gift_amount"] ) );
}
if( isset($aaaami) )
{
$TSUE["TSUE_Database"]->update("tsue_member_profile", $aaaami, "memberid IN (" . implode(",", $Members) . ")");
}
$aaaamj = ($Gift["gift_type"] == "gift_upload" ? friendly_size($Gift["gift_amount"]) : $Gift["gift_amount"]);
$aaaamk = get_phrase($Gift["gift_type"]);
$Phrase = get_phrase("gift_sent", $aaaamj, $aaaamk, implode("-", array_map("html_clean", $aaaamh)));
if( $Gift["send_pm"] )
{
$count = 0;
foreach( $Members as $Memberid )
{
$Membername = $aaaamh[$count];
$reply = get_phrase("gift_message", $Membername, $aaaamj, $aaaamk, getmembername($TSUE["TSUE_Member"]["membername"], $TSUE["TSUE_Member"]["groupstyle"]));
sendpm(get_phrase("gift"), $TSUE["TSUE_Member"]["memberid"], $Memberid, nl2br($reply));
$count++;
}
}
logadminaction($Phrase);
return successmessage($Phrase);
}
}
$inputBox = inputbox("Gift[membernames]", $Gift["membernames"], "text", get_phrase("gift_membernames_hint"));
$tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_membernames") ), array( "width" => "80%", "text" => $inputBox ) ));
$inputBox = aaaaaw("Gift[membergroups][]", $Gift["membergroups"], 2);
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("member_manager_membergroups"), "extra" => " style=\"vertical-align: top;\"" ), array( "width" => "80%", "text" => $inputBox ) ));
$inputBox = inputbox("Gift[gift_amount]", $Gift["gift_amount"], "text texttiny", "", false, false, getimage("buttons/calculator.png", get_phrase("calculator"), "calculator"));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_amount") ), array( "width" => "80%", "text" => $inputBox ) ));
$aaaaao = array( "gift_upload" => get_phrase("gift_upload"), "gift_invite" => get_phrase("gift_invite"), "gift_point" => get_phrase("gift_point") );
$selectBox = selectbox("Gift[gift_type]", $Gift["gift_type"], $aaaaao, "select smallSelect");
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_type") ), array( "width" => "80%", "text" => $selectBox ) ));
$aaaaao = array( get_phrase("option_no"), get_phrase("option_yes") );
$selectBox = selectbox("Gift[send_pm]", $Gift["send_pm"], $aaaaao, "select smallSelect");
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_send_message") ), array( "width" => "80%", "text" => $selectBox . " <span class=\"smallPassiveText\">" . get_phrase("send_message_alt") . "</span>" ) ));
$inputBox = aaaabm(get_phrase("gift_alt"), get_phrase("button_reset"));
$tableContents .= aaaaag(array( array( "width" => "20%" ), array( "width" => "80%", "text" => $inputBox ) ));
return $formErrors . aaaabn(createtable(get_phrase("gift_alt"), $tableContents, 2));
}
function managemassinvite()
{
global $TSUE;
$formErrors = "";
$Amount = 5;
if( ispost() )
{
$Amount = intval(getvar("Amount"));
if( !$Amount )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
$aaaaml = array( );
for( $i = 0; $i < $Amount; $i++ )
{
$aaaaml[$i] = generate_random_string(32);
$BuildQuery = array( "hash" => $aaaaml[$i], "sender_memberid" => $TSUE["TSUE_Member"]["memberid"], "send_date" => TIMENOW, "email" => "", "name" => "", "status" => "pending" );
$TSUE["TSUE_Database"]->insert("tsue_invites", $BuildQuery);
if( !$TSUE["TSUE_Database"]->affected_rows() )
{
unset($aaaaml[$i]);
$i -= 1;
}
}
$Phrase = get_phrase("total_x_invites_has_been_generated", count($aaaaml));
logadminaction($Phrase);
$HTML = $Phrase . "<hr />";
foreach( $aaaaml as $count => $hash )
{
$HTML .= "<div style=\"padding: 5px 0;\">" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/?p=signup&pid=16&hash=" . $hash . "</div>";
}
return $HTML;
}
}
if( $formErrors )
{
$formErrors = errormessage(implode("<br />", $formErrors));
}
$inputBox = inputbox("Amount", $Amount, "text texttiny");
$tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("market_item_amount") ), array( "width" => "80%", "text" => $inputBox ) ));
$inputBox = aaaabm(get_phrase("mass_invite_alt"), get_phrase("button_reset"));
$tableContents .= aaaaag(array( array( "width" => "20%" ), array( "width" => "80%", "text" => $inputBox ) ));
return $formErrors . aaaabn(createtable(get_phrase("mass_invite"), $tableContents, 2));
}
function manageawards()
{
global $TSUE;
$defaultTheme = aaaaff();
$aaaamm = ROOTPATH . "styles/" . $defaultTheme . "/awards/";
$HTML = "";
$aaaamn = aaaaae(array( "new=1" => array( "phrase" => get_phrase("awards_create_new") ) ));
$aaaamo = aaaaae(array( "awarded_members=1" => array( "phrase" => get_phrase("awards_awarded_members") ) ));
$aaaamp = aaaaae(array( "award_member=1" => array( "phrase" => get_phrase("awards_award_member") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$awarded_members = intval(getvar("awarded_members"));
$delete_member_award = intval(getvar("delete_member_award"));
$award_member = intval(getvar("award_member"));
if( $delete_member_award )
{
$Award = $TSUE["TSUE_Database"]->query_result("SELECT a.id, a.reason, a.date, aw.award_title, aw.award_image, m.memberid as awardedMemberid, m.membername as awardedMembername, g.groupstyle as awardedGroupstyle, mm.memberid as givenbyMemberid, mm.membername as givenbyMembername, gg.groupstyle as givenbyGroupstyle FROM tsue_awards_members a LEFT JOIN tsue_awards aw USING(award_id) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_members mm ON(a.givenby=mm.memberid) LEFT JOIN tsue_membergroups gg ON(mm.membergroupid=gg.membergroupid) WHERE a.id = " . $TSUE["TSUE_Database"]->escape($delete_member_award));
if( $Award )
{
$awardedMembername = getmembername($Award["awardedMembername"], $Award["awardedGroupstyle"]);
$aaaamq = getmembername($Award["givenbyMembername"], $Award["givenbyGroupstyle"]);
$TSUE["TSUE_Database"]->delete("tsue_awards_members", "id = " . $TSUE["TSUE_Database"]->escape($delete_member_award));
logadminaction(get_phrase("member_award_x_has_been_deleted", $awardedMembername, $Award["award_title"] . " (" . $delete_member_award . ")", $aaaamq));
handlerebuildcaches(false);
}
}
if( $awarded_members )
{
addbreadcrumb(array( get_phrase("awards_awarded_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&awarded_members=1" ));
$Count = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as Count FROM tsue_awards_members");
if( $Count && $Count["Count"] )
{
$Pagination = pagination($Count["Count"], "awarded_members=1");
$tableContents = "";
$Members = $TSUE["TSUE_Database"]->query("SELECT a.id, a.reason, a.date, aw.award_title, aw.award_image, m.memberid as awardedMemberid, m.membername as awardedMembername, g.groupstyle as awardedGroupstyle, mm.memberid as givenbyMemberid, mm.membername as givenbyMembername, gg.groupstyle as givenbyGroupstyle FROM tsue_awards_members a LEFT JOIN tsue_awards aw USING(award_id) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_members mm ON(a.givenby=mm.memberid) LEFT JOIN tsue_membergroups gg ON(mm.membergroupid=gg.membergroupid) ORDER BY a.date DESC " . $Pagination["0"]);
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$deleteLink = aaaaae(array( "awarded_members=1&delete_member_award=" . $Member["id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$awardedMembername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["awardedMemberid"] => array( "phrase" => getmembername($Member["awardedMembername"], $Member["awardedGroupstyle"]) ) ));
$aaaamq = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["givenbyMemberid"] => array( "phrase" => getmembername($Member["givenbyMembername"], $Member["givenbyGroupstyle"]) ) ));
$award_details = get_phrase("award_details", $aaaamq, strip_tags($Member["reason"]), convert_relative_time($Member["date"]));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Member["award_image"] . "\" alt=\"" . $Member["award_title"] . "\" title=\"" . $Member["award_title"] . "\" /> " . $awardedMembername . " - " . $Member["award_title"] . "<span class=\"smallPassiveText\">" . $award_details . "</span>" ), array( "width" => "15%", "text" => $deleteLink ) ));
}
return createtable(get_phrase("awards_awarded_members") . " (" . number_format($Count["Count"]) . ")", $tableContents, 2, $Pagination["1"]);
}
return errormessage(get_phrase("message_nothing_found"));
}
if( $edit || $new )
{
$Award = array( "award_title" => "", "award_image" => "" );
$aaaaam = "";
if( $edit )
{
$Award = $TSUE["TSUE_Database"]->query_result("SELECT award_title, award_image FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Award )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Award["award_title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("awards_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Award"]) )
{
$Award = $_POST["Award"];
if( !isset($Award["award_image"]) )
{
$Award["award_image"] = "";
}
if( !$Award["award_title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$Award["award_image"] || !file_exists($aaaamm . $Award["award_image"]) )
{
$formErrors[] = get_phrase("please_select_a_valid_image");
}
if( !isset($formErrors) )
{
$buildQuery = array( "award_title" => $Award["award_title"], "award_image" => $Award["award_image"] );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_awards", $buildQuery, "award_id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_awards", $buildQuery);
}
logadminaction(get_phrase("award_x_has_been_updated", $Award["award_title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Award[award_title]", $Award["award_title"]);
$formContents = aaaaan(get_phrase("award_title"), $inputbox);
$options = "
<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">
<tr>";
$Count = 0;
$aaaamr = scandir($aaaamm);
foreach( $aaaamr as $Image )
{
if( in_array(file_extension($Image), array( "png", "jpg", "gif", "jpeg" )) )
{
if( $Count % 20 == 0 )
{
$options .= "</tr><tr>";
}
$options .= "
<td>
<label style=\"margin: 5px;\">
<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Image . "\" alt=\"\" title=\"\" /> <input type=\"radio\" name=\"Award[award_image]\" value=\"" . $Image . "\"" . (($Award["award_image"] == $Image ? " checked=\"checked\"" : "")) . " />
</label>
</td>";
$Count++;
}
}
$options .= "
</tr>
</table>";
$formContents .= aaaaan(get_phrase("award_image"), $options, get_phrase("awards_image_path"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $delete )
{
$Award = $TSUE["TSUE_Database"]->query_result("SELECT award_title FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Award )
{
$TSUE["TSUE_Database"]->delete("tsue_awards", "award_id = " . $TSUE["TSUE_Database"]->escape($delete));
$TSUE["TSUE_Database"]->delete("tsue_awards_members", "award_id = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("award_x_has_been_deleted", $Award["award_title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
if( $award_member )
{
addbreadcrumb(array( get_phrase("awards_award_member") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&award_member=1" ));
$awardMember = array( "award_id" => "", "memberid" => "", "reason" => "", "givenby" => $TSUE["TSUE_Member"]["memberid"], "date" => TIMENOW );
$aaaams = "";
if( isset($_POST["awardMember"]) )
{
$awardMember = array_merge($awardMember, $_POST["awardMember"]);
if( !$awardMember["award_id"] )
{
$formErrors[] = get_phrase("awards_please_select_a_valid_award_type");
}
else
{
$checkAward = $TSUE["TSUE_Database"]->query_result("SELECT award_title, award_image FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($awardMember["award_id"]));
if( !$checkAward )
{
$formErrors[] = get_phrase("awards_please_select_a_valid_award_type");
}
}
if( !$awardMember["membername"] )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($awardMember["membername"]));
if( !$checkMember )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$awardMember["memberid"] = $checkMember["memberid"];
$aaaams = $awardMember["membername"];
unset($awardMember["membername"]);
}
}
if( !$awardMember["reason"] )
{
$formErrors[] = get_phrase("awards_please_enter_a_valid_award_reason");
}
if( !isset($formErrors) )
{
$TSUE["TSUE_Database"]->insert("tsue_awards_members", $awardMember);
$subject = get_phrase("you_got_a_new_award_subject");
$reply = get_phrase("you_got_a_new_award_message", $aaaams, getmembername($TSUE["TSUE_Member"]["membername"], $TSUE["TSUE_Member"]["groupstyle"]), "[img]" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $checkAward["award_image"] . "[/img] " . $checkAward["award_title"], strip_tags($awardMember["reason"]));
sendpm($subject, $TSUE["TSUE_Member"]["memberid"], $awardMember["memberid"], nl2br($reply));
logadminaction(get_phrase("awards_member_got_an_alert", $aaaams, $checkAward["award_title"], $TSUE["TSUE_Member"]["membername"], strip_tags($awardMember["reason"])));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$options = "
<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">
<tr>";
$Count = 0;
for( $Awards = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_awards ORDER BY award_title ASC"); $Award = $TSUE["TSUE_Database"]->fetch_assoc($Awards); $Count++ )
{
if( $Count % 20 == 0 )
{
$options .= "</tr><tr>";
}
$options .= "
<td>
<label style=\"margin: 5px;\">
<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Award["award_image"] . "\" alt=\"" . $Award["award_title"] . "\" title=\"" . $Award["award_title"] . "\" /> <input type=\"radio\" name=\"awardMember[award_id]\" value=\"" . $Award["award_id"] . "\"" . (($awardMember["award_id"] == $Award["award_id"] ? " checked=\"checked\"" : "")) . " />
</label>
</td>";
}
$options .= "
</tr>
</table>";
$formContents = aaaaan(get_phrase("awards_award_type"), $options);
$inputbox = inputbox("awardMember[membername]", (isset($awardMember["membername"]) ? $awardMember["membername"] : $aaaams), "text", NULL, false, true);
$formContents .= aaaaan(get_phrase("your_name"), $inputbox);
$inputbox = inputbox("awardMember[reason]", $awardMember["reason"]);
$formContents .= aaaaan(get_phrase("awards_award_reason"), $inputbox);
$HTML .= aaaabg($formContents);
return $HTML;
}
}
$Awards = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_awards ORDER BY award_title ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Awards) )
{
$tableContents = errormessage(get_phrase("message_nothing_found"));
}
else
{
$tableContents = "";
while( $Award = $TSUE["TSUE_Database"]->fetch_assoc($Awards) )
{
$EditLink = aaaaae(array( "edit=" . $Award["award_id"] => array( "phrase" => $Award["award_title"] ) ));
$DeleteLink = aaaaae(array( "delete=" . $Award["award_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Award["award_image"] . "\" alt=\"" . $Award["award_title"] . "\" title=\"" . $Award["award_title"] . "\" /> " . $EditLink . "<span class=\"smallPassiveText\"></span>" ), array( "width" => "15%", "align" => "right", "text" => $DeleteLink ) ));
}
}
$HTML .= createtable(get_phrase("awards_alt"), $tableContents, 2, $aaaamn . " - " . $aaaamo . " - " . $aaaamp);
return $HTML;
}
function manageautowarnedmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$lift = intval(getvar("lift"));
if( $lift )
{
$warnedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername FROM tsue_auto_warning w LEFT JOIN tsue_members m USING(memberid) WHERE w.memberid=" . $TSUE["TSUE_Database"]->escape($lift));
if( !$warnedMember )
{
return errormessage(get_phrase("member_not_found"));
}
$TSUE["TSUE_Database"]->delete("tsue_auto_warning", "memberid=" . $TSUE["TSUE_Database"]->escape($lift));
logadminaction(get_phrase("warned_auto_warn_has_been_lifted", $warnedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
$warnedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as warnedMembersCount FROM tsue_auto_warning");
if( !$warnedMembersCount["warnedMembersCount"] )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("warned_no_warned_members") ) ));
return createtable(get_phrase("member_manager_auto_warned_members_alt"), $tableContents);
}
$Pagination = pagination($warnedMembersCount["warnedMembersCount"]);
$warnedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, p.downloaded, p.uploaded FROM tsue_auto_warning b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_member_profile p USING(memberid) " . $Pagination["0"]);
while( $warnedMember = $TSUE["TSUE_Database"]->fetch_assoc($warnedMembers) )
{
$aaaakj = aaaaae(array( "lift=" . $warnedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("warned_lift_warn")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$ratioFixDate = get_phrase("will_be_banned_on", convert_time($warnedMember["warned"] + $TSUE["TSUE_Settings"]->settings["auto_warning"]["warn_length"] * 24 * 60 * 60));
$warn_date = get_phrase("warned_warn_started", convert_relative_time($warnedMember["warned"]));
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $warnedMember["memberid"] => array( "phrase" => $warnedMember["membername"] ) ));
$ratio = get_phrase("stats_ratio") . ": " . member_ratio($warnedMember["uploaded"], $warnedMember["downloaded"]);
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $warn_date . " -- " . $ratio . " -- " . $ratioFixDate . "</span>" ), array( "width" => "10%", "text" => $aaaakj ) ));
}
$HTML .= createtable(get_phrase("member_manager_auto_warned_members_alt"), $tableContents, 2, $Pagination["1"]);
return $HTML;
}
function manageuploaderactivity()
{
global $TSUE;
$uGroups = getvar("membergroups", array( ), false);
if( $uGroups )
{
$aaaamt = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $uGroups));
$Uploaders = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.joindate, m.lastactivity, m.gender, p.uploaded, p.downloaded, p.points, g.groupname, g.groupstyle, COUNT(t.tid) as totalTorrents, SUM(t.leechers) AS totalLeechers, SUM(t.seeders) AS totalSeeders, MAX(t.added) as lastUpload, COUNT(peer.active) as activeSeeds FROM tsue_members m LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_torrents t ON(m.memberid=t.owner) LEFT JOIN " . ((getsetting("xbt", "active") ? "xbt_files_users peer ON (peer.uid=m.memberid && peer.active=1 && peer.left = 0)" : "tsue_torrents_peers peer ON (peer.memberid=m.memberid && peer.active=0 && peer.left=0)")) . " WHERE g.membergroupid IN (0," . $aaaamt . ") GROUP BY m.memberid ORDER BY lastUpload ASC");
if( !($aaaamu = $TSUE["TSUE_Database"]->num_rows($Uploaders)) )
{
return errormessage(get_phrase("message_nothing_found"));
}
$List = "
<div class=\"success\">" . get_phrase("total_x_ul_found", number_format($aaaamu)) . "</div>";
while( $Uploader = $TSUE["TSUE_Database"]->fetch_assoc($Uploaders) )
{
$lastUpload = get_phrase("last_upload", ($Uploader["lastUpload"] ? convert_relative_time($Uploader["lastUpload"]) : "--"));
if( !$Uploader["lastUpload"] || $Uploader["lastUpload"] < TIMENOW - 15 * 24 * 60 * 60 )
{
$lastUpload = "<span style=\"color: red;\">" . $lastUpload . "</span>";
}
$Avatar = get_member_avatar($Uploader["memberid"], $Uploader["gender"]);
$Membername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Uploader["memberid"] => array( "phrase" => $Uploader["membername"], "class" => "standartAClass" ) ));
$List .= "
<div style=\"float: left; margin: 5px; padding: 5px; position: relative; width: 390px; border: 1px solid #ddd;\">
<div style=\"float: left;\">
<img src=\"" . $Avatar . "\" alt=\"\" />
<div style=\"padding-top: 5px; text-align: center;\">" . aaaaaf("?p=profile&pid=18&memberid=" . $Uploader["memberid"], getimage("buttons/examine.png", get_phrase("memberinfo_title", $Uploader["membername"]))) . "</div>
</div>
<div style=\"float: left; margin-left: 5px; font-size: 11px; font-family:Tahoma, Geneva, sans-serif;\">
" . $Membername . " (" . getmembername($Uploader["groupname"], $Uploader["groupstyle"]) . ")<br />
" . get_phrase("memberinfo_membersince", convert_relative_time($Uploader["joindate"])) . "<br />
" . get_phrase("memberinfo_lastactivity", convert_relative_time($Uploader["lastactivity"])) . "<br />
" . $lastUpload . "<br />
<b>" . get_phrase("stats_uploaded") . ":</b> " . friendly_size($Uploader["uploaded"]) . "<br />
<b>" . get_phrase("stats_downloaded") . ":</b> " . friendly_size($Uploader["downloaded"]) . "<br />
" . get_phrase("uploaded_torrents", number_format($Uploader["totalTorrents"])) . "<br />
" . get_phrase("active_seeds", number_format($Uploader["activeSeeds"])) . "<br />
" . get_phrase("total_peers_on_up_torrents", number_format($Uploader["totalLeechers"] + $Uploader["totalSeeders"]), number_format($Uploader["totalSeeders"]), number_format($Uploader["totalLeechers"])) . "
</div>
</div>";
}
$List .= "
<div style=\"clear: both;\"></div>";
return $List;
}
$Membergroups = aaaaaw("membergroups[]", $uGroups);
$formContents = aaaaan(get_phrase("select_mg_to_view_ua"), $Membergroups);
return aaaabg($formContents);
}
function managefirstlinesupport()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$new = intval(getvar("new"));
$edit = intval(getvar("edit"));
$delete = intval(getvar("delete"));
$enable_disable = intval(getvar("enable_disable"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$FLS = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $FLS )
{
$TSUE["TSUE_Database"]->update("tsue_first_line_support", $BuildQuery, "sid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
$Phrase = get_phrase("fls_x_has_been_updated", $FLS["title"] . " (" . $enable_disable . ")");
logadminaction($Phrase);
$HTML .= successmessage($Phrase);
handlerebuildcaches(false);
}
}
if( $delete )
{
$FLS = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $FLS )
{
$TSUE["TSUE_Database"]->delete("tsue_first_line_support", "sid = " . $TSUE["TSUE_Database"]->escape($delete));
$Phrase = get_phrase("fls_x_has_been_deleted", $FLS["title"] . " (" . $delete . ")");
logadminaction($Phrase);
$HTML .= successmessage($Phrase);
handlerebuildcaches(false);
}
}
if( $edit || $new )
{
$FLS = array( "title" => "", "description" => "", "members" => "", "active" => 1 );
$aaaaam = "";
if( $edit )
{
$FLS = $TSUE["TSUE_Database"]->query_result("SELECT title,description,members,active FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$FLS )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
if( $FLS["members"] && substr($FLS["members"], -2) != ", " )
{
$FLS["members"] = $FLS["members"] . ", ";
}
addbreadcrumb(array( get_phrase("button_edit") . ": " . $FLS["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_fls_team") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["FLS"]) )
{
$FLS = $_POST["FLS"];
if( !$FLS["title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$FLS["description"] )
{
$formErrors[] = get_phrase("valid_description_required");
}
if( !$FLS["members"] )
{
$formErrors[] = get_phrase("fls_invalid_members");
}
else
{
$aaaamv = array( );
$aaaamw = tsue_explode(",", trim(preg_replace("/\s+/", "", $FLS["members"])));
if( $aaaamw )
{
foreach( $aaaamw as $member )
{
$member = trim($member);
if( !in_array($member, $aaaamv) && $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($member)) )
{
$aaaamv[] = $member;
}
}
}
if( !$aaaamv )
{
$formErrors[] = get_phrase("fls_invalid_members");
}
else
{
$FLS["members"] = implode(", ", $aaaamv);
}
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $FLS["title"], "description" => $FLS["description"], "members" => $FLS["members"], "active" => $FLS["active"] );
if( $edit )
{
$Phrase = get_phrase("fls_x_has_been_updated", $FLS["title"] . " (" . $edit . ")");
$TSUE["TSUE_Database"]->update("tsue_first_line_support", $buildQuery, "sid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$Phrase = get_phrase("fls_x_has_been_created", $FLS["title"]);
$TSUE["TSUE_Database"]->insert("tsue_first_line_support", $buildQuery);
}
logadminaction($Phrase);
$HTML .= successmessage($Phrase);
$updateDone = true;
handlerebuildcaches(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("FLS[active]", $FLS["active"]);
$formContents = aaaaan(get_phrase("fls_active"), $radioButtons);
$inputbox = inputbox("FLS[title]", $FLS["title"]);
$formContents .= aaaaan(get_phrase("fls_title"), $inputbox);
$textarea = textarea("FLS[description]", $FLS["description"], true);
$formContents .= aaaaan(get_phrase("fls_description"), $textarea);
$inputbox = inputbox("FLS[members]", $FLS["members"], "text", "", false, true, "", "autoCompleteMultiple");
$formContents .= aaaaan(get_phrase("fls_members"), $inputbox, get_phrase("fls_members_alt"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$FLS = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_first_line_support ORDER BY active DESC, title ASC");
if( $TSUE["TSUE_Database"]->num_rows($FLS) )
{
while( $Team = $TSUE["TSUE_Database"]->fetch_assoc($FLS) )
{
$linkClass = (!$Team["active"] ? "linkDisabled" : "");
$aaaamx = aaaaae(array( "delete=" . $Team["sid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaamy = aaaaae(array( "edit=" . $Team["sid"] => array( "phrase" => $Team["title"], "class" => $linkClass ) ));
if( $Team["active"] )
{
$aaaamz = aaaaae(array( "enable_disable=" . $Team["sid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaamz = aaaaae(array( "enable_disable=" . $Team["sid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaamy . "<span class=\"smallPassiveText\">" . strip_tags($Team["description"]) . "</span>" ), array( "width" => "20%", "text" => $aaaamz . $aaaamx, "align" => "right" ) ));
}
}
else
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_fls_team_yet"), "colspan" => "2" ) ));
}
$aaaana = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" => array( "phrase" => get_phrase("create_fls_team") ) ));
$HTML .= aaaabn(createtable(get_phrase("first_line_support_alt"), $tableContents, 2, $aaaana));
return $HTML;
}
function managespamcleaner()
{
global $TSUE;
$HTML = "";
$spam_membername = trim(getvar("spam_membername"));
if( $spam_membername && ispost() )
{
$aaaamv = array( );
$aaaamw = tsue_explode(",", trim(preg_replace("/\s+/", "", $spam_membername)));
if( $aaaamw )
{
foreach( $aaaamw as $member )
{
$member = trim($member);
if( !isset($aaaamv[$member]) && ($checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($member))) )
{
$aaaamv[$member] = 0 + $checkMember["memberid"];
}
}
}
if( !$aaaamv )
{
return errormessage(get_phrase("please_enter_at_least_one_valid_member"));
}
$membernames = array( );
$memberids = array( );
foreach( $aaaamv as $membername => $memberid )
{
$membernames[] = $membername;
$memberids[] = $memberid;
}
$memberids = implode(", ", $memberids);
$affectedRows = 0;
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_announcements", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_comments", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_messages_master", "owner_memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_messages_replies", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_reports", "reported_by_memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_reports_comments", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_requests", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_shoutbox", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_staff_messages", "memberid IN (" . $memberids . ")");
$Posts = $TSUE["TSUE_Database"]->query("SELECT p.postid,p.threadid,p.memberid, t.memberid as threadOwner, f.forumid FROM tsue_forums_posts p LEFT JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_forums f ON (t.forumid=f.forumid) WHERE p.memberid IN (" . $memberids . ")");
if( $TSUE["TSUE_Database"]->num_rows($Posts) )
{
while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) )
{
deletepost($Post["postid"], $Post["memberid"]);
$threadHasStillPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE p.threadid = " . $TSUE["TSUE_Database"]->escape($Post["threadid"]) . " ORDER BY p.post_date DESC");
if( !$threadHasStillPosts )
{
deletethread($Post["threadid"], $Post["forumid"], $Post["threadOwner"]);
}
else
{
$findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($Post["forumid"]) . " ORDER BY p.post_date DESC");
$last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] ));
$BuildQuery = array( "replycount" => array( "escape" => 0, "value" => "IF(replycount > 0, replycount - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_threadid" => ($findLastPosts["threadid"] ? $findLastPosts["threadid"] : 0) );
$TSUE["TSUE_Database"]->update("tsue_forums", $BuildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($Post["forumid"]));
$BuildQuery = array( "reply_count" => array( "escape" => 0, "value" => "IF(reply_count > 0, reply_count - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_date" => $findLastPosts["post_date"] );
$TSUE["TSUE_Database"]->update("tsue_forums_threads", $BuildQuery, "threadid = " . $TSUE["TSUE_Database"]->escape($Post["threadid"]));
}
}
}
$Threads = $TSUE["TSUE_Database"]->query("SELECT threadid,forumid,memberid FROM tsue_forums_threads WHERE memberid IN (" . $memberids . ")");
if( $TSUE["TSUE_Database"]->num_rows($Threads) )
{
while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
{
$posts = $TSUE["TSUE_Database"]->query("SELECT postid, memberid FROM tsue_forums_posts WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
if( $TSUE["TSUE_Database"]->num_rows($posts) )
{
while( $post = $TSUE["TSUE_Database"]->fetch_assoc($posts) )
{
deletepost($post["postid"], $post["memberid"]);
}
}
deletethread($Thread["threadid"], $Thread["forumid"], $Thread["memberid"]);
}
}
$Phrase = get_phrase("spam_content_cleaned_for_x", implode(", ", $membernames));
logadminaction($Phrase);
$HTML .= successmessage($Phrase . " | <a href=\"?action=Forum Manager&do=Rebuild Counters\">" . get_phrase("rebuild_counters_alt") . "</a>");
handleprune(false);
handlerebuildcaches(false);
}
$inputbox = inputbox("spam_membername", $spam_membername, "text", "", false, true, "", "autoCompleteMultiple");
$formContents = aaaaan(get_phrase("spam_membername"), $inputbox, get_phrase("spam_membername_alt"));
$HTML .= aaaabg($formContents, "", "", "spam_cleaner_alt");
return $HTML;
}
function deletepost($postid, $memberid)
{
global $TSUE;
if( !$TSUE["TSUE_Database"]->delete("tsue_forums_posts", "postid = " . $TSUE["TSUE_Database"]->escape($postid)) )
{
return NULL;
}
updatememberpoints($TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_replies"], $memberid, false);
profileupdate($memberid, array( "total_posts" => array( "escape" => 0, "value" => "IF(total_posts > 0, total_posts-1, 0)" ) ));
$Attachments = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = 'posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid));
if( $TSUE["TSUE_Database"]->num_rows($Attachments) )
{
while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) )
{
$filename = DATAPATH . "posts/" . $Attachment["filename"];
if( is_file($filename) )
{
@unlink($filename);
}
}
$TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type = 'posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid));
}
$TSUE["TSUE_Database"]->delete("tsue_liked_content", "content_type = 'thread_posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid));
}
function deletethread($threadid, $forumid, $threadOwner = 0)
{
global $TSUE;
$TSUE["TSUE_Database"]->delete("tsue_forums_threads", "threadid = " . $TSUE["TSUE_Database"]->escape($threadid));
$TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "threadid = " . $TSUE["TSUE_Database"]->escape($threadid));
$TSUE["TSUE_Database"]->delete("tsue_poll", "threadid=" . $TSUE["TSUE_Database"]->escape($threadid) . " AND createdinThread = 1");
$TSUE["TSUE_Database"]->update("tsue_poll", array( "threadid" => 0 ), "threadid=" . $TSUE["TSUE_Database"]->escape($threadid));
updatememberpoints($TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_thread"], $threadOwner, false);
$last_post_info = "";
$findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($forumid) . " ORDER BY p.post_date DESC");
if( $findLastPosts )
{
$last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] ));
}
$BuildQuery = array( "replycount" => array( "escape" => 0, "value" => "IF(replycount > 0, replycount - 1, 0)" ), "threadcount" => array( "escape" => 0, "value" => "IF(threadcount > 0, threadcount - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_threadid" => ($findLastPosts["threadid"] ? $findLastPosts["threadid"] : 0) );
$TSUE["TSUE_Database"]->update("tsue_forums", $BuildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
}
function handleprune($return = true)
{
global $TSUE;
checkdemomode();
$TSUE["TSUE_Database"]->truncate("tsue_file_caches");
$cacheFolder = DATAPATH . "cache/";
if( !is_dir($cacheFolder) || !is_writable($cacheFolder) )
{
return errormessage(get_phrase("file_manager_prune_no_cache_folder"));
}
$cacheFiles = scandir($cacheFolder);
if( count($cacheFiles) <= 2 )
{
return false;
}
foreach( $cacheFiles as $cacheFile )
{
$_ext = file_extension($cacheFile);
if( in_array($_ext, array( "tsue", "gz", "js", "gif", "jpg", "png", "jpeg", "zip", "srv" )) )
{
@unlink($cacheFolder . $cacheFile);
}
}
if( $return )
{
$HTML = get_phrase("file_manager_prune_cache_pruned");
logadminaction($HTML);
return successmessage($HTML);
}
}
function handlesmilies()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaanb = DATAPATH . "smilies/";
$aaaanc = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/smilies/";
$allowedFiles = array( "gif", "jpg", "png" );
if( !is_dir($aaaanb) || !is_writable($aaaanb) )
{
return errormessage(get_phrase("file_manager_smilies_no_smilies_folder"));
}
$cacheFiles = array( );
foreach( $TSUE["TSUE_Settings"]->settings["dialog_smilies_cache"] as $Smilie )
{
$cacheFiles[] = $Smilie["smilie_file"];
}
$aaaand = array( );
$scanFiles = scandir($aaaanb);
foreach( $scanFiles as $sFile )
{
$fEXT = file_extension($sFile);
if( in_array($fEXT, $allowedFiles) && !in_array($sFile, $cacheFiles) )
{
$title = $text = str_replace("." . $fEXT, "", $sFile);
$text = ":" . $text . ":";
$aaaand[] = $sFile;
$buildQuery = array( "smilie_title" => $title, "smilie_text" => $text, "smilie_file" => $sFile );
$TSUE["TSUE_Database"]->insert("tsue_smilies", $buildQuery);
}
}
if( $aaaand )
{
handlerebuildcaches(false);
handleprune(false);
}
$upload = intval(getvar("upload"));
$edit = intval(getvar("edit"));
if( $upload || $edit )
{
checkdemomode();
$Smilie = array( "smilie_title" => "", "smilie_text" => "" );
if( $edit )
{
$Smilie = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_smilies WHERE smilie_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Smilie )
{
return errormessage(get_phrase("message_not_found"));
}
$aaaane = $Smilie["smilie_text"];
$aaaanf = $Smilie["smilie_file"];
}
if( ispost() )
{
$Smilie = $_POST["Smilie"];
$aaaang = $_FILES["smilie_file"];
$aaaang["name"] = safe_names($aaaang["name"]);
if( $aaaang["name"] || !$edit )
{
if( !$aaaang["size"] || $aaaang["error"] )
{
$formErrors[] = get_phrase("upload_error3");
}
else
{
if( !in_array(file_extension($aaaang["name"]), $allowedFiles) )
{
$formErrors[] = get_phrase("upload_error6", implode(",", $allowedFiles));
}
else
{
if( is_file($aaaanb . $aaaang["name"]) )
{
$formErrors[] = get_phrase("upload_error7");
}
else
{
if( !move_uploaded_file($aaaang["tmp_name"], $aaaanb . $aaaang["name"]) )
{
$formErrors[] = get_phrase("upload_error8");
}
else
{
$aaaanh = true;
}
}
}
}
}
if( $edit && !isset($aaaanh) )
{
$aaaang["name"] = $aaaanf;
}
if( !$Smilie["smilie_title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$Smilie["smilie_text"] )
{
$formErrors[] = get_phrase("please_enter_valid_smilie_text");
}
else
{
$checkText = $TSUE["TSUE_Database"]->query_result("SELECT smilie_title FROM tsue_smilies WHERE smilie_text = " . $TSUE["TSUE_Database"]->escape($Smilie["smilie_text"]));
if( $checkText && ($edit && $aaaane != $Smilie["smilie_text"] || !$edit) )
{
$formErrors[] = get_phrase("smilie_text_to_replace_must_be_unique", html_clean($Smilie["smilie_text"]));
}
}
if( isset($formErrors) )
{
if( is_file($aaaanb . $aaaang["name"]) )
{
unlink($aaaanb . $aaaang["name"]);
}
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$buildQuery = array( "smilie_title" => $Smilie["smilie_title"], "smilie_text" => $Smilie["smilie_text"], "smilie_file" => $aaaang["name"] );
if( $edit )
{
if( isset($aaaanh) )
{
unlink($aaaanb . $aaaanf);
}
$TSUE["TSUE_Database"]->update("tsue_smilies", $buildQuery, "smilie_id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_smilies", $buildQuery);
}
$HTML .= successmessage(get_phrase("file_manager_smilies_uploaded", $aaaang["name"]));
logadminaction(get_phrase("file_manager_smilies_uploaded", $aaaang["name"]));
handlerebuildcaches(false);
$uploadDone = true;
}
}
if( !isset($uploadDone) )
{
if( $edit && is_file($aaaanb . $Smilie["smilie_file"]) )
{
addbreadcrumb(array( get_phrase("button_edit") . " <img src=\"" . $aaaanc . $Smilie["smilie_file"] . "\" alt=\"\" title=\"\" border=\"0\" style=\"vertical-align: middle; border: 0;\" />" => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
if( $upload )
{
addbreadcrumb(array( get_phrase("file_manager_smilies_upload") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&upload=1" ));
}
}
$inputbox = inputbox("Smilie[smilie_title]", $Smilie["smilie_title"]);
$formContents = aaaaan(get_phrase("smilie_title"), $inputbox);
$inputbox = inputbox("Smilie[smilie_text]", $Smilie["smilie_text"]);
$formContents .= aaaaan(get_phrase("smilie_text_to_replace"), $inputbox, get_phrase("smilie_text_to_replace_hint"));
$aaaacr = aaaacs("smilie_file");
$formContents .= aaaaan(get_phrase("file_manager_smilies_select_smilie_to_upload"), $aaaacr);
$HTML .= aaaabg($formContents);
return $HTML;
}
}
if( !$tableContents )
{
$delete = intval(getvar("delete"));
if( $delete )
{
checkdemomode();
$Smilie = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_smilies WHERE smilie_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Smilie )
{
if( is_file($aaaanb . $Smilie["smilie_file"]) )
{
@unlink($aaaanb . $Smilie["smilie_file"]);
}
$TSUE["TSUE_Database"]->delete("tsue_smilies", "smilie_id = " . $TSUE["TSUE_Database"]->escape($delete));
$HTML = successmessage(get_phrase("file_manager_smilies_deleted", $Smilie["smilie_title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
logadminaction(get_phrase("file_manager_smilies_deleted", $Smilie["smilie_title"] . " (" . $delete . ")"));
}
else
{
$HTML .= errormessage(get_phrase("message_content_error"));
}
}
$Smilies = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_smilies ORDER BY smilie_title");
if( !$TSUE["TSUE_Database"]->num_rows($Smilies) )
{
return errormessage(get_phrase("message_nothing_found"));
}
while( $Smilie = $TSUE["TSUE_Database"]->fetch_assoc($Smilies) )
{
if( in_array(file_extension($Smilie["smilie_file"]), $allowedFiles) )
{
$aaaani = aaaaae(array( "delete=" . $Smilie["smilie_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaanj = aaaaae(array( "edit=" . $Smilie["smilie_id"] => array( "phrase" => getimage("buttons/options.png", get_phrase("button_edit")) ) ));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $aaaanc . $Smilie["smilie_file"] . "\" alt=\"\" title=\"\" border=\"0\" /> <span class=\"smallPassiveText\">" . $Smilie["smilie_title"] . " <b>" . $Smilie["smilie_text"] . "</b> " . $Smilie["smilie_file"] . "</span>" ), array( "width" => "15%", "align" => "center", "text" => $aaaanj . " " . $aaaani ) ));
}
}
}
$aaaank = aaaaae(array( "upload=1" => array( "phrase" => get_phrase("file_manager_smilies_upload") ) ));
$HTML .= createtable(get_phrase("file_manager_smilies_alt"), $tableContents, 2, $aaaank);
return $HTML;
}
function handlecountryflags()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaanl = DATAPATH . "countryFlags/";
$aaaanm = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/countryFlags/";
if( !is_dir($aaaanl) || !is_writable($aaaanl) )
{
return errormessage(get_phrase("file_manager_country_flags_no_flag_folder"));
}
$upload = intval(getvar("upload"));
if( $upload )
{
checkdemomode();
if( isset($_FILES["flag"]) )
{
$flag = $_FILES["flag"];
if( !$flag["size"] || $flag["error"] )
{
$formErrors[] = get_phrase("upload_error3");
}
if( !in_array(file_extension($flag["name"]), array( "gif", "jpg", "png", "jpeg" )) )
{
$formErrors[] = get_phrase("upload_error6", "gif, jpg, png");
}
if( is_file($aaaanl . $flag["name"]) )
{
$formErrors[] = get_phrase("upload_error7");
}
if( !isset($formErrors) && !move_uploaded_file($flag["tmp_name"], $aaaanl . $flag["name"]) )
{
$formErrors[] = get_phrase("upload_error8");
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$HTML .= successmessage(get_phrase("file_manager_country_flags_uploaded", $flag["name"]));
logadminaction(get_phrase("file_manager_country_flags_uploaded", $flag["name"]));
handlerebuildcaches(false);
handleprune(false);
$uploadDone = true;
}
}
if( !isset($uploadDone) )
{
$uploadForm = aaaabn(get_phrase("file_manager_country_flagss_select_flag_to_upload") . ": " . ((DEMO_MODE ? "--File upload is disabled in demo mode--" : "<input type=\"file\" name=\"flag\" />")) . " " . aaaabm(get_phrase("button_upload"), get_phrase("button_reset")));
$tableContents = aaaaag(array( array( "width" => "99%", "text" => $uploadForm ), array( "width" => "1%", "text" => NULL ) ));
}
}
if( !$tableContents )
{
$delete = trim(base64_decode(getvar("delete")));
if( $delete )
{
checkdemomode();
if( in_array(file_extension($delete), array( "gif", "jpg", "png", "jpeg" )) && is_file($aaaanl . $delete) )
{
@unlink($aaaanl . $delete);
$HTML = successmessage(get_phrase("file_manager_country_flags_deleted", $delete));
handlerebuildcaches(false);
handleprune(false);
logadminaction(get_phrase("file_manager_country_flags_deleted", $delete));
}
else
{
$HTML .= errormessage(get_phrase("message_content_error"));
}
}
$aaaann = array( );
$flags = scandir($aaaanl);
foreach( $flags as $flag )
{
if( in_array(file_extension($flag), array( "gif", "jpg", "png", "jpeg" )) )
{
$aaaano = aaaaae(array( "delete=" . base64_encode($flag) => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => "<img src=\"" . $aaaanm . $flag . "\" alt=\"\" title=\"\" border=\"0\" /> <span class=\"smallPassiveText\">" . $flag . " -- " . friendly_size(filesize($aaaanl . $flag)) . "</span>" ), array( "width" => "10%", "text" => $aaaano ) ));
}
}
}
$aaaanp = aaaaae(array( "upload=1" => array( "phrase" => get_phrase("file_manager_country_flags_upload") ) ));
$HTML .= createtable(get_phrase("file_manager_country_flags_alt"), $tableContents, 2, $aaaanp);
return $HTML;
}
function handleattachments()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$delete = intval(getvar("delete"));
$keywords = trim(getvar("keywords"));
$WHERE = "";
if( $delete )
{
$Attachment = $TSUE["TSUE_Database"]->query_result("SELECT filename FROM tsue_attachments WHERE content_type = 'posts' AND associated = 1 AND attachment_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Attachment )
{
checkdemomode();
$filename = DATAPATH . "posts/" . $Attachment["filename"];
if( is_file($filename) )
{
@unlink($filename);
}
$TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type = 'posts' AND associated = 1 AND attachment_id = " . $TSUE["TSUE_Database"]->escape($delete));
$phrase = get_phrase("attachment_has_been_deleted", $Attachment["filename"]);
$HTML .= successmessage($phrase);
handlerebuildcaches(false);
logadminaction($phrase);
}
}
$searchType = trim(getvar("searchType"));
if( !in_array($searchType, array( "membername", "filename" )) )
{
$searchType = "filename";
}
if( $keywords && $searchType )
{
switch( $searchType )
{
case "membername":
$WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords);
break;
case "filename":
$WHERE = " AND a.filename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
break;
}
}
$orderBy["fieldname"] = "a.upload_date";
$orderBy["type"] = "DESC";
if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
{
$allowedFieldNames = array( "m.membername", "a.filename", "a.upload_date", "a.view_count", "a.filesize" );
$allowedTypes = array( "DESC", "ASC" );
if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
{
$orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
$orderBy["type"] = $_REQUEST["orderBy"]["type"];
}
}
$Attachments = $TSUE["TSUE_Database"]->query("SELECT a.attachment_id, p.threadid, t.forumid, m.membername, g.groupstyle FROM tsue_attachments a LEFT JOIN tsue_forums_posts p ON(a.content_id=p.postid) LEFT JOIN tsue_forums_threads t ON(p.threadid=t.threadid) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE a.content_type = 'posts' AND a.associated = 1" . $WHERE);
$attachmentCount = $TSUE["TSUE_Database"]->num_rows($Attachments);
if( !$attachmentCount )
{
return errormessage(get_phrase("message_nothing_found"));
}
$Pagination = pagination($attachmentCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&orderBy[type]=" . $orderBy["type"] . (($keywords ? "&keywords=" . urlencode($keywords) . "&searchType=" . $searchType : "")));
$Attachments = $TSUE["TSUE_Database"]->query("SELECT a.*, p.threadid, t.forumid, m.membername, g.groupstyle FROM tsue_attachments a LEFT JOIN tsue_forums_posts p ON(a.content_id=p.postid) LEFT JOIN tsue_forums_threads t ON(p.threadid=t.threadid) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE a.content_type = 'posts' AND a.associated = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) )
{
$Attachment["filename"] = strip_tags($Attachment["filename"]);
$pageNumber = findpagenumber("SELECT 1 FROM tsue_forums_posts WHERE postid <= " . $TSUE["TSUE_Database"]->escape($Attachment["content_id"]) . " AND threadid = " . $TSUE["TSUE_Database"]->escape($Attachment["threadid"]), $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_posts_perpage"]);
$aaaanq = aaaaaf("?p=forums&pid=11&fid=" . $Attachment["forumid"] . "&tid=" . $Attachment["threadid"] . "&page=" . $pageNumber . "#show_post_" . $Attachment["content_id"], $Attachment["filename"]);
$membername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Attachment["memberid"] => array( "phrase" => getmembername($Attachment["membername"], $Attachment["groupstyle"]) ) ));
$upload_date = convert_relative_time($Attachment["upload_date"]);
$view_count = number_format($Attachment["view_count"]);
$filesize = friendly_size($Attachment["filesize"]);
$aaaanr = aaaaae(array( "delete=" . $Attachment["attachment_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => "
<div class=\"floatLeft\">" . file_icon($Attachment["filename"]) . "</div>
<div class=\"floatLeft\">
" . $aaaanq . "<br />
<span class=\"smallPassiveTextBlock\">" . $membername . ", " . $upload_date . " | " . $filesize . " | " . $view_count . " " . get_phrase("forums_attached_files_views") . "</span>
</div>" ), array( "width" => "15%", "text" => $aaaanr, "align" => "right" ) ));
}
$selectBox = "
<select name=\"searchType\" class=\"selectNoWidth\">
<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
<option value=\"filename\"" . (($searchType == "filename" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filename") . "</option>
</select>";
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
$HTML .= createtable(get_phrase("attachments"), $tableContents, 2, $Pagination["1"]);
$HTML .= "
<div style=\"float: right; margin-top: 10px;\">
" . aaaabn("
" . get_phrase("torrents_sort_by") . "
<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">
<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
<option value=\"a.filename\"" . (($orderBy["fieldname"] == "a.filename" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filename") . "</option>
<option value=\"a.upload_date\"" . (($orderBy["fieldname"] == "a.upload_date" ? " selected=\"selected\"" : "")) . ">" . get_phrase("table_list_date") . "</option>
<option value=\"a.view_count\"" . (($orderBy["fieldname"] == "a.view_count" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_views") . "</option>
<option value=\"a.filesize\"" . (($orderBy["fieldname"] == "a.filesize" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filesize") . "</option>
</select>
<select name=\"orderBy[type]\" class=\"selectNoWidth\">
<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>
<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>
</select>
<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "
</div>";
return $HTML;
}
function handledownloads()
{
global $TSUE;
$HTML = "";
$aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("torrent_categories_new_category") ) ));
$tableContents = "";
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $Cid => $Sort )
{
$Cid = intval($Cid);
$Sort = intval($Sort);
$TSUE["TSUE_Database"]->update("tsue_downloads_categories", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid));
}
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $delete )
{
$Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_downloads_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Category )
{
$TSUE["TSUE_Database"]->delete("tsue_downloads_categories", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
$Files = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_downloads WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->num_rows($Files) )
{
while( $File = $TSUE["TSUE_Database"]->fetch_assoc($Files) )
{
deletefile($File["filename"]);
}
}
$TSUE["TSUE_Database"]->delete("tsue_downloads", "cid=" . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("download_category_x_has_been_deleted", $Category["cname"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $edit || $new )
{
$Category = array( "cname" => "", "cdescription" => "", "sort" => 0, "cviewpermissions" => array( ), "cdownloadpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_downloads_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Category )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]);
$Category["cdownloadpermissions"] = tsue_explode(",", $Category["cdownloadpermissions"]);
}
if( isset($_POST["Category"]) )
{
$Category = $_POST["Category"];
if( !isset($Category["cviewpermissions"]) )
{
$Category["cviewpermissions"] = array( );
}
if( !isset($Category["cdownloadpermissions"]) )
{
$Category["cdownloadpermissions"] = array( );
}
if( !$Category["cname"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( !isset($formErrors) )
{
$buildQuery = array( "cname" => $Category["cname"], "cdescription" => $Category["cdescription"], "sort" => intval($Category["sort"]), "cviewpermissions" => implode(",", $Category["cviewpermissions"]), "cdownloadpermissions" => implode(",", $Category["cdownloadpermissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_downloads_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_downloads_categories", $buildQuery);
$edit = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("download_category_x_has_been_updated", $Category["cname"] . " (" . $edit . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf");
$formContents = aaaaan(get_phrase("torrent_categories_category_name"), $inputbox);
$inputbox = inputbox("Category[cdescription]", $Category["cdescription"], "text");
$formContents .= aaaaan(get_phrase("category_description"), $inputbox);
$inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
$aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe, "", "optionsInOverlay", "", checkallcheckbox("Category[cviewpermissions][]"));
$aaaabe = aaaaaw("Category[cdownloadpermissions][]", $Category["cdownloadpermissions"]);
$formContents .= aaaaan(get_phrase("global_download_permissions"), $aaaabe, "", "optionsInOverlay", "", checkallcheckbox("Category[cdownloadpermissions][]"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_downloads_categories ORDER BY `sort` ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Categories) )
{
$tableContents = errormessage(get_phrase("no_results_found"));
}
else
{
$tableContents = "";
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$tableContents .= aaaans($Category);
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
$HTML .= aaaabn(createtable(get_phrase("dm_title"), $tableContents, 3, $aaaacl));
return $HTML;
}
}
function deletefile($filename = "")
{
checkdemomode();
if( !$filename )
{
return false;
}
$filePath = DATAPATH . "downloads/files/" . $filename;
if( file_exists($filePath) )
{
@unlink($filePath);
}
}
function aaaans($Category)
{
global $TSUE;
$aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) ));
$aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents = aaaaag(array( array( "width" => "65%", "text" => $aaaacv . " <span class=\"smallPassiveText\">" . $Category["cdescription"] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) ));
return $tableContents;
}
function handlepermissions()
{
global $TSUE;
checkdemomode();
$HTML = "";
$tableContents = "";
clearstatcache();
foreach( aaaant() as $Directory )
{
if( $Directory != "." && $Directory != ".." && is_dir(DATAPATH . $Directory) )
{
$color = (is_writable(DATAPATH . $Directory) ? "green" : "red");
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => DATAPATH . $Directory ), array( "width" => "20%", "align" => "right", "text" => "<span style=\"color: " . $color . "\">" . substr(sprintf("%o", fileperms(DATAPATH . $Directory)), -4) . "</span>" ) ));
}
}
$HTML .= createtable(get_phrase("permissions_alt"), $tableContents, 2);
return $HTML;
}
function handlecleanup()
{
global $TSUE;
return "
<div class=\"ajaxLoaderDiv\">
<div style=\"font-size: 11px; margin-bottom: 10px;\">
" . get_phrase("before_cleanup") . ": <span id=\"currentDirSize\">" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . "</span> | " . get_phrase("after_cleanup") . ": <span id=\"afterDirSize\">" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . "</span>
</div>
<div id=\"cleanupRunning\">
" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "
" . get_phrase("loading") . "
</div>
</div>
<script type=\"text/javascript\">
var directories = [\"avatars\", \"countryFlags\", \"downloads\", \"gallery\", \"languageFlags\", \"posts\", \"smilies\", \"subTitles\", \"torrents\"];
var current = 0;
var total = directories.length;
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=getDirectorySize\",
success: function(response)
{
\$(\"#currentDirSize\").html(response);
startCleanup();
}
});
function startCleanup()
{
\$(\"#cleanupRunning\").html('" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . " " . get_phrase("cleaning") . " <b>'+directories[current]);
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=doCleanup&dir=\"+directories[current],
success: function(response)
{
if(response)
{
\$(\"#cleanupRunning\").html(response);
}
else
{
current++;
if(directories[current])
{
startCleanup();
}
else
{
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=getDirectorySize\",
success: function(response)
{
\$(\"#afterDirSize\").html(response);
\$(\"#cleanupRunning\").html('<div class=\"success\">" . get_phrase("operation_completed") . "</div>');
}
});
}
}
}
});
}
</script>";
}
function file_icon($Filename)
{
global $TSUE;
$Extension = file_extension($Filename);
$iconPath = "styles/" . aaaaff() . "/extensions/";
if( file_exists(ROOTPATH . $iconPath . $Extension . ".png") )
{
return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $iconPath . $Extension . ".png\" class=\"middle\" border=\"0\" title=\"" . $Extension . "\" />";
}
return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $iconPath . "default.png\" class=\"middle\" border=\"0\" title=\"" . $Extension . "\" />";
}
function findpagenumber($Query = "", $perPage = 0)
{
global $TSUE;
if( !$Query || !$perPage )
{
return 0;
}
$totalRows = $TSUE["TSUE_Database"]->row_count($Query);
if( $totalRows <= $perPage )
{
return 0;
}
return ceil($totalRows / $perPage);
}
function aaaakq($array, $remove)
{
$rebuild = array( );
foreach( $array as $a )
{
if( $a != $remove )
{
$rebuild[] = $a;
}
}
return $rebuild;
}
function aaaahb()
{
$Permissions = array( "defaultForumPermissions" => array( "canview_forum" => 1, "canupload" => 0, "candownload" => 1, "canview_thread_list" => 1, "canview_thread_posts" => 1, "canreply_threads" => 1, "canpost_new_thread" => 1, "candelete_posts" => 0, "candelete_own_posts" => 0, "canedit_posts" => 0, "canedit_own_posts" => 1, "canmanage_locked_threads" => 0, "candelete_threads" => 0, "canmove_threads" => 0, "canedit_threads" => 0, "canedit_own_threads" => 1, "cansubscribe_to_threads" => 1, "canpost_polls" => 1, "candelete_own_polls" => 0, "canedit_own_polls" => 1, "canlock_threads" => 0, "cansticky_threads" => 0, "candelete_polls" => 0, "canedit_polls" => 0 ), "adminForumPermissions" => array( "canview_forum" => 1, "canupload" => 1, "candownload" => 1, "canview_thread_list" => 1, "canview_thread_posts" => 1, "canreply_threads" => 1, "canpost_new_thread" => 1, "candelete_posts" => 1, "candelete_own_posts" => 1, "canedit_posts" => 1, "canedit_own_posts" => 1, "canmanage_locked_threads" => 1, "candelete_threads" => 1, "canmove_threads" => 1, "canedit_threads" => 1, "canedit_own_threads" => 1, "cansubscribe_to_threads" => 1, "canpost_polls" => 1, "candelete_own_polls" => 1, "canedit_own_polls" => 1, "canlock_threads" => 1, "cansticky_threads" => 1, "candelete_polls" => 1, "canedit_polls" => 1 ) );
return $Permissions;
}
function aaaaaa()
{
@date_default_timezone_set("GMT");
define("TIMESTART", microtime(true));
define("TIMENOW", time());
define("REALPATH", str_replace("\", "/", realpath(".")) . "/");
define("ROOTPATH", str_replace("\", "/", realpath("./../")) . "/");
define("DATAPATH", ROOTPATH . "data/");
define("JSPATH", ROOTPATH . "js/");
define("LIBRARYPATH", ROOTPATH . "library/");
define("STYLEPATH", ROOTPATH . "styles/");
define("CLIPATH", (DEMO_MODE ? "cli/" : ROOTPATH . "cli/"));
@error_reporting(30719);
@ini_set("display_errors", "On");
@set_error_handler("TSUEAdmin_ErrorHandler");
if( function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc() )
{
undomagicquotes($_GET);
undomagicquotes($_POST);
undomagicquotes($_COOKIE);
undomagicquotes($_REQUEST);
}
if( function_exists("get_magic_quotes_runtime") && get_magic_quotes_runtime() )
{
@set_magic_quotes_runtime(false);
}
@ini_set("memory_limit", "256M");
@set_time_limit(0);
@ignore_user_abort(true);
@ini_set("pcre.backtrack_limit", -1);
@ini_set("output_buffering", false);
while( ob_get_level() )
{
@ob_end_clean();
}
define("SAFEMODE", (@ini_get("safe_mode") == 1 || strtolower(@ini_get("safe_mode")) == "on" ? true : false));
define("IN_ADMIN_PANEL", true);
define("MEMBER_IP", getclientip());
define("IS_AJAX", (isset($_POST["isAjax"]) && $_POST["isAjax"] == 1 ? true : false));
define("TSUE_ADMINCP_URL", aaaaac());
define("TSUE_URL", "T29wcw==");
define("TSUE_URL2", "T29wcw==");
define("TSUE_URL3", "T29wcw==");
define("U", (!empty($_SERVER["SERVER_NAME"]) ? fixurl($_SERVER["SERVER_NAME"]) : (!empty($_SERVER["HTTP_HOST"]) ? fixurl($_SERVER["HTTP_HOST"]) : "")));
define("I", getserverip());
define("V", "2.2");
}
function TSUEAdmin_ErrorHandler($errno, $errstr, $errfile, $errline)
{
$Message = "
------------------------------------------
" . date("d-m-Y H:i:s") . "
[" . $errno . "] " . $errstr . "
PHP Error on line " . number_format($errline) . " in file " . $errfile . "
" . PHP_VERSION . " " . PHP_OS . "
------------------------------------------";
@file_put_contents(DATAPATH . "errors/admincp.php.log", $Message, FILE_APPEND);
}
function getserverip()
{
$ipFile = DATAPATH . "cache/ip.srv";
if( isset($_SERVER["SERVER_ADDR"]) && !empty($_SERVER["SERVER_ADDR"]) && is_valid_ip($_SERVER["SERVER_ADDR"]) )
{
$ip = $_SERVER["SERVER_ADDR"];
}
else
{
if( isset($_SERVER["LOCAL_ADDR"]) && !empty($_SERVER["LOCAL_ADDR"]) && is_valid_ip($_SERVER["LOCAL_ADDR"]) )
{
$ip = $_SERVER["LOCAL_ADDR"];
}
else
{
if( file_exists($ipFile) && TIMENOW < filemtime($ipFile) + 1800 )
{
$ip = file_get_contents($ipFile);
}
else
{
if( function_exists("curl_init") && ($ch = curl_init()) )
{
curl_setopt($ch, CURLOPT_URL, base64_decode(TSUE_URL3));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0");
$ip = curl_exec($ch);
curl_close($ch);
if( is_writable(DATAPATH . "cache/") )
{
@file_put_contents($ipFile, $ip);
}
}
}
}
}
if( is_valid_ip($ip) )
{
return $ip;
}
if( file_exists($ipFile) )
{
@unlink($ipFile);
}
}
function is_valid_ip($ip)
{
return $ip != "127.0.0.1" && $ip != "::1" && filter_var($ip, FILTER_VALIDATE_IP);
}
function aaaanu($error)
{
_sendheaders(errormessage($error));
}
function fixurl($url = "")
{
return strtolower(str_replace(array( "http://", "https://", "www.", "http://www.", "https://www." ), "", $url));
}
function checkallcheckbox($checkboxName)
{
return "<input type=\"checkbox\" name=\"checkAllCheckbox\" id=\"checkAllCheckbox\" data=\"" . $checkboxName . "\" />";
}
function encodestring($String = "", $AnahtarKelime = "T29wcw==")
{
$AnahtarKelime = base64_decode($AnahtarKelime);
$result = "";
for( $i = 0; $i < strlen($String); $i++ )
{
$char = substr($String, $i, 1);
$keychar = substr($AnahtarKelime, $i % strlen($AnahtarKelime) - 1, 1);
$char = chr(ord($char) + ord($keychar));
$result .= $char;
}
return urlencode(base64_encode($result));
}
function decodestring($String = "", $AnahtarKelime = "T29wcw==")
{
$AnahtarKelime = base64_decode($AnahtarKelime);
$String = urldecode($String);
$result = "";
$String = urldecode(base64_decode($String));
for( $i = 0; $i < strlen($String); $i++ )
{
$char = substr($String, $i, 1);
$keychar = substr($AnahtarKelime, $i % strlen($AnahtarKelime) - 1, 1);
$char = chr(ord($char) - ord($keychar));
$result .= $char;
}
return $result;
}
function compare_key($installkey = "")
{
return strlen($installkey) === 36 && preg_match(str_replace("#", "[0-9,A-F]", "{########-####-####-####-############}"), $installkey);
}
function is_valid_url($url = "")
{
return (!empty($url) && !preg_match("#^[a-z0-9-\.]+\$#", $url) ? false : true);
}
function getrealpath($Path = ".")
{
$Path = realpath($Path);
if( substr($Path, -1) != DIRECTORY_SEPARATOR )
{
$Path .= DIRECTORY_SEPARATOR;
}
$_SERVER["SCRIPT_NAME"] = realpath(trim($_SERVER["SCRIPT_NAME"]));
return realpath(trim($Path . $_SERVER["SCRIPT_NAME"]));
}
function aaaanv($type = 0, $tryAgain = false)
{
$serverResponse = "";
if( function_exists("curl_init") && ($ch = curl_init()) )
{
curl_setopt($ch, CURLOPT_URL, ($tryAgain ? decodestring(TSUE_URL2) : decodestring(TSUE_URL)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0");
curl_setopt($ch, CURLOPT_REFERER, U);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "t=" . $type . "&u=" . encodestring(U) . "&i=" . encodestring(I) . "&v=" . V . "&dr=" . encodestring(getrealpath()));
$serverResponse = curl_exec($ch);
curl_close($ch);
if( $serverResponse )
{
$serverResponse = decodestring($serverResponse);
}
else
{
if( !$tryAgain )
{
return aaaanv($type, true);
}
}
}
return $serverResponse;
}
function aaaanw()
{
echo str_repeat(" ", 256);
if( ob_get_length() )
{
@ob_flush();
@flush();
@ob_end_flush();
}
@ob_start();
}
function fetchurl($URL = "")
{
$serverResponse = "";
if( $URL && function_exists("curl_init") && ($ch = curl_init()) )
{
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$serverResponse = curl_exec($ch);
curl_close($ch);
}
return $serverResponse;
}
function aaaaab()
{
global $TSUE;
@ini_set("session.gc_maxlifetime", 900);
@session_name("tsueadmincp");
@session_cache_expire(900);
@session_start();
if( @file_exists($_SERVER["DOCUMENT_ROOT"] . "/tsue/l.php") )
{
aaaanu("Critical Security Error.");
}
if( !(isset($_GET["forceLicenseCheck"]) && $_GET["forceLicenseCheck"] == "true") )
{
$aaaanx = getsetting("data", "cache");
if( $aaaanx )
{
$aaaanx = @unserialize(@decodestring($aaaanx));
if( $aaaanx && is_array($aaaanx) && count($aaaanx) === 4 && is_valid_url($aaaanx["domain"]) && is_valid_url(U) && $aaaanx["domain"] === U && $aaaanx["ip"] === I && $aaaanx["version"] === V )
{
$days = 259200;
if( $aaaanx["time"] && TIMENOW < $aaaanx["time"] + $days )
{
if( isset($_GET["licenseDebug"]) && $_GET["licenseDebug"] == "true" )
{
echo "
<table style=\"padding: 5px; margin: 5px auto; border: 1px solid #ccc;\">
<tr>
<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Domain:</td>
<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["domain"] . " (" . U . ")</td>
</tr>
<tr>
<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">IP:</td>
<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["ip"] . " (" . I . ")</td>
</tr>
<tr>
<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Version:</td>
<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["version"] . " (" . V . ")</td>
</tr>
<tr>
<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Last Check:</td>
<td style=\"border-bottom: 1px solid #ccc;\">" . date("d-m-Y h:i:s", $aaaanx["time"]) . "</td>
</tr>
<tr>
<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Next Check:</td>
<td style=\"border-bottom: 1px solid #ccc;\">" . date("d-m-Y h:i:s", $aaaanx["time"] + $days) . "</td>
</tr>
</table>";
exit();
}
return true;
}
}
}
}
$TSUE["TSUE_Database"]->delete("tsue_settings", "settingname = 'data'");
$serverResponse = aaaanv(3);
if( !$serverResponse )
{
aaaanu("Could not connect to server.");
}
if( !preg_match("#\[domain\](.*)\[\/domain\]#", $serverResponse, $domain) )
{
aaaanu($serverResponse);
}
$domain = (isset($domain["1"]) ? $domain["1"] : "");
if( !is_valid_url($domain) || !is_valid_url(U) || $domain != U )
{
aaaanu("Invalid Domain.");
}
aaaany($domain);
}
function aaaany($domain)
{
$serverResponse = array( "domain" => $domain, "ip" => I, "time" => TIMENOW, "version" => V );
updatesettings("data", array( "cache" => encodestring(serialize($serverResponse)) ));
}
function getbanreason($memberid)
{
global $TSUE;
$bannedUser = $TSUE["TSUE_Database"]->query_result("SELECT end_date, reason FROM tsue_member_bans WHERE memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
if( !$bannedUser )
{
return get_phrase("permission_denied_banned");
}
if( $bannedUser["reason"] )
{
$message = get_phrase("permission_denied_banned_reason", $bannedUser["reason"]);
}
else
{
$message = get_phrase("permission_denied_banned");
}
if( TIMENOW < $bannedUser["end_date"] )
{
$message .= " " . get_phrase("permission_denied_banned_until", convert_time($bannedUser["end_date"]));
}
return $message;
}
function checkadmin()
{
global $TSUE;
$isLogged = false;
if( $TSUE["action"] == "logout" )
{
$_SESSION["skipGlobalWarnings"] = "";
$_SESSION["load-addon"] = $_SESSION["skipGlobalWarnings"];
$_SESSION["U"] = $_SESSION["load-addon"];
setcookie("TSUEAdmin", "", TIMENOW - 3600);
header("Location: ?action=Dashboard");
exit();
}
$isPost = ispost();
if( $isPost && isset($_POST["adminLogin"]) )
{
$membername = (isset($_POST["membername"]) ? trim($_POST["membername"]) : "");
$password = (isset($_POST["password"]) ? md5($_POST["password"]) : "");
$languageid = (isset($_POST["languageid"]) ? intval($_POST["languageid"]) : 1);
$time = TIMENOW;
}
else
{
if( isset($_COOKIE["TSUEAdmin"]) )
{
list($membername, $password, $languageid, $time) = @tsue_explode("-", @base64_decode($_COOKIE["TSUEAdmin"]));
}
}
if( isset($membername) && $membername && isset($password) && $password && strlen($password) == 32 && isset($languageid) && $languageid && isset($time) && $time )
{
if( TIMENOW < $time + getsetting("global_settings", "admincp_session_timeout", 5) * 60 )
{
$adminQuery = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membergroupid, m.membername, m.password, m.lastactivity, m.timezone, m.dst, g.groupstyle, g.permissions, b.memberid as isBanned FROM tsue_members m INNER JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_bans b ON(m.memberid=b.memberid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($membername));
if( $adminQuery )
{
if( $password === $adminQuery["password"] )
{
$TSUE["TSUE_Member"] = $adminQuery;
$TSUE["TSUE_Member"]["adminCPLastLogin"] = $time;
unset($TSUE["TSUE_Member"]["password"]);
$TSUE["TSUE_Member"]["permissions"] = unserialize($adminQuery["permissions"]);
$Language = $TSUE["TSUE_Database"]->query_result("SELECT charset, date_format, time_format, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid) . " AND active = 1");
if( $Language )
{
$TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]);
$TSUE["TSUE_Language"]["date_format"] = $Language["date_format"];
$TSUE["TSUE_Language"]["time_format"] = $Language["time_format"];
$TSUE["TSUE_Language"]["phrase"] = unserialize($Language["phrase_global"]);
}
if( $adminQuery["isBanned"] )
{
exit( getbanreason($adminQuery["memberid"]) );
}
if( $TSUE["TSUE_Member"]["timezone"] === "" )
{
$TSUE["TSUE_Member"]["timezone"] = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_timezone"];
}
$aPermissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_staffcp_permissions WHERE memberid = " . $TSUE["TSUE_Member"]["memberid"]);
if( !$aPermissions )
{
printoutput(errormessage(get_phrase("permission_denied")));
}
$aaaanz = false;
$aPermissions = unserialize($aPermissions["permissions"]);
if( $aPermissions )
{
foreach( $aPermissions as $permName => $aaaaoa )
{
if( $aaaaoa )
{
$aaaanz = true;
break;
}
}
}
if( !$aaaanz )
{
printoutput(errormessage(get_phrase("permission_denied")));
}
$TSUE["TSUE_Member"]["aPermissions"] = $aPermissions;
if( has_permission("canlogin_admincp", $TSUE["TSUE_Member"]["permissions"]) )
{
$isLogged = true;
$cookieValue = $adminQuery["membername"] . "-" . $password . "-" . $languageid . "-" . TIMENOW;
setcookie("TSUEAdmin", base64_encode($cookieValue));
if( !DEMO_MODE )
{
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["website_timeout"] * 60 < TIMENOW - $TSUE["TSUE_Member"]["lastactivity"] )
{
$updateAccount = "lastvisit = lastactivity, lastactivity = " . TIMENOW;
}
else
{
$updateAccount = "lastactivity = " . TIMENOW;
}
$TSUE["TSUE_Database"]->query("UPDATE tsue_members SET " . $updateAccount . " WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Member"]["memberid"]));
$Build_Query = array( "memberid" => $TSUE["TSUE_Member"]["memberid"], "ipaddress" => MEMBER_IP, "location" => "admincp", "browser" => strip_tags($_SERVER["HTTP_USER_AGENT"]), "date" => TIMENOW );
$TSUE["TSUE_Database"]->replace("tsue_session", $Build_Query);
}
}
}
else
{
if( !DEMO_MODE )
{
logadminaction("Failed Login Attempt to Admin CP! #--# IP: " . MEMBER_IP . " / Membername: " . $membername . " #--#");
}
}
}
}
else
{
$sessionExpired = true;
}
}
if( !$isLogged && IS_AJAX == true )
{
$errorPhrase = errormessage("You must be logged-in to do that.");
if( $TSUE["action"] == "autoComplete" )
{
_sendheaders(json_encode(array( $errorPhrase )), "application/json");
}
else
{
_sendheaders($errorPhrase);
}
}
if( !$isLogged )
{
setcookie("TSUEAdmin", "", TIMENOW - 3600);
$content = "
<span class=\"loginIPlogged\">IP Logged: <b>" . MEMBER_IP . "</b></span>
" . ((isset($sessionExpired) ? "
<span class=\"loginFailed\">
<span>Your login session has been expired.</span>
Please re-login.
</span>" : ($isPost ? "
<span class=\"loginFailed\">
<span>Login Failed. Please Try Again.</span>
Your IP has been logged and admins notified of this failed login attempt.
</span>" : "
<span class=\"loginWelcome\">
<span>Welcome Back</span>
Please enter your login details below to authenticate.
</span>"))) . "
" . aaaabn("
<table id=\"adminlogin\" cellpadding=\"2\" cellspacing=\"0\" border=\"0\">
<tr>
<td>Membername:</td>
<td>Password:</td>
<td>Language:</td>
<td> </td>
</tr>
<tr>
<td><input type=\"text\" class=\"atext\" name=\"membername\" value=\"\" /></td>
<td><input type=\"password\" class=\"atext\" name=\"password\" value=\"\" /></td>
<td>" . get_languages() . "</td>
<td><input type=\"submit\" class=\"button submit\" value=\"Log in\" name=\"adminLogin\" /></td>
</tr>
</table>");
printoutput($content, true);
}
}
function printoutput($content, $isLogin = false)
{
global $TSUE;
global $Warnings;
if( !isset($TSUE["TSUE_Member"]["memberid"]) || !$TSUE["TSUE_Member"]["memberid"] )
{
$isLogin = true;
}
if( IS_AJAX == true )
{
_sendheaders($content);
}
$globalTitle = ($isLogin ? "TSUE - Admin Control Panel Login" : "TSUE Admin Control Panel" . ((!empty($TSUE["breadcrumb"]) && count($TSUE["breadcrumb"]) ? " - " . @strip_tags($TSUE["breadcrumb"][@count($TSUE["breadcrumb"]) - 1]) : "")));
$aaaaob = "";
if( DEMO_MODE )
{
$aaaaob = "
<div id=\"demoMode\">Warning! Demo Mode is activated. Same features are disabled within Demo Mode.</div>";
}
$aaaaoc = "";
if( !empty($Warnings) && !isset($_SESSION["skipGlobalWarnings"]) )
{
$aaaaoc = "
<div id=\"globalWarnings\">
<div class=\"closeWarning\"></div>
" . implode("<hr />", $Warnings) . "
</div>";
unset($Warnings);
}
_sendheaders("
<!DOCTYPE html>
<html id=\"TSUE\" lang=\"en-us\">
<head>
<noscript><meta http-equiv=refresh content=\"0; URL=" . TSUE_ADMINCP_URL . "?noscript=1\" /></noscript>
<title>" . $globalTitle . "</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=" . ((isset($TSUE["TSUE_Language"]["charset"]) ? $TSUE["TSUE_Language"]["charset"] : "UTF-8")) . "\" />
<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/style.php?load=members\" />
<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/jquery-ui.css\" />
<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/jquery-linedtextarea.css\" />
<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/fancybox.css\" />
" . loadstyle("members.css") . "
<script type=\"text/javascript\">
var TSUEPhrases =
{
" . (($isLogin ? "" : "
months: \"" . get_phrase("dateinput_months") . "\",
shortMonths: \"" . get_phrase("dateinput_shortMonths") . "\",
days: \"" . get_phrase("dateinput_days") . "\",
shortDays: \"" . get_phrase("dateinput_shortDays") . "\"")) . "
};
</script>
<script type=\"text/javascript\" src=\"./../js/tsue/jquery.js\"></script>
" . (($isLogin ? "" : "
<script type=\"text/javascript\" src=\"./js/jquery-ui.min.js\"></script>
<script type=\"text/javascript\" src=\"./js/jquery-linedtextarea.js\"></script>
<script type=\"text/javascript\" src=\"./../js/tiny_mce/tiny_mce.js\"></script>")) . "
</head>
<body" . (($isLogin ? "" : " onbeforeunload=\"TSUEAdmin.showLoader();\"")) . ">
<div id=\"loading\">" . getimage("overlay/loading.gif") . " " . (($isLogin ? "Please wait, loading..." : get_phrase("loading"))) . "</div>
" . $aaaaoc . "
" . $aaaaob . "
<div id=\"header\">
" . (($isLogin ? "" : "
<div id=\"searchBox\">
<input type=\"text\" id=\"autoCompleteSearchInAdminCP\" value=\"" . get_phrase("keywords") . "\" />
</div>
<div class=\"last_login\">" . get_phrase("logged_your_last_login_was", convert_relative_time($TSUE["TSUE_Member"]["adminCPLastLogin"])) . " --</div>
<div rel=\"dropDownMenu\" class=\"dropDownMenu help\">
<span>" . get_phrase("help") . "</span>
<div id=\"dropDownMenu\">
<a href=\"\" id=\"checkUpdates\">" . get_phrase("check_for_updates") . "</a>
<a href=\"\" id=\"about\">" . get_phrase("about") . "</a>
</div>
</div>
<div class=\"menu\">
" . aaaaae(array( "?action=Dashboard" => array( "phrase" => getimage("menu_icons/home.png") . " " . get_phrase("menu_dashboard"), "class" => ($TSUE["action"] == "Dashboard" ? "active" : "") ), "?action=Plugin Manager" => array( "phrase" => getimage("menu_icons/plugin.png") . " " . get_phrase("menu_plugin_manager"), "class" => ($TSUE["action"] == "Plugin Manager" ? "active" : "") ), "?action=Forum Manager" => array( "phrase" => getimage("menu_icons/forums.png") . " " . get_phrase("menu_forum_manager"), "class" => ($TSUE["action"] == "Forum Manager" ? "active" : "") ), "?action=Appearance" => array( "phrase" => getimage("menu_icons/theme.png") . " " . get_phrase("dashboard_options_appearance"), "class" => ($TSUE["action"] == "Appearance" ? "active" : "") ), "?action=Member Manager" => array( "phrase" => getimage("menu_icons/member_manager.png") . " " . get_phrase("menu_member_manager"), "class" => ($TSUE["action"] == "Member Manager" ? "active" : "") ), "?action=File Manager" => array( "phrase" => getimage("menu_icons/file.png") . " " . get_phrase("menu_file_manager"), "class" => ($TSUE["action"] == "File Manager" ? "active" : "") ) )) . "
</div>")) . "
</div>
<div id=\"container\">
<div class=\"content\">
" . (($isLogin ? "" : "
<span class=\"logout\">
<a href=\"../\" target=\"_blank\">" . get_phrase("view_website") . "</a> |
<a href=\"?action=logout\">" . get_phrase("logged_logout") . "</a>
</span>")) . "
" . createbreadcrumb() . "
<div id=\"mainText\">" . $content . "</div>
<div style=\"clear: both;\"></div>
</div>
</div>
<div id=\"footer\"> </div>
<div id=\"copyright\">
/*" . ((!$isLogin ? "<div class=\"debug dotted-bottom-gray\">Memory Usage: " . friendly_size(memory_get_usage()) . " -- Query Count: " . $TSUE["TSUE_Database"]->querycount . " -- Page Loaded in " . round(microtime(true) - TIMESTART, 4) . " seconds.</div>" : "")) . "
</div>
" . (($isLogin ? "
<script type=\"text/javascript\">
\$(document).ready(function(){\$('input[name=\"membername\"]').focus()});
</script>" : "
<script type=\"text/javascript\">
var \$openedDropDownMenu, \$noLoader = false, Overlay = \"\";
\$(document).click(function()
{
if(\$openedDropDownMenu)
{
\$('.dropDownClose').remove();
\$openedDropDownMenu.hide();
}
});
var TSUEAdmin =
{
init: function()
{
" . (($TSUE["action"] == "Dashboard" && $TSUE["do"] == "Options" ? "TSUEAdmin.optionGroups();" : "")) . "
TSUEAdmin.clickableOptionBoxes();
TSUEAdmin.initTipsy();
TSUEAdmin.checkAll();
TSUEAdmin.initDateInputBoxes();
TSUEAdmin.initAutoComplete();
TSUEAdmin.calculator();
TSUEAdmin.initTinyMCE(\"tinyMCE\");
TSUEAdmin.initDropDownMenu();
TSUEAdmin.initHelp();
TSUEAdmin.initTextareaLines();
TSUEAdmin.disableSpellChecks();
TSUEAdmin.initializeFancyBOX();
TSUEAdmin.scrollInfoBoxes();
\$(document).ajaxStart(function()
{
TSUEAdmin.showLoader();
\$(\"input,textarea,select\").attr(\"disabled\", true);
})
.ajaxComplete(function()
{
TSUEAdmin.hideLoader();
\$(\"input,textarea,select\").attr(\"disabled\", false);
TSUEAdmin.checkAll();
TSUEAdmin.initDateInputBoxes();
TSUEAdmin.initAutoComplete();
TSUEAdmin.initializeFancyBOX();
setTimeout(function(){TSUEAdmin.initTinyMCE(\"tinyMCEAjax\")}, 1000);
//setTimeout(function(){\$(\".success,.error,.info\").fadeOut(\"slow\")}, 3000);
});
if(\$(\"#globalWarnings\").length)
{
\$(\"#globalWarnings .closeWarning\").click(function(e)
{
e.preventDefault();
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=closeGlobalWarning\",
success: function()
{
\$(\"#globalWarnings\").fadeOut(\"slow\");
}
});
return false;
});
};
},
scrollInfoBoxes: function()
{
\$(window).scroll(function()
{
\$(\"#scrolling\").remove();
if(\$(window).scrollTop() > 1)
{
\$('<div id=\"scrolling\" style=\"position: fixed; right: 15px; bottom: 25px; padding: 0; cursor: pointer; z-index: 1000; display: none;\"><img src=\"./images/buttons/up.png\" alt=\"\" title=\"\" /></div>').prependTo(\"body\").click(function(e)
{
e.preventDefault();
\$(\"html, body\").animate({ scrollTop: 0 }, \"slow\", \"easeOutBounce\");
return false;
}).fadeIn(\"slow\");
}
});
},
setCookie: function(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? \"\" : \"; expires=\"+exdate.toUTCString());
document.cookie=c_name + \"=\" + c_value;
},
initializeFancyBOX: function()
{
\$('[rel=\"fancybox\"],#fancybox').fancybox({\"type\":\"image\",\"openEffect\":\"elastic\",\"closeEffect\":\"elastic\"});
},
disableSpellChecks: function()
{
\$(\".templateTextarea\").attr(\"spellcheck\", false);
},
initTextareaLines: function()
{
\$(\".templateTextarea\").linedtextarea();
},
initHelp: function()
{
\$(\"#about\").click(function(e)
{
e.preventDefault();
\$noLoader = true;
TSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "', false, false);
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=about\",
success: function(result)
{
\$noLoader = false;
\$(\".overlay_text\").html(result);
}
});
return false;
});
\$(\"#checkUpdates\").click(function(e)
{
e.preventDefault();
\$noLoader = true;
TSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "', false, false);
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=checkUpdates\",
success: function(result)
{
\$noLoader = false;
\$(\".overlay_text\").html(result);
}
});
return false;
});
},
initTinyMCE: function(elementName)
{
tinyMCE.init
({
mode: \"exact\",
elements: elementName,
theme: \"advanced\",
skin : \"default\",
plugins : \"advhr,advimage,advlink,advlist,autolink,autoresize,contextmenu,fullscreen,inlinepopups,insertdatetime,layer,lists,media,nonbreaking,noneditable,paste,preview,print,save,searchreplace,style,tabfocus,table,visualchars\",
theme_advanced_buttons1 : \"newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect,|,forecolor,backcolor\",
theme_advanced_buttons2 : \"cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,code,|,insertdate,inserttime,preview\",
theme_advanced_buttons3 : \"tablecontrols,|,hr,removeformat,visualaid,|,charmap,emotions,iespell,media,advhr,|,print,|,fullscreen\",
theme_advanced_toolbar_location : \"top\",
theme_advanced_toolbar_align : \"left\",
theme_advanced_statusbar_location : \"bottom\",
theme_advanced_resizing : true,
convert_urls:true,
relative_urls:false,
remove_script_host:false,
});
},
initDropDownMenu: function()
{
\$('[rel=\"dropDownMenu\"]').click('click', function(e)
{
e.preventDefault();
if(\$openedDropDownMenu)
{
\$('.dropDownClose').remove();
\$openedDropDownMenu.hide();
}
var \$findMenu = \$(this).children('#dropDownMenu');
\$openedDropDownMenu = \$findMenu;
\$findMenu.find(\"a\").click(function()
{
var \$location = \$(this).attr(\"href\");
if(\$location)
{
window.location = \$location;
return;
};
});
if(\$findMenu.is(':visible'))
{
\$findMenu.fadeOut(\"slow\");
}
else
{
\$findMenu.fadeIn(\"slow\");
\$('<div class=\"dropDownClose\"><a class=\"clickable small staffLink\" href=\"javascript:void(0);\">" . get_phrase("button_cancel") . "</a></div>').appendTo(\$findMenu).click(function(e)
{
e.preventDefault();
\$('.dropDownClose').remove();
\$findMenu.fadeOut(\"slow\");
return false;
});
}
return false;
});
},
clickableOptionBoxes: function()
{
\$(document).on(\"click\", \".option_box\", function(e)
{
e.preventDefault();
window.location=\"?action=" . $TSUE["action"] . "&do=\"+\$(this).attr(\"rel\");
return false;
});
},
//Use Ajax for Dashboard > Options -> Options Groups.. Such as Website Active, IP Ban etc..
optionGroups: function()
{
//Clicked on Options Group such as Options -> Website Active
\$(document).on(\"click\", \".optionGroup\", function(e)
{
e.preventDefault();
var optionsREL = \$(this).attr(\"rel\"),
buildQuery = \"isAjax=1&\"+optionsREL,
optionGroup = \$(this);
\$.ajax
({
type: \"POST\",
data: buildQuery,
success: function(result)
{
TSUEAdmin.dialog(result, false, true);
TSUEAdmin.initTipsy();
\$(\"#overlay_form\").submit(function(e)//Does this have a form which was submitted?
{
var \$thisForm = \$(this);
//Ajax Response has form which has been submitted. Lets handle it.
e.preventDefault();
var \$form = \$(this),
buildQuery = \"isAjax=1&\"+optionsREL+\"&\"+\$form.serialize();
if(\$(\"#tinyMCEAjax\").length)
{
tinyMCE.triggerSave();
buildQuery += \"&\"+\$(\"#tinyMCEAjax\").attr(\"name\")+\"=\"+encodeURIComponent(tinyMCE.activeEditor.getContent());
}
\$.ajax
({
type: \"POST\",
data: buildQuery,
success: function(result)
{
if(result)
{
//Results Contains New Data, Lets show it in overlay.
if(result.match(/-UPDATE_HTML-/))
{
result = result.split(\"~\");//0:-UPDATE_HTML- , 1: divID, 2: HTML
\$(result[1]).html(result[2]);
}
else
{
\$(\".overlay_text .success, .overlay_text .error\").remove();
\$(result).prependTo(\".overlay_text\");
var \$submitButton = \$thisForm.find('input[type=\"submit\"]');
\$(result).insertBefore(\$submitButton);
\$(\".overlay_text\").animate({scrollTop: 0}, \"slow\");
}
}
}
});
});
\$(document).on(\"click\",\"#checkHitRunOptions\",function(e)
{
e.preventDefault();
var \$div = \$(\".checkHitRunOptions\");
var \$options = \$(\"#overlay_form\").serialize();
\$div.html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "');
\$.ajax
({
type: \"POST\",
data: \"isAjax=1&action=checkHitRunOptions&\"+\$options,
success: function(result)
{
\$div.html(result);
}
});
return false;
});
}
});
return false;
});
},
//Use Tipsy for rel:initTipsy and Images.
initTipsy: function()
{
\$('[rel=\"initTipsy\"],img[title!=\"\"]').tipsy({trigger: \"hover\", gravity: \"s\", html: true});// nw | n | ne | w | e | sw | s | se
},
//Calendar for input:date
initDateInputBoxes: function()
{
\$.tools.dateinput.localize(\"tsue\", {months: TSUEPhrases[\"months\"], shortMonths: TSUEPhrases[\"shortMonths\"], days: TSUEPhrases[\"days\"], shortDays: TSUEPhrases[\"shortDays\"]});
\$('input[type=\"date\"]').dateinput({lang: \"tsue\", format: \"dd/mm/yyyy\", selectors: true, yearRange: [-80, 5]}).attr(\"autocomplete\", \"off\");
},
//Autocomplete
initAutoComplete: function()
{
\$(function()
{
function split( val )
{
return val.split( /,\s*/ );
}
function extractLast( term )
{
return split( term ).pop();
}
var cache = {}, lastXhr;
if(\$(\"#autoCompleteMultiple\").length)
{
\$(\"#autoCompleteMultiple\").
// don't navigate away from the field on tab when selecting an item
bind( \"keydown\", function( event )
{
if ( event.keyCode === \$.ui.keyCode.TAB && \$( this ).data( \"ui-Autocomplete\" ).menu.active )
{
event.preventDefault();
}
})
.autocomplete
({
source: function( request, response )
{
\$.ajax
({
type: \"POST\",
url: \"index.php\",
dataType: \"json\",
data: \"isAjax=1&action=autoComplete&do=searchMember&keyword=\"+extractLast(request.term),
success: function(serverResponse, status, xhr)
{
response( serverResponse );
}
});
},
search: function()
{
// custom minLength
var term = extractLast( this.value );
if ( term.length < 2 )
{
return false;
}
},
focus: function()
{
// prevent value inserted on focus
return false;
},
select: function( event, ui )
{
var terms = split( this.value );
// remove the current input
terms.pop();
// add the selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push( \"\" );
this.value = terms.join( \", \" );
return false;
}
});
}
if(\$(\"#autoComplete\").length)
{
\$(\"#autoComplete\").autocomplete//For Member Search
({
minLength: 2,
source: function( request, response )
{
var term = request.term;
if( term in cache )
{
response( cache[ term ] );
return;
}
lastXhr = \$.ajax
({
type: \"POST\",
url: \"index.php\",
dataType: \"json\",
data: \"isAjax=1&action=autoComplete&do=searchMember&keyword=\"+term,
success: function(serverResponse, status, xhr)
{
cache[ term ] = serverResponse;
if( xhr === lastXhr )
{
response( serverResponse );
}
}
});
}
});
}
if(\$(\"#autoCompleteSearchInAdminCP\").length)
{
\$(\"#autoCompleteSearchInAdminCP\").autocomplete//For Search in Admin CP
({
delay: 500,
minLength: 2,
source: function( request, response )
{
\$.ajax
({
type: \"POST\",
url: \"index.php\",
dataType: \"json\",
data: \"isAjax=1&action=autoComplete&do=searchINAdminCP&keyword=\"+request.term,
success: function(serverResponse, status, xhr)
{
response( serverResponse );
}
});
},
select: function( event, ui)
{
if(ui.item.url)
{
window.open(ui.item.url, \"_blank\");
return false;
}
else
{
return false;
}
}
}).click(function()
{
var \$this = \$(this);
if(\$this.val() == \"" . get_phrase("keywords") . "\")
{
\$this.val(\"\");
}
}).data(\"ui-Autocomplete\")._renderItem = function (ul, item)
{
return \$(\"<li></li>\")
.data(\"item.autocomplete\", item)
.append(\$(\"<a></a>\").html(item.label))
.appendTo(ul);
};
}
});
},
//Set YES-NO and Check ALL
checkAll: function()
{
\$(document).on(\"click\", \"#checkAllCheckbox\", function(e)
{
var \$this = \$(this), \$cName = \$this.attr(\"data\"), \$isChecked = \$this.is(\":checked\");
\$('input[name=\"'+\$cName+'\"]').attr(\"checked\", \$isChecked);
});
\$(document).on(\"click\", \"#setALLYes\", function(e)
{
e.preventDefault();
\$(\"input:radio[rel='\"+\$(this).attr(\"rel\")+\"']\").filter(\"[value='1']\").attr(\"checked\", true);
return false;
});
\$(document).on(\"click\", \"#setALLNo\", function(e)
{
e.preventDefault();
\$(\"input:radio[rel='\"+\$(this).attr(\"rel\")+\"']\").filter(\"[value='0']\").attr(\"checked\", true);
return false;
});
\$(document).on(\"click\", 'input[name=\"checkALL\"]', function(e)
{
var \$inputNames = \$(this).attr(\"value\");
var \$checked_status = \$(this).attr(\"checked\");
\$('input[name=\"'+\$inputNames+'\"]').attr(\"checked\", (\$checked_status ? \$checked_status : false));
});
},
//Auto Resize Dialog Height.
initMainContentHeight: function()
{
var containerContent = \$(\".content\"),
containerContentHeight = \$(containerContent).height(),
windowHeight = \$(window).height()-180,
buttonExpand = \"" . (($isLogin ? "" : get_phrase("button_expand"))) . "\";
if(containerContentHeight > windowHeight)
{
\$(containerContent).animate({maxHeight: windowHeight+\"px\"}).css({overflow: \"hidden\"});
\$('<div id=\"toggleText\">'+buttonExpand+'</div>').appendTo(\$(containerContent)).click(function()
{
\$(containerContent).animate({maxHeight: containerContentHeight+\"px\"});
\$(this).remove();
});
}
},
//Show Loader While Ajax loading.
showLoader: function()
{
if(!\$noLoader)
{
\$(\"#loading\").show();
}
},
//Hide Loader After Ajax completed.
hideLoader: function()
{
\$(\"#loading\").hide();
},
//Confirmation.
confirmAction: function(cMessage)
{
return confirm(cMessage);
},
calculator: function()
{
\$(document).on(\"click\", \".calculator\", function(e)
{
e.preventDefault();
\$.ajax
({
type: \"POST\",
url: \"calculator.html\",
success: function(calculatorHTML)
{
TSUEAdmin.dialog(calculatorHTML);
\$(\"#calculator\").submit(function(e)
{
e.preventDefault();
var \$amount = parseInt(\$('input[name=\"amount\"]', this).val());
var \$amount_type = \$('select[name=\"amount_type\"]', this).val();
if(\$amount && \$amount_type)
{
var \$convertedAmount = 0;
switch(\$amount_type)
{
case \"MB\":
\$convertedAmount = \$amount * 1024 * 1024;
break;
case \"GB\":
\$convertedAmount = \$amount * 1024 * 1024 * 1024;
break;
}
\$(\"#convertedAmount\").html(\$amount+\" \"+\$amount_type+\" equal to \"+\$convertedAmount+\" Bytes\");
}
return false;
});
}
});
return false;
});
},
//Dialog Function
dialog: function(result, _closeOnClick, _closeOnEsc)
{
if(\$(\".apple_overlay\").length)
{
\$(\".apple_overlay\").empty().remove();
}
Overlay = \$('<div class=\"apple_overlay\"><div class=\"overlay_text\">'+result+'</div></div>').prependTo(\"body\").overlay
({
load: true, closeOnClick: (_closeOnClick ? true : false), closeOnEsc: (_closeOnEsc ? true : false), top: 20,
mask:{color: \"#ccc\", loadSpeed: 200, opacity: 0.8},
onClose: function()
{
TSUEAdmin.closeDialog();
},
onLoad: function()
{
var \$overlayHeight = \$(\".overlay_text\").outerHeight(), \$overlayWidth = \$(\".apple_overlay\").outerWidth(), \$windowHeight = \$(window).height(), \$windowWidth = \$(window).width();
if(\$overlayHeight+100 > \$windowHeight)
{
\$(\".overlay_text\").css({height: \$windowHeight-100});
}
if(\$overlayWidth+35 > \$windowWidth)
{
\$(\".apple_overlay\").css({width: \$windowWidth-35});
}
TSUEAdmin.resizeOverlay();
},
api:true
});
},
resizeOverlay: function()
{
//var top = (\$(window).height() / 2) - (\$(\".apple_overlay\").outerHeight() / 2);
var left = (\$(window).width() / 2) - (\$(\".apple_overlay\").outerWidth() / 2);
//\$(\".apple_overlay\").css(\"top\", top);
\$(\".apple_overlay\").css(\"left\", left);
},
closeDialog: function()
{
//Remove Tinymce
\$inline_editor = \$(\"body\").find('textarea[id=\"tinyMCEAjax\"]');
if(\$inline_editor.length)
{
tinyMCE.execCommand(\"mceFocus\", false, \"tinyMCEAjax\");
tinyMCE.execCommand(\"mceRemoveControl\", false, \"tinyMCEAjax\");
\$inline_editor.html(\"\").remove();
}
//Remove Overlay Div
\$(document).find(\".apple_overlay\").each(function()
{
\$(this).empty().remove();
});
//Close Overlay
Overlay.close();
}
};
\$(document).ready(function(){TSUEAdmin.init();});
\$(window).resize(function(){TSUEAdmin.resizeOverlay();});
</script>")) . "
</body>
</html>");
}
function _sendheaders($Content, $ContentType = "text/html", $UseCharset = true)
{
global $TSUE;
ob_start();
$Content = gzipcontentifsupported($Content);
if( $UseCharset )
{
$UseCharset = "; charset=" . ((isset($TSUE["TSUE_Language"]["charset"]) ? $TSUE["TSUE_Language"]["charset"] : "UTF-8"));
}
else
{
$UseCharset = "";
}
header("X-Powered-By: TSUE " . V);
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Content-Length: " . strlen($Content));
header("Content-Type: " . $ContentType . $UseCharset);
exit( $Content );
}
function gzipcontentifsupported($Content)
{
if( @ini_get("zlib.output_compression") )
{
return $Content;
}
if( !function_exists("gzencode") || empty($_SERVER["HTTP_ACCEPT_ENCODING"]) )
{
return $Content;
}
if( !is_string($Content) )
{
return $Content;
}
if( strpos($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip") !== false )
{
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
$Content = gzencode($Content, 9, FORCE_GZIP);
}
return $Content;
}
function aaaaac()
{
$port = (isset($_SERVER["SERVER_PORT"]) && $_SERVER["SERVER_PORT"] ? intval($_SERVER["SERVER_PORT"]) : 0);
$port = (in_array($port, array( 80, 443 )) ? "" : ":" . $port);
$scheme = (":443" == $port || isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] && $_SERVER["HTTPS"] != "off" ? "https://" : "http://");
$host = fetch_server_value("HTTP_HOST");
$name = fetch_server_value("SERVER_NAME");
$host = (substr_count($name, ".") < substr_count($host, ".") ? $host : $name);
if( !($scriptpath = fetch_server_value("PATH_INFO")) && !($scriptpath = fetch_server_value("REDIRECT_URL")) && !($scriptpath = fetch_server_value("URL")) && !($scriptpath = fetch_server_value("PHP_SELF")) )
{
$scriptpath = fetch_server_value("SCRIPT_NAME");
}
$url = $scheme . $host . "/" . str_replace("index.php", "", ltrim($scriptpath, "/\"));
return $url;
}
function fetch_server_value($name)
{
if( isset($_SERVER[$name]) && $_SERVER[$name] )
{
return $_SERVER[$name];
}
if( isset($_ENV[$name]) && $_ENV[$name] )
{
return $_ENV[$name];
}
return false;
}
function addbreadcrumb($breadcrumbs)
{
global $TSUE;
foreach( $breadcrumbs as $_title => $_link )
{
$TSUE["breadcrumb"][] = "
<span class=\"crust\" itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">
<a href=\"" . $_link . "\" class=\"crumb\" rel=\"up\" itemprop=\"url\"><span itemprop=\"title\">" . $_title . "</span></a>
<span class=\"arrow\"><span></span></span>
</span>";
}
}
function createbreadcrumb()
{
global $TSUE;
$breadcrumbs = implode("
", $TSUE["breadcrumb"]);
if( !$breadcrumbs )
{
return "";
}
$breadcrumb = "
<div class=\"breadBoxTop\">
<nav>
<fieldset class=\"breadcrumb\">
<span class=\"crumbs\">
" . $breadcrumbs . "
</span>
</fieldset>
</nav>
</div>";
return $breadcrumb;
}
function errormessage($msg)
{
return "<div class=\"error\">" . $msg . "</div>";
}
function successmessage($msg)
{
return "<div class=\"success\">" . $msg . "</div>";
}
function has_permission($What, $Permissions = "")
{
return (isset($Permissions[$What]) ? $Permissions[$What] : false);
}
function aaaaad($checkFor)
{
global $TSUE;
$tsue_staffcp_permissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_staffcp_permissions WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Member"]["memberid"]));
if( !$tsue_staffcp_permissions )
{
$error = true;
}
else
{
if( !($tsue_staffcp_permissions = unserialize($tsue_staffcp_permissions["permissions"])) )
{
$error = true;
}
else
{
if( !isset($tsue_staffcp_permissions[$checkFor]) || isset($tsue_staffcp_permissions[$checkFor]) && !$tsue_staffcp_permissions[$checkFor] )
{
$error = true;
}
}
}
if( isset($error) && $error )
{
printoutput(errormessage(get_phrase("permission_denied")));
}
}
function checkdemomode()
{
if( DEMO_MODE )
{
printoutput(errormessage("This function is disabled within demo mode."));
}
}
function undomagicquotes(&$array, $depth = 0)
{
if( 10 < $depth || !is_array($array) )
{
return NULL;
}
foreach( $array as $key => $value )
{
if( is_array($value) )
{
undomagicquotes($array[$key], $depth + 1);
}
else
{
$array[$key] = stripslashes($value);
}
if( is_string($key) )
{
$new_key = stripslashes($key);
if( $new_key != $key )
{
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
}
function profileupdate($memberid, $buildQuery)
{
global $TSUE;
return $TSUE["TSUE_Database"]->update("tsue_member_profile", $buildQuery, "memberid=" . $TSUE["TSUE_Database"]->escape($memberid), false);
}
function updatememberpoints($addPoint, $memberid, $Increase = true)
{
if( $addPoint )
{
if( $Increase )
{
$points = array( "escape" => 0, "value" => "points + " . $addPoint );
}
else
{
$points = array( "escape" => 0, "value" => "IF(points > " . $addPoint . ", points-" . $addPoint . ", 0)" );
}
return profileupdate($memberid, array( "points" => $points ));
}
}
function ispost()
{
return strtoupper($_SERVER["REQUEST_METHOD"]) == "POST";
}
function getvar($valueName, $defaultValue = "", $cleanValue = true)
{
$searchValue = (isset($_POST[$valueName]) && !empty($_POST[$valueName]) ? $_POST[$valueName] : (isset($_GET[$valueName]) && !empty($_GET[$valueName]) ? $_GET[$valueName] : $defaultValue));
return ($cleanValue ? html_clean($searchValue) : $searchValue);
}
function file_extension($filename)
{
return substr(strrchr($filename, "."), 1);
}
function getsetting($setting = "", $value = "", $defaultValue = "")
{
global $TSUE;
return (isset($TSUE["TSUE_Settings"]->settings[$setting][$value]) ? $TSUE["TSUE_Settings"]->settings[$setting][$value] : $defaultValue);
}
function get_phrase()
{
global $TSUE;
$args = func_get_args();
$args[0] = preg_replace("#\{([0-9]+)\}#sU", "%\1\$s", $TSUE["TSUE_Language"]["phrase"][$args[0]]);
$numargs = sizeof($args);
if( $numargs == 1 && is_array($args[0]) )
{
return construct_phrase_from_array($args[0]);
}
if( $numargs == 2 && is_string($args[0]) && is_array($args[1]) )
{
array_unshift($args[1], $args[0]);
return construct_phrase_from_array($args[1]);
}
return construct_phrase_from_array($args);
}
function construct_phrase_from_array($phrase_array)
{
$numargs = sizeof($phrase_array);
if( $numargs < 2 )
{
return $phrase_array[0];
}
$phrase = @call_user_func_array("sprintf", $phrase_array);
if( $phrase !== false )
{
return $phrase;
}
for( $i = $numargs; $i < 10; $i++ )
{
$phrase_array[(string) $i] = "[ARG:" . $i . " UNDEFINED]";
}
if( $phrase = @call_user_func_array("sprintf", $phrase_array) )
{
return $phrase;
}
return $phrase_array[0];
}
function convert_time($timestamp, $format = "")
{
global $TSUE;
if( !$format )
{
$format = $TSUE["TSUE_Language"]["date_format"] . " " . $TSUE["TSUE_Language"]["time_format"];
}
return gmdate($format, $timestamp + 3600 * ($TSUE["TSUE_Member"]["timezone"] + $TSUE["TSUE_Member"]["dst"]));
}
function convert_relative_time($timestamp = 0)
{
global $TSUE;
$interval = TIMENOW - $timestamp;
if( $interval < 0 )
{
return convert_time($timestamp);
}
$aaaaod = array( "today" => convert_time(TIMENOW, "n-j-Y"), "yesterday" => convert_time(TIMENOW - 86400, "n-j-Y"), "week" => convert_time(TIMENOW - 86400 * 6, "n-j-Y") );
$MTimeStamp = convert_time($timestamp, "n-j-Y");
if( $MTimeStamp == $aaaaod["today"] )
{
return get_phrase("relative_today_at_x", convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"]));
}
if( $MTimeStamp == $aaaaod["yesterday"] )
{
return get_phrase("relative_yesterday_at_x", convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"]));
}
if( $aaaaod["week"] <= $MTimeStamp )
{
$dayName = get_phrase("day_" . convert_time($timestamp, "N"));
$Time = convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"]);
return get_phrase("relative_day_x_at_time_y", $dayName, $Time);
}
return convert_time($timestamp);
}
function secondstohours($seconds)
{
$lang = tsue_explode(",", get_phrase("all_in_one_pretty_time"));
$hours = floor($seconds / 3600);
$minutes = floor(($seconds / 60) % 60);
$hoursPhrase = (1 < $hours ? $lang["9"] : $lang["8"]);
$minutesPhrase = (1 < $minutes ? $lang["11"] : $lang["10"]);
return (string) $hours . " " . $hoursPhrase . " " . $minutes . " " . $minutesPhrase;
}
function aaaadj($stamp = 0)
{
$ysecs = 365 * 24 * 60 * 60;
$mosecs = 31 * 24 * 60 * 60;
$wsecs = 7 * 24 * 60 * 60;
$dsecs = 24 * 60 * 60;
$hsecs = 60 * 60;
$msecs = 60;
$years = floor($stamp / $ysecs);
$stamp %= $ysecs;
$months = floor($stamp / $mosecs);
$stamp %= $mosecs;
$weeks = floor($stamp / $wsecs);
$stamp %= $wsecs;
$days = floor($stamp / $dsecs);
$stamp %= $dsecs;
$hours = floor($stamp / $hsecs);
$stamp %= $hsecs;
$minutes = floor($stamp / $msecs);
$stamp %= $msecs;
$seconds = $stamp;
return array( "years" => $years, "months" => $months, "weeks" => $weeks, "days" => $days, "hours" => $hours, "minutes" => $minutes );
}
function getmembername($membername = "", $groupstyle = "")
{
return str_replace("{membername}", $membername, $groupstyle);
}
function explodesearchkeywords($Match = "", $Against = "", $fullTextSearch = true)
{
global $TSUE;
if( $fullTextSearch )
{
return "MATCH (" . $Match . ") AGAINST ('" . $TSUE["TSUE_Database"]->escape_no_quotes($Against) . "' IN BOOLEAN MODE)";
}
return (string) $Match . " LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Against) . "%'";
}
function deletetorrent($tid = 0)
{
global $TSUE;
checkdemomode();
if( !$tid )
{
return false;
}
$attachments = $TSUE["TSUE_Database"]->query("SELECT content_type, filename FROM tsue_attachments WHERE content_type IN ('torrent_images', 'torrent_files', 'torrent_screenshots') AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
if( $TSUE["TSUE_Database"]->num_rows($attachments) )
{
while( $attachment = $TSUE["TSUE_Database"]->fetch_assoc($attachments) )
{
if( $attachment["content_type"] == "torrent_files" || $attachment["content_type"] == "nfo" )
{
$file = DATAPATH . "torrents/" . $attachment["content_type"] . "/" . $attachment["filename"];
if( is_file($file) )
{
@unlink($file);
}
}
else
{
deleteimages($attachment["filename"]);
}
}
$TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type IN ('torrent_images', 'torrent_files','torrent_screenshots') AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
}
aaaaex($tid);
$TSUE["TSUE_Database"]->delete("tsue_bookmarks", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
$TSUE["TSUE_Database"]->delete("tsue_comments", "content_type = 'torrent_comments' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
$TSUE["TSUE_Database"]->delete("tsue_comments_replies", "content_type = 'torrent_comments' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
$TSUE["TSUE_Database"]->delete("tsue_liked_content", "content_type = 'torrent' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
$TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
$TSUE["TSUE_Database"]->delete("xbt_files_users", "fid = " . $TSUE["TSUE_Database"]->escape($tid));
if( getsetting("xbt", "active") )
{
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "flags" => "1" ), "tid = " . $TSUE["TSUE_Database"]->escape($tid));
}
else
{
$TSUE["TSUE_Database"]->delete("tsue_torrents", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
}
handleprune(false);
return true;
}
function aaaaex($tid)
{
global $TSUE;
checkdemomode();
if( is_array($tid) )
{
foreach( $tid as $t )
{
aaaaex($t);
}
return NULL;
}
else
{
$IMDB = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_imdb WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
if( $IMDB )
{
$IMDBContent = unserialize($IMDB["content"]);
if( $IMDBContent["title_id"] && is_file(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg") )
{
@unlink(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg");
}
}
$TSUE["TSUE_Database"]->delete("tsue_imdb", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
}
}
function deleteimages($filename)
{
checkdemomode();
foreach( array( "l", "m", "s" ) as $torrentImageFolder )
{
$_filePath = DATAPATH . "torrents/torrent_images/" . $torrentImageFolder . "/" . $filename;
if( is_file($_filePath) )
{
@unlink($_filePath);
}
}
}
function deletemember($memberid = 0)
{
global $TSUE;
checkdemomode();
if( !$memberid )
{
return NULL;
}
$TSUE["TSUE_Database"]->delete("tsue_comments", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_comments_replies", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_invites", "sender_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR receiver_memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_liked_content", "like_memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_members", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_alerts", "alerted_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_bans", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_confirmation", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_follow", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR follow_memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_mutes", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_privacy", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_profile", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_profile_visitors", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR visitorid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_promotions", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_upgrades_promotions", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_upgrades_purchases", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_warns", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_messages_master", "owner_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR receiver_memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_messages_replies", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_requests", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_shoutbox", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_uploader_applications", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("xbt_files_users", "uid=" . $TSUE["TSUE_Database"]->escape($memberid));
}
function is_member_of($groupname)
{
switch( strtolower($groupname) )
{
case "banned":
$GroupID = 8;
break;
case "awaitingmoderation":
$GroupID = 4;
break;
case "awaitingemailconfirmation":
$GroupID = 3;
break;
case "registeredusers":
$GroupID = 2;
break;
case "unregistered":
$GroupID = 1;
}
return (isset($GroupID) ? $GroupID : 0);
}
function optionbox($rel, $optionTitle, $span, $checkMainPerm = "")
{
global $TSUE;
$oClass = "";
$checkPerm = ($checkMainPerm ? $checkMainPerm : $rel);
if( !isset($TSUE["TSUE_Member"]["aPermissions"][$checkPerm]) || !$TSUE["TSUE_Member"]["aPermissions"][$checkPerm] )
{
return "";
}
$do = $rel;
if( strstr($rel, "/") !== false )
{
list($do, $rel) = tsue_explode("/", $rel);
$do = $do . "&" . $rel . "=1";
}
return "
<div class=\"option_box" . $oClass . "\" rel=\"" . $do . "\">
" . getimage("options/" . str_replace(" ", "", strtolower($rel)) . ".png", $optionTitle) . " " . $optionTitle . "
<span>" . $span . "</span>
</div>";
}
function foldersize($path)
{
$total_size = 0;
$files = scandir($path);
$cleanPath = rtrim($path, "/") . "/";
foreach( $files as $t )
{
if( $t != "." && $t != ".." )
{
$currentFile = $cleanPath . $t;
if( is_dir($currentFile) )
{
$size = foldersize($currentFile);
$total_size += $size;
}
else
{
$size = filesize($currentFile);
$total_size += $size;
}
}
}
return $total_size;
}
function friendly_size($bytes = 0, $useName = true, $precision = 2)
{
global $TSUE;
if( !$bytes )
{
return 0;
}
$kilobyte = 1024;
$megabyte = $kilobyte * 1024;
$gigabyte = $megabyte * 1024;
$terabyte = $gigabyte * 1024;
$filesizename = @tsue_explode(",", "Bytes,KB,MB,GB,TB,PB,EB,ZB,YB");
if( 0 < $bytes && $bytes < $kilobyte )
{
return $bytes . (($useName ? " " . $filesizename["0"] : ""));
}
if( $kilobyte <= $bytes && $bytes < $megabyte )
{
return round($bytes / $kilobyte, $precision) . (($useName ? " " . $filesizename["1"] : ""));
}
if( $megabyte <= $bytes && $bytes < $gigabyte )
{
return round($bytes / $megabyte, $precision) . (($useName ? " " . $filesizename["2"] : ""));
}
if( $gigabyte <= $bytes && $bytes < $terabyte )
{
return round($bytes / $gigabyte, $precision) . (($useName ? " " . $filesizename["3"] : ""));
}
if( $terabyte <= $bytes )
{
return round($bytes / $terabyte, $precision) . (($useName ? " " . $filesizename["4"] : ""));
}
return html_clean($bytes);
}
function logadminaction($log, $type = 2)
{
global $TSUE;
if( DEMO_MODE )
{
return NULL;
}
$buildQuery = array( "memberid" => (isset($TSUE["TSUE_Member"]["memberid"]) ? $TSUE["TSUE_Member"]["memberid"] : 0), "membername" => (isset($TSUE["TSUE_Member"]["membername"]) ? $TSUE["TSUE_Member"]["membername"] : ""), "date" => TIMENOW, "type" => $type, "log" => $log );
$TSUE["TSUE_Database"]->insert("tsue_logs", $buildQuery);
}
function aaaaal()
{
if( isset($_POST["option_name"]) && !empty($_POST["option_name"]) )
{
logadminaction(get_phrase("log_x_has_been_saved", trim($_POST["option_name"])));
}
}
function html_clean($text = "")
{
return (trim($text) != "" ? htmlspecialchars($text, ENT_QUOTES) : "");
}
function html_declean($text)
{
return str_replace(array( "<", ">", """, "&" ), array( "<", ">", "\"", "&" ), $text);
}
function safe_names($string = "", $delimer = "-")
{
if( ctype_digit($string) || !$string )
{
return $string;
}
$string = preg_replace("#[^a-zA-Z0-9\.\" . $delimer . "]#", $delimer, $string);
$string = preg_replace("#\" . $delimer . "\" . $delimer . "+#", $delimer, $string);
return trim($string);
}
function is_valid_string($string)
{
return (!preg_match("#^[a-zA-Z0-9]+\$#", $string) ? false : true);
}
function removewhitespaces($text)
{
return trim(preg_replace("/\s+/", " ", $text));
}
function aaaaio($phrase)
{
return (!preg_match("#^[a-zA-Z0-9_]+\$#", $phrase) ? false : true);
}
function is_valid_email($email)
{
return !isemailbanned($email) && filter_var($email, FILTER_VALIDATE_EMAIL);
}
function isemailbanned($email)
{
global $TSUE;
if( !empty($TSUE["TSUE_Settings"]->settings["banned_emails_cache"]) )
{
foreach( $TSUE["TSUE_Settings"]->settings["banned_emails_cache"] as $bannedEmail )
{
$bannedEmail = str_replace("\*", "(.*)", preg_quote($bannedEmail, "/"));
if( preg_match("/^" . $bannedEmail . "\$/", $email) )
{
return true;
}
}
}
return false;
}
function fetch_timezones($offset = "all")
{
$timezones = array( "-12" => get_phrase("timezone_gmt_minus_1200"), "-11" => get_phrase("timezone_gmt_minus_1100"), "-10" => get_phrase("timezone_gmt_minus_1000"), "-9" => get_phrase("timezone_gmt_minus_0900"), "-8" => get_phrase("timezone_gmt_minus_0800"), "-7" => get_phrase("timezone_gmt_minus_0700"), "-6" => get_phrase("timezone_gmt_minus_0600"), "-5" => get_phrase("timezone_gmt_minus_0500"), "-4.5" => get_phrase("timezone_gmt_minus_0430"), "-4" => get_phrase("timezone_gmt_minus_0400"), "-3.5" => get_phrase("timezone_gmt_minus_0330"), "-3" => get_phrase("timezone_gmt_minus_0300"), "-2" => get_phrase("timezone_gmt_minus_0200"), "-1" => get_phrase("timezone_gmt_minus_0100"), "0" => get_phrase("timezone_gmt_plus_0000"), "1" => get_phrase("timezone_gmt_plus_0100"), "2" => get_phrase("timezone_gmt_plus_0200"), "3" => get_phrase("timezone_gmt_plus_0300"), "3.5" => get_phrase("timezone_gmt_plus_0330"), "4" => get_phrase("timezone_gmt_plus_0400"), "4.5" => get_phrase("timezone_gmt_plus_0430"), "5" => get_phrase("timezone_gmt_plus_0500"), "5.5" => get_phrase("timezone_gmt_plus_0530"), "5.75" => get_phrase("timezone_gmt_plus_0545"), "6" => get_phrase("timezone_gmt_plus_0600"), "6.5" => get_phrase("timezone_gmt_plus_0630"), "7" => get_phrase("timezone_gmt_plus_0700"), "8" => get_phrase("timezone_gmt_plus_0800"), "9" => get_phrase("timezone_gmt_plus_0900"), "9.5" => get_phrase("timezone_gmt_plus_0930"), "10" => get_phrase("timezone_gmt_plus_1000"), "11" => get_phrase("timezone_gmt_plus_1100"), "12" => get_phrase("timezone_gmt_plus_1200") );
if( $offset === "all" )
{
return $timezones;
}
return $timezones[(string) $offset];
}
function createtabs($tabs = array( ), $EXTRA = "")
{
$DIV = "";
$LI = "";
$tabCount = 1;
foreach( $tabs as $phrase => $content )
{
$tabName = "tabs-" . $tabCount;
$LI .= "<li><a href=\"#" . $tabName . "\">" . $phrase . "</a></li>";
$DIV .= "<div id=\"" . $tabName . "\"><p>" . $content . "</p></div>";
$tabCount++;
}
return "
<div id=\"tabs\">
<ul>
" . $LI . "
</ul>
" . $DIV . "
</div>
<script type=\"text/javascript\">
\$( \"#tabs\" ).tabs({ history: true });
</script>
";
}
function aaaaoe($id, $items)
{
return "
<script type=\"text/javascript\">
\$(\"#" . $id . "\").sortable({items: \"" . $items . "\", cursor: \"move\", revert: true, forcePlaceholderSize: true, placeholder: \"ui-state-highlight\"});
</script>";
}
function generatepasskey($length = 30)
{
$passkey = "";
for( $i = 0; $i < $length; $i++ )
{
$passkey .= chr(rand(33, 126));
}
return sha1($passkey);
}
function getserver($key = NULL, $default = NULL)
{
if( NULL === $key )
{
return $_SERVER;
}
return (isset($_SERVER[$key]) ? $_SERVER[$key] : $default);
}
function getclientip($checkProxy = true)
{
if( $checkProxy && getserver("HTTP_CLIENT_IP") != NULL )
{
$ip = getserver("HTTP_CLIENT_IP");
}
else
{
if( $checkProxy && getserver("HTTP_X_FORWARDED_FOR") != NULL )
{
$ip = getserver("HTTP_X_FORWARDED_FOR");
}
else
{
$ip = getserver("REMOTE_ADDR");
}
}
return strip_tags($ip);
}
function banip($ip)
{
$ip = preg_replace("/\.+\$/", "", $ip);
if( !preg_match("/^\d+(\.\d+){0,2}(\.\d+|\.\*)?\$/", $ip) )
{
return false;
}
if( substr($ip, -2) == ".*" )
{
$ip = substr($ip, 0, -2);
}
$aaaaof = array( );
$aaaaog = array( );
$ipParts = tsue_explode(".", $ip);
foreach( $ipParts as $part )
{
if( $part < 0 || 255 < $part )
{
return false;
}
$aaaaof[] = $part;
$aaaaog[] = $part;
}
while( count($aaaaof) < 4 )
{
$aaaaof[] = 0;
$aaaaog[] = 255;
}
$aaaaoh = $ipParts[0];
$startLong = sprintf("%u", ip2long(implode(".", $aaaaof)));
$aaaaoi = sprintf("%u", ip2long(implode(".", $aaaaog)));
if( count($ipParts) < 4 )
{
$aaaaoj = implode(".", $ipParts) . ".*";
}
else
{
$aaaaoj = $ip;
}
return array( $aaaaoj, $aaaaoh, $startLong, $aaaaoi );
}
function getbannedips($submitButtons = true)
{
global $TSUE;
$DIV = "<div id=\"bannedIPaddresses\">";
$bannedIPs = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ip_match WHERE match_type = 'banned'");
if( $TSUE["TSUE_Database"]->num_rows($bannedIPs) )
{
while( $bannedIP = $TSUE["TSUE_Database"]->fetch_assoc($bannedIPs) )
{
$DIV .= "<label id=\"" . md5($bannedIP["ip"]) . "\"><input type=\"checkbox\" name=\"removeip[]\" value=\"" . $bannedIP["ip"] . "\" /> " . $bannedIP["ip"] . "</label>";
}
if( $submitButtons )
{
$DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("dashboard_options_ipban_delete") . "\" /> </div>";
}
}
else
{
$DIV .= get_phrase("dashboard_options_ipban_no_ip");
}
$DIV .= "</div>";
return $DIV;
}
function banemail($email)
{
if( $email == "*" || $email === "" )
{
return get_phrase("dashboard_options_emailban_invalid_email");
}
if( strpos($email, "*") === false )
{
if( strpos($email, "@") === false )
{
$email = "*" . $email;
}
if( strpos($email, ".") === false )
{
$email .= "*";
}
}
if( $email[0] == "@" )
{
$email = "*" . $email;
}
$lastChar = substr($email, -1);
if( $lastChar == "." || $lastChar == "@" )
{
$email .= "*";
}
$atPos = strpos($email, "@");
if( $atPos !== false && strpos($email, ".", $atPos) === false && strpos($email, "*", $atPos) === false )
{
$email .= "*";
}
if( $email == "*@*" || $email == "*.*" )
{
return get_phrase("dashboard_options_emailban_invalid_email2");
}
$email = preg_replace("/\*{2,}/", "*", $email);
return array( $email );
}
function aaaaar($submitButtons = true)
{
global $TSUE;
$DIV = "<div id=\"bannedEmailaddresses\">";
$aaaadq = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_email ORDER BY 'banned_email'");
if( $TSUE["TSUE_Database"]->num_rows($aaaadq) )
{
while( $bannedEmail = $TSUE["TSUE_Database"]->fetch_assoc($aaaadq) )
{
$DIV .= "<label id=\"" . md5($bannedEmail["banned_email"]) . "\"><input type=\"checkbox\" name=\"removeemail[]\" value=\"" . $bannedEmail["banned_email"] . "\" /> " . $bannedEmail["banned_email"] . "</label>";
}
if( $submitButtons )
{
$DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("dashboard_options_emailban_delete") . "\" /> </div>";
}
}
else
{
$DIV .= get_phrase("dashboard_options_emailban_no_email");
}
$DIV .= "</div>";
return $DIV;
}
function getbannedcountries($submitButtons = true)
{
global $TSUE;
$DIV = "<div id=\"bannedCountries\">";
$aaaadp = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_country ORDER BY 'country'");
if( $TSUE["TSUE_Database"]->num_rows($aaaadp) )
{
while( $aaaaok = $TSUE["TSUE_Database"]->fetch_assoc($aaaadp) )
{
$DIV .= "<label id=\"" . md5($aaaaok["country"]) . "\"><input type=\"checkbox\" name=\"removecountry[]\" value=\"" . $aaaaok["country"] . "\" /> " . $aaaaok["country"] . "</label>";
}
if( $submitButtons )
{
$DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("delete_selected_countries") . "\" /> </div>";
}
}
else
{
$DIV .= get_phrase("no_countries_banned");
}
$DIV .= "</div>";
return $DIV;
}
function aaaaau()
{
global $TSUE;
$formContents = "<div id=\"buildCensoringHTML\">";
$inputbox = inputbox("censoring_censor_character", getsetting("censor_cache", "censoring_censor_character"), "text texttiny");
$formContents .= aaaaan(get_phrase("dashboard_options_censoring_censor_character"), $inputbox, get_phrase("dashboard_options_censoring_censor_character_alt"));
$formContents .= aaaaan(get_phrase("dashboard_options_censoring_words_to_censor"), aaaaol(), get_phrase("dashboard_options_censoring_words_to_censor_alt"));
$formContents .= "</div>";
return $formContents;
}
function aaaaom($censorWords = array( ))
{
global $TSUE;
static $censorCount = 0;
$inputBox = "
<div class=\"comboBox\">
<label>" . get_phrase("dashboard_options_censoring_word_or_phrase") . " <input name=\"options[censorWords][" . $censorCount . "][word]\" value=\"" . ((isset($censorWords["word"]) ? $censorWords["word"] : "")) . "\" type=\"text\" class=\"text texttiny\" /></label>
</div>
<div class=\"comboBox\">
<label>" . get_phrase("dashboard_options_censoring_replacement") . " <input name=\"options[censorWords][" . $censorCount . "][replace]\" value=\"" . ((isset($censorWords["replace"]) ? $censorWords["replace"] : "")) . "\" type=\"text\" class=\"text texttiny\" /></label>
</div>
<div class=\"comboBox\">
<label>" . get_phrase("dashboard_options_censoring_match_exact_word") . " <input name=\"options[censorWords][" . $censorCount . "][exact]\" value=\"1\"" . ((isset($censorWords["exact"]) && $censorWords["exact"] == 1 ? " checked=\"checked\"" : "")) . " type=\"checkbox\" /></label>
</div>
<div class=\"clear\"></div>";
$censorCount++;
return $inputBox;
}
function aaaaol()
{
global $TSUE;
$censorCache = array( );
$DIV = "<div id=\"censoredWords\">";
if( $TSUE["TSUE_Settings"]->settings["censor_cache"] )
{
if( !empty($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["exact"]) )
{
foreach( $TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["exact"] as $word => $replace )
{
$DIV .= aaaaom(array( "word" => $word, "replace" => (is_string($replace) ? $replace : ""), "exact" => 1 ));
}
}
if( !empty($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["any"]) )
{
foreach( $TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["any"] as $word => $replace )
{
$DIV .= aaaaom(array( "word" => $word, "replace" => (is_string($replace) ? $replace : "") ));
}
}
}
$DIV .= aaaaom();
$DIV .= "</div>";
return $DIV;
}
function aaaaat(array &$words)
{
$output = array( "exact" => array( ), "any" => array( ) );
foreach( $words as $word )
{
if( !isset($word["word"]) || strval($word["word"]) === "" )
{
continue;
}
$writePosition = (!empty($word["exact"]) ? "exact" : "any");
if( isset($word["replace"]) && strval($word["replace"]) !== "" )
{
$output[$writePosition][strval($word["word"])] = strval($word["replace"]);
}
else
{
$output[$writePosition][strval($word["word"])] = strlen($word["word"]);
}
}
if( !$output["exact"] )
{
unset($output["exact"]);
}
if( !$output["any"] )
{
unset($output["any"]);
}
$words = $output;
return true;
}
function aaaabn($formContents = "", $hiddenInputBoxes = array( ), $action = "", $script = "", $id = "simpleForm")
{
$aaaaam = "";
if( !empty($hiddenInputBoxes) )
{
foreach( $hiddenInputBoxes as $name => $value )
{
$aaaaam .= "<input type=\"hidden\" name=\"" . $name . "\" value=\"" . $value . "\" />";
}
}
$HTML = "
<form method=\"post\" action=\"" . $action . "\" id=\"" . $id . "\" enctype=\"multipart/form-data\">
" . $aaaaam . "
" . $formContents . "
</form>" . $script;
return $HTML;
}
function aaaabg($formContents = "", $hiddenInputBoxes = array( ), $extra = "", $buttonPhrase = "button_save", $Scirpt = "")
{
$aaaaam = "";
if( !empty($hiddenInputBoxes) )
{
foreach( $hiddenInputBoxes as $name => $value )
{
$aaaaam .= "<input type=\"hidden\" name=\"" . $name . "\" value=\"" . $value . "\" />";
}
}
$HTML = "
<form method=\"post\" action=\"\" id=\"overlay_form\" enctype=\"multipart/form-data\">
<input type=\"hidden\" name=\"save_options\" value=\"yes\" />
" . $aaaaam . "
" . $formContents . "
<div>
" . aaaabm(get_phrase($buttonPhrase), get_phrase("button_reset")) . "
" . $extra . "
</div>
</form>" . $Scirpt;
return $HTML;
}
function aaaaan($optionTitle, $formOptions, $spanContent = "", $divID = "optionsInOverlay", $class = "", $spanRight = "", $rel = "", $nextToFormOptions = "", $Scirpt = "")
{
$aaaaon = preg_replace("#[^a-z]#", "", strtolower($optionTitle));
$HTML = "
<div id=\"" . $divID . "\"" . (($class ? " class=\"" . $class . "\"" : "")) . (($rel ? " rel=\"" . $rel . "\"" : "")) . ">
<div class=\"optionTitle\" id=\"" . $aaaaon . "\">" . (($spanRight ? "
<div class=\"floatRight\">" . $spanRight . "</div>" : "")) . "
" . $optionTitle . "
<div class=\"clear\"></div>
</div>
" . $formOptions . $nextToFormOptions . "
<div class=\"spanContent\">" . $spanContent . "</div>
</div>" . $Scirpt;
return $HTML;
}
function aaaabm($submitValue, $resetValue = "")
{
return "
<input type=\"submit\" class=\"submit\" value=\"" . $submitValue . "\" />
" . (($resetValue ? "<input type=\"reset\" class=\"submit\" value=\"" . $resetValue . "\" />" : ""));
}
function aaaaap()
{
global $TSUE;
$Themes = $TSUE["TSUE_Database"]->query("SELECT themeid, themename FROM tsue_themes WHERE active = 1");
$aaaadr = array( );
while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) )
{
$aaaadr += array( $Theme["themeid"] => ucfirst($Theme["themename"]) );
}
return $aaaadr;
}
function aaaaaq()
{
global $TSUE;
$Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title FROM tsue_languages WHERE active = 1");
$languageCache = array( );
while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
{
$languageCache += array( $Language["languageid"] => ucfirst($Language["title"]) );
}
return $languageCache;
}
function getcountryflag($flag)
{
global $TSUE;
$aaaaoo = DATAPATH . "countryFlags/";
foreach( array( "png", "jpg", "gif", "jpeg" ) as $ext )
{
if( is_file($aaaaoo . $flag . "." . $ext) )
{
return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/countryFlags/" . $flag . "." . $ext . "\" alt=\"" . $flag . "\" title=\"" . $flag . "\" border=\"0\" />";
}
}
}
function zip($source, $destination)
{
if( !extension_loaded("zip") || !file_exists($source) )
{
return false;
}
$zip = new ZipArchive();
if( !$zip->open($destination, ZIPARCHIVE::CREATE) )
{
return false;
}
$source = str_replace("\", "/", realpath($source));
if( is_dir($source) === true )
{
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
foreach( $files as $file )
{
$file = str_replace("\", "/", $file);
if( in_array(substr($file, strrpos($file, "/") + 1), array( ".", ".." )) )
{
continue;
}
if( is_dir($file) === true )
{
$zip->addEmptyDir(str_replace($source . "/", "", $file . "/"));
}
else
{
if( is_file($file) === true )
{
$zip->addFromString(str_replace($source . "/", "", $file), file_get_contents($file));
}
}
}
}
else
{
if( is_file($source) === true )
{
$zip->addFromString(basename($source), file_get_contents($source));
}
}
return $zip->close();
}
function aaaabd($filename = "", $runALL = false)
{
global $TSUE;
$TSUE["TSUE_Database"]->update("tsue_cron", array( "nextrun" => TIMENOW ), ($runALL ? "" : "filename = " . $TSUE["TSUE_Database"]->escape($filename)));
}
function copy_directory($source, $destination)
{
if( is_dir($source) )
{
if( !is_dir($destination) )
{
mkdir($destination);
}
$directory = dir($source);
while( false !== ($readdirectory = $directory->read()) )
{
if( $readdirectory == "." || $readdirectory == ".." )
{
continue;
}
$PathDir = $source . "/" . $readdirectory;
if( is_dir($PathDir) )
{
copy_directory($PathDir, $destination . "/" . $readdirectory);
continue;
}
copy($PathDir, $destination . "/" . $readdirectory);
}
$directory->close();
}
else
{
copy($source, $destination);
}
return true;
}
function rrmdir($dir)
{
foreach( glob($dir . "/*") as $file )
{
if( is_dir($file) )
{
rrmdir($file);
}
else
{
unlink($file);
}
}
rmdir($dir);
}
function aaaahq($string = "")
{
return str_replace(array( ">", "<" ), array( ">", "<" ), $string);
}
function aaaaho($string = "")
{
return str_replace(array( ">", "<" ), array( ">", "<" ), $string);
}
function listmutes($muted)
{
$mutes = array( );
if( strstr($muted, "1") !== false )
{
$mutes[] = get_phrase("muted_in_comments");
}
if( strstr($muted, "2") !== false )
{
$mutes[] = get_phrase("muted_in_forums");
}
if( strstr($muted, "3") !== false )
{
$mutes[] = get_phrase("muted_in_shoutbox");
}
if( strstr($muted, "4") !== false )
{
$mutes[] = get_phrase("muted_in_pm");
}
return implode(" - ", $mutes);
}
function get_member_avatar($memberid = 0, $gender = "", $size = "s")
{
global $TSUE;
$ValidAvatarExtensions = array( "jpg", "gif", "png", "jpeg" );
foreach( $ValidAvatarExtensions as $AvatarExtension )
{
if( is_file(DATAPATH . "avatars/" . $size . "/" . $memberid . "." . $AvatarExtension) )
{
return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/avatars/" . $size . "/" . $memberid . "." . $AvatarExtension . "?" . TIMENOW;
}
}
$themeName = aaaaff();
if( $gender && file_exists(ROOTPATH . "styles/" . $themeName . "/avatars/avatar_" . $gender . "_" . $size . ".png") )
{
return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $themeName . "/avatars/avatar_" . $gender . "_" . $size . ".png?" . TIMENOW;
}
return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $themeName . "/avatars/avatar_" . $size . ".png?" . TIMENOW;
}
function get_languages()
{
global $TSUE;
$Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title FROM tsue_languages WHERE active = 1");
$Selectbox = "<select name=\"languageid\" class=\"selectbox\">";
while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
{
$Selectbox .= "<option value=\"" . $Language["languageid"] . "\">" . ucfirst($Language["title"]) . "</option>";
}
$Selectbox .= "</select>";
return $Selectbox;
}
function aaaabk($name, $checkedArray = array( ))
{
global $TSUE;
static $id = 1;
$List = "
<ul id=\"sortable_" . $id . "\" class=\"ui-sorttable\">";
$count = 0;
if( !empty($checkedArray) && $checkedArray["0"] != "" )
{
$aaaamt = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $checkedArray));
$Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins WHERE pluginid IN (" . $aaaamt . ") ORDER BY FIELD(pluginid," . $aaaamt . ")");
$List .= createpluginlist($Plugins, $name, $checkedArray);
$aaaaop = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins WHERE pluginid NOT IN (" . $aaaamt . ")");
$List .= createpluginlist($aaaaop, $name, $checkedArray);
}
else
{
$Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins");
$List .= createpluginlist($Plugins, $name, $checkedArray);
}
$List .= "</ul>
<div style=\"clear: both;\"></div>
" . aaaaoe("sortable_" . $id, "li");
$id++;
return $List;
}
function createpluginlist($Plugins, $name, $checkedArray)
{
global $TSUE;
$List = "";
while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
$List .= "
<li class=\"ui-state-default\">
<label><input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Plugin["pluginid"] . "\"" . ((in_array($Plugin["pluginid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $Plugin["name"] . "</label>
</li>";
}
return $List;
}
function aaaabi($name, $checked = 0, $pageID = 0)
{
global $TSUE;
$List = "
<select name=\"" . $name . "\" class=\"select\">
<option value=\"0\"></option>";
$Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, name FROM tsue_pages WHERE pageid != " . $pageID . " AND parentid=0 ORDER BY sort ASC");
while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
{
$List .= "
<option value=\"" . $Page["pageid"] . "\"" . (($checked == $Page["pageid"] ? " selected=\"selected\"" : "")) . ">" . $Page["name"] . "</option>";
}
$List .= "
</select>";
return $List;
}
function torrentcategoriesinbutboxes($name, $type = "radio", $selectedCategories = array( ))
{
global $TSUE;
$aaaact = array( );
$aaaafx = array( );
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
if( $Category["pid"] )
{
$aaaact[$Category["pid"]][] = $Category;
}
else
{
$aaaafx[] = $Category;
}
}
$torrentCategories = "
<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
<tr>";
$Count = 0;
$maxPerRow = 4;
foreach( $aaaafx as $Category )
{
if( $Count % $maxPerRow == 0 )
{
$torrentCategories .= "
</tr><tr>";
}
$Count++;
$subCategoryList = "";
if( isset($aaaact[$Category["cid"]]) )
{
foreach( $aaaact[$Category["cid"]] as $subCategory )
{
$checked = "";
if( isset($_POST[$name][$subCategory["cid"]]) || in_array($subCategory["cid"], $selectedCategories) )
{
$checked = " checked=\"checked\"";
}
$subCategoryList .= "
<div style=\"margin-left: 20px;\" class=\"forumSub\">
<label><input type=\"" . $type . "\" name=\"" . $name . "\" value=\"" . $subCategory["cid"] . "\"" . $checked . " /> " . $subCategory["cname"] . "</label>
</div>";
}
}
$checked = "";
if( isset($_POST[$name][$Category["cid"]]) || in_array($Category["cid"], $selectedCategories) )
{
$checked = " checked=\"checked\"";
}
$torrentCategories .= "
<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
<label><input type=\"" . $type . "\" name=\"" . $name . "\" value=\"" . $Category["cid"] . "\"" . $checked . " /> " . $Category["cname"] . "</label>
" . $subCategoryList . "
</td>";
}
$torrentCategories .= "
</tr>
</table>";
return $torrentCategories;
}
function aaaacq($name, $checked = 0, $cid = 0)
{
global $TSUE;
$List = "
<select name=\"" . $name . "\" class=\"select\">
<option value=\"0\"></option>";
$Categories = $TSUE["TSUE_Database"]->query("SELECT cid, cname FROM tsue_torrents_categories WHERE cid != " . $cid . " AND pid = 0 ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$List .= "
<option value=\"" . $Category["cid"] . "\"" . (($checked == $Category["cid"] ? " selected=\"selected\"" : "")) . ">" . $Category["cname"] . "</option>";
}
$List .= "
</select>";
return $List;
}
function aaaaax($name, $checked = 0)
{
global $TSUE;
$List = "
<select name=\"" . $name . "\" class=\"select\">
<option value=\"0\"></option>";
$Categories = $TSUE["TSUE_Database"]->query("SELECT cid, cname FROM tsue_torrents_categories ORDER BY pid ASC, sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$List .= "
<option value=\"" . $Category["cid"] . "\"" . (($checked == $Category["cid"] ? " selected=\"selected\"" : "")) . ">" . $Category["cname"] . "</option>";
}
$List .= "
</select>";
return $List;
}
function aaaagv($name, $checked = 0, $forumID = 0)
{
global $TSUE;
$forumCategories = $subForums = array( );
$List = "
<select name=\"" . $name . "\" class=\"select\">
<option value=\"-1\"></option>";
$Forums = $TSUE["TSUE_Database"]->query("SELECT forumid, parentid, title FROM tsue_forums WHERE forumid != " . $forumID . " ORDER BY displayorder ASC");
if( $TSUE["TSUE_Database"]->num_rows($Forums) )
{
while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
{
if( $Forum["parentid"] == -1 )
{
$forumCategories[] = $Forum;
}
else
{
$subForums[$Forum["parentid"]][] = $Forum;
}
}
foreach( $forumCategories as $forumCategory )
{
$List .= "
<option value=\"" . $forumCategory["forumid"] . "\"" . (($checked == $forumCategory["forumid"] ? " selected=\"selected\"" : "")) . ">" . $forumCategory["title"] . "</option>";
if( isset($subForums[$forumCategory["forumid"]]) )
{
foreach( $subForums[$forumCategory["forumid"]] as $forum )
{
$List .= "
<option value=\"" . $forum["forumid"] . "\"" . (($checked == $forum["forumid"] ? " selected=\"selected\"" : "")) . "> |--" . $forum["title"] . "</option>";
}
}
}
}
$List .= "
</select>";
return $List;
}
function aaaakp($skip = 0)
{
global $TSUE;
$cache = array( );
$membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid FROM tsue_membergroups");
while( $m = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
{
if( $m["membergroupid"] != $skip )
{
$cache[] = $m["membergroupid"];
}
}
return $cache;
}
function aaaabf($name, $selected = 0, $emptyOption = false, $emptyText = "")
{
global $TSUE;
$List = "<select name=\"" . $name . "\" class=\"select\">";
if( $emptyOption )
{
$List .= "<option value=\"\"" . (($selected == 0 ? " selected=\"selected\"" : "")) . ">" . $emptyText . "</option>";
}
$memberGroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname FROM tsue_membergroups");
while( $memberGroup = $TSUE["TSUE_Database"]->fetch_assoc($memberGroups) )
{
$List .= "
<option value=\"" . $memberGroup["membergroupid"] . "\"" . (($selected == $memberGroup["membergroupid"] ? " selected=\"selected\"" : "")) . ">" . $memberGroup["groupname"] . "</option>";
}
$List .= "</select>";
return $List;
}
function aaaaaw($name, $checkedArray = array( ), $maxPerRow = 4)
{
global $TSUE;
$List = "
<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
<tr>";
$count = 0;
for( $Usergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups"); $Usergroup = $TSUE["TSUE_Database"]->fetch_assoc($Usergroups); $count++ )
{
if( $count % $maxPerRow == 0 )
{
$List .= "</tr><tr>";
}
$groupname = getmembername($Usergroup["groupname"], $Usergroup["groupstyle"]);
$List .= "
<td>
<label>
<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Usergroup["membergroupid"] . "\"" . ((is_array($checkedArray) && in_array($Usergroup["membergroupid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $groupname . "
</label>
</td>";
}
$List .= "
</tr>
</table>";
return $List;
}
function aaaabc($name, $checkedArray = array( ), $maxPerRow = 4)
{
global $TSUE;
$Forums = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums ORDER BY displayorder ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Forums) )
{
return get_phrase("no_results_found");
}
$forumCategories = $subForums = array( );
while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
{
if( $Forum["parentid"] == -1 )
{
$forumCategories[] = $Forum;
}
else
{
$subForums[$Forum["parentid"]][] = $Forum;
}
}
$List = "
<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
<tr>";
$Count = 0;
foreach( $forumCategories as $Forum )
{
if( $Count % $maxPerRow == 0 )
{
$List .= "
</tr><tr>";
}
$Count++;
$aaaaoq = "";
if( isset($subForums[$Forum["forumid"]]) )
{
foreach( $subForums[$Forum["forumid"]] as $subForum )
{
$aaaaoq .= aaaaor($subForum, $name, $checkedArray);
if( isset($subForums[$subForum["forumid"]]) )
{
foreach( $subForums[$subForum["forumid"]] as $deepSubForum )
{
$aaaaoq .= aaaaos($deepSubForum, $name, $checkedArray);
}
}
}
}
$List .= "
<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
<label>
<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Forum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($Forum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $Forum["title"] . "
</label>
" . $aaaaoq . "
</td>";
}
$List .= "
</tr>
</table>";
return $List;
}
function aaaaor($subForum, $name, $checkedArray = array( ))
{
$List = "
<div style=\"margin-left: 20px;\" class=\"forumSub\">
<label>
<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $subForum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($subForum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $subForum["title"] . "
</label>
</div>";
return $List;
}
function aaaaos($deepSubForum, $name, $checkedArray = array( ))
{
$List = "
<div style=\"margin-left: 40px;\" class=\"forumDeepSub\">
<label>
<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $deepSubForum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($deepSubForum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $deepSubForum["title"] . "
</label>
</div>";
return $List;
}
function currencycodes()
{
global $TSUE;
$optionArray = array( );
$Codes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_currency_codes ORDER BY code ASC");
while( $Code = $TSUE["TSUE_Database"]->fetch_assoc($Codes) )
{
$optionArray[$Code["code"]] = $Code["code"] . " - " . $Code["currency"];
}
return $optionArray;
}
function textarea($name, $value, $useTinymce = false, $class = "textarea")
{
$HTML = "
<textarea name=\"" . $name . "\" id=\"" . (($useTinymce ? "tinyMCE" : "ta_" . $name)) . "\" class=\"" . $class . "\">" . (($useTinymce ? $value : html_clean($value))) . "</textarea>";
return $HTML;
}
function aaaaay($name, $value, $useTinymce = false, $class = "textarea")
{
$HTML = "
<textarea name=\"" . $name . "\" id=\"" . (($useTinymce ? "tinyMCEAjax" : "ta_" . $name)) . "\" class=\"" . $class . "\">" . (($useTinymce ? $value : html_clean($value))) . "</textarea>";
return $HTML;
}
function radioyesno($name, $value, $title = array( ), $REL = "")
{
$HTML = "
<label for=\"ynrb_" . $name . "_1\">
<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_1\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"1\"" . (($value == 1 ? " checked=\"checked\"" : "")) . " /> " . ((isset($title["1"]) ? $title["1"] : get_phrase("option_yes"))) . "
</label>
<label for=\"ynrb_" . $name . "_0\">
<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_0\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"0\"" . (($value == 0 ? " checked=\"checked\"" : "")) . " /> " . ((isset($title["0"]) ? $title["0"] : get_phrase("option_no"))) . "
</label>";
return $HTML;
}
function aaaakz($name, $value, $Checked, $title, $REL = "")
{
$HTML = "
<label for=\"ynrb_" . $name . "_" . $value . "\">
<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_" . $value . "\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"" . $value . "\"" . (($Checked ? " checked=\"checked\"" : "")) . " /> " . $title . "
</label>";
return $HTML;
}
function inputbox($name, $value, $class = "text", $hint = "", $isDate = false, $isAutoComplete = false, $extra = "", $autoCompleteTag = "autoComplete")
{
$HTML = "
<input type=\"" . (($isDate ? "date" : "text")) . "\" class=\"" . $class . "\" name=\"" . $name . "\" id=\"" . (($isAutoComplete ? $autoCompleteTag : "ib_" . $name)) . "\" value=\"" . $value . "\"" . (($hint ? " rel=\"initTipsy\" title=\"" . $hint . "\"" : "")) . " /> " . $extra;
return $HTML;
}
function aaaacs($name, $hint = "")
{
return (DEMO_MODE ? "--File upload is disabled in demo mode--" : "<input type=\"file\" name=\"" . $name . "\" id=\"ib_" . $name . "\" />" . (($hint ? " <span class=\"smallPassiveText\">" . $hint . "</span>" : "")));
}
function selectbox($name, $value, $optionArray = array( ), $class = "select", $script = "", $strtolowerCheck = false)
{
$options = "";
foreach( $optionArray as $optionValue => $optionTitle )
{
$options .= "<option value=\"" . $optionValue . "\"" . (($optionValue == $value ? " selected=\"selected\"" : ($strtolowerCheck ? (strtolower($optionValue) == strtolower($value) ? " selected=\"selected\"" : "") : ""))) . ">" . $optionTitle . "</option>";
}
$HTML = "
<select name=\"" . $name . "\" id=\"" . $name . "\" class=\"" . $class . "\">
" . $options . "
</select>" . $script;
return $HTML;
}
function createtable($headMessage, $tableContents, $TDCount = 0, $spanRight = "")
{
$TABLE = "
<table border=\"0\" cellpadding=\"0\" width=\"100%\" cellspacing=\"0\" class=\"table\">
<tbody>
<tr>
<td class=\"tableHeader\" colspan=\"" . $TDCount . "\">
" . (($spanRight ? "<span class=\"floatRight\">" . $spanRight . "</span>" : "")) . $headMessage . "
</td>
</tr>
" . $tableContents . "
</tbody>
</table>";
return $TABLE;
}
function aaaaag($contentArray, $trClass = "tableContentTR", $tdClass = "tableContentTD")
{
$TABLE = "
<tr class=\"" . $trClass . "\">";
foreach( $contentArray as $Content )
{
$TABLE .= "
<td class=\"" . $tdClass . "\"" . ((isset($Content["width"]) && $Content["width"] ? " width=\"" . $Content["width"] . "\"" : "")) . ((isset($Content["colspan"]) ? " colspan=\"" . $Content["colspan"] . "\"" : "")) . ((isset($Content["align"]) ? " align=\"" . $Content["align"] . "\"" : "")) . ((isset($Content["valign"]) ? " valign=\"" . $Content["valign"] . "\"" : "")) . ((isset($Content["extra"]) ? $Content["extra"] : "")) . ">" . ((isset($Content["text"]) ? $Content["text"] : "")) . "</td>";
}
$TABLE .= "
</tr>";
return $TABLE;
}
function getimage($Image, $alt = "", $class = "", $width = "", $height = "")
{
global $TSUE;
return "<img src=\"./images/" . $Image . "\" alt=\"" . $alt . "\" title=\"" . $alt . "\" border=\"0\" class=\"" . $class . "\"" . (($width ? " width=\"" . $width . "\"" : "")) . (($height ? " height=\"" . $height . "\"" : "")) . " />";
}
function aaaaky($title)
{
return getimage("status/help.png", $title, "helpImage");
}
function aaaaaf($Query, $Text, $Title = "")
{
global $TSUE;
return "<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $Query . "\" target=\"_blank\"" . (($Title ? " title=\"" . $Title . "\"" : "")) . ">" . $Text . "</a>";
}
function aaaaae($Queries)
{
global $TSUE;
$Links = "";
$Page = intval(getvar("page"));
foreach( $Queries as $Query => $Text )
{
$aaaaot = (isset($Text["confirmation"]) && $Text["confirmation"] ? " onclick=\"return TSUEAdmin.confirmAction('" . str_replace("'", "\'", $Text["confirmation"]) . "');\"" : "");
$linkClass = (isset($Text["class"]) ? " class=\"" . $Text["class"] . "\"" : "");
$REL = (isset($Text["rel"]) ? " rel=\"" . $Text["rel"] . "\"" : "");
$Links .= "<a href=\"" . ((strstr($Query, "?action") !== false ? $Query : "?action=" . $TSUE["action"] . (($TSUE["do"] ? "&do=" . $TSUE["do"] : "")) . "&" . $Query . (($Page ? "&page=" . $Page : "")))) . "\" target=\"" . ((isset($Text["target"]) ? $Text["target"] : "_self")) . "\"" . $aaaaot . $linkClass . $REL . ">" . $Text["phrase"] . "</a>";
}
return $Links;
}
function loadstyle($style)
{
global $TSUE;
$find = array( "{website_url}", "{themename}" );
$replace = array( $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"], aaaaff() );
$Row = $TSUE["TSUE_Database"]->query_result("SELECT css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"]) . " AND stylename = " . $TSUE["TSUE_Database"]->escape($style));
if( $Row )
{
return "
<style type=\"text/css\">
" . str_replace($find, $replace, $Row["css"]) . "
</style>";
}
}
function friendlypeerid($peer_id = "")
{
$peer_id = trim($peer_id, "-");
$peer_id = preg_replace("#[^a-zA-Z0-9\-]#", "", $peer_id);
$peer_id = explode("-", $peer_id);
return $peer_id["0"];
}
function pagination($total_rows = 0, $targetpage = "", $adjacents = 3, $forceItemsPerPage = false, $isArray = false, $deviceTag = "")
{
global $TSUE;
$perpage = ($forceItemsPerPage ? $forceItemsPerPage : $TSUE["items_perpage"]);
if( $total_rows < 1 || $perpage < 1 )
{
return array( "LIMIT 0, " . $total_rows, "" );
}
$targetpage = "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&" . (($targetpage ? $targetpage . "&" : ""));
$lastpage = ceil($total_rows / $perpage);
if( $isArray )
{
$lastpage--;
}
if( $lastpage <= 1 )
{
return array( "LIMIT 0, " . $total_rows, "" );
}
$page = intval(getvar("page"));
if( $lastpage < $page )
{
$page = $lastpage;
}
if( $page )
{
$start = ($page - 1) * $perpage;
}
else
{
$start = 0;
}
if( $page == 0 )
{
$page = 1;
}
$prev = $page - 1;
$next = $page + 1;
$lpm1 = $lastpage - 1;
$pagination = "";
if( 1 < $lastpage )
{
$pagination .= "<div class=\"pagination\"><ul>";
if( 1 < $page )
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $prev . $deviceTag . "\">«</a></li>";
}
if( $lastpage < 7 + $adjacents * 2 )
{
for( $counter = 1; $counter <= $lastpage; $counter++ )
{
if( $counter == $page )
{
$pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
}
else
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
}
}
}
else
{
if( 5 + $adjacents * 2 < $lastpage )
{
if( $page < 1 + $adjacents * 2 )
{
for( $counter = 1; $counter < 4 + $adjacents * 2; $counter++ )
{
if( $counter == $page )
{
$pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
}
else
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
}
}
$pagination .= "<li>...</li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $lpm1 . $deviceTag . "\">" . $lpm1 . "</a></li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $lastpage . $deviceTag . "\">" . $lastpage . "</a></li>";
}
else
{
if( $page < $lastpage - $adjacents * 2 && $adjacents * 2 < $page )
{
$pagination .= "<li><a href=\"" . $targetpage . "page=1" . $deviceTag . "\">1</a></li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=2" . $deviceTag . "\">2</a></li>";
$pagination .= "<li>...</li>";
for( $counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++ )
{
if( $counter == $page )
{
$pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
}
else
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
}
}
$pagination .= "<li>...</li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $lpm1 . $deviceTag . "\">" . $lpm1 . "</a></li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $lastpage . $deviceTag . "\">" . $lastpage . "</a></li>";
}
else
{
$pagination .= "<li><a href=\"" . $targetpage . "page=1" . $deviceTag . "\">1</a></li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=2" . $deviceTag . "\">2</a></li>";
$pagination .= "<li>...</li>";
for( $counter = $lastpage - (2 + $adjacents * 2); $counter <= $lastpage; $counter++ )
{
if( $counter == $page )
{
$pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
}
else
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
}
}
}
}
}
}
if( $page < $counter - 1 )
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $next . $deviceTag . "\">»</a></li>";
}
$pagination .= "<li><a href=\"" . $targetpage . "\" id=\"setGlobalPerPage\"><img src=\"./images/buttons/options.png\" alt=\"" . get_phrase("set_limit_the_number_of_items_to_show") . "\" title=\"" . get_phrase("set_limit_the_number_of_items_to_show") . "\" height=\"14\" /></a></li>";
$script = "
<script type=\"text/javascript\">
\$(\"#setGlobalPerPage\").click(function(e)
{
e.preventDefault();
if(\$('form[name=\"setGlobalPerPageForm\"]').length)
{
return false;
}
var \$ppLink = \$(this), \$targetURL = \$ppLink.attr(\"href\");
if(\$targetURL)
{
TSUEAdmin.dialog('<form method=\"post\" name=\"setGlobalPerPageForm\">" . get_phrase("the_global_perpage_pagination_limit", $TSUE["items_perpage"]) . " <input type=\"text\" class=\"text textVeryTiny\" name=\"newperpage\" /> <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_save") . "\" /></form>');
\$('form[name=\"setGlobalPerPageForm\"]').submit(function(e)
{
e.preventDefault();
var \$newperpage = parseInt(\$('input[name=\"newperpage\"]', \$(this)).val());
if(\$newperpage)
{
TSUEAdmin.setCookie(\"newperpage\", \$newperpage)
window.location = \$targetURL+\"&newperpage=\"+\$newperpage;
}
return false;
});
}
return false;
});
</script>";
$pagination .= "</ul></div>" . $script . "
";
return array( "LIMIT " . $start . ", " . $perpage, $pagination );
}
return array( "LIMIT 0, " . $total_rows, "" );
}
function updatesettings($settingname, $settingvalues)
{
global $TSUE;
$BuildQuery = array( "settingname" => $settingname, "settingvalues" => serialize($settingvalues) );
$TSUE["TSUE_Database"]->delete("tsue_settings", "settingname = " . $TSUE["TSUE_Database"]->escape($settingname));
$TSUE["TSUE_Database"]->insert("tsue_settings", $BuildQuery);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
}
function generate_random_string($length = 7, $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz234567890")
{
$chars_length = strlen($chars) - 1;
$string = $chars[rand(0, $chars_length)];
$i = 1;
while( $i < $length )
{
$r = $chars[rand(0, $chars_length)];
if( $r != $string[$i - 1] )
{
$string .= $r;
}
$i = strlen($string);
}
return $string;
}
function cookie_set($name = "", $value = "", $expires = 0)
{
global $TSUE;
setcookie($name, $value, $expires, $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_path"], $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_domain"]);
}
function sendpm($subject, $owner_memberid, $receiver_memberid, $reply)
{
global $TSUE;
$BuildQuery = array( "subject" => $subject, "owner_memberid" => $owner_memberid, "receiver_memberid" => $receiver_memberid, "message_date" => TIMENOW, "is_unread" => 1, "viaAdminCP" => 1 );
if( $TSUE["TSUE_Database"]->insert("tsue_messages_master", $BuildQuery) )
{
$message_id = $TSUE["TSUE_Database"]->insert_id();
if( $message_id )
{
$BuildQuery = array( "message_id" => $message_id, "memberid" => $owner_memberid, "reply_date" => TIMENOW, "reply" => $reply );
if( $TSUE["TSUE_Database"]->insert("tsue_messages_replies", $BuildQuery) )
{
$TSUE["TSUE_Database"]->update("tsue_members", array( "unread_messages" => array( "escape" => 0, "value" => "unread_messages + 1" ) ), "memberid = " . $TSUE["TSUE_Database"]->escape($receiver_memberid));
return $message_id;
}
}
}
return false;
}
function sent_mail($to, $toname = "", $subject, $message, $from = "", $fromname = "", $nl2br = 1)
{
global $TSUE;
$from = ($from ? $from : $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"]);
$fromname = ($fromname ? $fromname : $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]);
if( $nl2br )
{
$message = nl2br($message);
}
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["mail_type"] == 1 )
{
$TSUEMAIL = new TSUESMTP();
$TSUEMAIL->start($to, $toname, $subject, $message, $from, $fromname);
return $TSUEMAIL->send();
}
$mid = generate_random_string(32);
$name = $_SERVER["SERVER_NAME"];
$headers = "To: " . $toname . " <" . $to . ">" . PHP_EOL;
$headers .= "From: " . $fromname . " <" . $from . ">" . PHP_EOL;
$headers .= "Reply-To: " . $fromname . " <" . $from . ">" . PHP_EOL;
$headers .= "Return-Path: " . $fromname . " <" . $from . ">" . PHP_EOL;
$headers .= "Message-ID: <" . $mid . " thesystem@" . $name . ">" . PHP_EOL;
$headers .= "X-Mailer: PHP v" . phpversion() . PHP_EOL;
$headers .= "Content-Transfer-Encoding: 8bit" . PHP_EOL;
$headers .= "X-Sender: TSUE PHP-Mailer" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/html; charset=" . $TSUE["TSUE_Language"]["charset"] . PHP_EOL;
@ini_set("sendmail_from", $from);
return @mail($to, $subject, $message, $headers, ($TSUE["TSUE_Settings"]->settings["global_settings"]["use_f_parameter"] ? "-f " . $from : ""));
}
function alert_member($alerted_memberid, $memberid, $membername, $content_type, $content_id, $action, $Extra = 0)
{
global $TSUE;
$BuildQuery = array( "alerted_memberid" => $alerted_memberid, "memberid" => $memberid, "membername" => $membername, "content_type" => $content_type, "content_id" => $content_id, "action" => $action, "event_date" => TIMENOW, "extra" => $Extra );
if( $TSUE["TSUE_Database"]->insert("tsue_member_alerts", $BuildQuery) )
{
$TSUE["TSUE_Database"]->query("UPDATE tsue_members SET unread_alerts = unread_alerts + 1 WHERE memberid = " . $TSUE["TSUE_Database"]->escape($alerted_memberid));
}
}
function aaaajk($languageID)
{
global $TSUE;
return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/languageFlags/" . $languageID . ".png?p=" . TIMENOW . "\" alt=\"\" title=\"\" border=\"0\" />";
}
function downloadfile($fullPath = "", $fileName = "", $contents = "")
{
if( headers_sent() )
{
exit( "Critical Error: Headers already sent!" );
}
if( ini_get("zlib.output_compression") )
{
ini_set("zlib.output_compression", "Off");
}
if( !$contents && !is_file($fullPath) )
{
exit( get_phrase("message_content_error") );
}
if( $fileName && $contents )
{
$filesize = strlen($contents);
$extension = file_extension($fileName);
}
else
{
if( $fullPath && $fileName && file_exists($fullPath) )
{
$filesize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$extension = strtolower($path_parts["extension"]);
}
else
{
exit( get_phrase("message_content_error") );
}
}
$imageTypes = array( "gif" => "image/gif", "jpg" => "image/jpeg", "jpeg" => "image/jpeg", "jpe" => "image/jpeg", "png" => "image/png" );
if( in_array($extension, array_keys($imageTypes)) )
{
setheader("Content-type", $imageTypes[$extension], true);
setdownloadfilename($fileName, true);
}
else
{
setheader("Content-type", "unknown/unknown", true);
setdownloadfilename($fileName);
}
setheader("ETag", TIMENOW, true);
setheader("Content-Length", $filesize, true);
if( $fullPath )
{
readfile($fullPath);
}
else
{
echo $contents;
exit();
}
}
function setdownloadfilename($fileName, $inline = false)
{
setheader("Content-Disposition", (($inline ? "inline" : "attachment")) . "; filename=\"" . str_replace("\"", "", $fileName) . "\"", true);
}
function setheader($name, $value, $replace = true)
{
$value = str_replace(array( "
", "
" ), array( "\r", "\n" ), $value);
header($name . ": " . $value, $replace);
}
function get_torrent_category_image($cid = "")
{
global $TSUE;
$ValidTorrentCategoryExtensions = array( "jpg", "gif", "png", "jpeg" );
foreach( $ValidTorrentCategoryExtensions as $TorrentCategoryExtension )
{
if( is_file(DATAPATH . "torrents/category_images/" . $cid . "." . $TorrentCategoryExtension) )
{
return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/category_images/" . $cid . "." . $TorrentCategoryExtension;
}
}
}
function aaaaff()
{
global $TSUE;
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"]));
return $Theme["themename"];
}
function member_ratio($up = 0, $down = 0, $noHTML = false)
{
$ratio = 0;
if( 0 < $down )
{
$ratio = number_format($up / $down, 2);
}
if( $noHTML )
{
return $ratio;
}
$aaaaou = ($ratio ? ($ratio < 1 ? "ratioBad" : "ratioGood") : "ratioNull");
return "<span class=\"" . $aaaaou . "\">" . $ratio . "</span>";
}
function tsue_explode($pattern = ",", $subject = "")
{
return preg_split("#[" . $pattern . "]+#", $subject, -1, PREG_SPLIT_NO_EMPTY);
}
function posttotwitter($message = "", $maxLength = 140)
{
$consumerKey = getsetting("global_settings", "consumerKey");
$consumerSecret = getsetting("global_settings", "consumerSecret");
$accessToken = getsetting("global_settings", "accessToken");
$accessTokenSecret = getsetting("global_settings", "accessTokenSecret");
if( !$consumerKey || !$consumerSecret || !$accessToken || !$accessTokenSecret )
{
return errormessage(get_phrase("please_setup_twitter_api_options_first"));
}
$cacert = DATAPATH . "cache/cacert.pem";
if( !file_exists($cacert) || filemtime($cacert) < TIMENOW - 86400 )
{
file_put_contents($cacert, file_get_contents("http://curl.haxx.se/ca/cacert.pem"));
}
$tmhOAuth = new tmhOAuth(array( "consumer_key" => $consumerKey, "consumer_secret" => $consumerSecret, "user_token" => $accessToken, "user_secret" => $accessTokenSecret, "curl_cainfo" => $cacert, "curl_capath" => DATAPATH . "cache/" ));
$message = strip_tags($message);
if( $maxLength < strlen($message) )
{
$message = substr($message, 0, $maxLength - 4) . " ...";
}
$params = array( "status" => $message );
$response = $tmhOAuth->user_request(array( "method" => "POST", "url" => $tmhOAuth->url("1.1/statuses/update"), "params" => $params, "multipart" => false ));
return successmessage(get_phrase("tweet_has_been_sent")) . "<div style=\"border: 1px solid #ccc; padding: 3px; overflow: auto;\"><pre>HTTP STATUS CODE: " . print_r($response, true) . "</pre></div>";
}
function _obfuscated_000D2C2C2F061A04342C40313D230A0D1B293B33250B21_($value = "")
{
return inputbox("Poll[options][]", $value);
}
function _obfuscated_000D2909313106102D1E321B0B3E3035311A221B3E3938_($offset)
{
return sprintf("%s%02d:%02d", (0 <= $offset ? "+" : "-"), abs($offset / 3600), abs($offset % 3600));
}
function aaaant()
{
return array( "announceLog/", "avatars/l/", "avatars/m/", "avatars/s/", "backups/", "cache/", "countryFlags/", "downloads/files/", "downloads/previews/", "errors/", "gallery/l/", "gallery/s/", "languageFlags/", "posts/", "smilies/", "subTitles/", "torrents/auto_uploader/", "torrents/category_images/", "torrents/imdb/", "torrents/nfo/", "torrents/torrent_files/", "torrents/torrent_genres/", "torrents/torrent_images/l/", "torrents/torrent_images/m/", "torrents/torrent_images/s/" );
}
function yearselectbox()
{
global $TSUE;
global $setYear;
global $chartType;
$nowYear = convert_time(TIMENOW, "Y");
$minYear = $nowYear - 15;
$options = "";
for( $i = $minYear; $i <= $nowYear; $i++ )
{
$options .= "<option value=\"" . $i . "\"" . (($setYear == $i ? " selected=\"selected\"" : "")) . ">" . $i . "</option>";
}
return "
<div id=\"yearSelector\">
<form method=\"get\" id=\"yearForm\">
<select name=\"year\">
<optgroup label=\"" . get_phrase("dashboard_cron_entries_years") . "\">
" . $options . "
</optgroup>
</select>
</form>
</div>";
}
function primetimemembers($Year = 0)
{
global $TSUE;
$nowYear = convert_time(TIMENOW, "Y");
if( !$Year || $nowYear < $Year )
{
$Year = $nowYear;
}
$aaaadyu = array( );
$Members = $TSUE["TSUE_Database"]->query("SELECT lastactivity,lastvisit FROM tsue_members ORDER BY lastactivity ASC");
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$aaaadyu[] = array( "lastactivity" => ($Member["lastactivity"] ? $Member["lastactivity"] : $Member["lastvisit"]) );
}
$Hours = array( );
foreach( $aaaadyu as $Member )
{
$tlmhytu = convert_time($Member["lastactivity"], "Y");
if( $Year == $tlmhytu )
{
$date = convert_time($Member["lastactivity"], "H");
if( isset($Hours[$date]) )
{
$Hours[$date]++;
}
else
{
$Hours[$date] = 1;
}
}
}
unset($aaaadyu);
$buildScript = "data.addColumn(\"string\", \"Time\");
data.addRows(" . count($Hours) . ");" . PHP_EOL;
$i = 0;
foreach( $Hours as $Hour => $Count )
{
if( strlen($Hour) == 1 )
{
$Hour = "0" . $Hour;
}
$Hour = $Hour . ":00";
$buildScript .= "data.addColumn('number', '" . $Hour . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 0, '" . $Hour . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
$i++;
}
unset($Hours);
unset($i);
return array( "buildScript" => $buildScript, "title" => get_phrase("stats_most_active"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}
function primetimeregistrations($Year = 0)
{
global $TSUE;
$nowYear = convert_time(TIMENOW, "Y");
if( !$Year || $nowYear < $Year )
{
$Year = $nowYear;
}
$aaaadyu = array( );
$Members = $TSUE["TSUE_Database"]->query("SELECT joindate FROM tsue_members ORDER BY joindate ASC");
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$aaaadyu[] = array( "joindate" => $Member["joindate"] );
}
$Months = array( );
foreach( $aaaadyu as $Member )
{
$tvbhytu = convert_time($Member["joindate"], "Y");
if( $Year == $tvbhytu )
{
$date = convert_time($Member["joindate"], "F");
if( isset($Months[$date]) )
{
$Months[$date]++;
}
else
{
$Months[$date] = 1;
}
}
}
unset($aaaadyu);
$buildScript = "data.addColumn(\"string\", \"Month\");
data.addRows(" . count($Months) . ");" . PHP_EOL;
$i = 0;
foreach( $Months as $Month => $Count )
{
$buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
$i++;
}
unset($Months);
unset($i);
return array( "buildScript" => $buildScript, "title" => get_phrase("stats_registrations"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}
function primetimethreads($Year = 0)
{
global $TSUE;
$nowYear = convert_time(TIMENOW, "Y");
if( !$Year || $nowYear < $Year )
{
$Year = $nowYear;
}
$tyuhyg = array( );
$Threads = $TSUE["TSUE_Database"]->query("SELECT post_date FROM tsue_forums_threads ORDER BY post_date ASC");
while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
{
$tyuhyg[] = array( "post_date" => $Thread["post_date"] );
}
$Months = array( );
foreach( $tyuhyg as $Thread )
{
$postYear = convert_time($Thread["post_date"], "Y");
if( $Year == $postYear )
{
$date = convert_time($Thread["post_date"], "F");
if( isset($Months[$date]) )
{
$Months[$date]++;
}
else
{
$Months[$date] = 1;
}
}
}
unset($tyuhyg);
$buildScript = "data.addColumn(\"string\", \"Month\");
data.addRows(" . count($Months) . ");" . PHP_EOL;
$i = 0;
foreach( $Months as $Month => $Count )
{
$buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
$i++;
}
unset($Months);
unset($i);
return array( "buildScript" => $buildScript, "title" => get_phrase("stats_threads"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}
function primetimeposts($Year = 0)
{
global $TSUE;
$nowYear = convert_time(TIMENOW, "Y");
if( !$Year || $nowYear < $Year )
{
$Year = $nowYear;
}
$postsCache = array( );
$Posts = $TSUE["TSUE_Database"]->query("SELECT post_date FROM tsue_forums_posts ORDER BY post_date ASC");
while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) )
{
$postsCache[] = array( "post_date" => $Post["post_date"] );
}
$Months = array( );
foreach( $postsCache as $Post )
{
$postYear = convert_time($Post["post_date"], "Y");
if( $Year == $postYear )
{
$date = convert_time($Post["post_date"], "F");
if( isset($Months[$date]) )
{
$Months[$date]++;
}
else
{
$Months[$date] = 1;
}
}
}
unset($postsCache);
$buildScript = "data.addColumn(\"string\", \"Month\");
data.addRows(" . count($Months) . ");" . PHP_EOL;
$i = 0;
foreach( $Months as $Month => $Count )
{
$buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
$i++;
}
unset($Months);
unset($i);
return array( "buildScript" => $buildScript, "title" => get_phrase("stats_posts"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}
function primetimetorrents($Year = 0)
{
global $TSUE;
$nowYear = convert_time(TIMENOW, "Y");
if( !$Year || $nowYear < $Year )
{
$Year = $nowYear;
}
$tymhygr = array( );
$Torrents = $TSUE["TSUE_Database"]->query("SELECT added FROM tsue_torrents ORDER BY added ASC");
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
$tymhygr[] = array( "added" => $Torrent["added"] );
}
$Months = array( );
foreach( $tymhygr as $Torrent )
{
$tlmhygr = convert_time($Torrent["added"], "Y");
if( $Year == $tlmhygr )
{
$date = convert_time($Torrent["added"], "F");
if( isset($Months[$date]) )
{
$Months[$date]++;
}
else
{
$Months[$date] = 1;
}
}
}
unset($tymhygr);
$buildScript = "data.addColumn(\"string\", \"Month\");
data.addRows(" . count($Months) . ");" . PHP_EOL;
$i = 0;
foreach( $Months as $Month => $Count )
{
$buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
$i++;
}
unset($Months);
unset($i);
return array( "buildScript" => $buildScript, "title" => get_phrase("stats_torrents"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}
Did this file decode correctly?
Original Code
<?php
define("DEMO_MODE", false);
if( isset($_GET["noscript"]) )
{
exit( "<div style=\"border: 3px solid red; text-align: center; font-size: 18px; font-weight: bold; padding: 10px; width: 600px; height: 65px; margin: 100px auto; font-family: 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 1.7;\">Your Browser does not support JavaScript, or it is disabled.<br/>To run this application, you must enable JavaScript!!</div>" );
}
aaaaaa();
$TSUE = array( );
$TSUE["breadcrumb"] = array( );
$TSUE["action"] = getvar("action");
$TSUE["do"] = getvar("do");
$TSUE["option"] = getvar("option");
$TSUE["items_perpage"] = 15;
$TSUE["array_items_perpage"] = 40;
$TSUE["TSUE_Database"] = new TSUE_Database();
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$Warnings = array( );
/*if( !DEMO_MODE )
{
aaaaab();
}*/
checkadmin();
if( isset($_GET["newperpage"]) )
{
$newperpage = intval(getvar("newperpage"));
if( $newperpage )
{
$TSUE["items_perpage"] = $newperpage;
}
unset($newperpage);
}
else
{
if( isset($_COOKIE["newperpage"]) )
{
$newperpage = intval($_COOKIE["newperpage"]);
if( $newperpage )
{
$TSUE["items_perpage"] = $newperpage;
}
unset($newperpage);
}
}
if( !DEMO_MODE && !IS_AJAX && substr(aaaaac(), 0, 12) != substr($TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"], 0, 12) && !headers_sent() )
{
$websiteURL = parse_url($TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
if( isset($websiteURL["path"]) && !empty($websiteURL["path"]) )
{
$TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] = str_replace($websiteURL["path"], "", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
}
echo "\r\n\t<!DOCTYPE html>\r\n\t<html id=\"TSUE\" lang=\"en-us\">\r\n\t\t<head>\r\n\t\t\t<noscript><meta http-equiv=refresh content=\"6; URL=" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . $_SERVER["REQUEST_URI"] . "\" /></noscript>\r\n\t\t\t<title>Fatal Error</title>\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\tsetTimeout(function()\r\n\t\t\t\t{\r\n\t\t\t\t\twindow.location=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . $_SERVER["REQUEST_URI"] . "\";\r\n\t\t\t\t}, 3000);\r\n\t\t\t</script>\r\n\t\t</head>\r\n\t\t<body>\r\n\t\t\t<div style=\"border: 3px solid red; text-align: center; font-size: 18px; font-weight: bold; padding: 10px; width: 600px; margin: 100px auto; font-family: 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 1.7;\">You are being redirected to correct url...</div>\r\n\t\t</body>\r\n\t</html>";
exit();
}
$outputContent = "";
if( !IS_AJAX )
{
$MySQLVariables = $TSUE["TSUE_Database"]->query("SHOW VARIABLES WHERE Variable_Name IN (\"ft_min_word_len\", \"max_allowed_packet\")");
if( $TSUE["TSUE_Database"]->num_rows($MySQLVariables) )
{
while( $V = $TSUE["TSUE_Database"]->fetch_assoc($MySQLVariables) )
{
if( $V["Variable_name"] == "max_allowed_packet" && $V["Value"] < 20 * 1024 * 1024 )
{
$Warnings[] = "MySQL <b>max_allowed_packet</b> is " . friendly_size($V["Value"]) . " on this server.<br />You need to increase this variable at least 20MB.";
}
if( $V["Variable_name"] == "ft_min_word_len" && 3 < $V["Value"] )
{
$Warnings[] = "MySQL <b>ft_min_word_len</b> is " . $V["Value"] . " on this server.<br />Please decrease this value to 3 .";
}
}
}
}
if( !IS_AJAX && !$TSUE["action"] )
{
addbreadcrumb(array( get_phrase("logged_welcome_back", $TSUE["TSUE_Member"]["membername"]) => TSUE_ADMINCP_URL ));
$Today = TIMENOW - 86400;
$totalRegisteredMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members");
$todayRegisteredMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members WHERE joindate >= " . $Today);
$membersAwaitingApproval = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members WHERE membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
$mutedMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_member_profile WHERE muted = 1");
$bannedMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_member_bans");
$warnedMembers = $TSUE["TSUE_Database"]->row_count("SELECT warnid FROM tsue_member_warns");
$todayCreatedThreads = $TSUE["TSUE_Database"]->row_count("SELECT threadid FROM tsue_forums_threads WHERE post_date >= " . $Today);
$todayPostedReplies = $TSUE["TSUE_Database"]->row_count("SELECT postid FROM tsue_forums_posts WHERE post_date >= " . $Today);
$todayPostedComments = $TSUE["TSUE_Database"]->row_count("SELECT comment_id FROM tsue_comments WHERE post_date >= " . $Today);
$todayLikedContents = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE like_id FROM tsue_liked_content WHERE like_date >= " . $Today);
$todayPostedReports = $TSUE["TSUE_Database"]->row_count("SELECT report_id FROM tsue_reports WHERE first_report_date >= " . $Today);
$todayPostedRequests = $TSUE["TSUE_Database"]->row_count("SELECT rid FROM tsue_requests WHERE added >= " . $Today);
$totalUploadedTorrents = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents");
$todayUploadedTorrents = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents WHERE added >= " . $Today);
$torrentsAwaitingSeed = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents WHERE seeders = 0");
if( getsetting("xbt", "active") )
{
$Seeders = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE fid FROM xbt_files_users WHERE active = 1 AND `left` = 0");
$Leechers = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE fid FROM xbt_files_users WHERE active = 1 AND `left` > 0");
}
else
{
$Seeders = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE pid FROM tsue_torrents_peers WHERE active = 1 AND `left` = 0");
$Leechers = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE pid FROM tsue_torrents_peers WHERE active = 1 AND `left` > 0");
}
$totalPeers = $Seeders + $Leechers;
$outputContent = "\r\n\t<div style=\"margin-left: 5px; text-align: center;\">\r\n\t\t<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; -khtml-border-radius: 5px;overflow: hidden;zoom: 1;\">\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Registered Members: <a href=\"?action=Member Manager&do=All Members\">" . number_format($totalRegisteredMembers) . "</a></div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Registered Members: " . number_format($todayRegisteredMembers) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Members Awaiting Approval: <a href=\"?action=Member Manager&do=Awaiting Approval\">" . number_format($membersAwaitingApproval) . "</a></div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Muted Members: <a href=\"?action=Member Manager&do=Muted Members\">" . number_format($mutedMembers) . "</a></div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Banned Members: <a href=\"?action=Member Manager&do=Banned Members\">" . number_format($bannedMembers) . "</a></div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Warned Members: <a href=\"?action=Member Manager&do=Warned Members\">" . number_format($warnedMembers) . "</a></div>\r\n\t\t</div>\r\n\t\t\r\n\t\t<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; -khtml-border-radius: 5px;overflow: hidden;zoom: 1;\">\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Created Threads: " . number_format($todayCreatedThreads) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Replies: " . number_format($todayPostedReplies) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Comments: " . number_format($todayPostedComments) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Liked Contents: " . number_format($todayLikedContents) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Reports: " . number_format($todayPostedReports) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Requests: " . number_format($todayPostedRequests) . "</div>\r\n\t\t</div>\r\n\r\n\t\t<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; -khtml-border-radius: 5px;overflow: hidden;zoom: 1;\">\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Uploaded Torrents: " . number_format($totalUploadedTorrents) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Uploaded Torrents: " . number_format($todayUploadedTorrents) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Torrents Awaiting Seed: " . number_format($torrentsAwaitingSeed) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Peers" . ((getsetting("xbt", "active") ? " (XBT)" : "")) . ": " . number_format($totalPeers) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Seeders: " . number_format($Seeders) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Leechers: " . number_format($Leechers) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\"></div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\"></div>\r\n\t\t</div>\r\n\t</div>\r\n\t\r\n\t<div style=\"clear: both;\"></div>\r\n\r\n\t<div id=\"tsue_news\">\r\n\t\t<img src=\"images/ajax/fb_ajax-loader.gif\" alt=\"\" title=\"\" class=\"ajaxLoader\" /> " . get_phrase("loading") . "\r\n\t</div>\r\n\t<br />\r\n\t\r\n\t<script type=\"text/javascript\">\r\n\t\t\$(document).ready(function()\r\n\t\t{\r\n\t\t\t\$.ajax\r\n\t\t\t({\r\n\t\t\t\turl: \"index.php\",\r\n\t\t\t\tdata: \"isAjax=1&action=tsue_news\",\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\tsuccess: function(response)\r\n\t\t\t\t{\r\n\t\t\t\t\t\$(\"#tsue_news\").css({\"text-align\": \"left\"}).html('<span style=\"float: right;\" id=\"showAllRecentNews\" class=\"submit\">Show All Recent News</span>'+response).find(\"div.dottedBottom\").each(function(i)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(i > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(this).css({\"display\":\"none\"});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\$(\"#showAllRecentNews\").click(function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\"div.dottedBottom\").fadeIn(300);\r\n\t\t\t\t\t\t\$(this).remove();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t</script>";
}
if( $TSUE["action"] == "server-status" )
{
checkdemomode();
aaaaad("Server");
if( $TSUE["do"] == "update" )
{
$serverIP = getserverip();
$Ports = array( "HTTP" => getsetting("server", "http_port", 80), "HTTPS" => getsetting("server", "https_port", 443), "SSH" => getsetting("server", "ssh_port", 22), "FTP" => getsetting("server", "ftp_port", 21), "POP3" => getsetting("server", "pop3_port", 110) );
if( array_search("", $Ports) !== false )
{
exit( errormessage(get_phrase("please_setup_your_server_first")) );
}
$Status = array( );
foreach( $Ports as $Type => $Port )
{
if( $Port )
{
$fp = @fsockopen($serverIP, $Port, $errno, $errstr, 7);
if( $fp )
{
$Status[$Type] = "up";
}
else
{
$Status[$Type] = "down";
}
}
}
$Rows = "";
foreach( $Status as $rowName => $Row )
{
$Rows .= "\r\n\t\t\t<td><img src=\"images/status/" . $Row . ".png\" alt=\"\" title=\"\" /></td>";
}
if( getsetting("xbt", "active") )
{
$fp = @fsockopen($serverIP, 2710, $errno, $errstr, 7);
$Rows .= "\r\n\t\t\t<td><img src=\"images/status/" . (($fp ? "up" : "down")) . ".png\" alt=\"\" title=\"\" /></td>";
}
$HTML = "\r\n\t\t<table cellpadding=\"0\" cellspacing=\"0\" class=\"table\">\r\n\t\t\t<tr>\r\n\t\t\t\t<th>Server</th>\r\n\t\t\t\t<th>HTTP</th>\r\n\t\t\t\t<th>HTTPS</th>\r\n\t\t\t\t<th>SSH</th>\r\n\t\t\t\t<th>FTP</th>\r\n\t\t\t\t<th>POP3</th>\r\n\t\t\t\t" . ((getsetting("xbt", "active") ? "\r\n\t\t\t\t<th>XBT</th>" : "")) . "\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td>" . U . " (" . $serverIP . ")</td>\r\n\t\t\t\t" . $Rows . "\r\n\t\t\t</tr>\r\n\t\t</table>";
echo $HTML;
exit();
}
else
{
echo "\r\n\t<!DOCTYPE html>\r\n\t<html id=\"TSUE\" lang=\"en-us\">\r\n\t\t<head>\r\n\t\t\t<noscript><meta http-equiv=refresh content=\"0; URL=" . TSUE_ADMINCP_URL . "?noscript=1\" /></noscript>\r\n\t\t\t<title>Server Status</title>\r\n\t\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/serverStatus.css\" />\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\tvar TSUEPhrases = [];\r\n\t\t\t</script>\r\n\t\t\t<script type=\"text/javascript\" src=\"./../js/tsue/jquery.js\"></script>\r\n\t\t</head>\r\n\t\t<body>\r\n\t\t\t<div class=\"form\">" . get_phrase("server_status_table_msg") . "</div>\r\n\t\t\t<div id=\"serverStatus\" class=\"form\">\r\n\t\t\t\t<img src=\"images/ajax/fb_ajax-loader.gif\" alt=\"\" title=\"\" class=\"ajaxLoader\" />" . get_phrase("loading") . "\r\n\t\t\t</div>\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t\$(window).load(function()\r\n\t\t\t\t{\r\n\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t({\r\n\t\t\t\t\t\turl: \"index.php\",\r\n\t\t\t\t\t\tdata: \"action=server-status&do=update\",\r\n\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(\"#serverStatus\").html(response);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t</script>\r\n\t\t</body>\r\n\t</html>";
exit();
}
}
else
{
if( $TSUE["action"] == "php-info" )
{
checkdemomode();
aaaaad("Server");
phpinfo();
exit();
}
if( $TSUE["action"] == "irc-debug" )
{
checkdemomode();
aaaaad("Options");
$TSUE_IRCBot = new TSUE_IRCBot("debug");
echo $TSUE_IRCBot->Debug();
exit();
}
if( $TSUE["action"] == "closeGlobalWarning" && IS_AJAX )
{
$_SESSION["skipGlobalWarnings"] = TIMENOW;
exit();
}
if( $TSUE["action"] == "getDirectorySize" && IS_AJAX )
{
$validDirs = array( "avatars", "countryFlags", "downloads", "gallery", "languageFlags", "posts", "smilies", "subTitles", "torrents" );
$totalSize = 0;
foreach( $validDirs as $dir )
{
$totalSize += foldersize(DATAPATH . $dir);
}
$totalSize = friendly_size($totalSize);
exit( $totalSize );
}
else
{
if( $TSUE["action"] == "doCleanup" && IS_AJAX )
{
aaaaad("Cleanup");
$dir = trim(getvar("dir"));
if( $dir )
{
$validDirs = array( "avatars", "countryFlags", "downloads", "gallery", "languageFlags", "posts", "smilies", "subTitles", "torrents" );
$skipFiles = array( ".", "..", "index.html", ".htaccess" );
if( in_array($dir, $validDirs) )
{
$fullPath = DATAPATH . $dir . "/";
if( is_dir($fullPath) )
{
switch( $dir )
{
case "avatars":
$Result = $TSUE["TSUE_Database"]->query("SELECT memberid FROM tsue_members ORDER BY memberid ASC");
$Memberids = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Memberids[] = $Row["memberid"];
}
}
foreach( array( "l/", "m/", "s/" ) as $subDir )
{
if( is_dir($fullPath . $subDir) )
{
$Avatars = scandir($fullPath . $subDir);
if( $Avatars )
{
foreach( $Avatars as $Avatar )
{
$ext = strtolower(file_extension($Avatar));
if( in_array($ext, array( "jpg", "jpeg", "gif", "png" )) )
{
$memberid = str_replace(array( ".jpg", ".jpeg", ".gif", ".png" ), "", $Avatar);
if( !in_array($memberid, $Memberids) )
{
@unlink($fullPath . $subDir . $Avatar);
}
}
else
{
if( !in_array($Avatar, $skipFiles) )
{
@unlink($fullPath . $subDir . $Avatar);
}
}
}
}
}
}
break;
case "countryFlags":
$Flags = scandir($fullPath);
if( $Flags )
{
foreach( $Flags as $Flag )
{
$ext = strtolower(file_extension($Flag));
if( !in_array($ext, array( "gif", "jpg", "png", "jpeg" )) && !in_array($Flag, $skipFiles) )
{
@unlink($fullPath . $Flag);
}
}
}
break;
case "downloads":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename, preview FROM tsue_downloads");
$Filenames = $Previews = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
if( $Row["filename"] )
{
$Filenames[] = $Row["filename"];
}
if( $Row["preview"] )
{
$Previews[] = $Row["preview"];
}
}
}
foreach( array( "files/", "previews/" ) as $subDir )
{
if( is_dir($fullPath . $subDir) )
{
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $Previews) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
}
}
break;
case "gallery":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type IN(\"image_gallery_public\", \"image_gallery_private\") AND associated = 1");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Filenames[] = $Row["filename"];
}
}
foreach( array( "l/", "s/" ) as $subDir )
{
if( is_dir($fullPath . $subDir) )
{
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
}
}
break;
case "languageFlags":
$Result = $TSUE["TSUE_Database"]->query("SELECT languageid FROM tsue_languages ORDER BY languageid ASC");
$Languageids = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Languageids[] = $Row["languageid"];
}
}
$Flags = scandir($fullPath);
if( $Flags )
{
foreach( $Flags as $Flag )
{
$ext = strtolower(file_extension($Flag));
if( in_array($ext, array( "gif", "jpg", "png" )) )
{
$languageid = str_replace(array( ".gif", ".jpg", ".png" ), "", $Flag);
if( !in_array($languageid, $Languageids) )
{
@unlink($fullPath . $Flag);
}
}
else
{
if( !in_array($Flag, $skipFiles) )
{
@unlink($fullPath . $Flag);
}
}
}
}
break;
case "posts":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = \"posts\" AND associated = 1");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Filenames[] = $Row["filename"];
}
}
$Files = scandir($fullPath);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $File);
}
}
}
break;
case "smilies":
$Smilies = scandir($fullPath);
if( $Smilies )
{
foreach( $Smilies as $S )
{
$ext = strtolower(file_extension($S));
if( !in_array($ext, array( "gif", "jpg", "png" )) && !in_array($S, $skipFiles) )
{
@unlink($fullPath . $S);
}
}
}
break;
case "subTitles":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_subtitles");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
if( $Row["filename"] )
{
$Filenames[] = $Row["filename"];
}
}
}
$Files = scandir($fullPath);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $File);
}
}
}
break;
case "torrents":
$subDirs = array( "category_images/", "imdb/", "nfo/", "torrent_files/", "torrent_genres/", "torrent_images/" );
foreach( $subDirs as $subDir )
{
if( is_dir($fullPath . $subDir) )
{
switch( $subDir )
{
case "category_images/":
$Result = $TSUE["TSUE_Database"]->query("SELECT cid FROM tsue_torrents_categories ORDER BY cid ASC");
$Cids = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Cids[] = $Row["cid"];
}
}
$categoryImages = scandir($fullPath . $subDir);
if( $categoryImages )
{
foreach( $categoryImages as $categoryImage )
{
$ext = strtolower(file_extension($categoryImage));
if( in_array($ext, array( "png", "gif", "jpg", "jpeg" )) )
{
$cid = str_replace(array( ".png", ".gif", ".jpg", ".jpeg" ), "", $categoryImage);
if( !in_array($cid, $Cids) )
{
@unlink($fullPath . $subDir . $categoryImage);
}
}
else
{
if( !in_array($categoryImage, $skipFiles) )
{
@unlink($fullPath . $subDir . $categoryImage);
}
}
}
}
break;
case "imdb/":
$Result = $TSUE["TSUE_Database"]->query("SELECT content FROM tsue_imdb");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
if( $Row["content"] )
{
$Row["content"] = @unserialize($Row["content"]);
if( $Row["content"] && isset($Row["content"]["title_id"]) && $Row["content"]["title_id"] )
{
$Filenames[] = $Row["content"]["title_id"] . ".jpg";
}
}
}
}
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
break;
case "nfo/":
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
break;
case "torrent_files/":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = \"torrent_files\" AND associated = 1");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Filenames[] = $Row["filename"];
}
}
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
break;
case "torrent_genres/":
$Result = $TSUE["TSUE_Database"]->query("SELECT gicon FROM tsue_torrents_genres");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
if( $Row["gicon"] )
{
$Filenames[] = $Row["gicon"];
}
}
}
$Files = scandir($fullPath . $subDir);
if( $Files )
{
foreach( $Files as $File )
{
if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $File);
}
}
}
break;
case "torrent_images/":
$Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type IN (\"torrent_images\", \"torrent_screenshots\") AND associated = 1");
$Filenames = array( );
if( $TSUE["TSUE_Database"]->num_rows($Result) )
{
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
{
$Filenames[] = $Row["filename"];
}
}
foreach( array( "l/", "m/", "s/" ) as $deepSubDir )
{
if( is_dir($fullPath . $subDir . $deepSubDir) )
{
$Files = scandir($fullPath . $subDir . $deepSubDir);
if( $Files )
{
foreach( $Files as $File )
{
$ext = strtolower(file_extension($File));
if( !in_array($ext, array( "png", "gif", "jpg", "jpeg" )) && !in_array($File, $skipFiles) )
{
@unlink($fullPath . $subDir . $deepSubDir . $File);
}
}
}
}
}
break;
}
}
}
break;
}
}
}
}
exit();
}
if( $TSUE["action"] == "checkHitRunOptions" && IS_AJAX )
{
if( isset($_POST["HITRUN"]) )
{
$Options = $_POST["HITRUN"];
$XBT = $TSUE["TSUE_Settings"]->settings["xbt"]["active"];
$Rules = array( );
if( $XBT )
{
if( isset($Options["dayTolerance"]) && $Options["dayTolerance"] )
{
$Rules[] = "p.mtime < " . (TIMENOW - $Options["dayTolerance"] * 24 * 60 * 60);
}
if( isset($Options["announceLimit"]) && $Options["announceLimit"] )
{
$Rules[] = "p.announced < " . $Options["announceLimit"];
}
if( isset($Options["skipMembergroups"]) && !empty($Options["skipMembergroups"]) )
{
$Rules[] = "m.membergroupid NOT IN (" . implode(",", array_map("intval", $Options["skipMembergroups"])) . ")";
}
$Rules[] = "p.active = 0";
$Rules[] = "p.left = 0";
$Rules[] = "p.isWarned = 0";
$Rules[] = "p.downloaded > 0";
$WHERE = implode(" AND ", $Rules);
$Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.uploaded as total_uploaded, p.mtime as last_updated, p.announced, t.tid, t.name, t.size, t.options, m.memberid, m.membername, g.groupname, g.groupstyle FROM xbt_files_users p INNER JOIN tsue_torrents t ON (p.fid=t.tid) INNER JOIN tsue_members m ON (p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE " . $WHERE);
}
else
{
if( isset($Options["skipMembergroups"]) && !empty($Options["skipMembergroups"]) )
{
$Rules[] = "m.membergroupid NOT IN (" . implode(",", array_map("intval", $Options["skipMembergroups"])) . ")";
}
$WHERE = "";
if( $Rules )
{
$WHERE = " WHERE " . implode(" AND ", $Rules);
}
$Peers = $TSUE["TSUE_Database"]->query("\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT SQL_NO_CACHE\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUM(p.total_uploaded) AS total_uploaded, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMAX(p.last_updated) AS last_updated, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUM(p.announced) AS announced, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMAX(p.active) AS active, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMAX(p.left) AS `left`, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMAX(p.isWarned) AS isWarned, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUM(p.total_downloaded) AS total_downloaded, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt.tid, t.name, t.size, t.options, m.memberid, m.membername, g.groupname, g.groupstyle \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM tsue_torrents_peers p \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN tsue_torrents t USING(tid) \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN tsue_members m USING(memberid) \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN tsue_membergroups g USING(membergroupid)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" . $WHERE . " \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY p.tid, p.memberid \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tORDER BY p.last_updated DESC\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t");
}
$Data = "<div class=\"error\">" . get_phrase("no_results_found") . " " . get_phrase("check_hitrun_options") . "</div>";
if( $TSUE["TSUE_Database"]->num_rows($Peers) )
{
$Data = "\r\n\t\t<div style=\"max-height: 100px; overflow: auto; width: 100%;\">\r\n\t\t\t<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" class=\"table\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_membername") . "</td>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">Torrent</td>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_last_updated") . "</td>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_announced") . "</td>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">" . get_phrase("promotion_minRatio") . "</td>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">" . get_phrase("ratio") . "</td>\r\n\t\t\t\t</tr>";
while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
{
$torrentOptions = unserialize($Peer["options"]);
if( isset($torrentOptions["hitRunRatio"]) && $torrentOptions["hitRunRatio"] )
{
$passed = false;
if( $XBT )
{
$torrentOptions["hitRunRatio"] = 0 + $torrentOptions["hitRunRatio"];
if( member_ratio($Peer["total_uploaded"], $Peer["size"], true) < $torrentOptions["hitRunRatio"] )
{
$passed = false;
}
else
{
$passed = true;
}
}
else
{
if( isset($Options["dayTolerance"]) && $Options["dayTolerance"] && TIMENOW - $Options["dayTolerance"] * 86400 < $Peer["last_updated"] )
{
$passed = true;
}
else
{
if( isset($Options["announceLimit"]) && $Options["announceLimit"] && $Options["announceLimit"] <= $Peer["announced"] )
{
$passed = true;
}
else
{
if( $Peer["active"] )
{
$passed = true;
}
else
{
if( $Peer["left"] )
{
$passed = true;
}
else
{
if( $Peer["isWarned"] )
{
$passed = true;
}
else
{
if( !$Peer["total_downloaded"] )
{
$passed = true;
}
}
}
}
}
}
if( !$passed )
{
$torrentOptions["hitRunRatio"] = 0 + $torrentOptions["hitRunRatio"];
if( member_ratio($Peer["total_uploaded"], $Peer["size"], true) < $torrentOptions["hitRunRatio"] )
{
$passed = false;
}
else
{
$passed = true;
}
}
}
if( !$passed )
{
$datediff = TIMENOW - $Peer["last_updated"];
$days = floor($datediff / (60 * 60 * 24));
$days = get_phrase("x_days_ago", $days);
$Data .= "\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "target" => "_blank", "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) )) . "</td>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], strip_tags($Peer["name"])) . "</td>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . convert_time($Peer["last_updated"]) . " (<span style=\"font-size: 10px; color: #ccc;\">" . $days . "</span>)</td>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . number_format($Peer["announced"]) . "</td>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . $torrentOptions["hitRunRatio"] . "</td>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . member_ratio($Peer["total_uploaded"], $Peer["size"]) . "</td>\r\n\t\t\t\t\t</tr>";
}
}
}
$Data .= "\r\n\t\t\t</table>\r\n\t\t</div>\r\n\t\t<br />" . get_phrase("check_hitrun_options");
}
exit( $Data );
}
exit();
}
if( $TSUE["action"] == "tsue_news" && IS_AJAX )
{
$tsueNewsURL = "oops";
$HTML = fetchurl($tsueNewsURL);
exit( $HTML );
}
if( $TSUE["action"] == "checkAddonUpdates" && IS_AJAX )
{
aaaaad("TSUE Store");
if( !function_exists("simplexml_load_file") )
{
exit( "TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>." );
}
$fetchAddonsURL = "oops";
$Addons = fetchurl($fetchAddonsURL);
if( !$Addons )
{
exit( get_phrase("failed_to_open_x", "addons") );
}
$installedAddons = $TSUE["TSUE_Database"]->query("SELECT filename, title, version_string, version_id FROM tsue_admincp_addons WHERE active = 1");
if( $TSUE["TSUE_Database"]->num_rows($installedAddons) )
{
$installedAddonsCache = array( );
while( $A = $TSUE["TSUE_Database"]->fetch_assoc($installedAddons) )
{
$installedAddonsCache["'" . $A["filename"] . "'"] = $A;
}
$tableContents = aaaaag(array( array( "width" => "67%", "text" => "Title" ), array( "width" => "15%", "text" => "Installed Version" ), array( "width" => "18%", "text" => "Newest Version" ) ), "tableContentTR", "tableContentTDHeader");
foreach( $Addons->addon as $Addon )
{
if( isset($installedAddonsCache["'" . $Addon->filename . "'"]) )
{
$workWidth = $installedAddonsCache["'" . $Addon->filename . "'"];
if( $workWidth["version_id"] < $Addon->version_id )
{
$Addon->version_string = "<span style=\"font-weight: bold; font-size: 14px;\">v" . $Addon->version_string . "</span>";
}
else
{
$Addon->version_string = "v" . $Addon->version_string;
}
$tableContents .= aaaaag(array( array( "width" => "67%", "text" => $Addon->title ), array( "width" => "15%", "text" => "v" . $workWidth["version_string"] ), array( "width" => "18%", "text" => $Addon->version_string ) ));
}
}
$HTML = createtable(get_phrase("check_updates"), $tableContents);
exit( $HTML );
}
else
{
exit( "<div class=\"error\">" . get_phrase("there_is_no_any_addon_installed_yet") . "</div>" );
}
}
else
{
if( $TSUE["action"] == "getTSUEAddons" && IS_AJAX )
{
aaaaad("TSUE Store");
if( !function_exists("simplexml_load_file") )
{
exit( "TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>." );
}
$fetchAddonsURL = "oops";
$Addons = fetchurl($fetchAddonsURL);
if( !$Addons )
{
exit( get_phrase("failed_to_open_x", "addons") );
}
$listAddons = "";
foreach( $Addons->addon as $Addon )
{
if( $Addon->discount != "0.00" )
{
$Addon->price = "<s>" . $Addon->price . "</s> <span style=\"font-size: 13px;\">\$" . $Addon->discount . "</span>";
}
$listAddons .= "<br />";
}
exit( $listAddons );
}
else
{
if( $TSUE["action"] == "reset_passkey" && IS_AJAX )
{
checkdemomode();
aaaaad("All Members");
$memberid = intval(getvar("memberid"));
if( $memberid )
{
$passkey = generatepasskey();
$TSUE["TSUE_Database"]->update("tsue_members", array( "passkey" => $passkey ), "memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->update("tsue_member_profile", array( "torrent_pass" => substr($passkey, 0, 32) ), "memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
exit( $passkey );
}
}
if( $TSUE["action"] == "fixTorrentHash" && IS_AJAX )
{
checkdemomode();
aaaaad("Torrents");
$tid = intval(getvar("tid"));
if( $tid )
{
$Torrent = $TSUE["TSUE_Database"]->query_result("SELECT t.name, a.filename FROM tsue_torrents t LEFT JOIN tsue_attachments a ON (a.content_type='torrent_files' AND a.content_id=t.tid) WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
if( $Torrent )
{
$T = new Torrent();
if( $Torrent["filename"] )
{
$TorrentFile = DATAPATH . "torrents/torrent_files/" . $Torrent["filename"];
if( is_file($TorrentFile) )
{
$T->load(file_get_contents($TorrentFile));
$info_hash = $T->getHash();
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "info_hash" => $info_hash ), "tid=" . $TSUE["TSUE_Database"]->escape($tid));
_sendheaders(strip_tags($Torrent["name"]) . "~~~" . bin2hex($info_hash));
}
else
{
_sendheaders(strip_tags($Torrent["name"]) . "~~~n/a");
}
}
}
}
}
if( $TSUE["action"] == "resetIMDB" && IS_AJAX )
{
checkdemomode();
aaaaad("Torrents");
$tid = intval(getvar("tid"));
if( $tid )
{
$Torrent = $TSUE["TSUE_Database"]->query_result("SELECT name, options FROM tsue_torrents WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
if( $Torrent )
{
$torrentName = strip_tags($Torrent["name"]);
$Options = unserialize($Torrent["options"]);
if( $Options["imdb"] )
{
$IMDB = new IMDB($Options["imdb"]);
if( 2 < count($IMDB->movieInfo) )
{
$BuildQuery = array( "tid" => $tid, "content" => serialize($IMDB->movieInfo) );
$TSUE["TSUE_Database"]->replace("tsue_imdb", $BuildQuery);
$IMDB->posterPath = DATAPATH . "torrents/imdb/";
$IMDB->savePoster($IMDB->movieInfo["poster"]);
_sendheaders(strip_tags($Options["imdb"]) . "~~~" . $torrentName);
}
}
else
{
exit( "no_imdb~~~" . $torrentName );
}
}
}
}
if( $TSUE["action"] == "autoComplete" && IS_AJAX )
{
$keyword = getvar("keyword");
if( !$keyword )
{
exit();
}
switch( $TSUE["do"] )
{
case "searchMember":
$memberList = array( );
$Members = $TSUE["TSUE_Database"]->query("SELECT membername FROM tsue_members WHERE membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY membername ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Members) )
{
exit();
}
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$memberList[] = $Member["membername"];
}
_sendheaders(json_encode($memberList), "application/json");
break;
case "searchINAdminCP":
$Result = array( );
$Templates = $TSUE["TSUE_Database"]->query("SELECT template.templateid, template.themeid, template.templatename, theme.themename FROM tsue_templates template INNER JOIN tsue_themes theme USING(themeid) WHERE template.templatename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' OR template.template LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY template.themeid ASC, template.templatename ASC");
if( $TSUE["TSUE_Database"]->num_rows($Templates) )
{
$Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Templates</div>" );
while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) )
{
$Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Themes&themeid=" . $Template["themeid"] . "&type=manageTemplates&editTemplate=" . $Template["templateid"], "label" => "<b>Theme:</b> " . $Template["themename"] . " | <b>Template:</b> " . $Template["templatename"] );
}
}
$Styles = $TSUE["TSUE_Database"]->query("SELECT style.styleid, style.stylename, style.themeid, theme.themename FROM tsue_styles style INNER JOIN tsue_themes theme USING(themeid) WHERE style.stylename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' OR style.css LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY style.themeid ASC, style.stylename ASC");
if( $TSUE["TSUE_Database"]->num_rows($Styles) )
{
$Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Styles</div>" );
while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) )
{
$Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Themes&themeid=" . $Style["themeid"] . "&type=manageStyles&editStyle=" . $Style["styleid"], "label" => "<b>Theme:</b> " . $Style["themename"] . " | <b>Style:</b> " . $Style["stylename"] );
}
}
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY m.membername ASC");
if( $TSUE["TSUE_Database"]->num_rows($Members) )
{
$Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Members</div>" );
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Member Manager&do=All Members&edit=" . $Member["memberid"], "label" => getmembername($Member["membername"], $Member["groupstyle"]) );
}
}
$LangFound = array( );
$Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title, phrase_global FROM tsue_languages");
while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
{
$phraseGlobal = unserialize($Language["phrase_global"]);
foreach( $phraseGlobal as $Name => $Phrase )
{
if( strpos(strtolower($Phrase), strtolower($keyword)) !== false || strpos(strtolower($Name), strtolower($keyword)) !== false )
{
$LangFound[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Languages&type=editPhrase&languageid=" . $Language["languageid"] . "&text=" . $Name, "label" => "<b>" . $Language["title"] . ":</b> " . $Name );
}
}
}
if( $LangFound )
{
$Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Languages</div>" );
$Result = array_merge($Result, $LangFound);
unset($LangFound);
}
if( !$Result )
{
$Result = array( get_phrase("message_nothing_found") );
}
_sendheaders(json_encode($Result), "application/json");
}
}
if( $TSUE["action"] == "torrentCategoriesInbutboxes" && IS_AJAX )
{
_sendheaders(torrentcategoriesinbutboxes(getvar("name")));
}
if( $TSUE["action"] == "searchInTorrentsShowCatz" && IS_AJAX )
{
_sendheaders(torrentcategoriesinbutboxes("categories[]", "checkbox", tsue_explode(",", getvar("categories"))));
}
if( $TSUE["action"] == "rebuildForumCounters" && IS_AJAX )
{
aaaaad("Forum Manager");
$Forums = $TSUE["TSUE_Database"]->query("SELECT forumid, parentid FROM tsue_forums");
if( !$TSUE["TSUE_Database"]->num_rows($Forums) )
{
exit( errormessage(get_phrase("forums_no_registered_forum_yet")) );
}
while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
{
$Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads WHERE forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"]));
$threadCount = $TSUE["TSUE_Database"]->num_rows($Threads);
$replyCount = -1;
if( $threadCount )
{
while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
{
$Post = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(postid) AS replycount FROM tsue_forums_posts WHERE threadid=" . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
if( $Post["replycount"] )
{
$replyCount += $Post["replycount"];
}
}
}
if( $replyCount == -1 )
{
$replyCount = 0;
}
$last_post_info = "";
$last_post_threadid = 0;
$lastPostData = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"]) . " ORDER BY p.post_date DESC LIMIT 1");
if( $lastPostData )
{
$last_post_info = serialize(array( "lastpostdate" => $lastPostData["post_date"], "lastposter" => $lastPostData["membername"], "lastposterid" => $lastPostData["memberid"] ));
$last_post_threadid = $lastPostData["threadid"];
}
$buildQuery = array( "replycount" => $replyCount, "threadcount" => $threadCount, "last_post_info" => $last_post_info, "last_post_threadid" => $last_post_threadid );
$TSUE["TSUE_Database"]->update("tsue_forums", $buildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"]));
}
$Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads");
if( $TSUE["TSUE_Database"]->num_rows($Threads) )
{
while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
{
$last_post_info = "";
$last_post_threadid = 0;
$last_post_date = 0;
$findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]) . " ORDER BY p.post_date DESC LIMIT 1");
if( $findLastPosts )
{
$last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] ));
$last_post_threadid = $findLastPosts["threadid"];
$last_post_date = $findLastPosts["post_date"];
}
$reply_count = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as replyCount FROM tsue_forums_posts WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
$reply_count = $reply_count["replyCount"] - 1;
$buildQuery = array( "reply_count" => $reply_count, "last_post_info" => $last_post_info, "last_post_date" => $last_post_date );
$TSUE["TSUE_Database"]->update("tsue_forums_threads", $buildQuery, "threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
}
}
exit( successmessage("(" . number_format($TSUE["TSUE_Database"]->querycount) . ") " . get_phrase("forum_counters_has_been_updated")) );
}
if( $TSUE["action"] == "about" && IS_AJAX )
{
exit( "\r\n\t<hr />\r\n\t<b>RevolutioN WorlD " . V . "</b><br />\r\n\r\n\tCopyright © " . date("Y") . "<hr />" );
}
if( $TSUE["action"] == "checkUpdates" && IS_AJAX )
{
$URL = "oops";
$recentVersion = fetchurl($URL);
$currentVersion = V;
if( $recentVersion < $currentVersion )
{
$Result = "<div class=\"error\">oops</div>";
}
else
{
if( $currentVersion < $recentVersion )
{
$Result = "<div class=\"error\">A new version, " . $recentVersion . " is available to download!</div\">";
}
else
{
$Result = "<div class=\"success\">You are using version " . $currentVersion . "<br />Congratulations, this is the very latest version!</div>";
}
}
exit( $Result );
}
if( $TSUE["action"] == "Dashboard" )
{
addbreadcrumb(array( get_phrase("menu_dashboard") => TSUE_ADMINCP_URL . "?action=Dashboard" ));
if( !$TSUE["do"] )
{
$outputContent .= optionbox("Options", get_phrase("dashboard_options"), get_phrase("dashboard_options_alt"));
$outputContent .= optionbox("Pages", get_phrase("dashboard_pages"), get_phrase("dashboard_pages_alt"));
$outputContent .= optionbox("Polls", get_phrase("dashboard_polls"), get_phrase("dashboard_polls_alt"));
$outputContent .= optionbox("News", get_phrase("dashboard_news"), get_phrase("dashboard_news_alt"));
$outputContent .= optionbox("FAQ", get_phrase("dashboard_faq"), get_phrase("dashboard_faq_alt"));
$outputContent .= optionbox("Torrent Categories", get_phrase("dashboard_torrent_categories"), get_phrase("dashboard_torrent_categories_alt"));
$outputContent .= optionbox("Market", get_phrase("dashboard_market"), get_phrase("dashboard_market_alt"));
$outputContent .= optionbox("API Manager", get_phrase("dashboard_api_manager"), get_phrase("dashboard_api_manager_alt"));
$outputContent .= optionbox("Cron Entries", get_phrase("dashboard_cron_entries"), get_phrase("dashboard_cron_entries_alt"));
$outputContent .= optionbox("Rebuild Caches", get_phrase("dashboard_cache_rebuild_caches"), get_phrase("dashboard_cache_rebuild_caches_alt"));
$outputContent .= optionbox("Logs", get_phrase("dashboard_logs"), get_phrase("dashboard_logs_alt"));
$outputContent .= optionbox("Server", get_phrase("dashboard_server"), get_phrase("dashboard_server_alt"));
$outputContent .= optionbox("Notes", get_phrase("dashboard_notes"), get_phrase("dashboard_notes_alt"));
$outputContent .= optionbox("Statistics", get_phrase("dashboard_statistics"), get_phrase("dashboard_statistics_alt"));
$outputContent .= optionbox("Read PM", get_phrase("dashboard_readpm"), get_phrase("dashboard_readpm_alt"));
$outputContent .= optionbox("Database", get_phrase("database"), get_phrase("database_alt"));
$outputContent .= optionbox("Announcements", get_phrase("dashboard_announcements"), get_phrase("dashboard_announcements_alt"));
$outputContent .= optionbox("Torrents", get_phrase("navigation_torrents"), get_phrase("dashboard_torrents_alt"));
$outputContent .= optionbox("Add-ons", get_phrase("addons"), get_phrase("addons_alt"));
$outputContent .= optionbox("TSUE Store", get_phrase("tsue_store"), get_phrase("tsue_store_alt"));
$outputContent .= optionbox("Recent Comments", get_phrase("recent_comments"), get_phrase("recent_comments_alt"));
$outputContent .= optionbox("Torrent Genres", get_phrase("torrent_genres"), get_phrase("torrent_genres_alt"));
$outputContent .= optionbox("Advertisements", get_phrase("dashboard_ads"), get_phrase("dashboard_ads_alt"));
$outputContent .= optionbox("Shoutbox Channels", get_phrase("shoutbox_channels"), get_phrase("shoutbox_channels_alt"));
}
else
{
aaaaad($TSUE["do"]);
switch( $TSUE["do"] )
{
case "Options":
addbreadcrumb(array( get_phrase("dashboard_options") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleoptions();
break;
case "Pages":
addbreadcrumb(array( get_phrase("dashboard_pages") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlepages();
break;
case "Polls":
addbreadcrumb(array( get_phrase("dashboard_polls") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlepolls();
break;
case "News":
addbreadcrumb(array( get_phrase("dashboard_news") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlenews();
break;
case "FAQ":
addbreadcrumb(array( get_phrase("dashboard_faq") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlefaq();
break;
case "Torrent Categories":
addbreadcrumb(array( get_phrase("dashboard_torrent_categories_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handletorrentcategories();
break;
case "Market":
addbreadcrumb(array( get_phrase("dashboard_market") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlemarket();
break;
case "API Manager":
addbreadcrumb(array( get_phrase("dashboard_api_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleapimanager();
break;
case "Cron Entries":
addbreadcrumb(array( get_phrase("dashboard_cron_entries") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlecronentries();
break;
case "Rebuild Caches":
addbreadcrumb(array( get_phrase("dashboard_cache_rebuild_caches") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlerebuildcaches(true);
break;
case "Logs":
addbreadcrumb(array( get_phrase("dashboard_logs") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlelogs();
break;
case "Server":
addbreadcrumb(array( get_phrase("dashboard_server") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleserver();
break;
case "Notes":
addbreadcrumb(array( get_phrase("dashboard_notes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlenotes();
break;
case "Statistics":
addbreadcrumb(array( get_phrase("dashboard_statistics") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlestatistics();
break;
case "Read PM":
addbreadcrumb(array( get_phrase("dashboard_readpm_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlereadpm();
break;
case "Database":
addbreadcrumb(array( get_phrase("database_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handledatabase();
break;
case "Announcements":
addbreadcrumb(array( get_phrase("dashboard_announcements") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleannouncements();
break;
case "Torrents":
addbreadcrumb(array( get_phrase("dashboard_torrents_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handletorrents();
break;
case "Add-ons":
addbreadcrumb(array( get_phrase("addons") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleaddons();
break;
case "TSUE Store":
header("Location: " . TSUE_ADMINCP_URL . "?action=Dashboard&do=Add-ons&TSUEAddonStore=1");
exit();
case "Recent Comments":
addbreadcrumb(array( get_phrase("recent_comments") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlerecentcomments();
break;
case "Torrent Genres":
addbreadcrumb(array( get_phrase("torrent_genres") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handletorrentgenres();
break;
case "Advertisements":
addbreadcrumb(array( get_phrase("dashboard_ads") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleadvertisements();
break;
case "Shoutbox Channels":
addbreadcrumb(array( get_phrase("shoutbox_channels") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleshoutboxchannels();
}
}
}
if( $TSUE["action"] == "Plugin Manager" )
{
aaaaad($TSUE["action"]);
addbreadcrumb(array( get_phrase("menu_plugin_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
$outputContent .= aaaaah();
}
if( $TSUE["action"] == "Forum Manager" )
{
aaaaad($TSUE["action"]);
addbreadcrumb(array( get_phrase("menu_forum_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
if( !$TSUE["do"] )
{
$outputContent .= optionbox("Manage Forums", get_phrase("manage_forums"), get_phrase("manage_forums_alt"), $TSUE["action"]);
$outputContent .= optionbox("Thread Prefixes", get_phrase("thread_prefixes"), get_phrase("thread_prefixes"), $TSUE["action"]);
$outputContent .= optionbox("Quick Forum Permissions", get_phrase("permissions"), get_phrase("quick_forum_permissions"), $TSUE["action"]);
$outputContent .= optionbox("Rebuild Counters", get_phrase("rebuild_counters"), get_phrase("rebuild_counters_alt"), $TSUE["action"]);
}
else
{
switch( $TSUE["do"] )
{
case "Manage Forums":
addbreadcrumb(array( get_phrase("manage_forums_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleforums();
break;
case "Quick Forum Permissions":
addbreadcrumb(array( get_phrase("quick_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= aaaaai();
break;
case "Thread Prefixes":
addbreadcrumb(array( get_phrase("thread_prefixes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= threadprefixes();
break;
case "Rebuild Counters":
addbreadcrumb(array( get_phrase("rebuild_counters") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= rebuildforumcounters();
}
}
}
if( $TSUE["action"] == "Appearance" )
{
aaaaad($TSUE["action"]);
addbreadcrumb(array( get_phrase("dashboard_options_appearance") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
if( !$TSUE["do"] )
{
$outputContent .= optionbox("Themes", get_phrase("theme_manager_themes"), get_phrase("theme_manager_themes_alt"), $TSUE["action"]);
$outputContent .= optionbox("Languages", get_phrase("theme_manager_languages"), get_phrase("theme_manager_languages_alt"), $TSUE["action"]);
$outputContent .= optionbox("Upload Torrent", get_phrase("navigation_upload_torrent"), get_phrase("add_extra_fields"), $TSUE["action"]);
$outputContent .= optionbox("Auto Description", get_phrase("auto_description"), get_phrase("auto_description_alt"), $TSUE["action"]);
}
else
{
switch( $TSUE["do"] )
{
case "Themes":
addbreadcrumb(array( get_phrase("theme_manager_themes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlethemes();
break;
case "Languages":
addbreadcrumb(array( get_phrase("theme_manager_languages") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlelanguages();
break;
case "Upload Torrent":
addbreadcrumb(array( get_phrase("navigation_upload_torrent") . " | " . get_phrase("add_extra_fields") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleuploadtorrent();
break;
case "Auto Description":
addbreadcrumb(array( get_phrase("auto_description") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleautodescription();
}
}
}
if( $TSUE["action"] == "Member Manager" )
{
addbreadcrumb(array( get_phrase("menu_member_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
if( !$TSUE["do"] )
{
$outputContent .= optionbox("All Members", get_phrase("member_manager_list_all_members"), get_phrase("member_manager_list_all_members_alt"));
$outputContent .= optionbox("Awaiting Approval", get_phrase("member_manager_awaiting_approval"), get_phrase("member_manager_awaiting_approval_alt"));
$outputContent .= optionbox("Banned Members", get_phrase("member_manager_banned_members"), get_phrase("member_manager_banned_members_alt"));
$outputContent .= optionbox("Warned Members", get_phrase("member_manager_warned_members"), get_phrase("member_manager_warned_members_alt"));
$outputContent .= optionbox("Membergroups", get_phrase("member_manager_membergroups"), get_phrase("member_manager_membergroups_alt"));
$outputContent .= optionbox("Email Members", get_phrase("member_manager_email_members"), get_phrase("member_manager_email_members_alt"));
$outputContent .= optionbox("Search Members", get_phrase("member_manager_search_members"), get_phrase("member_manager_search_members_alt"));
$outputContent .= optionbox("Peers", get_phrase("member_manager_peers"), get_phrase("member_manager_peers_alt"));
$outputContent .= optionbox("Account Upgrades", get_phrase("upgrade_account_upgrades"), get_phrase("upgrade_account_upgrades_alt"));
$outputContent .= optionbox("Muted Members", get_phrase("member_manager_muted_members"), get_phrase("member_manager_muted_members_alt"));
$outputContent .= optionbox("PM Members", get_phrase("member_manager_pm_members"), get_phrase("member_manager_pm_members_alt"));
$outputContent .= optionbox("Promotions", get_phrase("promotions"), get_phrase("promotions_alt"));
$outputContent .= optionbox("Duplicate Ips", get_phrase("duplicate_ips"), get_phrase("duplicate_ips_alt"));
$outputContent .= optionbox("Hit and Runners", get_phrase("hit_and_runners"), get_phrase("stats_hitrun_warns"));
$outputContent .= optionbox("Test Permissions", get_phrase("test_permissions"), get_phrase("test_permissions_alt"));
$outputContent .= optionbox("Administrators", get_phrase("administrators"), get_phrase("administrators_alt"));
$outputContent .= optionbox("Gift", get_phrase("gift"), get_phrase("gift_alt"));
$outputContent .= optionbox("Mass Invite", get_phrase("mass_invite"), get_phrase("mass_invite_alt"));
$outputContent .= optionbox("Awards", get_phrase("awards"), get_phrase("awards_alt"));
$outputContent .= optionbox("Auto Warned Members", get_phrase("member_manager_auto_warned_members"), get_phrase("member_manager_auto_warned_members_alt"));
$outputContent .= optionbox("Uploader Activity", get_phrase("uploader_activity"), get_phrase("uploader_activity_alt"));
$outputContent .= optionbox("First Line Support", get_phrase("first_line_support"), get_phrase("first_line_support_alt"));
$outputContent .= optionbox("Spam Cleaner", get_phrase("spam_cleaner"), get_phrase("spam_cleaner_alt"));
}
else
{
aaaaad($TSUE["do"]);
switch( $TSUE["do"] )
{
case "All Members":
addbreadcrumb(array( get_phrase("member_manager_list_all_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= aaaaaj();
break;
case "Awaiting Approval":
addbreadcrumb(array( get_phrase("member_manager_awaiting_approval") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageawaitingapproval();
break;
case "Banned Members":
addbreadcrumb(array( get_phrase("member_manager_banned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managebannedmembers();
break;
case "Warned Members":
addbreadcrumb(array( get_phrase("member_manager_warned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managewarnedmembers();
break;
case "Membergroups":
addbreadcrumb(array( get_phrase("member_manager_membergroups") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managemembergroups();
break;
case "Email Members":
addbreadcrumb(array( get_phrase("member_manager_email_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageemailmembers();
break;
case "Search Members":
addbreadcrumb(array( get_phrase("member_manager_search_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managesearchmembers();
break;
case "Peers":
addbreadcrumb(array( get_phrase("member_manager_peers") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managepeers();
break;
case "Account Upgrades":
addbreadcrumb(array( get_phrase("upgrade_account_upgrades_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageaccountupgrades();
break;
case "Muted Members":
addbreadcrumb(array( get_phrase("member_manager_muted_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managemutedmembers();
break;
case "PM Members":
addbreadcrumb(array( get_phrase("member_manager_pm_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managepmmembers();
break;
case "Promotions":
addbreadcrumb(array( get_phrase("promotions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managepromotions();
break;
case "Duplicate Ips":
addbreadcrumb(array( get_phrase("duplicate_ips") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageduplicateips();
break;
case "Hit and Runners":
addbreadcrumb(array( get_phrase("hit_and_runners") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= aaaaak();
break;
case "Test Permissions":
addbreadcrumb(array( get_phrase("test_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managetestpermissions();
break;
case "Administrators":
addbreadcrumb(array( get_phrase("administrators_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageadministrators();
break;
case "Gift":
addbreadcrumb(array( get_phrase("gift") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managegift();
break;
case "Mass Invite":
addbreadcrumb(array( get_phrase("mass_invite") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managemassinvite();
break;
case "Awards":
addbreadcrumb(array( get_phrase("awards") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageawards();
break;
case "Auto Warned Members":
addbreadcrumb(array( get_phrase("member_manager_auto_warned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageautowarnedmembers();
break;
case "Uploader Activity":
addbreadcrumb(array( get_phrase("uploader_activity") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= manageuploaderactivity();
break;
case "First Line Support":
addbreadcrumb(array( get_phrase("first_line_support") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managefirstlinesupport();
break;
case "Spam Cleaner":
addbreadcrumb(array( get_phrase("spam_cleaner") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= managespamcleaner();
}
}
}
if( $TSUE["action"] == "File Manager" )
{
addbreadcrumb(array( get_phrase("menu_file_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
if( !$TSUE["do"] )
{
$outputContent .= optionbox("Prune", get_phrase("file_manager_prune_cache"), get_phrase("file_manager_prune_cache_alt"));
$outputContent .= optionbox("Smilies", get_phrase("file_manager_smilies"), get_phrase("file_manager_smilies_alt"));
$outputContent .= optionbox("Country Flags", get_phrase("file_manager_country_flags"), get_phrase("file_manager_country_flags_alt"));
$outputContent .= optionbox("Attachment Browser", get_phrase("attachments"), get_phrase("attachment_browser"));
$outputContent .= optionbox("Downloads", get_phrase("dm_title"), get_phrase("dm_title_alt"));
$outputContent .= optionbox("Permissions", get_phrase("permissions"), get_phrase("permissions_alt"));
$outputContent .= optionbox("Cleanup", get_phrase("cleanup"), get_phrase("cleanup_alt"));
}
else
{
aaaaad($TSUE["do"]);
switch( $TSUE["do"] )
{
case "Prune":
addbreadcrumb(array( get_phrase("file_manager_prune_cache") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleprune();
break;
case "Smilies":
addbreadcrumb(array( get_phrase("file_manager_smilies") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlesmilies();
break;
case "Country Flags":
addbreadcrumb(array( get_phrase("file_manager_country_flags") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlecountryflags();
break;
case "Attachment Browser":
addbreadcrumb(array( get_phrase("attachment_browser") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handleattachments();
break;
case "Downloads":
addbreadcrumb(array( get_phrase("dm_title") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handledownloads();
break;
case "Permissions":
addbreadcrumb(array( get_phrase("permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlepermissions();
break;
case "Cleanup":
addbreadcrumb(array( get_phrase("cleanup") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] ));
$outputContent .= handlecleanup();
}
}
}
printoutput($outputContent);
}
}
}
}
class TSUE_Settings
{
public $settings = array( );
public function TSUE_Settings()
{
global $TSUE;
$fetchSettings = $TSUE["TSUE_Database"]->query("SELECT settingname, settingvalues FROM tsue_settings ORDER BY settingname");
if( $TSUE["TSUE_Database"]->num_rows($fetchSettings) )
{
while( $Setting = $TSUE["TSUE_Database"]->fetch_assoc($fetchSettings) )
{
$this->settings[$Setting["settingname"]] = unserialize($Setting["settingvalues"]);
}
}
}
}
class TSUE_Database
{
public $querycount = 0;
public $query = NULL;
public $query_cache = array( );
public $shutdown_queries = array( );
public $error = NULL;
public $connection = NULL;
public $locked = false;
public function TSUE_Database()
{
if( !is_file(LIBRARYPATH . "config/database_config.php") )
{
exit( "<h1>Fatal Error: The database configuration file does not exists.</h1>" );
}
require(LIBRARYPATH . "config/database_config.php");
if( !($this->connection = mysqli_init()) )
{
$this->error = "mysqli_init failed!";
$this->halt();
}
if( !defined("MYSQL_HOST") || !defined("MYSQL_USER") || !defined("MYSQL_PASS") || !defined("MYSQL_DB") || !defined("MYSQL_PORT") || !defined("MYSQL_SOCKET") )
{
exit( "<h1>Fatal Error: Invalid variables in the database configuration file.</h1>" );
}
if( !mysqli_real_connect($this->connection, MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB, MYSQL_PORT, MYSQL_SOCKET) )
{
$this->error = "MySQLi connection error!";
$this->halt();
}
if( MYSQL_CHARSET != "" )
{
if( function_exists("mysqli_set_charset") )
{
mysqli_set_charset($this->connection, MYSQL_CHARSET);
return NULL;
}
$this->execute_query("SET NAMES " . MYSQL_CHARSET);
}
}
public function execute_query($query, $buffered = true)
{
$this->querycount++;
$this->query = $query;
$this->query_cache[] = $query;
if( $queryresult = mysqli_query($this->connection, $this->query, ($buffered ? MYSQLI_STORE_RESULT : MYSQLI_USE_RESULT)) )
{
return $queryresult;
}
$this->error = mysqli_error($this->connection);
$this->halt();
}
public function query($query, $buffered = true)
{
return $this->execute_query($query, $buffered);
}
public function replace($table, $buildQuery, $isShutDownQuery = false)
{
checkdemomode();
$Query = array( );
foreach( $buildQuery as $field => $value )
{
$Query[] = "`" . $field . "` = " . $this->escape($value);
}
$SET = implode(",", $Query);
if( $isShutDownQuery )
{
return $this->shutdown_query("REPLACE INTO `" . $table . "` SET " . $SET);
}
return $this->query("REPLACE INTO `" . $table . "` SET " . $SET);
}
public function insert($table, $buildQuery, $isShutDownQuery = false, $EXTRA = "", $IGNORE = "")
{
checkdemomode();
$Query = array( );
foreach( $buildQuery as $field => $value )
{
$Query[] = "`" . $field . "` = " . $this->escape($value);
}
$SET = implode(",", $Query);
if( $isShutDownQuery )
{
return $this->shutdown_query("INSERT" . (($IGNORE ? " IGNORE" : "")) . " INTO `" . $table . "` SET " . $SET . $EXTRA);
}
return $this->query("INSERT" . (($IGNORE ? " IGNORE" : "")) . " INTO `" . $table . "` SET " . $SET . $EXTRA);
}
public function update($table, $buildQuery, $where = "", $isShutDownQuery = false)
{
checkdemomode();
$Query = array( );
foreach( $buildQuery as $field => $value )
{
if( is_array($value) )
{
if( $value["escape"] == 0 )
{
$Query[] = "`" . $field . "` = " . $value["value"];
}
else
{
$Query[] = "`" . $field . "` = " . $this->escape($value["value"]);
}
}
else
{
$Query[] = "`" . $field . "` = " . $this->escape($value);
}
}
$SET = implode(",", $Query);
if( $isShutDownQuery )
{
return $this->shutdown_query("UPDATE `" . $table . "` SET " . $SET . (($where ? " WHERE " . $where : "")));
}
return $this->query("UPDATE `" . $table . "` SET " . $SET . (($where ? " WHERE " . $where : "")));
}
public function delete($table, $WHERE = "")
{
checkdemomode();
$this->execute_query("DELETE FROM " . $table . (($WHERE ? " WHERE " . $WHERE : "")));
return $this->affected_rows();
}
public function truncate($table)
{
checkdemomode();
return $this->execute_query("TRUNCATE TABLE `" . $table . "`");
}
public function query_result($query, $buffered = true)
{
$returnarray = false;
$queryresult = $this->execute_query($query, $buffered);
if( $this->num_rows($queryresult) )
{
$returnarray = $this->fetch_assoc($queryresult);
$this->free($queryresult);
}
return $returnarray;
}
public function row_count($query, $buffered = true)
{
return $this->num_rows($this->execute_query($query, $buffered));
}
public function exec_shutdown_queries()
{
if( $this->shutdown_queries && count($this->shutdown_queries) )
{
foreach( $this->shutdown_queries as $query )
{
$this->execute_query($query);
}
}
}
public function shutdown_query($query)
{
$this->shutdown_queries[] = $query;
}
public function lock_tables($tablelist = "")
{
if( !empty($tablelist) && is_array($tablelist) )
{
$sql = "";
foreach( $tablelist as $name => $type )
{
$sql .= ((!empty($sql) ? ", " : "")) . $name . " " . $type;
}
$this->query("LOCK TABLES " . $sql);
$this->locked = true;
}
}
public function unlock_tables()
{
if( $this->locked )
{
$this->query("UNLOCK TABLES");
$this->locked = false;
}
}
public function affected_rows()
{
return mysqli_affected_rows($this->connection);
}
public function insert_id()
{
return mysqli_insert_id($this->connection);
}
public function fetch_assoc($query)
{
return mysqli_fetch_array($query, MYSQLI_ASSOC);
}
public function fetch_row($query)
{
return mysqli_fetch_row($query);
}
public function fetch_fields($query)
{
return mysqli_fetch_fields($query);
}
public function num_rows($query)
{
return mysqli_num_rows($query);
}
public function free($query)
{
mysqli_free_result($query);
}
public function escape($string)
{
return "'" . mysqli_real_escape_string($this->connection, $string) . "'";
}
public function escape_no_quotes($string)
{
return mysqli_real_escape_string($this->connection, $string);
}
public function field_exists($table, $column)
{
return $this->row_count("SHOW columns FROM `" . $table . "` WHERE Field = " . $this->escape($column));
}
public function halt()
{
_sendheaders("<h1>Database Error!</h1> Please try again later or contact an <b>Administrator</b>.<br />(<b>" . mysqli_errno($this->connection) . "</b>)" . $this->error . "<hr>" . $this->query);
}
public function close()
{
mysqli_close($this->connection);
}
}
class TSUESMTP
{
public $smtpSocket = NULL;
public $smtpReturn = 0;
public $secure = "";
public $toemail = "";
public $toname = "";
public $subject = "";
public $message = "";
public $headers = "";
public $fromemail = "";
public $delimiter = "\r\n";
public $Settings = array( );
public function TSUESMTP()
{
global $TSUE;
$this->secure = ($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_secure"] == 1 ? "tls" : "none");
}
public function start($toemail, $toname = "", $subject, $message, $from, $fromname)
{
global $TSUE;
$toemail = $this->fetch_first_line($toemail);
if( empty($toemail) )
{
return false;
}
$delimiter =& $this->delimiter;
$toemail = $this->dounhtmlspecialchars($toemail);
$subject = $this->fetch_first_line($subject);
$message = preg_replace("#(\r\n|\r|\n)#s", $delimiter, trim($message));
if( (strtolower($TSUE["TSUE_Language"]["charset"]) == "iso-8859-1" || $TSUE["TSUE_Language"]["charset"] == "") && preg_match("/&[a-z0-9#]+;/i", $message) )
{
$message = utf8_encode($message);
$subject = utf8_encode($subject);
$encoding = "UTF-8";
$unicode_decode = true;
}
else
{
$encoding = $TSUE["TSUE_Language"]["charset"];
$unicode_decode = false;
}
$message = $this->dounhtmlspecialchars($message, $unicode_decode);
$subject = $this->encode_email_header($this->dounhtmlspecialchars($subject, $unicode_decode), $encoding, false, false);
$from = $this->fetch_first_line($from);
$mailfromname = ($fromname ? $this->fetch_first_line($fromname) : $from);
if( $unicode_decode == true )
{
$mailfromname = utf8_encode($mailfromname);
}
$mailfromname = $this->encode_email_header($this->dounhtmlspecialchars($mailfromname, $unicode_decode), $encoding);
if( !isset($headers) )
{
$headers = "";
}
$headers .= "From: " . $mailfromname . " <" . $from . ">" . $delimiter;
$headers .= "Return-Path: " . $from . $delimiter;
$headers .= "Message-ID: <" . gmdate("YmdHis") . "." . substr(md5($message . microtime()), 0, 12) . "@" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . ">" . $delimiter;
$headers .= "MIME-Version: 1.0" . $delimiter;
$headers .= "Content-Type: text/html" . (($encoding ? "; charset=\"" . $encoding . "\"" : "")) . $delimiter;
$headers .= "Content-Transfer-Encoding: 8bit" . $delimiter;
$headers .= "X-Priority: 3" . $delimiter;
$headers .= "X-Mailer: TSUE Mail via PHP" . $delimiter;
$headers .= "X-Sender: TSUE PHP-Mailer" . $delimiter;
$headers .= "Date: " . date("r") . $delimiter;
$this->toemail = $toemail;
$this->toname = $toname;
$this->subject = $subject;
$this->message = $message;
$this->headers = $headers;
$this->fromemail = $from;
}
public function sendMessage($msg, $expectedResult = false)
{
if( $msg !== false && !empty($msg) )
{
fputs($this->smtpSocket, $msg . "\r\n");
}
if( $expectedResult !== false )
{
$result = "";
while( $line = @fgets($this->smtpSocket, 1024) )
{
$result .= $line;
if( preg_match("#^(\\d{3}) #", $line, $matches) )
{
break;
}
}
$this->smtpReturn = intval((isset($matches["1"]) ? $matches["1"] : 0));
return $this->smtpReturn == $expectedResult;
}
return true;
}
public function errorMessage($msg)
{
global $TSUE;
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_debug"] == "1" )
{
logadminaction($msg);
}
return false;
}
public function sendHello()
{
global $TSUE;
if( !$this->smtpSocket )
{
return false;
}
if( !$this->sendMessage("EHLO " . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], 250) && !$this->sendMessage("HELO " . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], 250) )
{
return false;
}
return true;
}
public function send()
{
global $TSUE;
if( !$this->toemail )
{
return false;
}
$this->smtpSocket = fsockopen((($this->secure == "ssl" ? "ssl://" : "tcp://")) . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_port"], $errno, $errstr, 30);
if( $this->smtpSocket )
{
if( !$this->sendMessage(false, 220) )
{
return $this->errorMessage($this->smtpReturn . " Unexpected response when connecting to SMTP server");
}
if( !$this->sendHello() )
{
return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during handshake");
}
if( $this->secure == "tls" && function_exists("stream_socket_enable_crypto") )
{
if( $this->sendMessage("STARTTLS", 220) && !stream_socket_enable_crypto($this->smtpSocket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT) )
{
return $this->errorMessage("Unable to negotitate TLS handshake.");
}
$this->sendHello();
}
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"] && $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"] && $this->sendMessage("AUTH LOGIN", 334) && (!$this->sendMessage(base64_encode($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"]), 334) || !$this->sendMessage(base64_encode($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"]), 235)) )
{
return $this->errorMessage($this->smtpReturn . " Authorization to the SMTP server failed");
}
if( !$this->sendMessage("MAIL FROM:<" . $this->fromemail . ">", 250) )
{
return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during FROM address transmission");
}
$addresses = tsue_explode(",", $this->toemail);
foreach( $addresses as $address )
{
if( !$this->sendMessage("RCPT TO:<" . trim($address) . ">", 250) )
{
return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during TO address transmission");
}
}
if( $this->sendMessage("DATA", 354) )
{
$this->sendMessage("Date: " . gmdate("r"), false);
$this->sendMessage("To: " . $this->toemail, false);
$this->sendMessage(trim($this->headers), false);
$this->sendMessage("Subject: " . $this->subject, false);
$this->sendMessage("\r\n", false);
$this->message = preg_replace("#^\\." . $this->delimiter . "#m", ".." . $this->delimiter, $this->message);
$this->sendMessage($this->message, false);
if( !$this->sendMessage(".", 250) )
{
return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server when ending transmission");
}
$this->sendMessage("QUIT", 221);
fclose($this->smtpSocket);
return true;
}
return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during data transmission");
}
else
{
return $this->errorMessage("Unable to connect to SMTP server");
}
}
public function fetch_first_line($text)
{
$text = preg_replace("/(\r\n|\r|\n)/s", "\r\n", trim($text));
$pos = strpos($text, "\r\n");
if( $pos !== false )
{
return substr($text, 0, $pos);
}
return $text;
}
public function dounhtmlspecialchars($text, $doUniCode = false)
{
if( $doUniCode )
{
$text = preg_replace("/&#([0-9]+);/esiU", "convert_int_to_utf8('\\1')", $text);
}
return str_replace(array( "<", ">", """, "&" ), array( "<", ">", "\"", "&" ), $text);
}
public function encode_email_header($text, $charset = "utf-8", $force_encode = false, $quoted_string = true)
{
$text = trim($text);
if( !$charset )
{
return $text;
}
if( $force_encode == true )
{
$qp_encode = true;
}
else
{
$qp_encode = false;
for( $i = 0; $i < strlen($text); $i++ )
{
if( 127 < ord($text[$i]) )
{
$qp_encode = true;
break;
}
}
}
if( $qp_encode == true )
{
$outtext = preg_replace("#([^a-zA-Z0-9!*+\\-/ ])#e", "'=' . strtoupper(dechex(ord(str_replace('\\\"', '\"', '\\1'))))", $text);
$outtext = str_replace(" ", "_", $outtext);
$outtext = "=?" . $charset . "?q?" . $outtext . "?=";
return $outtext;
}
if( $quoted_string )
{
$text = str_replace(array( "\"", "(", ")" ), array( "\\\"", "\\(", "\\)" ), $text);
return "\"" . $text . "\"";
}
return preg_replace("#(\\r\\n|\\n|\\r)+#", " ", $text);
}
}
class TSUE_Parser
{
public $valid_elements = "<p><span><img><a><strong><b><em><ul><li><ol><br>";
private $buildCensorArray = NULL;
public function TSUE_Parser()
{
}
public function removeP($text = "")
{
if( substr($text, 0, 13) == "<p> </p>" )
{
$text = substr_replace($text, "", 0, 13);
}
if( substr($text, 0, 7) == "<p></p>" )
{
$text = substr_replace($text, "", 0, 7);
}
if( substr($text, 0, 8) == "<p> </p>" )
{
$text = substr_replace($text, "", 0, 8);
}
return $text;
}
public function clearTinymceP($text = "")
{
$text = $this->removeP($text);
if( substr($text, 0, 3) == "<p>" && substr($text, -4) == "</p>" )
{
$text = substr_replace($text, "", 0, 3);
$text = substr_replace($text, "", -4);
}
return $text;
}
public function parse($text = "")
{
global $TSUE;
$text = trim($text);
$text = $this->clearTinymceP($text);
$text = $this->censorString($text);
if( strlen($text) <= 2 )
{
return $text;
}
preg_match_all("#\\[(code|php)\\](.*?)\\[/\\1\\](\r\n?|\n?)#si", $text, $code_matches, PREG_SET_ORDER);
$text = preg_replace("#\\[(code|php)\\](.*?)\\[/\\1\\](\r\n?|\n?)#si", "~~~TSUE_CODE~~~", $text);
$text = strip_tags($text, $this->valid_elements);
$text = $TSUE["TSUE_Security"]->xss_clean($text);
$pattern = array( "#\\[quote=(.*?)\\](.*?)\\[\\/quote\\]#esi", "#\\[quote\\](.*?)\\[\\/quote\\]#esi", "#\\[youtube\\](.*?)\\[\\/youtube\\]#esi", "#\\[nfo\\](.*?)\\[\\/nfo\\]#esi", "#\\[spoiler\\](.*?)\\[\\/spoiler\\]#esi" );
$replace = array( "\$this->parseQuotesWithName('\$1','\$2')", "\$this->parseQuotes('\$1')", "\$this->parseYoutube('\$1')", "\$this->parseNFO('\$1')", "\$this->parseSpoiler('\$1')" );
while( preg_match($pattern[0], $text) || preg_match($pattern[1], $text) || preg_match($pattern[2], $text) || preg_match($pattern[3], $text) || preg_match($pattern[4], $text) )
{
$text = preg_replace($pattern, $replace, $text);
}
if( $code_matches && count($code_matches) )
{
foreach( $code_matches as $match )
{
$match["2"] = trim(strip_tags($match["2"]));
switch( strtolower($match["1"]) )
{
case "php":
$CodeTitle = get_phrase("tinymce_php_code");
$match["2"] = html_declean($match["2"]);
$CodeContent = $this->PHPCode($match["2"]);
$CodeMD5 = md5($CodeTitle . $CodeContent);
break;
default:
$CodeTitle = get_phrase("tinymce_code");
$CodeContent = html_clean($match["2"]);
$CodeMD5 = md5($CodeTitle . $CodeContent);
break;
}
$codeOutput = "\r\n\t\t\t\t<div class=\"CodeBlock\" id=\"" . $CodeMD5 . "\">\r\n\t\t\t\t\t<div class=\"title\">\r\n\t\t\t\t\t\t<span id=\"expand_button\" class=\"clickable\" md5=\"" . $CodeMD5 . "\">" . get_phrase("button_expand") . "</span>\r\n\t\t\t\t\t\t" . $CodeTitle . ":\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<pre><code>" . $CodeContent . "</code></pre>\r\n\t\t\t\t</div>";
$codeOutput = str_replace(array( "<code><code>", "</code></code>" ), array( "<code>", "</code>" ), $codeOutput);
$text = preg_replace("#~~~TSUE_CODE~~~?#", $codeOutput, $text, 1);
}
}
return trim($text);
}
public function parseQuotesWithName($QuoteDetails = "", $CodeQuoteContent = "")
{
global $TSUE;
if( !$CodeQuoteContent )
{
return NULL;
}
$explode = @tsue_explode("|", @trim($QuoteDetails));
$MemberName = $PostID = "";
if( isset($explode["0"]) )
{
$MemberName = trim(str_replace("\\\"", "\"", $explode["0"]));
}
if( isset($explode["1"]) )
{
$PostID = intval($explode["1"]);
}
$CodeQuoteContent = trim(str_replace("\\\"", "\"", $CodeQuoteContent));
$MemberName = get_phrase("member_x_said", ucfirst($MemberName));
$quoteOutput = "\r\n\t\t<div class=\"CodeBlockQuote\">\r\n\t\t\t<div class=\"title\">\r\n\t\t\t\t" . $MemberName . " <a href=\"#\" rel=\"autoScroller\" name=\"" . $PostID . "\">↑</a>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"quotecontent\">" . $CodeQuoteContent . "</div>\r\n\t\t</div>";
return $quoteOutput;
}
public function parseQuotes($CodeQuoteContent = "")
{
global $TSUE;
if( !$CodeQuoteContent )
{
return NULL;
}
$CodeQuoteContent = trim(str_replace("\\\"", "\"", $CodeQuoteContent));
return "\r\n\t\t<div class=\"CodeBlockQuote\">\r\n\t\t\t<div class=\"quotecontent\">" . $CodeQuoteContent . "</div>\r\n\t\t</div>";
}
public function parseYoutube($videoTag = "")
{
global $TSUE;
$youtube = "";
if( $videoTag )
{
$youtube = "<object width=\"500\" height=\"314\"><param name=\"movie\" value=\"http://www.youtube.com/v/" . $videoTag . "?version=3&hd=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" . $videoTag . "?version=3&hd=1\" type=\"application/x-shockwave-flash\" width=\"500\" height=\"314\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed></object>";
}
return $youtube;
}
public function parseNFO($nfoTag = "")
{
global $TSUE;
$nfo = "";
if( $nfoTag )
{
$nfo = "<pre class=\"nfo\">" . $nfoTag . "</pre>";
}
return $nfo;
}
public function parseSpoiler($spoilerTag = "")
{
global $TSUE;
$spoiler = "";
if( $spoilerTag )
{
$spoiler = "\r\n\t\t\t<div id=\"spoiler\">\r\n\t\t\t\t<div class=\"spoiler_tag\">" . $spoilerTag . "</div>\r\n\t\t\t</div>";
}
return $spoiler;
}
public function PHPCode($content = "")
{
if( strpos($content, "<?") == false )
{
$tagAdded = true;
$content = "<?php\n" . $content;
}
else
{
$tagAdded = false;
}
$content = highlight_string($content, true);
if( $tagAdded )
{
$content = preg_replace("#<\\?php<br\\s*/?>#", "", $content, 1);
}
return trim($content);
}
public function censorString($string)
{
global $TSUE;
if( !isset($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]) )
{
return $string;
}
if( !isset($TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"]) )
{
$TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"] = "";
}
if( !$this->buildCensorArray )
{
$this->buildCensorArray = $this->buildCensorArray($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"], $TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"]);
}
if( !empty($this->buildCensorArray["exact"]) )
{
$string = preg_replace(array_keys($this->buildCensorArray["exact"]), $this->buildCensorArray["exact"], $string);
}
if( !empty($this->buildCensorArray["any"]) )
{
$string = str_ireplace(array_keys($this->buildCensorArray["any"]), $this->buildCensorArray["any"], $string);
}
return $string;
}
public function buildCensorArray(array $words, $censorString)
{
$censorCache = array( );
if( !empty($words["exact"]) )
{
$exact = array( );
foreach( $words["exact"] as $word => $replace )
{
$search = "#(?<=\\W|^)(" . preg_quote($word, "#") . ")(?=\\W|\$)#i";
if( is_int($replace) )
{
$exact[$search] = str_repeat($censorString, $replace);
}
else
{
$exact[$search] = $replace;
}
}
$censorCache["exact"] = $exact;
}
if( !empty($words["any"]) )
{
$any = array( );
foreach( $words["any"] as $word => $replace )
{
if( is_int($replace) )
{
$any[$word] = str_repeat($censorString, $replace);
}
else
{
$any[$word] = $replace;
}
}
$censorCache["any"] = $any;
}
return $censorCache;
}
}
class TSUE_Security
{
protected $_xss_hash = "";
protected $charset = "UTF-8";
protected $_never_allowed_str = array( "document.cookie" => "[removed]", "document.write" => "[removed]", ".parentNode" => "[removed]", ".innerHTML" => "[removed]", "window.location" => "[removed]", "-moz-binding" => "[removed]", "<!--" => "<!--", "-->" => "-->", "<![CDATA[" => "<![CDATA[" );
protected $_never_allowed_regex = array( "javascript\\s*:" => "[removed]", "expression\\s*(\\(|&\\#40;)" => "[removed]", "vbscript\\s*:" => "[removed]", "Redirect\\s+302" => "[removed]" );
public function xss_clean($str, $is_image = false)
{
if( is_array($str) )
{
while( list($key) = each($str) )
{
$str[$key] = $this->xss_clean($str[$key]);
}
return $str;
}
$str = $this->remove_invisible_characters($str);
$str = $this->_validate_entities($str);
$str = rawurldecode($str);
$str = preg_replace_callback("/[a-z]+=([\\'\"]).*?\\1/si", array( $this, "_convert_attribute" ), $str);
$str = preg_replace_callback("/<\\w+.*?(?=>|<|\$)/si", array( $this, "_decode_entity" ), $str);
$str = $this->remove_invisible_characters($str);
if( strpos($str, "\t") !== false )
{
$str = str_replace("\t", " ", $str);
}
$converted_string = $str;
$str = $this->_do_never_allowed($str);
if( $is_image === true )
{
$str = preg_replace("/<\\?(php)/i", "<?\\1", $str);
}
else
{
$str = str_replace(array( "<?", "?" . ">" ), array( "<?", "?>" ), $str);
}
$words = array( "javascript", "expression", "vbscript", "script", "applet", "alert", "document", "write", "cookie", "window" );
foreach( $words as $word )
{
$temp = "";
$i = 0;
for( $wordlen = strlen($word); $i < $wordlen; $i++ )
{
$temp .= substr($word, $i, 1) . "\\s*";
}
$str = preg_replace_callback("#(" . substr($temp, 0, -3) . ")(\\W)#is", array( $this, "_compact_exploded_words" ), $str);
}
do
{
$original = $str;
if( preg_match("/<a/i", $str) )
{
$str = preg_replace_callback("#<a\\s+([^>]*?)(>|\$)#si", array( $this, "_js_link_removal" ), $str);
}
if( preg_match("/<img/i", $str) )
{
$str = preg_replace_callback("#<img\\s+([^>]*?)(\\s?/?>|\$)#si", array( $this, "_js_img_removal" ), $str);
}
if( preg_match("/script/i", $str) || preg_match("/xss/i", $str) )
{
$str = preg_replace("#<(/*)(script|xss)(.*?)\\>#si", "[removed]", $str);
}
}
while( $original != $str );
unset($original);
$str = $this->_remove_evil_attributes($str, $is_image);
$naughty = "alert|applet|audio|basefont|base|behavior|bgsound|blink|body|embed|expression|form|frameset|frame|head|html|ilayer|iframe|input|isindex|layer|link|meta|object|plaintext|style|script|textarea|title|video|xml|xss";
$str = preg_replace_callback("#<(/*\\s*)(" . $naughty . ")([^><]*)([><]*)#is", array( $this, "_sanitize_naughty_html" ), $str);
$str = preg_replace("#(alert|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\\s*)\\((.*?)\\)#si", "\\1\\2(\\3)", $str);
$str = $this->_do_never_allowed($str);
if( $is_image === true )
{
return ($str == $converted_string ? true : false);
}
return $str;
}
public function xss_hash()
{
if( $this->_xss_hash == "" )
{
mt_srand();
$this->_xss_hash = md5(TIMENOW + mt_rand(0, 1999999999));
}
return $this->_xss_hash;
}
public function entity_decode($str, $charset = "UTF-8")
{
if( stristr($str, "&") === false )
{
return $str;
}
if( function_exists("html_entity_decode") && strtolower($charset) != "utf-8" )
{
$str = html_entity_decode($str, ENT_COMPAT, $charset);
$str = preg_replace("~&#x(0*[0-9a-f]{2,5})~ei", "chr(hexdec(\"\\1\"))", $str);
return preg_replace("~&#([0-9]{2,4})~e", "chr(\\1)", $str);
}
$str = preg_replace("~&#x(0*[0-9a-f]{2,5});{0,1}~ei", "chr(hexdec(\"\\1\"))", $str);
$str = preg_replace("~&#([0-9]{2,4});{0,1}~e", "chr(\\1)", $str);
if( stristr($str, "&") === false )
{
$str = strtr($str, array_flip(get_html_translation_table(HTML_ENTITIES)));
}
return $str;
}
public function sanitize_filename($str, $relative_path = false)
{
$bad = array( "../", "<!--", "-->", "<", ">", "'", "\"", "&", "\$", "#", "{", "}", "[", "]", "=", ";", "?", "%20", "%22", "%3c", "%253c", "%3e", "%0e", "%28", "%29", "%2528", "%26", "%24", "%3f", "%3b", "%3d" );
if( !$relative_path )
{
$bad[] = "./";
$bad[] = "/";
}
$str = remove_invisible_characters($str, false);
return stripslashes(str_replace($bad, "", $str));
}
protected function _compact_exploded_words($matches)
{
return preg_replace("/\\s+/s", "", $matches[1]) . $matches[2];
}
protected function _remove_evil_attributes($str, $is_image)
{
$evil_attributes = array( "on\\w*", "xmlns" );
if( $is_image === true )
{
unset($evil_attributes[array_search("xmlns", $evil_attributes)]);
}
do
{
$str = preg_replace("#<(/?[^><]+?)([^A-Za-z\\-])(" . implode("|", $evil_attributes) . ")(\\s*=\\s*)([\"][^>]*?[\"]|[\\'][^>]*?[\\']|[^>]*?)([\\s><])([><]*)#i", "<\$1\$6", $str, -1, $count);
}
while( $count );
return $str;
}
protected function _sanitize_naughty_html($matches)
{
$str = "<" . $matches[1] . $matches[2] . $matches[3];
$str .= str_replace(array( ">", "<" ), array( ">", "<" ), $matches[4]);
return $str;
}
protected function _js_link_removal($match)
{
$attributes = $this->_filter_attributes(str_replace(array( "<", ">" ), "", $match[1]));
return str_replace($match[1], preg_replace("#href=.*?(alert\\(|alert&\\#40;|javascript\\:|livescript\\:|mocha\\:|charset\\=|window\\.|document\\.|\\.cookie|<script|<xss|base64\\s*,)#si", "", $attributes), $match[0]);
}
protected function _js_img_removal($match)
{
$attributes = $this->_filter_attributes(str_replace(array( "<", ">" ), "", $match[1]));
return str_replace($match[1], preg_replace("#src=.*?(alert\\(|alert&\\#40;|javascript\\:|livescript\\:|mocha\\:|charset\\=|window\\.|document\\.|\\.cookie|<script|<xss|base64\\s*,)#si", "", $attributes), $match[0]);
}
protected function _convert_attribute($match)
{
return str_replace(array( ">", "<", "\\" ), array( ">", "<", "\\\\" ), $match[0]);
}
protected function _filter_attributes($str)
{
$out = "";
if( preg_match_all("#\\s*[a-z\\-]+\\s*=\\s*(\\042|\\047)([^\\1]*?)\\1#is", $str, $matches) )
{
foreach( $matches[0] as $match )
{
$out .= preg_replace("#/\\*.*?\\*/#s", "", $match);
}
}
return $out;
}
protected function _decode_entity($match)
{
return $this->entity_decode($match[0], strtoupper($this->charset));
}
protected function _validate_entities($str)
{
$str = preg_replace("|\\&([a-z\\_0-9\\-]+)\\=([a-z\\_0-9\\-]+)|i", $this->xss_hash() . "\\1=\\2", $str);
$str = preg_replace("#(&\\#?[0-9a-z]{2,})([\\x00-\\x20])*;?#i", "\\1;\\2", $str);
$str = preg_replace("#(&\\#x?)([0-9A-F]+);?#i", "\\1\\2;", $str);
$str = str_replace($this->xss_hash(), "&", $str);
return $str;
}
protected function _do_never_allowed($str)
{
foreach( $this->_never_allowed_str as $key => $val )
{
$str = str_replace($key, $val, $str);
}
foreach( $this->_never_allowed_regex as $key => $val )
{
$str = preg_replace("#" . $key . "#i", $val, $str);
}
return $str;
}
protected function remove_invisible_characters($str, $url_encoded = true)
{
$non_displayables = array( );
if( $url_encoded )
{
$non_displayables[] = "/%0[0-8bcef]/";
$non_displayables[] = "/%1[0-9a-f]/";
}
$non_displayables[] = "/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]+/S";
do
{
$str = preg_replace($non_displayables, "", $str, -1, $count);
}
while( $count );
return $str;
}
}
class TSUE_IRCBot
{
public $fp = NULL;
public $debug = array( );
public $connected = false;
public $font = array( "[c]" => "\x03", "[n]" => "\x0F", "[b]" => "\x02", "[u]" => "\x1F", "[r]" => "\x16" );
public function TSUE_IRCBot($msg)
{
global $TSUE;
$this->fp = fsockopen($TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"], $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"], $errno, $errstr, 5);
if( !$this->fp )
{
$this->debug[] = "Unable to connect to IRC Server at " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"] . ":" . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"] . " (" . $errno . ") " . $errstr;
return false;
}
if( $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"][0] != "#" )
{
$TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"] = "#" . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"];
}
$this->debug[] = "Connected to: " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"];
$this->connected = true;
$this->sendCMD("PASS " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPass"]);
$this->sendCMD("NICK " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"]);
$this->sendCMD("USER " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"] . " TSUE IRC BOT");
while( !feof($this->fp) )
{
$data = str_replace(array( "\n", "\r" ), "", fgets($this->fp, 1024));
$this->debug[] = "[RECEIVE] " . $data;
$exData = tsue_explode(" ", $data);
if( isset($exData["0"]) && $exData["0"] == "PING" )
{
$this->sendCMD("PONG " . $exData[1]);
}
else
{
if( isset($exData["1"]) && $exData["1"] == "376" )
{
$this->sendCMD("JOIN " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"]);
}
else
{
if( isset($exData["1"]) && $exData["1"] == "366" )
{
$this->sendCMD("PRIVMSG " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"] . " [b][c]4,0" . $msg);
$this->Disconnect();
return NULL;
}
}
}
}
if( $this->connected )
{
$this->Disconnect();
}
}
public function sendCMD($cmd)
{
@fputs($this->fp, @strtr($cmd, $this->font) . "\n\r");
$this->debug[] = "[SEND] " . $cmd;
}
public function Disconnect()
{
$this->sendCMD("QUIT :USING TSUE IRC BOT");
@fclose($this->fp);
}
public function Debug()
{
return ($this->debug ? implode("<br />", $this->debug) : false);
}
}
class Torrent
{
private $torrent = NULL;
private $info = NULL;
public $error = NULL;
public function load(&$data)
{
$this->torrent = BEncode::decode($data);
if( $this->torrent->get_type() == "error" )
{
$this->error = $this->torrent->get_plain();
return false;
}
if( $this->torrent->get_type() != "dictionary" )
{
$this->error = "The file was not a valid torrent file.";
return false;
}
$this->info = $this->torrent->get_value("info");
if( !$this->info )
{
$this->error = "Could not find info dictionary.";
return false;
}
return true;
}
public function getWhatever($Whatever)
{
return ($this->torrent->get_value($Whatever) ? $this->torrent->get_value($Whatever)->get_plain() : NULL);
}
public function getComment()
{
return ($this->torrent->get_value("comment") ? $this->torrent->get_value("comment")->get_plain() : NULL);
}
public function getCreationDate()
{
return ($this->torrent->get_value("creation date") ? $this->torrent->get_value("creation date")->get_plain() : NULL);
}
public function getCreatedBy()
{
return ($this->torrent->get_value("created by") ? $this->torrent->get_value("created by")->get_plain() : NULL);
}
public function getName()
{
return $this->info->get_value("name")->get_plain();
}
public function getPieceLength()
{
return $this->info->get_value("piece length")->get_plain();
}
public function getPieces()
{
return $this->info->get_value("pieces")->get_plain();
}
public function getPrivate()
{
if( $this->info->get_value("private") )
{
return $this->info->get_value("private")->get_plain();
}
return -1;
}
public function getFiles()
{
$filelist = array( );
$length = $this->info->get_value("length");
if( $length )
{
$file = new Torrent_File();
$file->name = $this->info->get_value("name")->get_plain();
$file->length = $this->info->get_value("length")->get_plain();
array_push($filelist, $file);
}
else
{
if( $this->info->get_value("files") )
{
$files = $this->info->get_value("files")->get_plain();
while( list($key, $value) = each($files) )
{
$file = new Torrent_File();
$path = $value->get_value("path")->get_plain();
while( list($key, $value2) = each($path) )
{
$file->name .= "/" . $value2->get_plain();
}
$file->name = ltrim($file->name, "/");
$file->length = $value->get_value("length")->get_plain();
array_push($filelist, $file);
}
}
}
return $filelist;
}
public function getTrackers()
{
$trackerlist = array( );
if( $this->torrent->get_value("announce-list") )
{
$trackers = $this->torrent->get_value("announce-list")->get_plain();
while( list($key, $value) = each($trackers) )
{
if( is_array($value->get_plain()) )
{
while( list($key, $value2) = each($value) )
{
while( list($key, $value3) = each($value2) )
{
array_push($trackerlist, $value3->get_plain());
}
}
}
else
{
array_push($trackerlist, $value->get_plain());
}
}
}
else
{
if( $this->torrent->get_value("announce") )
{
array_push($trackerlist, $this->torrent->get_value("announce")->get_plain());
}
}
return $trackerlist;
}
public function addTracker($tracker_url)
{
$trackers = $this->getTrackers();
$trackers[] = $tracker_url;
$this->setTrackers($trackers);
}
public function removeWhatever($Whatever)
{
if( $this->torrent->get_value($Whatever) )
{
$this->torrent->remove($Whatever);
}
}
public function setTrackers($trackerlist)
{
if( 1 <= count($trackerlist) )
{
$this->torrent->remove("announce-list");
$string = new BEncode_String($trackerlist[0]);
$this->torrent->set("announce", $string);
}
if( 1 < count($trackerlist) )
{
$list = new BEncode_List();
while( list($key, $value) = each($trackerlist) )
{
$list2 = new BEncode_List();
$string = new BEncode_String($value);
$list2->add($string);
$list->add($list2);
}
$this->torrent->set("announce-list", $list);
}
}
public function setFiles($filelist)
{
$length = $this->info->get_value("length");
if( $length )
{
$filelist[0] = str_replace("\\", "/", $filelist[0]);
$string = new BEncode_String($filelist[0]);
$this->info->set("name", $string);
}
else
{
if( $this->info->get_value("files") )
{
$files = $this->info->get_value("files")->get_plain();
for( $i = 0; $i < count($files); $i++ )
{
$file_parts = split("/", $filelist[$i]);
$path = new BEncode_List();
foreach( $file_parts as $part )
{
$string = new BEncode_String($part);
$path->add($string);
}
$files[$i]->set("path", $path);
}
}
}
}
public function setComment($value)
{
$type = "comment";
$key = $this->torrent->get_value($type);
if( $value == "" )
{
$this->torrent->remove($type);
}
else
{
if( $key )
{
$key->set($value);
}
else
{
$string = new BEncode_String($value);
$this->torrent->set($type, $string);
}
}
}
public function setCreatedBy($value)
{
$type = "created by";
$key = $this->torrent->get_value($type);
if( $value == "" )
{
$this->torrent->remove($type);
}
else
{
if( $key )
{
$key->set($value);
}
else
{
$string = new BEncode_String($value);
$this->torrent->set($type, $string);
}
}
}
public function setSource($value)
{
$type = "source";
$key = $this->torrent->get_value($type);
if( $value == "" )
{
$this->torrent->remove($type);
}
else
{
if( $key )
{
$key->set($value);
}
else
{
$string = new BEncode_String($value);
$this->torrent->set($type, $string);
}
}
}
public function setCreationDate($value)
{
$type = "creation date";
$key = $this->torrent->get_value($type);
if( $value == "" )
{
$this->torrent->remove($type);
}
else
{
if( $key )
{
$key->set($value);
}
else
{
$int = new BEncode_Int($value);
$this->torrent->set($type, $int);
}
}
}
public function setPrivate($value)
{
if( $value == -1 )
{
$this->info->remove("private");
}
else
{
$int = new BEncode_Int($value);
$this->info->set("private", $int);
}
}
public function bencode()
{
return $this->torrent->encode();
}
public function getHash()
{
return pack("H*", sha1($this->info->encode()));
}
public function getSize()
{
$size = 0;
$IncludedFiles = $this->getFiles();
foreach( $IncludedFiles as $File )
{
$size += $File->length;
}
return $size;
}
}
class Torrent_File
{
public $name = NULL;
public $length = NULL;
}
class BEncode
{
public static function &decode(&$raw, &$offset = 0)
{
if( strlen($raw) <= $offset )
{
return new BEncode_Error("Decoder exceeded max length.");
}
$char = $raw[$offset];
switch( $char )
{
case "i":
$int = new BEncode_Int();
$int->decode($raw, $offset);
return $int;
case "d":
$dict = new BEncode_Dictionary();
if( $check = $dict->decode($raw, $offset) )
{
return $check;
}
return $dict;
case "l":
$list = new BEncode_List();
$list->decode($raw, $offset);
return $list;
case "e":
$AvoidPHPWarning = new BEncode_End();
return $AvoidPHPWarning;
case "0":
case is_numeric($char):
$str = new BEncode_String();
$str->decode($raw, $offset);
return $str;
}
return new BEncode_Error("Decoder encountered unknown char '" . $char . "' at offset " . $offset . ".");
}
}
class BEncode_End
{
public function get_type()
{
return "end";
}
}
class BEncode_Error
{
private $error = NULL;
public function BEncode_Error($error)
{
$this->error = $error;
}
public function get_plain()
{
return $this->error;
}
public function get_type()
{
return "error";
}
}
class BEncode_Int
{
private $value = NULL;
public function BEncode_Int($value = NULL)
{
$this->value = $value;
}
public function decode(&$raw, &$offset)
{
$end = strpos($raw, "e", $offset);
$this->value = substr($raw, ++$offset, $end - $offset);
$offset += $end - $offset;
}
public function get_plain()
{
return $this->value;
}
public function get_type()
{
return "int";
}
public function encode()
{
return "i" . $this->value . "e";
}
public function set($value)
{
$this->value = $value;
}
}
class BEncode_Dictionary
{
public $value = array( );
public function decode(&$raw, &$offset)
{
$dictionary = array( );
while( true )
{
$name = BEncode::decode($raw, ++$offset);
if( $name->get_type() == "end" )
{
break;
}
if( $name->get_type() == "error" )
{
return $name;
}
if( $name->get_type() != "string" )
{
return new BEncode_Error("Key name in dictionary was not a string.");
}
$value = BEncode::decode($raw, ++$offset);
if( $value->get_type() == "error" )
{
return $value;
}
$dictionary[$name->get_plain()] = $value;
}
$this->value = $dictionary;
}
public function get_value($key)
{
if( isset($this->value[$key]) )
{
return $this->value[$key];
}
}
public function encode()
{
$this->sort();
$encoded = "d";
while( list($key, $value) = each($this->value) )
{
$bstr = new BEncode_String();
$bstr->set($key);
$encoded .= $bstr->encode();
$encoded .= $value->encode();
}
$encoded .= "e";
return $encoded;
}
public function get_type()
{
return "dictionary";
}
public function remove($key)
{
unset($this->value[$key]);
}
public function set($key, $value)
{
$this->value[$key] = $value;
}
private function sort()
{
ksort($this->value);
}
public function count()
{
return count($this->value);
}
}
class BEncode_List
{
private $value = array( );
public function add($bval)
{
array_push($this->value, $bval);
}
public function decode(&$raw, &$offset)
{
$list = array( );
while( true )
{
$value = BEncode::decode($raw, ++$offset);
if( $value->get_type() == "end" )
{
break;
}
if( $value->get_type() == "error" )
{
return $value;
}
array_push($list, $value);
}
$this->value = $list;
}
public function encode()
{
$encoded = "l";
for( $i = 0; $i < count($this->value); $i++ )
{
$encoded .= $this->value[$i]->encode();
}
$encoded .= "e";
return $encoded;
}
public function get_plain()
{
return $this->value;
}
public function get_type()
{
return "list";
}
}
class BEncode_String
{
private $value = NULL;
public function BEncode_String($value = NULL)
{
$this->value = $value;
}
public function decode(&$raw, &$offset)
{
$end = strpos($raw, ":", $offset);
$len = substr($raw, $offset, $end - $offset);
$offset += $len + $end - $offset;
$end++;
$this->value = substr($raw, $end, $len);
}
public function get_plain()
{
return $this->value;
}
public function get_type()
{
return "string";
}
public function encode()
{
$len = strlen($this->value);
return (string) $len . ":" . $this->value;
}
public function set($value)
{
$this->value = $value;
}
}
class IMDB
{
public $movieInfo = array( );
public $posterPath = "";
public function IMDB($movieKeyword)
{
$imdbUrl = $this->getIMDbUrlFromGoogle($movieKeyword);
$html = ($imdbUrl ? $this->geturl($imdbUrl) : false);
if( stripos($html, "<meta name=\"application-name\" content=\"IMDb\" />") !== false )
{
$this->scrapMovieInfo($html);
$this->movieInfo["imdb_url"] = $imdbUrl;
}
else
{
$this->movieInfo["error"] = "No Title found on IMDb!";
}
}
public function getIMDbUrlFromGoogle($title)
{
$url = "http://www.google.com/search?q=site:imdb.com+" . rawurlencode($title);
$html = $this->geturl($url);
$imdburls = $this->match_all("/<a.*?href=\".*?(http:\\/\\/www\\.imdb.com\\/title\\/tt.*?\\/).*?\".*?>.*?<\\/a>/ms", $html, 1);
return ($imdburls ? $imdburls[0] : false);
}
public function scrapMovieInfo($html)
{
$this->movieInfo["title_id"] = $this->match("/<link rel=\"canonical\" href=\"http:\\/\\/www.imdb.com\\/title\\/(tt[0-9]+)\\/\" \\/>/ms", $html, 1);
$this->movieInfo["title"] = trim($this->match("/<title>(.*?) \\(.*?<\\/title>/ms", $html, 1));
$this->movieInfo["year"] = trim($this->match("/<title>.*?\\(.*?([0-9][0-9][0-9][0-9]).*?\\).*?<\\/title>/ms", $html, 1));
$this->movieInfo["rating"] = $this->match("/itemprop=\"ratingValue\">([0-9].[0-9])<\\/span>/ms", $html, 1);
$this->movieInfo["genres"] = array( );
foreach( $this->match_all("/<a.*?>(.*?)<\\/a>/ms", $this->match("/Genre.?:(.*?)(<\\/div>|See more)/ms", $html, 1), 1) as $m )
{
array_push($this->movieInfo["genres"], $m);
}
$this->movieInfo["directors"] = array( );
foreach( $this->match_all("/<a.*?>(.*?)<\\/a>/ms", $this->match("/Director.?:(.*?)(<\\/div>|>.?and )/ms", $html, 1), 1) as $m )
{
array_push($this->movieInfo["directors"], $m);
}
$this->movieInfo["writers"] = array( );
foreach( $this->match_all("/<a.*?>(.*?)<\\/a>/ms", $this->match("/Writer.?:(.*?)(<\\/div>|>.?and )/ms", $html, 1), 1) as $m )
{
array_push($this->movieInfo["writers"], $m);
}
$this->movieInfo["stars"] = array( );
foreach( $this->match_all("/<a.*?>(.*?)<\\/a>/ms", $this->match("/Stars:(.*?)<\\/div>/ms", $html, 1), 1) as $m )
{
array_push($this->movieInfo["stars"], $m);
}
$this->movieInfo["cast"] = array( );
foreach( $this->match_all("/<td class=\"name\">(.*?)<\\/td>/ms", $html, 1) as $m )
{
array_push($this->movieInfo["cast"], trim(strip_tags($m)));
}
$this->movieInfo["mpaa_rating"] = $this->match("/infobar\">.<img.*?alt=\"(.*?)\".*?>/ms", $html, 1);
if( $this->movieInfo["title_id"] != "" )
{
$releaseinfoHtml = $this->geturl("http://www.imdb.com/title/" . $this->movieInfo["title_id"] . "/releaseinfo");
$this->movieInfo["also_known_as"] = $this->getAkaTitles($releaseinfoHtml, $usa_title);
$this->movieInfo["usa_title"] = $usa_title;
$this->movieInfo["release_date"] = $this->match("/Release Date:<\\/h4>.*?([0-9][0-9]? (January|February|March|April|May|June|July|August|September|October|November|December) (19|20)[0-9][0-9]).*?(\\(|<span)/ms", $html, 1);
$this->movieInfo["release_dates"] = $this->getReleaseDates($releaseinfoHtml);
}
$this->movieInfo["plot"] = trim(strip_tags($this->match("/<p itemprop=\"description\">(.*?)<\\/p>/ms", $html, 1)));
$this->movieInfo["poster"] = $this->match("/img_primary\">.*?<img src=\"(.*?)\".*?<\\/td>/ms", $html, 1);
$this->movieInfo["poster_large"] = "";
$this->movieInfo["poster_small"] = "";
if( $this->movieInfo["poster"] != "" && strrpos($this->movieInfo["poster"], "nopicture") === false && strrpos($this->movieInfo["poster"], "ad.doubleclick") === false )
{
$this->movieInfo["poster_large"] = substr($this->movieInfo["poster"], 0, strrpos($this->movieInfo["poster"], "_V1.")) . "_V1._SY500.jpg";
$this->movieInfo["poster_small"] = substr($this->movieInfo["poster"], 0, strrpos($this->movieInfo["poster"], "_V1.")) . "_V1._SY150.jpg";
}
else
{
$this->movieInfo["poster"] = "";
}
$this->movieInfo["runtime"] = trim($this->match("/Runtime:<\\/h4>.*?([0-9]+) min.*?<\\/div>/ms", $html, 1));
if( $this->movieInfo["runtime"] == "" )
{
$this->movieInfo["runtime"] = trim($this->match("/infobar.*?([0-9]+) min.*?<\\/div>/ms", $html, 1));
}
$this->movieInfo["top_250"] = trim($this->match("/Top 250 #([0-9]+)</ms", $html, 1));
$this->movieInfo["oscars"] = trim($this->match("/Won ([0-9]+) Oscars./ms", $html, 1));
$this->movieInfo["storyline"] = trim(strip_tags($this->match("/Storyline<\\/h2>(.*?)(<em|<\\/p>|<span)/ms", $html, 1)));
$this->movieInfo["tagline"] = trim(strip_tags($this->match("/Tagline.?:<\\/h4>(.*?)(<span|<\\/div)/ms", $html, 1)));
$this->movieInfo["votes"] = $this->match("/<span itemprop=\"ratingCount\">(.*?)<\\/span>/ms", $html, 1);
if( $this->movieInfo["title_id"] != "" )
{
$this->movieInfo["media_images"] = $this->getMediaImages($this->movieInfo["title_id"]);
}
}
public function getReleaseDates($html)
{
$releaseDates = array( );
foreach( $this->match_all("/<tr>(.*?)<\\/tr>/ms", $this->match("/Date<\\/th><\\/tr>(.*?)<\\/table>/ms", $html, 1), 1) as $r )
{
$country = trim(strip_tags($this->match("/<td><b>(.*?)<\\/b><\\/td>/ms", $r, 1)));
$date = trim(strip_tags($this->match("/<td align=\"right\">(.*?)<\\/td>/ms", $r, 1)));
array_push($releaseDates, $country . " = " . $date);
}
return $releaseDates;
}
public function getAkaTitles($html, &$usa_title)
{
$akaTitles = array( );
foreach( $this->match_all("/<tr>(.*?)<\\/tr>/msi", $this->match("/Also Known As(.*?)<\\/table>/ms", $html, 1), 1) as $m )
{
$akaTitleMatch = $this->match_all("/<td>(.*?)<\\/td>/ms", $m, 1);
$akaTitle = trim($akaTitleMatch[0]);
$akaCountry = trim($akaTitleMatch[1]);
array_push($akaTitles, $akaTitle . " = " . $akaCountry);
if( $akaCountry != "" && strrpos(strtolower($akaCountry), "usa") !== false )
{
$usa_title = $akaTitle;
}
}
return $akaTitles;
}
public function getMediaImages($titleId)
{
$url = "http://www.imdb.com/title/" . $titleId . "/mediaindex";
$html = $this->geturl($url);
$media = array( );
$media = array_merge($media, $this->scanMediaImages($html));
foreach( $this->match_all("/<a href=\"\\?page=(.*?)\">/ms", $this->match("/<span style=\"padding: 0 1em;\">(.*?)<\\/span>/ms", $html, 1), 1) as $p )
{
$html = $this->geturl($url . "?page=" . $p);
$media = array_merge($media, $this->scanMediaImages($html));
}
return $media;
}
public function scanMediaImages($html)
{
$pics = array( );
foreach( $this->match_all("/src=\"(.*?)\"/ms", $this->match("/<div class=\"thumb_list\" style=\"font-size: 0px;\">(.*?)<\\/div>/ms", $html, 1), 1) as $i )
{
$i = substr($i, 0, strrpos($i, "_V1.")) . "_V1._SY500.jpg";
array_push($pics, $i);
}
return $pics;
}
public function geturl($url)
{
$html = "";
if( function_exists("curl_init") && ($ch = curl_init()) )
{
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$html = curl_exec($ch);
curl_close($ch);
}
return $html;
}
public function match_all($regex, $str, $i = 0)
{
if( preg_match_all($regex, $str, $matches) === false )
{
return false;
}
return $matches[$i];
}
public function match($regex, $str, $i = 0)
{
if( preg_match($regex, $str, $match) == 1 )
{
return $match[$i];
}
return false;
}
public function savePoster($JPGURL)
{
$JPG = $this->geturl($JPGURL);
if( $JPG )
{
return file_put_contents($this->posterPath . $this->movieInfo["title_id"] . ".jpg", $JPG);
}
}
}
class tmhOAuth
{
public $response = array( );
const VERSION = "0.8.3";
public function __construct($config = array( ))
{
$this->buffer = NULL;
$this->reconfigure($config);
$this->reset_request_settings();
$this->set_user_agent();
}
public function reconfigure($config = array( ))
{
$this->config = array_merge(array( "user_agent" => "", "host" => "api.twitter.com", "consumer_key" => "", "consumer_secret" => "", "token" => "", "secret" => "", "bearer" => "", "oauth_version" => "1.0", "oauth_signature_method" => "HMAC-SHA1", "curl_http_version" => CURL_HTTP_VERSION_1_1, "curl_connecttimeout" => 30, "curl_timeout" => 10, "curl_ssl_verifyhost" => 2, "curl_ssl_verifypeer" => true, "use_ssl" => true, "curl_cainfo" => __DIR__ . DIRECTORY_SEPARATOR . "cacert.pem", "curl_capath" => __DIR__, "curl_followlocation" => false, "curl_proxy" => false, "curl_proxyuserpwd" => false, "curl_encoding" => "", "is_streaming" => false, "streaming_eol" => "\r\n", "streaming_metrics_interval" => 10, "as_header" => true, "force_nonce" => false, "force_timestamp" => false ), $config);
}
private function reset_request_settings($options = array( ))
{
$this->request_settings = array( "params" => array( ), "headers" => array( ), "with_user" => true, "multipart" => false );
if( !empty($options) )
{
$this->request_settings = array_merge($this->request_settings, $options);
}
}
private function set_user_agent()
{
if( !empty($this->config["user_agent"]) )
{
return NULL;
}
$ssl = ($this->config["curl_ssl_verifyhost"] && $this->config["curl_ssl_verifypeer"] && $this->config["use_ssl"] ? "+" : "-");
$ua = "tmhOAuth " . self::VERSION . $ssl . "SSL - //github.com/themattharris/tmhOAuth";
$this->config["user_agent"] = $ua;
}
private function nonce($length = 12, $include_time = true)
{
if( $this->config["force_nonce"] === false )
{
$prefix = ($include_time ? microtime() : "");
return md5(substr($prefix . uniqid(), 0, $length));
}
return $this->config["force_nonce"];
}
private function timestamp()
{
if( $this->config["force_timestamp"] === false )
{
$time = time();
}
else
{
$time = $this->config["force_timestamp"];
}
return (string) $time;
}
private function safe_encode($data)
{
if( is_array($data) )
{
return array_map(array( $this, "safe_encode" ), $data);
}
if( is_scalar($data) )
{
return str_ireplace(array( "+", "%7E" ), array( " ", "~" ), rawurlencode($data));
}
return "";
}
private function safe_decode($data)
{
if( is_array($data) )
{
return array_map(array( $this, "safe_decode" ), $data);
}
if( is_scalar($data) )
{
return rawurldecode($data);
}
return "";
}
private function prepare_oauth1_params()
{
$defaults = array( "oauth_nonce" => $this->nonce(), "oauth_timestamp" => $this->timestamp(), "oauth_version" => $this->config["oauth_version"], "oauth_consumer_key" => $this->config["consumer_key"], "oauth_signature_method" => $this->config["oauth_signature_method"] );
if( $oauth_token = $this->token() )
{
$defaults["oauth_token"] = $oauth_token;
}
$this->request_settings["oauth1_params"] = array( );
foreach( $defaults as $k => $v )
{
$this->request_settings["oauth1_params"][$this->safe_encode($k)] = $this->safe_encode($v);
}
}
private function token()
{
if( $this->request_settings["with_user"] )
{
if( isset($this->config["token"]) && !empty($this->config["token"]) )
{
return $this->config["token"];
}
if( isset($this->config["user_token"]) )
{
return $this->config["user_token"];
}
}
return "";
}
private function secret()
{
if( $this->request_settings["with_user"] )
{
if( isset($this->config["secret"]) && !empty($this->config["secret"]) )
{
return $this->config["secret"];
}
if( isset($this->config["user_secret"]) )
{
return $this->config["user_secret"];
}
}
return "";
}
public function extract_params($body)
{
$kvs = explode("&", $body);
$decoded = array( );
foreach( $kvs as $kv )
{
$kv = explode("=", $kv, 2);
$kv[0] = $this->safe_decode($kv[0]);
$kv[1] = $this->safe_decode($kv[1]);
$decoded[$kv[0]] = $kv[1];
}
return $decoded;
}
private function prepare_method()
{
$this->request_settings["method"] = strtoupper($this->request_settings["method"]);
}
private function prepare_url()
{
$parts = parse_url($this->request_settings["url"]);
$port = (isset($parts["port"]) ? $parts["port"] : false);
$scheme = $parts["scheme"];
$host = $parts["host"];
$path = (isset($parts["path"]) ? $parts["path"] : false);
$port or $port = ($scheme == 'https') ? '443' : '80';
if( $scheme == "https" && $port != "443" || $scheme == "http" && $port != "80" )
{
$host = (string) $host . ":" . $port;
}
$this->request_settings["url"] = strtolower((string) $scheme . "://" . $host);
$this->request_settings["url"] .= $path;
}
private function multipart_escape($value)
{
if( !$this->request_settings["multipart"] || strpos($value, "@") !== 0 )
{
return $value;
}
list($file) = explode(";", substr($value, 1), 2);
if( file_exists($file) )
{
return $value;
}
return " " . $value;
}
private function prepare_params()
{
$doing_oauth1 = false;
$this->request_settings["prepared_params"] = array( );
$prepared =& $this->request_settings["prepared_params"];
$prepared_pairs = array( );
$prepared_pairs_with_oauth = array( );
if( isset($this->request_settings["oauth1_params"]) )
{
$oauth1 =& $this->request_settings["oauth1_params"];
$doing_oauth1 = true;
$params = array_merge($oauth1, $this->request_settings["params"]);
unset($params["oauth_signature"]);
$oauth1 = array( );
}
else
{
$params = $this->request_settings["params"];
}
uksort($params, "strcmp");
foreach( $params as $k => $v )
{
$k = ($this->request_settings["multipart"] ? $k : $this->safe_encode($k));
if( is_array($v) )
{
$v = implode(",", $v);
}
$v = ($this->request_settings["multipart"] ? $this->multipart_escape($v) : $this->safe_encode($v));
if( $doing_oauth1 )
{
if( strpos($k, "oauth") === 0 || !$this->request_settings["multipart"] )
{
$prepared_pairs_with_oauth[] = (string) $k . "=" . $v;
}
if( strpos($k, "oauth") === 0 )
{
$oauth1[$k] = $v;
continue;
}
}
$prepared[$k] = $v;
$prepared_pairs[] = (string) $k . "=" . $v;
}
if( $doing_oauth1 )
{
$this->request_settings["basestring_params"] = implode("&", $prepared_pairs_with_oauth);
}
if( !empty($prepared_pairs) )
{
$content = implode("&", $prepared_pairs);
switch( $this->request_settings["method"] )
{
case "POST":
$this->request_settings["postfields"] = ($this->request_settings["multipart"] ? $prepared : $content);
break;
default:
$this->request_settings["querystring"] = $content;
break;
}
}
}
private function prepare_signing_key()
{
$left = $this->safe_encode($this->config["consumer_secret"]);
$right = $this->safe_encode($this->secret());
$this->request_settings["signing_key"] = $left . "&" . $right;
}
private function prepare_base_string()
{
$url = $this->request_settings["url"];
if( !empty($this->request_settings["headers"]["Host"]) )
{
$url = str_ireplace($this->config["host"], $this->request_settings["headers"]["Host"], $url);
}
$base = array( $this->request_settings["method"], $url, $this->request_settings["basestring_params"] );
$this->request_settings["basestring"] = implode("&", $this->safe_encode($base));
}
private function prepare_oauth_signature()
{
$this->request_settings["oauth1_params"]["oauth_signature"] = $this->safe_encode(base64_encode(hash_hmac("sha1", $this->request_settings["basestring"], $this->request_settings["signing_key"], true)));
}
private function prepare_auth_header()
{
if( !$this->config["as_header"] )
{
return NULL;
}
if( isset($this->request_settings["oauth1_params"]) )
{
uksort($this->request_settings["oauth1_params"], "strcmp");
$encoded_quoted_pairs = array( );
foreach( $this->request_settings["oauth1_params"] as $k => $v )
{
$encoded_quoted_pairs[] = (string) $k . "=\"" . $v . "\"";
}
$header = "OAuth " . implode(", ", $encoded_quoted_pairs);
}
else
{
if( !empty($this->config["bearer"]) )
{
$header = "Bearer " . $this->config["bearer"];
}
}
if( isset($header) )
{
$this->request_settings["headers"]["Authorization"] = $header;
}
}
public function bearer_token_credentials()
{
$credentials = implode(":", array( $this->safe_encode($this->config["consumer_key"]), $this->safe_encode($this->config["consumer_secret"]) ));
return base64_encode($credentials);
}
public function request($method, $url, $params = array( ), $useauth = true, $multipart = false, $headers = array( ))
{
$options = array( "method" => $method, "url" => $url, "params" => $params, "with_user" => true, "multipart" => $multipart, "headers" => $headers );
$options = array_merge($this->default_options(), $options);
if( $useauth )
{
return $this->user_request($options);
}
return $this->unauthenticated_request($options);
}
public function apponly_request($options = array( ))
{
$options = array_merge($this->default_options(), $options, array( "with_user" => false ));
$this->reset_request_settings($options);
if( $options["without_bearer"] )
{
return $this->oauth1_request();
}
$this->prepare_method();
$this->prepare_url();
$this->prepare_params();
$this->prepare_auth_header();
return $this->curlit();
}
public function user_request($options = array( ))
{
$options = array_merge($this->default_options(), $options, array( "with_user" => true ));
$this->reset_request_settings($options);
return $this->oauth1_request();
}
public function unauthenticated_request($options = array( ))
{
$options = array_merge($this->default_options(), $options, array( "with_user" => false ));
$this->reset_request_settings($options);
$this->prepare_method();
$this->prepare_url();
$this->prepare_params();
return $this->curlit();
}
private function oauth1_request()
{
$this->prepare_oauth1_params();
$this->prepare_method();
$this->prepare_url();
$this->prepare_params();
$this->prepare_base_string();
$this->prepare_signing_key();
$this->prepare_oauth_signature();
$this->prepare_auth_header();
return $this->curlit();
}
private function default_options()
{
return array( "method" => "GET", "params" => array( ), "with_user" => true, "multipart" => false, "headers" => array( ), "without_bearer" => false );
}
public function streaming_request($method, $url, $params = array( ), $callback = "")
{
if( !empty($callback) )
{
if( !is_callable($callback) )
{
return false;
}
$this->config["streaming_callback"] = $callback;
}
$this->metrics["start"] = time();
$this->metrics["interval_start"] = $this->metrics["start"];
$this->metrics["messages"] = 0;
$this->metrics["last_messages"] = 0;
$this->metrics["bytes"] = 0;
$this->metrics["last_bytes"] = 0;
$this->config["is_streaming"] = true;
$this->request($method, $url, $params);
}
private function update_metrics()
{
$now = time();
if( $now < $this->metrics["interval_start"] + $this->config["streaming_metrics_interval"] )
{
return NULL;
}
$this->metrics["mps"] = round(($this->metrics["messages"] - $this->metrics["last_messages"]) / $this->config["streaming_metrics_interval"], 2);
$this->metrics["bps"] = round(($this->metrics["bytes"] - $this->metrics["last_bytes"]) / $this->config["streaming_metrics_interval"], 2);
$this->metrics["last_bytes"] = $this->metrics["bytes"];
$this->metrics["last_messages"] = $this->metrics["messages"];
$this->metrics["interval_start"] = $now;
return $this->metrics;
}
public function url($request, $extension = "json")
{
$request = preg_replace("\$([^:])//+\$", "\$1/", $request);
if( stripos($request, "http") === 0 || stripos($request, "//") === 0 )
{
return $request;
}
$extension = (0 < strlen($extension) ? "." . $extension : "");
$proto = ($this->config["use_ssl"] ? "https:/" : "http:/");
$request = ltrim($request, "/");
$pos = strlen($request) - strlen($extension);
if( substr($request, $pos) === $extension )
{
$request = substr_replace($request, "", $pos);
}
return implode("/", array( $proto, $this->config["host"], $request . $extension ));
}
public function transformText($text, $mode = "encode")
{
return $this->{"safe_" . $mode}($text);
}
private function curlHeader($ch, $header)
{
$this->response["raw"] .= $header;
list($key, $value) = array_pad(explode(":", $header, 2), 2, NULL);
$key = trim($key);
$value = trim($value);
if( !isset($this->response["headers"][$key]) )
{
$this->response["headers"][$key] = $value;
}
else
{
if( !is_array($this->response["headers"][$key]) )
{
$this->response["headers"][$key] = array( $this->response["headers"][$key] );
}
$this->response["headers"][$key][] = $value;
}
return strlen($header);
}
private function curlWrite($ch, $data)
{
$l = strlen($data);
if( strpos($data, $this->config["streaming_eol"]) === false )
{
$this->buffer .= $data;
return $l;
}
$buffered = explode($this->config["streaming_eol"], $data);
$content = $this->buffer . $buffered[0];
$this->metrics["messages"]++;
$this->metrics["bytes"] += strlen($content);
if( !is_callable($this->config["streaming_callback"]) )
{
return 0;
}
$metrics = $this->update_metrics();
$stop = call_user_func($this->config["streaming_callback"], $content, strlen($content), $metrics);
$this->buffer = $buffered[1];
if( $stop )
{
return 0;
}
return $l;
}
private function curlit()
{
$this->response = array( "raw" => "" );
$c = curl_init();
switch( $this->request_settings["method"] )
{
case "GET":
if( isset($this->request_settings["querystring"]) )
{
$this->request_settings["url"] = $this->request_settings["url"] . "?" . $this->request_settings["querystring"];
}
break;
case "POST":
curl_setopt($c, CURLOPT_POST, true);
if( isset($this->request_settings["postfields"]) )
{
$postfields = $this->request_settings["postfields"];
}
else
{
$postfields = array( );
}
curl_setopt($c, CURLOPT_POSTFIELDS, $postfields);
break;
default:
if( isset($this->request_settings["postfields"]) )
{
curl_setopt($c, CURLOPT_CUSTOMREQUEST, $this->request_settings["postfields"]);
}
}
curl_setopt_array($c, array( CURLOPT_HTTP_VERSION => $this->config["curl_http_version"], CURLOPT_USERAGENT => $this->config["user_agent"], CURLOPT_CONNECTTIMEOUT => $this->config["curl_connecttimeout"], CURLOPT_TIMEOUT => $this->config["curl_timeout"], CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => $this->config["curl_ssl_verifypeer"], CURLOPT_SSL_VERIFYHOST => $this->config["curl_ssl_verifyhost"], CURLOPT_FOLLOWLOCATION => $this->config["curl_followlocation"], CURLOPT_PROXY => $this->config["curl_proxy"], CURLOPT_ENCODING => $this->config["curl_encoding"], CURLOPT_URL => $this->request_settings["url"], CURLOPT_HEADERFUNCTION => array( $this, "curlHeader" ), CURLOPT_HEADER => false, CURLINFO_HEADER_OUT => true ));
if( $this->config["curl_cainfo"] !== false )
{
curl_setopt($c, CURLOPT_CAINFO, $this->config["curl_cainfo"]);
}
if( $this->config["curl_capath"] !== false )
{
curl_setopt($c, CURLOPT_CAPATH, $this->config["curl_capath"]);
}
if( $this->config["curl_proxyuserpwd"] !== false )
{
curl_setopt($c, CURLOPT_PROXYUSERPWD, $this->config["curl_proxyuserpwd"]);
}
if( $this->config["is_streaming"] )
{
$this->response["content-length"] = 0;
curl_setopt($c, CURLOPT_TIMEOUT, 0);
curl_setopt($c, CURLOPT_WRITEFUNCTION, array( $this, "curlWrite" ));
}
if( !empty($this->request_settings["headers"]) )
{
foreach( $this->request_settings["headers"] as $k => $v )
{
$headers[] = trim($k . ": " . $v);
}
curl_setopt($c, CURLOPT_HTTPHEADER, $headers);
}
if( isset($this->config["block"]) && true === $this->config["block"] )
{
return 0;
}
$response = curl_exec($c);
$code = curl_getinfo($c, CURLINFO_HTTP_CODE);
$info = curl_getinfo($c);
$error = curl_error($c);
$errno = curl_errno($c);
curl_close($c);
$this->response["code"] = $code;
$this->response["response"] = $response;
$this->response["info"] = $info;
$this->response["error"] = $error;
$this->response["errno"] = $errno;
if( !isset($this->response["raw"]) )
{
$this->response["raw"] = "";
}
$this->response["raw"] .= $response;
return $code;
}
}
function handleoptions()
{
global $TSUE;
$HTML = "";
if( $TSUE["option"] )
{
if( isset($_POST["settings"]) && isset($_POST["save_options"]) )
{
$HTML = successmessage(get_phrase("message_saved"));
if( isset($_POST["settings"]["website_url"]) && substr($_POST["settings"]["website_url"], -1) == "/" )
{
$_POST["settings"]["website_url"] = rtrim($_POST["settings"]["website_url"], "/");
}
updatesettings("global_settings", array_merge($TSUE["TSUE_Settings"]->settings["global_settings"], $_POST["settings"]));
aaaaal();
handlerebuildcaches(false);
handleprune(false);
}
else
{
$HTML = "";
$aaaaam = "";
switch( $TSUE["option"] )
{
case "website_active":
$radioButtons = radioyesno("settings[website_active]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_active"]);
$formContents = aaaaan(get_phrase("dashboard_options_website_active"), $radioButtons, get_phrase("dashboard_options_website_active_alt"));
$textarea = textarea("settings[website_active_reason]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_active_reason"]);
$formContents .= aaaaan(get_phrase("dashboard_options_website_active_reason"), $textarea, get_phrase("dashboard_options_website_active_reason_alt"));
$radioButtons = radioyesno("settings[tsue_debug_mode]", $TSUE["TSUE_Settings"]->settings["global_settings"]["tsue_debug_mode"]);
$formContents .= aaaaan(get_phrase("dashboard_options_debug_mode"), $radioButtons, get_phrase("dashboard_options_debug_mode_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_website_active") );
break;
case "basic_website_information":
$inputbox = inputbox("settings[website_url]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
$formContents = aaaaan(get_phrase("dashboard_options_website_url"), $inputbox, get_phrase("dashboard_options_website_url_alt"));
$inputbox = inputbox("settings[website_title]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]);
$formContents .= aaaaan(get_phrase("dashboard_options_website_title"), $inputbox, get_phrase("dashboard_options_website_title_alt"));
$inputbox = inputbox("settings[website_description]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_description"]);
$formContents .= aaaaan(get_phrase("dashboard_options_website_description"), $inputbox, get_phrase("dashboard_options_website_description_alt"));
$inputbox = inputbox("settings[website_email]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_email"]);
$formContents .= aaaaan(get_phrase("dashboard_options_website_email"), $inputbox, get_phrase("dashboard_options_website_email_alt"));
$inputbox = inputbox("settings[donate_goal]", $TSUE["TSUE_Settings"]->settings["global_settings"]["donate_goal"]);
$formContents .= aaaaan(get_phrase("dashboard_options_donate_goal"), $inputbox, get_phrase("dashboard_options_donate_goal_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_basic_website_information") );
break;
case "email_options":
$inputbox = inputbox("settings[website_sendmail_from]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"]);
$formContents = aaaaan(get_phrase("dashboard_options_website_sendmail_from"), $inputbox, get_phrase("dashboard_options_website_sendmail_from_alt"));
$radioButtons = radioyesno("settings[use_f_parameter]", $TSUE["TSUE_Settings"]->settings["global_settings"]["use_f_parameter"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_use_f_parameter"), $radioButtons, get_phrase("dashboard_options_mail_type_use_f_parameter_alt"));
$radioButtons = radioyesno("settings[mail_type]", $TSUE["TSUE_Settings"]->settings["global_settings"]["mail_type"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type"), $radioButtons, get_phrase("dashboard_options_mail_type_alt"));
$inputbox = inputbox("settings[smtp_host]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_host"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_host_alt"));
$inputbox = inputbox("settings[smtp_port]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_port"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_port"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_port_alt"));
$inputbox = inputbox("settings[smtp_user]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_user"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_user_alt"));
$inputbox = inputbox("settings[smtp_pass]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_pass"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_pass_alt"));
$radioButtons = radioyesno("settings[smtp_secure]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_secure"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_secure"), $radioButtons, get_phrase("dashboard_options_mail_type_smtp_secure_alt"));
$radioButtons = radioyesno("settings[smtp_debug]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_debug"]);
$formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_debug"), $radioButtons, get_phrase("dashboard_options_mail_type_smtp_debug_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_email_options") );
break;
case "member_registration":
$aaaaao = array( get_phrase("dashboard_options_website_allow_signup_0"), get_phrase("dashboard_options_website_allow_signup_1"), get_phrase("dashboard_options_website_allow_signup_2"), get_phrase("dashboard_options_website_allow_signup_3"), get_phrase("dashboard_options_website_allow_signup_4") );
$selectbox = selectbox("settings[website_allow_signup]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_allow_signup"], $aaaaao);
$formContents = aaaaan(get_phrase("dashboard_options_website_allow_signup"), $selectbox, get_phrase("dashboard_options_website_allow_signup_alt"));
$aaaaao = array( get_phrase("dashboard_options_website_new_signup_verification_0"), get_phrase("dashboard_options_website_new_signup_verification_1"), get_phrase("dashboard_options_website_new_signup_verification_2") );
$selectbox = selectbox("settings[website_new_signup_verification]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_new_signup_verification"], $aaaaao);
$formContents .= aaaaan(get_phrase("dashboard_options_website_new_signup_verification"), $selectbox, get_phrase("dashboard_options_website_new_signup_verification_alt"));
$inputbox = inputbox("settings[max_members_limit]", getsetting("global_settings", "max_members_limit", 0), "text");
$formContents .= aaaaan(get_phrase("max_members_limit"), $inputbox, get_phrase("max_members_limit_alt"));
$inputbox = inputbox("settings[membername_match_regular_expression]", getsetting("global_settings", "membername_match_regular_expression", "^[a-zA-Z0-9]+\$"), "text");
$formContents .= aaaaan(get_phrase("membername_match_regular_expression"), $inputbox, get_phrase("membername_match_regular_expression_alt"));
$radioButtons = radioyesno("settings[force_member_to_agree_to_the_terms_of_service_and_rules]", getsetting("global_settings", "force_member_to_agree_to_the_terms_of_service_and_rules"));
$formContents .= aaaaan(get_phrase("force_member_to_agree_to_the_terms_of_service_and_rules"), $radioButtons, get_phrase("force_member_to_agree_to_the_terms_of_service_and_rules_alt"));
$textarea = textarea("settings[member_name_illegal_member_names]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"]);
$formContents .= aaaaan(get_phrase("dashboard_options_member_name_illegal_member_names"), $textarea, get_phrase("dashboard_options_member_name_illegal_member_names_alt"));
$inputbox = inputbox("settings[member_name_min_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"], "text texthalf");
$inputbox .= inputbox("settings[member_name_max_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_member_name_length_limit"), $inputbox, get_phrase("dashboard_options_member_name_length_limit_alt"));
$inputbox = inputbox("settings[member_password_min_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_member_password_min_char"), $inputbox, get_phrase("dashboard_options_member_password_min_char_alt"));
$aaaaao = fetch_timezones();
$selectbox = selectbox("settings[d_timezone]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_timezone"], $aaaaao);
$formContents .= aaaaan(get_phrase("dashboard_options_d_timezone"), $selectbox, get_phrase("dashboard_options_d_timezone_alt"));
$inputbox = inputbox("settings[default_uploaded]", getsetting("global_settings", "default_uploaded"), "text texthalf", "GB");
$formContents .= aaaaan(get_phrase("stats_uploaded"), $inputbox, get_phrase("default_uploaded_alt"));
$inputbox = inputbox("settings[default_points]", getsetting("global_settings", "default_points"), "text texthalf");
$formContents .= aaaaan(get_phrase("stats_points"), $inputbox, get_phrase("default_points_alt"));
$inputbox = inputbox("settings[default_invites]", getsetting("global_settings", "default_invites"), "text texthalf");
$formContents .= aaaaan(get_phrase("stats_total_invites"), $inputbox, get_phrase("default_invites_alt"));
$radioButtons = radioyesno("settings[prevent_multiple_account]", getsetting("global_settings", "prevent_multiple_account"));
$formContents .= aaaaan(get_phrase("prevent_multiple_account_registration"), $radioButtons, get_phrase("prevent_multiple_account_registration_alt"));
$welcome_pm_text = get_phrase("welcome_pm_text", "?action=Appearance&do=Languages&type=editPhrase&languageid=1&text=new_member_welcome_pm_body", "?action=Appearance&do=Languages&type=editPhrase&languageid=1&text=new_member_welcome_pm_subject");
$radioButtons = radioyesno("settings[send_welcome_pm]", getsetting("global_settings", "send_welcome_pm"));
$formContents .= aaaaan(get_phrase("send_welcome_pm"), $radioButtons, get_phrase("send_welcome_pm_alt") . " " . $welcome_pm_text);
$inputbox = inputbox("settings[send_welcome_pm_owner]", getsetting("global_settings", "send_welcome_pm_owner"), "text texthalf");
$formContents .= aaaaan(get_phrase("send_welcome_pm_owner"), $inputbox);
$aaaaam = array( "option_name" => get_phrase("dashboard_options_member_registration") );
break;
case "appearance":
$aaaaao = aaaaap();
$selectbox = selectbox("settings[d_themeid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"], $aaaaao);
$formContents = aaaaan(get_phrase("dashboard_options_d_themeid"), $selectbox, get_phrase("dashboard_options_d_themeid_alt"));
$aaaaao = aaaaaq();
$selectbox = selectbox("settings[d_languageid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"], $aaaaao);
$formContents .= aaaaan(get_phrase("dashboard_options_d_languageid"), $selectbox, get_phrase("dashboard_options_d_languageid_alt"));
$radioButtons = radioyesno("settings[torrent_catz_always_visible]", getsetting("global_settings", "torrent_catz_always_visible"));
$formContents .= aaaaan(get_phrase("torrent_catz_always_visible"), $radioButtons, get_phrase("torrent_catz_always_visible_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_appearance") );
break;
case "cookies":
$inputbox = inputbox("settings[website_timeout]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_timeout"], "text texthalf");
$formContents = aaaaan(get_phrase("dashboard_options_website_timeout"), $inputbox, get_phrase("dashboard_options_website_timeout_alt"));
$inputbox = inputbox("settings[cookie_path]", $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_path"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_cookie_path"), $inputbox, get_phrase("dashboard_options_cookie_path_alt"));
$inputbox = inputbox("settings[cookie_domain]", $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_domain"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_cookie_domain"), $inputbox, get_phrase("dashboard_options_cookie_domain_alt"));
$inputbox = inputbox("settings[gzip_compression_level]", $TSUE["TSUE_Settings"]->settings["global_settings"]["gzip_compression_level"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_gzip_compression_level"), $inputbox, get_phrase("dashboard_options_gzip_compression_level_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_cookies") );
break;
case "announce":
$inputbox = inputbox("settings[announce_url]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_url"], "text");
$formContents = aaaaan(get_phrase("dashboard_options_announce_url"), $inputbox, get_phrase("dashboard_options_announce_url_alt"));
$inputbox = inputbox("settings[announce_interval]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_interval"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_announce_interval"), $inputbox, get_phrase("dashboard_options_announce_interval_alt"));
$aaaaao = array( get_phrase("dashboard_options_announce_check_peerid_0"), get_phrase("dashboard_options_announce_check_peerid_1"), get_phrase("dashboard_options_announce_check_peerid_2") );
$selectbox = selectbox("settings[announce_check_peerid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_peerid"], $aaaaao);
$formContents .= aaaaan(get_phrase("dashboard_options_announce_check_peerid"), $selectbox, get_phrase("dashboard_options_announce_check_peerid_alt"));
$textarea = textarea("settings[announce_check_peerlist]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_peerlist"]);
$formContents .= aaaaan(get_phrase("dashboard_options_announce_check_peerlist"), $textarea, get_phrase("dashboard_options_announce_check_peerlist_alt"));
$radioButtons = radioyesno("settings[announce_check_ip]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_ip"]);
$formContents .= aaaaan(get_phrase("dashboard_options_announce_check_ip"), $radioButtons, get_phrase("dashboard_options_announce_check_ip_alt"));
$radioButtons = radioyesno("settings[announce_private_torrents_only]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_private_torrents_only"]);
$formContents .= aaaaan(get_phrase("dashboard_options_announce_private_torrents_only") . " (" . get_phrase("dashboard_options_announce_private_torrents_only_alt2") . ")", $radioButtons, get_phrase("dashboard_options_announce_private_torrents_only_alt"));
$radioButtons = radioyesno("settings[announce_add_announce_url]", getsetting("global_settings", "announce_add_announce_url"));
$formContents .= aaaaan(get_phrase("announce_add_announce_url"), $radioButtons, get_phrase("announce_add_announce_url_alt"));
$radioButtons = radioyesno("settings[show_announce_url]", getsetting("global_settings", "show_announce_url"));
$formContents .= aaaaan(get_phrase("show_announce_url"), $radioButtons, get_phrase("show_announce_url_alt"));
$radioButtons = radioyesno("settings[announce_check_slots]", getsetting("global_settings", "announce_check_slots"));
$formContents .= aaaaan(get_phrase("announce_check_slots"), $radioButtons, get_phrase("announce_check_slots_alt"));
$radioButtons = radioyesno("settings[announce_bump_inactive_torrents]", getsetting("global_settings", "announce_bump_inactive_torrents"));
$formContents .= aaaaan(get_phrase("bump_inactive_torrents"), $radioButtons, get_phrase("bump_inactive_torrents_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_announce") );
break;
case "ipban":
if( isset($_POST["save_options"]) )
{
if( isset($_POST["removeip"]) )
{
if( is_array($_POST["removeip"]) )
{
$ip = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removeip"]));
$TSUE["TSUE_Database"]->delete("tsue_ip_match", "ip IN (" . $ip . ") AND match_type = 'banned'");
$outputMessage = "-UPDATE_HTML-~#bannedIPaddresses~" . successmessage(get_phrase("message_saved")) . getbannedips();
}
}
else
{
$ip = (isset($_POST["ip"]) ? trim($_POST["ip"]) : false);
if( $ip )
{
$banIp = banip($ip);
if( !is_array($banIp) )
{
$HTML = errormessage(get_phrase("dashboard_options_ipban_invalid_ip"));
}
else
{
$BuildQuery = array( "ip" => $banIp["0"], "first_octet" => $banIp["1"], "start_range" => $banIp["2"], "end_range" => $banIp["3"] );
$TSUE["TSUE_Database"]->replace("tsue_ip_match", $BuildQuery);
$outputMessage = "-UPDATE_HTML-~#bannedIPaddresses~" . successmessage(get_phrase("message_saved")) . getbannedips();
}
}
}
handlerebuildcaches(false);
aaaaal();
if( isset($outputMessage) )
{
_sendheaders($outputMessage);
}
exit();
}
$formContents = aaaaan(get_phrase("dashboard_options_ipban_span"), getbannedips(), "", "optionsInOverlay", "dashboard_options_ipban");
$inputbox = inputbox("ip", "", "text");
$formContents .= aaaaan(get_phrase("dashboard_options_ipban_ip"), $inputbox, get_phrase("dashboard_options_ipban_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_ipban") );
break;
case "emailban":
if( isset($_POST["save_options"]) )
{
if( isset($_POST["removeemail"]) )
{
if( is_array($_POST["removeemail"]) )
{
$email = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removeemail"]));
$TSUE["TSUE_Database"]->delete("tsue_ban_email", "banned_email IN (" . $email . ")");
$outputMessage = "-UPDATE_HTML-~#bannedEmailaddresses~" . successmessage(get_phrase("message_saved")) . aaaaar();
}
}
else
{
$email = (isset($_POST["email"]) ? trim($_POST["email"]) : false);
if( $email )
{
$banEmail = banemail($email);
if( !is_array($banEmail) )
{
$HTML = errormessage($banEmail);
}
else
{
$BuildQuery = array( "banned_email" => $banEmail["0"] );
$TSUE["TSUE_Database"]->replace("tsue_ban_email", $BuildQuery);
$outputMessage = "-UPDATE_HTML-~#bannedEmailaddresses~" . successmessage(get_phrase("message_saved")) . aaaaar();
}
}
}
handlerebuildcaches(false);
aaaaal();
if( isset($outputMessage) )
{
_sendheaders($outputMessage);
}
exit();
}
$formContents = aaaaan(get_phrase("dashboard_options_emailban_span"), aaaaar(), "", "optionsInOverlay", "dashboard_options_emailban");
$inputbox = inputbox("email", "", "text");
$formContents .= aaaaan(get_phrase("dashboard_options_emailban_email"), $inputbox, get_phrase("dashboard_options_emailban_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_emailban") );
break;
case "countryban":
if( isset($_POST["save_options"]) )
{
if( isset($_POST["removecountry"]) )
{
if( is_array($_POST["removecountry"]) )
{
$countries = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removecountry"]));
$TSUE["TSUE_Database"]->delete("tsue_ban_country", "country IN (" . $countries . ")");
$outputMessage = "-UPDATE_HTML-~#bannedCountries~" . successmessage(get_phrase("message_saved")) . getbannedcountries();
}
}
else
{
$country = (isset($_POST["country"]) ? trim(strtolower($_POST["country"])) : "");
$aaaaas = strlen($country);
if( 2 <= $aaaaas )
{
$BuildQuery = array( "country" => ($aaaaas == 2 ? strtoupper($country) : ucfirst($country)) );
$TSUE["TSUE_Database"]->replace("tsue_ban_country", $BuildQuery);
$outputMessage = "-UPDATE_HTML-~#bannedCountries~" . successmessage(get_phrase("message_saved")) . getbannedcountries();
}
}
handlerebuildcaches(false);
aaaaal();
if( isset($outputMessage) )
{
_sendheaders($outputMessage);
}
exit();
}
$formContents = "<h2>This feature uses <a href=\"http://www.maxmind.com/app/javascript\" target=\"_blank\">GeoIP from MaxMind</a>.</h2>";
$formContents .= aaaaan(get_phrase("dashboard_options_countryban_span"), getbannedcountries(), "", "optionsInOverlay", "dashboard_options_countryban");
$inputbox = inputbox("country", "", "text");
$formContents .= aaaaan(get_phrase("country_to_ban"), $inputbox, get_phrase("country_to_ban_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_countryban") );
break;
case "censoring":
if( isset($_POST["save_options"]) )
{
$words = $_POST["options"]["censorWords"];
aaaaat($words);
updatesettings("censor_cache", array( "censoring_censor_character" => trim($_POST["censoring_censor_character"]), "censorWords" => $words ));
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = "-UPDATE_HTML-~#buildCensoringHTML~" . successmessage(get_phrase("message_saved")) . aaaaau();
aaaaal();
if( isset($outputMessage) )
{
_sendheaders($outputMessage);
}
exit();
}
$formContents = aaaaau();
$aaaaam = array( "option_name" => get_phrase("dashboard_options_censoring") );
break;
case "seo":
$radioButtons = radioyesno("settings[social_media_buttons]", $TSUE["TSUE_Settings"]->settings["global_settings"]["social_media_buttons"]);
$formContents = aaaaan(get_phrase("dashboard_options_seo_enable_social_media"), $radioButtons, get_phrase("dashboard_options_seo_enable_social_media_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_seo") );
break;
case "limitations":
$inputbox = inputbox("settings[reseed_request_flood_limit]", $TSUE["TSUE_Settings"]->settings["global_settings"]["reseed_request_flood_limit"], "text");
$formContents = aaaaan(get_phrase("dashboard_options_limitations_reseed_request_flood_limit"), $inputbox, get_phrase("dashboard_options_limitations_reseed_request_flood_limit_alt"));
$inputbox = inputbox("settings[website_torrents_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_torrents_perpage"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_torrents_perpage"), $inputbox, get_phrase("dashboard_options_limitations_torrents_perpage_alt"));
$inputbox = inputbox("settings[website_rss_perpage]", getsetting("global_settings", "website_rss_perpage", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_torrents_perpage"]), "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_rss_perpage"), $inputbox, get_phrase("dashboard_options_limitations_rss_perpage_alt"));
$inputbox = inputbox("settings[website_comments_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_comments_perpage"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_comments_perpage"), $inputbox, get_phrase("dashboard_options_limitations_comments_perpage_alt"));
$inputbox = inputbox("settings[website_messages_perpage]", getsetting("global_settings", "website_messages_perpage", 15), "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_messages_perpage"), $inputbox, get_phrase("dashboard_options_limitations_messages_perpage_alt"));
$inputbox = inputbox("settings[website_members_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_members_perpage"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_members_perpage"), $inputbox, get_phrase("dashboard_options_limitations_members_perpage_alt"));
$inputbox = inputbox("settings[forums_threads_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_threads_perpage"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_threads_perpage"), $inputbox, get_phrase("dashboard_options_limitations_threads_perpage_alt"));
$inputbox = inputbox("settings[forums_posts_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_posts_perpage"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_posts_perpage"), $inputbox, get_phrase("dashboard_options_limitations_posts_perpage_alt"));
$inputbox = inputbox("settings[subtitles_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_perpage"], "text");
$formContents .= aaaaan(get_phrase("subtitles_perpage"), $inputbox, get_phrase("subtitles_perpage_alt"));
$inputbox = inputbox("settings[requests_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["requests_perpage"], "text");
$formContents .= aaaaan(get_phrase("requests_per_page"), $inputbox, get_phrase("requests_per_page_alt"));
$inputbox = inputbox("settings[comment_post_min_char_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["comment_post_min_char_length"], "text texthalf");
$inputbox .= inputbox("settings[comment_post_max_char_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["comment_post_max_char_length"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_comments_length_limit"), $inputbox, get_phrase("dashboard_options_limitations_comments_length_limit_alt"));
$inputbox = inputbox("settings[forums_max_thread_title_limit]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_max_thread_title_limit"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_threads_max_title_limit"), $inputbox, get_phrase("dashboard_options_limitations_threads_max_title_limit_alt"));
$inputbox = inputbox("settings[forums_min_post_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_min_post_length"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_posts_min_limit"), $inputbox, get_phrase("dashboard_options_limitations_posts_min_limit_alt"));
$inputbox = inputbox("settings[website_resize_images_max_width]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_resize_images_max_width"], "text texthalf");
$inputbox .= inputbox("settings[website_resize_images_max_height]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_resize_images_max_height"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_scale_images"), $inputbox, get_phrase("dashboard_options_limitations_scale_images_alt"));
$inputbox = inputbox("settings[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["global_settings"]["allowed_file_types"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, get_phrase("dashboard_options_limitations_allowed_file_types_alt"));
$inputbox = inputbox("settings[max_file_size]", $TSUE["TSUE_Settings"]->settings["global_settings"]["max_file_size"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_max_file_size"), $inputbox . " " . friendly_size($TSUE["TSUE_Settings"]->settings["global_settings"]["max_file_size"]), get_phrase("dashboard_options_limitations_max_file_size_alt"));
$inputbox = inputbox("settings[torrent_category_row_limit]", getsetting("global_settings", "torrent_category_row_limit", 3), "text texthalf");
$formContents .= aaaaan(get_phrase("torrent_categories_row_limit"), $inputbox, get_phrase("torrent_categories_row_limit_alt"));
$inputbox = inputbox("settings[request_torrent_chars_limit]", getsetting("global_settings", "request_torrent_chars_limit", 255), "text texthalf");
$formContents .= aaaaan(get_phrase("request_torrent_chars_limit"), $inputbox, get_phrase("request_torrent_chars_limit_alt"));
$inputbox = inputbox("settings[upcoming_releases_perpage]", getsetting("global_settings", "upcoming_releases_perpage", 10), "text");
$formContents .= aaaaan(get_phrase("upcoming_releases_perpage"), $inputbox, get_phrase("upcoming_releases_perpage_alt"));
$inputbox = inputbox("settings[upcoming_releases_chars_limit]", getsetting("global_settings", "upcoming_releases_chars_limit", 255), "text texthalf");
$formContents .= aaaaan(get_phrase("upcoming_releases_chars_limit"), $inputbox, get_phrase("upcoming_releases_chars_limit_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_limitations") );
break;
case "member_alerts":
$inputbox = inputbox("settings[alerts_popup_expiry_hours]", $TSUE["TSUE_Settings"]->settings["global_settings"]["alerts_popup_expiry_hours"], "text");
$formContents = aaaaan(get_phrase("dashboard_options_member_alerts_expirity_hours"), $inputbox, get_phrase("dashboard_options_member_alerts_expirity_hours_alt"));
$inputbox = inputbox("settings[alerts_popup_expiry_days]", $TSUE["TSUE_Settings"]->settings["global_settings"]["alerts_popup_expiry_days"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_member_alerts_expirity_days"), $inputbox, get_phrase("dashboard_options_member_alerts_expirity_days_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_member_alerts") );
break;
case "cleanup":
$inputbox = inputbox("settings[peers_prune_in_day]", $TSUE["TSUE_Settings"]->settings["global_settings"]["peers_prune_in_day"], "text");
$formContents = aaaaan(get_phrase("dashboard_options_cleanup_prune_snatch_list"), $inputbox, get_phrase("dashboard_options_cleanup_prune_snatch_list_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[shouts_prune_in_day]", $TSUE["TSUE_Settings"]->settings["global_settings"]["shouts_prune_in_day"], "text");
$formContents .= aaaaan(get_phrase("dashboard_options_cleanup_prune_shouts"), $inputbox, get_phrase("dashboard_options_cleanup_prune_shouts_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[days_retain_posted_request]", getsetting("global_settings", "days_retain_posted_request"), "text");
$formContents .= aaaaan(get_phrase("days_retain_posted_request"), $inputbox, get_phrase("days_retain_posted_request_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[days_retain_dead_torrents]", getsetting("global_settings", "days_retain_dead_torrents"), "text");
$formContents .= aaaaan(get_phrase("days_retain_dead_torrents"), $inputbox, get_phrase("days_retain_dead_torrents_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[days_retain_unused_invites]", getsetting("global_settings", "days_retain_unused_invites"), "text");
$formContents .= aaaaan(get_phrase("days_retain_unused_invites"), $inputbox, get_phrase("days_retain_unused_invites_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[days_retain_posted_upcoming_releases]", getsetting("global_settings", "days_retain_posted_upcoming_releases", 5), "text");
$formContents .= aaaaan(get_phrase("days_retain_posted_upcoming_releases"), $inputbox, get_phrase("days_retain_posted_upcoming_releases_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_cleanup") );
break;
case "points":
$inputbox = inputbox("settings[points_seed]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_seed"], "text texthalf");
$formContents = aaaaan(get_phrase("dashboard_options_points_seed"), $inputbox, get_phrase("dashboard_options_points_seed_alt"));
$inputbox = inputbox("settings[points_seed_al]", intval(getsetting("global_settings", "points_seed_al", 0)), "text texthalf");
$formContents .= aaaaan(get_phrase("points_seed_al"), $inputbox, get_phrase("points_seed_al_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[points_seed_min_gb]", getsetting("global_settings", "points_seed_min_gb", 0), "text texthalf", "GB");
$formContents .= aaaaan(get_phrase("dashboard_options_points_seed_min_gb"), $inputbox, get_phrase("dashboard_options_points_seed_min_gb_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[points_x2_for_big_torrents]", getsetting("global_settings", "points_x2_for_big_torrents", 0), "text texthalf", "GB");
$formContents .= aaaaan(get_phrase("x2_for_big_torrents"), $inputbox, get_phrase("x2_for_big_torrents_alt") . " " . get_phrase("leave_empty_to_skip_this"));
$inputbox = inputbox("settings[points_torrent_upload]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_torrent_upload"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_torrent_upload"), $inputbox, get_phrase("dashboard_options_points_torrent_upload_alt"));
$inputbox = inputbox("settings[points_post_comment]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_post_comment"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_post_comment"), $inputbox, get_phrase("dashboard_options_points_post_comment_alt"));
$inputbox = inputbox("settings[points_new_thread]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_thread"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_new_thread"), $inputbox, get_phrase("dashboard_options_points_new_thread_alt"));
$inputbox = inputbox("settings[points_new_replies]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_replies"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_new_replies"), $inputbox, get_phrase("dashboard_options_points_new_replies_alt"));
$aaaaao = array( 1 => get_phrase("points_likes_type_1"), 2 => get_phrase("points_likes_type_2"), 3 => get_phrase("points_likes_type_3") );
$selectbox = selectbox("settings[points_likes_type]", getsetting("global_settings", "points_likes_type", 2), $aaaaao, "selectNoWidth");
$inputbox = inputbox("settings[points_likes]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_likes"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_likes"), $inputbox, get_phrase("dashboard_options_points_likes_alt"), "optionsInOverlay", "", "", "", $selectbox);
$inputbox = inputbox("settings[points_poll]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_poll"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_poll"), $inputbox, get_phrase("dashboard_options_points_poll_alt"));
$inputbox = inputbox("settings[points_fill_request]", getsetting("global_settings", "points_fill_request", 0), "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_points_fill_request"), $inputbox, get_phrase("dashboard_options_points_fill_request_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_points") );
break;
case "subtitles":
$inputbox = inputbox("settings[subtitles_allowed_file_types]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_allowed_file_types"], "text texthalf");
$formContents = aaaaan(get_phrase("dashboard_options_subtitles_allowed_file_types"), $inputbox, get_phrase("dashboard_options_subtitles_allowed_file_types_alt"));
$inputbox = inputbox("settings[subtitles_max_file_size]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_max_file_size"], "text texthalf");
$formContents .= aaaaan(get_phrase("subtitles_max_file_size"), $inputbox . " " . friendly_size($TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_max_file_size"]), get_phrase("subtitles_max_file_size_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_subtitles") );
break;
case "security":
$radioButtons = radioyesno("settings[website_use_strike_system]", getsetting("global_settings", "website_use_strike_system", 0));
$formContents = aaaaan(get_phrase("dashboard_options_limitations_use_strike_system"), $radioButtons, get_phrase("dashboard_options_limitations_use_strike_system_alt"));
$inputbox = inputbox("settings[limit_of_login_strikes]", getsetting("global_settings", "limit_of_login_strikes", 5), "text texthalf");
$formContents .= aaaaan(get_phrase("limit_of_login_strikes"), $inputbox, get_phrase("limit_of_login_strikes_alt"));
$radioButtons = radioyesno("settings[security_enable_captcha]", getsetting("global_settings", "security_enable_captcha", 0));
$formContents .= aaaaan(get_phrase("security_enable_captcha"), $radioButtons, get_phrase("security_enable_captcha_alt"));
$inputbox = inputbox("settings[admincp_session_timeout]", getsetting("global_settings", "admincp_session_timeout", 5), "text texthalf");
$formContents .= aaaaan(get_phrase("admincp_session_timeout"), $inputbox, get_phrase("admincp_session_timeout_alt"));
$radioButtons = radioyesno("settings[security_ip_history]", getsetting("global_settings", "security_ip_history", 0));
$formContents .= aaaaan(get_phrase("security_ip_history"), $radioButtons, get_phrase("security_ip_history_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_security") );
break;
case "hitrun":
if( isset($_POST["save_options"]) )
{
$hitrun_settings["active"] = (isset($_POST["HITRUN"]["active"]) && $_POST["HITRUN"]["active"] == 1 ? 1 : 0);
$hitrun_settings["dayTolerance"] = (isset($_POST["HITRUN"]["dayTolerance"]) && $_POST["HITRUN"]["dayTolerance"] ? intval($_POST["HITRUN"]["dayTolerance"]) : 0);
$hitrun_settings["maxWarns"] = (isset($_POST["HITRUN"]["maxWarns"]) && $_POST["HITRUN"]["maxWarns"] ? intval($_POST["HITRUN"]["maxWarns"]) : 0);
$hitrun_settings["defaultRatio"] = (isset($_POST["HITRUN"]["defaultRatio"]) && $_POST["HITRUN"]["defaultRatio"] ? 0 + $_POST["HITRUN"]["defaultRatio"] : 0);
$hitrun_settings["skipMembergroups"] = (isset($_POST["HITRUN"]["skipMembergroups"]) && is_array($_POST["HITRUN"]["skipMembergroups"]) && 0 < count($_POST["HITRUN"]["skipMembergroups"]) ? implode(",", array_map("intval", $_POST["HITRUN"]["skipMembergroups"])) : "");
$hitrun_settings["announceLimit"] = (isset($_POST["HITRUN"]["announceLimit"]) && $_POST["HITRUN"]["announceLimit"] ? intval($_POST["HITRUN"]["announceLimit"]) : 0);
updatesettings("hitrun_settings", $hitrun_settings);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = "\r\n\t\t\t\t\t<div style=\"margin-bottom: 5px; font-size: 13px;\" class=\"checkHitRunOptions\">" . get_phrase("check_hitrun_options") . "</div>";
$radioButtons = radioyesno("HITRUN[active]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["active"]);
$formContents .= aaaaan(get_phrase("hitrun_active"), $radioButtons, get_phrase("hitrun_active_alt"));
$inputbox = inputbox("HITRUN[dayTolerance]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["dayTolerance"], "text texthalf");
$formContents .= aaaaan(get_phrase("hitrun_daytolerance"), $inputbox, get_phrase("hitrun_daytolerance_alt"));
$announceInterval = (getsetting("xbt", "active") ? getsetting("xbt", "announce_interval") : getsetting("global_settings", "announce_interval"));
$aaaaav = getsetting("hitrun_settings", "announceLimit");
$totalSeconds = $announceInterval * $aaaaav;
$secondsToHours = secondstohours($totalSeconds);
$inputbox = inputbox("HITRUN[announceLimit]", getsetting("hitrun_settings", "announceLimit"), "text texthalf");
$formContents .= aaaaan(get_phrase("hitrun_announcelimit"), $inputbox, get_phrase("hitrun_announcelimit_alt") . "<br>" . get_phrase("hitrun_announcelimit_alt2", $announceInterval, $aaaaav, $totalSeconds, $secondsToHours));
$inputbox = inputbox("HITRUN[maxWarns]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["maxWarns"], "text texthalf");
$formContents .= aaaaan(get_phrase("max_hitruns"), $inputbox, get_phrase("max_hitruns_alt"));
$inputbox = inputbox("HITRUN[defaultRatio]", getsetting("hitrun_settings", "defaultRatio", 0), "text texthalf");
$formContents .= aaaaan(get_phrase("default_hitrun_ratio"), $inputbox, get_phrase("default_hitrun_ratio_alt"));
$Usergroups = aaaaaw("HITRUN[skipMembergroups][]", ($TSUE["TSUE_Settings"]->settings["hitrun_settings"]["skipMembergroups"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["skipMembergroups"]) : array( )));
$formContents .= aaaaan(get_phrase("hitrun_skip_membergroups"), $Usergroups, get_phrase("hitrun_skip_membergroups_alt"));
$aaaaam = array( "option_name" => get_phrase("dashboard_options_hitrun") );
break;
case "auto_uploader":
if( isset($_POST["save_options"]) )
{
$auto_uploader["active"] = (isset($_POST["AUTOUPLOADER"]["active"]) && $_POST["AUTOUPLOADER"]["active"] == 1 ? 1 : 0);
$auto_uploader["category"] = (isset($_POST["AUTOUPLOADER"]["category"]) ? intval($_POST["AUTOUPLOADER"]["category"]) : 0);
$auto_uploader["path"] = (isset($_POST["AUTOUPLOADER"]["path"]) ? $_POST["AUTOUPLOADER"]["path"] : "");
$auto_uploader["owner"] = (isset($_POST["AUTOUPLOADER"]["owner"]) ? $_POST["AUTOUPLOADER"]["owner"] : "");
$auto_uploader["description"] = (isset($_POST["AUTOUPLOADER"]["description"]) ? $_POST["AUTOUPLOADER"]["description"] : "");
if( $auto_uploader["owner"] )
{
$getMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($auto_uploader["owner"]));
if( $getMember )
{
$auto_uploader["owner"] = $getMember["memberid"];
}
else
{
$auto_uploader["owner"] = "";
}
}
updatesettings("auto_uploader", $auto_uploader);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = "<h2>" . get_phrase("import_torrents", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/auto_uploader.php") . "</h2>";
$radioButtons = radioyesno("AUTOUPLOADER[active]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["active"]);
$formContents .= aaaaan(get_phrase("auto_uploader_active"), $radioButtons, get_phrase("auto_uploader_active_alt"));
$Categories = aaaaax("AUTOUPLOADER[category]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["category"]);
$formContents .= aaaaan(get_phrase("auto_uploader_category"), $Categories, get_phrase("auto_uploader_category_alt"));
$inputbox = inputbox("AUTOUPLOADER[path]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["path"], "text texthalf");
$formContents .= aaaaan(get_phrase("auto_uploader_path"), $inputbox, get_phrase("auto_uploader_path_alt"));
if( $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] )
{
$getMember = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"]));
if( $getMember )
{
$TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] = $getMember["membername"];
}
else
{
$TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] = "";
}
}
$inputbox = inputbox("AUTOUPLOADER[owner]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"], "text texthalf", NULL, false, true);
$formContents .= aaaaan(get_phrase("auto_uploader_owner"), $inputbox, get_phrase("auto_uploader_owner_alt"));
$textarea = aaaaay("AUTOUPLOADER[description]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["description"], true);
$formContents .= aaaaan(get_phrase("auto_uploader_description"), $textarea, get_phrase("auto_uploader_description_alt"));
$aaaaam = array( "option_name" => get_phrase("auto_uploader") );
break;
case "downloads":
if( isset($_POST["save_options"]) )
{
$downloads["online"] = (isset($_POST["DOWNLOADS"]["online"]) && $_POST["DOWNLOADS"]["online"] == 1 ? 1 : 0);
$downloads["offline_message"] = (isset($_POST["DOWNLOADS"]["offline_message"]) ? $_POST["DOWNLOADS"]["offline_message"] : "");
$downloads["offline_access"] = (isset($_POST["DOWNLOADS"]["offline_access"]) && is_array($_POST["DOWNLOADS"]["offline_access"]) && 0 < count($_POST["DOWNLOADS"]["offline_access"]) ? implode(",", array_map("intval", $_POST["DOWNLOADS"]["offline_access"])) : "");
$downloads["max_filesize"] = (isset($_POST["DOWNLOADS"]["max_filesize"]) ? 0 + $_POST["DOWNLOADS"]["max_filesize"] : 0);
$downloads["allowed_file_types"] = (isset($_POST["DOWNLOADS"]["allowed_file_types"]) ? trim($_POST["DOWNLOADS"]["allowed_file_types"]) : "");
$downloads["files_perpage"] = (isset($_POST["DOWNLOADS"]["files_perpage"]) ? 0 + $_POST["DOWNLOADS"]["files_perpage"] : 0);
updatesettings("downloads", $downloads);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("DOWNLOADS[online]", $TSUE["TSUE_Settings"]->settings["downloads"]["online"]);
$formContents = aaaaan(get_phrase("dm_online"), $radioButtons, "");
$textarea = textarea("DOWNLOADS[offline_message]", $TSUE["TSUE_Settings"]->settings["downloads"]["offline_message"]);
$formContents .= aaaaan(get_phrase("dm_offline_message"), $textarea, get_phrase("dm_offline_message_alt"));
$Usergroups = aaaaaw("DOWNLOADS[offline_access][]", ($TSUE["TSUE_Settings"]->settings["downloads"]["offline_access"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["downloads"]["offline_access"]) : array( )));
$formContents .= aaaaan(get_phrase("offline_access"), $Usergroups, get_phrase("offline_access_alt"));
$inputbox = inputbox("DOWNLOADS[max_filesize]", $TSUE["TSUE_Settings"]->settings["downloads"]["max_filesize"], "text texthalf", friendly_size($TSUE["TSUE_Settings"]->settings["downloads"]["max_filesize"]), false, false, get_phrase("set_to_0_for_no_limit"));
$formContents .= aaaaan(get_phrase("dm_max_filesize"), $inputbox, "");
$inputbox = inputbox("DOWNLOADS[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["downloads"]["allowed_file_types"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, "");
$inputbox = inputbox("DOWNLOADS[files_perpage]", $TSUE["TSUE_Settings"]->settings["downloads"]["files_perpage"], "text texthalf");
$formContents .= aaaaan(get_phrase("limitations_files_perpage"), $inputbox, "");
$aaaaam = array( "option_name" => get_phrase("dm_title") );
break;
case "ircbot":
if( isset($_POST["save_options"]) )
{
$ircbot["active"] = (isset($_POST["ircbot"]["active"]) && $_POST["ircbot"]["active"] == 1 ? 1 : 0);
$ircbot["ircServer"] = (isset($_POST["ircbot"]["ircServer"]) ? $_POST["ircbot"]["ircServer"] : "");
$ircbot["ircPort"] = (isset($_POST["ircbot"]["ircPort"]) ? $_POST["ircbot"]["ircPort"] : "");
$ircbot["ircChannel"] = (isset($_POST["ircbot"]["ircChannel"]) ? $_POST["ircbot"]["ircChannel"] : "");
$ircbot["ircNick"] = (isset($_POST["ircbot"]["ircNick"]) ? $_POST["ircbot"]["ircNick"] : "");
$ircbot["ircPass"] = (isset($_POST["ircbot"]["ircPass"]) ? $_POST["ircbot"]["ircPass"] : "");
updatesettings("ircbot", $ircbot);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("ircbot[active]", $TSUE["TSUE_Settings"]->settings["ircbot"]["active"]);
$formContents = aaaaan(get_phrase("ircbot_active"), $radioButtons, "", "optionsInOverlay", "", "<a href=\"?action=irc-debug\" target=\"blank\">" . get_phrase("dashboard_options_debug_mode") . "</a>");
$inputbox = inputbox("ircbot[ircServer]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"]);
$formContents .= aaaaan(get_phrase("ircbot_ircserver"), $inputbox, "");
$inputbox = inputbox("ircbot[ircPort]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"]);
$formContents .= aaaaan(get_phrase("ircbot_ircserverport"), $inputbox, "");
$inputbox = inputbox("ircbot[ircChannel]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"]);
$formContents .= aaaaan(get_phrase("ircbot_ircchannel"), $inputbox, "");
$inputbox = inputbox("ircbot[ircNick]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"]);
$formContents .= aaaaan(get_phrase("ircbot_ircNick"), $inputbox, "");
$inputbox = inputbox("ircbot[ircPass]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPass"], "text", get_phrase("irc_bot_pass_tip"));
$formContents .= aaaaan(get_phrase("ircbot_ircPass"), $inputbox, "");
$aaaaam = array( "option_name" => get_phrase("ircbot") );
break;
case "xbt":
$deny_from_clients = "";
$aaaaaz = $TSUE["TSUE_Database"]->query("SELECT peer_id FROM xbt_deny_from_clients");
if( $TSUE["TSUE_Database"]->num_rows($aaaaaz) )
{
while( $aaaaba = $TSUE["TSUE_Database"]->fetch_assoc($aaaaaz) )
{
$deny_from_clients .= $aaaaba["peer_id"] . "\n";
}
}
$deny_from_hosts = "";
$aaaabb = $TSUE["TSUE_Database"]->query("SELECT begin FROM xbt_deny_from_hosts");
if( $TSUE["TSUE_Database"]->num_rows($aaaabb) )
{
while( $Ip = $TSUE["TSUE_Database"]->fetch_assoc($aaaabb) )
{
$deny_from_hosts .= trim(long2ip($Ip["begin"])) . "\n";
}
}
if( isset($_POST["save_options"]) )
{
$xbt["active"] = (isset($_POST["xbt"]["active"]) && $_POST["xbt"]["active"] == 1 ? 1 : 0);
$xbt["debug"] = (isset($_POST["xbt"]["debug"]) && $_POST["xbt"]["debug"] == 1 ? 1 : 0);
$xbt["announce_url"] = (isset($_POST["xbt"]["announce_url"]) ? $_POST["xbt"]["announce_url"] : "");
$xbt["announce_interval"] = (isset($_POST["xbt"]["announce_interval"]) ? 0 + $_POST["xbt"]["announce_interval"] : "");
$xbt["offline_message"] = (isset($_POST["xbt"]["offline_message"]) ? $_POST["xbt"]["offline_message"] : "");
$xbt["redirect_url"] = (isset($_POST["xbt"]["redirect_url"]) ? $_POST["xbt"]["redirect_url"] : "");
$buildQuery = array( "debug" => $xbt["debug"], "offline_message" => $xbt["offline_message"], "redirect_url" => $xbt["redirect_url"], "announce_interval" => $xbt["announce_interval"] );
foreach( $buildQuery as $_name => $_value )
{
$TSUE["TSUE_Database"]->update("xbt_config", array( "value" => trim($_value) ), "name=" . $TSUE["TSUE_Database"]->escape($_name));
}
$TSUE["TSUE_Database"]->delete("xbt_deny_from_clients");
if( isset($_POST["xbt"]["deny_from_clients"]) && $_POST["xbt"]["deny_from_clients"] )
{
$deny_from_clients = preg_split("/\\r?\\n/", $_POST["xbt"]["deny_from_clients"], -1, PREG_SPLIT_NO_EMPTY);
if( $deny_from_clients )
{
foreach( $deny_from_clients as $peer_id )
{
$TSUE["TSUE_Database"]->replace("xbt_deny_from_clients", array( "peer_id" => $peer_id ));
}
}
}
$TSUE["TSUE_Database"]->delete("xbt_deny_from_hosts");
if( isset($_POST["xbt"]["deny_from_hosts"]) && $_POST["xbt"]["deny_from_hosts"] )
{
$deny_from_hosts = preg_split("/\\r?\\n/", $_POST["xbt"]["deny_from_hosts"], -1, PREG_SPLIT_NO_EMPTY);
if( $deny_from_hosts )
{
foreach( $deny_from_hosts as $ip )
{
$ip = trim(ip2long($ip));
$TSUE["TSUE_Database"]->replace("xbt_deny_from_hosts", array( "begin" => $ip, "end" => $ip ));
}
}
}
updatesettings("xbt", $xbt);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("xbt[active]", getsetting("xbt", "active"));
$formContents = aaaaan(get_phrase("xbt_active"), $radioButtons, "");
$radioButtons = radioyesno("xbt[debug]", getsetting("xbt", "debug"));
$formContents .= aaaaan(get_phrase("xbt_debug"), $radioButtons, get_phrase("xbt_debug_alt"));
$inputbox = inputbox("xbt[announce_url]", getsetting("xbt", "announce_url"));
$formContents .= aaaaan(get_phrase("xbt_announce_url"), $inputbox, "http://tracker:port");
$inputbox = inputbox("xbt[announce_interval]", getsetting("xbt", "announce_interval"));
$formContents .= aaaaan(get_phrase("xbt_announce_interval"), $inputbox, get_phrase("xbt_announce_interval_alt"));
$inputbox = inputbox("xbt[offline_message]", getsetting("xbt", "offline_message"));
$formContents .= aaaaan(get_phrase("xbt_offline_message"), $inputbox, get_phrase("xbt_offline_message_alt"));
$inputbox = inputbox("xbt[redirect_url]", getsetting("xbt", "redirect_url"));
$formContents .= aaaaan(get_phrase("xbt_redirect_url"), $inputbox, get_phrase("xbt_redirect_url_alt"));
$textarea = textarea("xbt[deny_from_clients]", $deny_from_clients);
$formContents .= aaaaan(get_phrase("xbt_deny_from_clients"), $textarea, get_phrase("xbt_deny_from_clients_alt"));
$textarea = textarea("xbt[deny_from_hosts]", $deny_from_hosts);
$formContents .= aaaaan(get_phrase("xbt_deny_from_hosts"), $textarea, get_phrase("xbt_deny_from_hosts_alt"));
$aaaaam = array( "option_name" => "xbt" );
break;
case "gallery":
if( isset($_POST["save_options"]) )
{
$gallery["online"] = (isset($_POST["GALLERY"]["online"]) && $_POST["GALLERY"]["online"] == 1 ? 1 : 0);
$gallery["offline_message"] = (isset($_POST["GALLERY"]["offline_message"]) ? $_POST["GALLERY"]["offline_message"] : "");
$gallery["offline_access"] = (isset($_POST["GALLERY"]["offline_access"]) && is_array($_POST["GALLERY"]["offline_access"]) && 0 < count($_POST["GALLERY"]["offline_access"]) ? implode(",", array_map("intval", $_POST["GALLERY"]["offline_access"])) : "");
$gallery["max_filesize"] = (isset($_POST["GALLERY"]["max_filesize"]) ? 0 + $_POST["GALLERY"]["max_filesize"] : 0);
$gallery["allowed_file_types"] = (isset($_POST["GALLERY"]["allowed_file_types"]) ? trim($_POST["GALLERY"]["allowed_file_types"]) : "");
$gallery["files_perpage"] = (isset($_POST["GALLERY"]["files_perpage"]) ? 0 + $_POST["GALLERY"]["files_perpage"] : 0);
updatesettings("gallery", $gallery);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("GALLERY[online]", $TSUE["TSUE_Settings"]->settings["gallery"]["online"]);
$formContents = aaaaan(get_phrase("image_gallery_online"), $radioButtons, "");
$textarea = textarea("GALLERY[offline_message]", $TSUE["TSUE_Settings"]->settings["gallery"]["offline_message"]);
$formContents .= aaaaan(get_phrase("dm_offline_message"), $textarea, get_phrase("image_gallery_offline_alt"));
$Usergroups = aaaaaw("GALLERY[offline_access][]", ($TSUE["TSUE_Settings"]->settings["gallery"]["offline_access"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["gallery"]["offline_access"]) : array( )));
$formContents .= aaaaan(get_phrase("offline_access"), $Usergroups, get_phrase("image_gallery_offline_access_alt"));
$inputbox = inputbox("GALLERY[max_filesize]", $TSUE["TSUE_Settings"]->settings["gallery"]["max_filesize"], "text texthalf", friendly_size($TSUE["TSUE_Settings"]->settings["gallery"]["max_filesize"]), false, false, get_phrase("set_to_0_for_no_limit"));
$formContents .= aaaaan(get_phrase("dm_max_filesize"), $inputbox, "");
$inputbox = inputbox("GALLERY[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["gallery"]["allowed_file_types"], "text texthalf");
$formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, "");
$inputbox = inputbox("GALLERY[files_perpage]", $TSUE["TSUE_Settings"]->settings["gallery"]["files_perpage"], "text texthalf");
$formContents .= aaaaan(get_phrase("limitations_gallery_images_perpage"), $inputbox, "");
$aaaaam = array( "option_name" => get_phrase("image_gallery") );
break;
case "auto_warning":
if( isset($_POST["save_options"]) )
{
$auto_warning["active"] = (isset($_POST["auto_warning"]["active"]) && $_POST["auto_warning"]["active"] == 1 ? 1 : 0);
$auto_warning["min_ratio"] = (isset($_POST["auto_warning"]["min_ratio"]) && $_POST["auto_warning"]["min_ratio"] ? trim($_POST["auto_warning"]["min_ratio"]) : 0);
$auto_warning["warn_length"] = (isset($_POST["auto_warning"]["warn_length"]) && $_POST["auto_warning"]["warn_length"] ? intval($_POST["auto_warning"]["warn_length"]) : 0);
$auto_warning["skipMembergroups"] = (isset($_POST["auto_warning"]["skipMembergroups"]) && is_array($_POST["auto_warning"]["skipMembergroups"]) && 0 < count($_POST["auto_warning"]["skipMembergroups"]) ? implode(",", array_map("intval", $_POST["auto_warning"]["skipMembergroups"])) : "");
updatesettings("auto_warning", $auto_warning);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("auto_warning[active]", getsetting("auto_warning", "active"));
$formContents = aaaaan(get_phrase("auto_warning_active"), $radioButtons, get_phrase("auto_warning_active_alt"));
$inputBox = inputbox("auto_warning[min_ratio]", getsetting("auto_warning", "min_ratio"));
$formContents .= aaaaan(get_phrase("auto_warning_min_ratio"), $inputBox, "");
$inputBox = inputbox("auto_warning[warn_length]", getsetting("auto_warning", "warn_length"));
$formContents .= aaaaan(get_phrase("auto_warning_warn_length"), $inputBox, "");
$Usergroups = aaaaaw("auto_warning[skipMembergroups][]", tsue_explode(",", getsetting("auto_warning", "skipMembergroups")));
$formContents .= aaaaan(get_phrase("auto_warning_skip_membergroups"), $Usergroups, get_phrase("auto_warning_skip_membergroups_alt"));
$aaaaam = array( "option_name" => get_phrase("auto_warning_System") );
break;
case "shoutbox_announcements":
if( isset($_POST["save_options"]) )
{
$shoutbox["announce_new_torrents"] = (isset($_POST["shoutbox"]["announce_new_torrents"]) && $_POST["shoutbox"]["announce_new_torrents"] == 1 ? 1 : 0);
$shoutbox["announce_new_torrent_comments"] = (isset($_POST["shoutbox"]["announce_new_torrent_comments"]) && $_POST["shoutbox"]["announce_new_torrent_comments"] == 1 ? 1 : 0);
$shoutbox["announce_new_torrent_categories"] = (isset($_POST["announce_new_torrent_categories"]) && $_POST["announce_new_torrent_categories"] ? implode(",", $_POST["announce_new_torrent_categories"]) : "");
$shoutbox["announce_new_members"] = (isset($_POST["shoutbox"]["announce_new_members"]) && $_POST["shoutbox"]["announce_new_members"] == 1 ? 1 : 0);
$shoutbox["announce_new_threads"] = (isset($_POST["shoutbox"]["announce_new_threads"]) && $_POST["shoutbox"]["announce_new_threads"] == 1 ? 1 : 0);
$shoutbox["announce_new_replies"] = (isset($_POST["shoutbox"]["announce_new_replies"]) && $_POST["shoutbox"]["announce_new_replies"] == 1 ? 1 : 0);
$shoutbox["announce_new_threads_skip_forums"] = (isset($_POST["announce_new_threads_skip_forums"]) && $_POST["announce_new_threads_skip_forums"] ? implode(",", $_POST["announce_new_threads_skip_forums"]) : "");
$shoutbox["notifications"] = (isset($_POST["shoutbox"]["notifications"]) ? trim($_POST["shoutbox"]["notifications"]) : "");
updatesettings("shoutbox", $shoutbox);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = get_phrase("click_here_to_modify_shoutbox_timeouts", "?action=Plugin Manager&options=3") . "<br /><br />";
$radioButtons = radioyesno("shoutbox[announce_new_torrents]", getsetting("shoutbox", "announce_new_torrents"));
$formContents .= aaaaan(get_phrase("announce_new_torrents"), $radioButtons, "");
$radioButtons = radioyesno("shoutbox[announce_new_torrent_comments]", getsetting("shoutbox", "announce_new_torrent_comments"));
$formContents .= aaaaan(get_phrase("announce_new_torrent_comments"), $radioButtons, "");
$announce_new_torrent_categories = tsue_explode(",", getsetting("shoutbox", "announce_new_torrent_categories"));
$radioButtons = torrentcategoriesinbutboxes("announce_new_torrent_categories[]", "checkbox", $announce_new_torrent_categories);
$formContents .= aaaaan(get_phrase("announce_new_torrent_categories"), $radioButtons, "");
$radioButtons = radioyesno("shoutbox[announce_new_members]", getsetting("shoutbox", "announce_new_members"));
$formContents .= aaaaan(get_phrase("announce_new_members"), $radioButtons, "");
$radioButtons = radioyesno("shoutbox[announce_new_threads]", getsetting("shoutbox", "announce_new_threads"));
$formContents .= aaaaan(get_phrase("announce_new_threads"), $radioButtons, "");
$radioButtons = radioyesno("shoutbox[announce_new_replies]", getsetting("shoutbox", "announce_new_replies"));
$formContents .= aaaaan(get_phrase("announce_new_replies"), $radioButtons, "");
$Forums = aaaabc("announce_new_threads_skip_forums[]", explode(",", getsetting("shoutbox", "announce_new_threads_skip_forums")));
$formContents .= aaaaan(get_phrase("announce_new_threads_skip_forums"), $Forums, "");
$textarea = aaaaay("shoutbox[notifications]", getsetting("shoutbox", "notifications"), true);
$formContents .= aaaaan(get_phrase("shoutbox_notifications"), $textarea);
$aaaaam = array( "option_name" => get_phrase("shoutbox_announcements") );
break;
case "manage_inactive_members":
if( isset($_POST["save_options"]) )
{
$inactive_members["active"] = (isset($_POST["inactive_members"]["active"]) && $_POST["inactive_members"]["active"] == 1 ? 1 : 0);
$inactive_members["grace_period"] = (isset($_POST["inactive_members"]["grace_period"]) ? intval($_POST["inactive_members"]["grace_period"]) : 0);
$inactive_members["max_email"] = (isset($_POST["inactive_members"]["max_email"]) ? intval($_POST["inactive_members"]["max_email"]) : 0);
$inactive_members["prune_members"] = (isset($_POST["inactive_members"]["prune_members"]) ? intval($_POST["inactive_members"]["prune_members"]) : 0);
$inactive_members["membergroups"] = (isset($_POST["inactive_members"]["membergroups"]) && $_POST["inactive_members"]["membergroups"] ? implode(",", $_POST["inactive_members"]["membergroups"]) : "");
updatesettings("inactive_members", $inactive_members);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("inactive_members[active]", getsetting("inactive_members", "active"));
$formContents = aaaaan(get_phrase("inactive_members_active"), $radioButtons, get_phrase("inactive_members_active_alt"));
$inputBox = inputbox("inactive_members[grace_period]", getsetting("inactive_members", "grace_period"));
$formContents .= aaaaan(get_phrase("inactivity_grace_period"), $inputBox, get_phrase("inactivity_grace_period_alt"));
$inputBox = inputbox("inactive_members[max_email]", getsetting("inactive_members", "max_email"));
$formContents .= aaaaan(get_phrase("inactivity_max_email_to_send"), $inputBox, get_phrase("inactivity_max_email_to_send_alt"));
$inputBox = inputbox("inactive_members[prune_members]", getsetting("inactive_members", "prune_members"));
$formContents .= aaaaan(get_phrase("inactivity_prune_members"), $inputBox, get_phrase("inactivity_prune_members_alt"));
$Usergroups = aaaaaw("inactive_members[membergroups][]", tsue_explode(",", getsetting("inactive_members", "membergroups")));
$formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("inactivity_membergroups_alt"));
$aaaaam = array( "option_name" => get_phrase("manage_inactive_members") );
break;
case "happy_hours":
if( isset($_POST["save_options"]) )
{
$happy_hours["active"] = (isset($_POST["happy_hours"]["active"]) && $_POST["happy_hours"]["active"] == 1 ? 1 : 0);
$happy_hours["start_date"] = (isset($_POST["happy_hours"]["start_date"]) ? $_POST["happy_hours"]["start_date"] : "");
$happy_hours["end_date"] = (isset($_POST["happy_hours"]["end_date"]) ? $_POST["happy_hours"]["end_date"] : "");
$happy_hours["freeleech"] = (isset($_POST["happy_hours"]["freeleech"]) && $_POST["happy_hours"]["freeleech"] == 1 ? 1 : 0);
$happy_hours["doubleupload"] = (isset($_POST["happy_hours"]["doubleupload"]) && $_POST["happy_hours"]["doubleupload"] == 1 ? 1 : 0);
if( $happy_hours["start_date"] )
{
$happy_hours["start_date"] = str_replace("/", "-", $happy_hours["start_date"]);
$happy_hours["start_date"] = strtotime($happy_hours["start_date"]);
}
if( $happy_hours["end_date"] )
{
$happy_hours["end_date"] = str_replace("/", "-", $happy_hours["end_date"]);
$happy_hours["end_date"] = strtotime($happy_hours["end_date"]);
}
updatesettings("happy_hours", $happy_hours);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
aaaabd("expired.php");
_sendheaders($outputMessage);
}
$start_date = getsetting("happy_hours", "start_date");
if( $start_date )
{
$start_date = date("d/m/Y", $start_date);
}
$end_date = getsetting("happy_hours", "end_date");
if( $end_date )
{
$end_date = date("d/m/Y", $end_date);
}
$formContents = "";
$radioButtons = radioyesno("happy_hours[active]", getsetting("happy_hours", "active"));
$formContents .= aaaaan(get_phrase("happy_hours_active"), $radioButtons);
$inputBox = inputbox("happy_hours[start_date]", $start_date, "text", "", true);
$formContents .= aaaaan(get_phrase("happy_hours_start_date"), $inputBox);
$inputBox = inputbox("happy_hours[end_date]", $end_date, "text", "", true);
$formContents .= aaaaan(get_phrase("happy_hours_end_date"), $inputBox);
$aaaabe = "\r\n\t\t\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td><input type=\"checkbox\" name=\"happy_hours[freeleech]\" value=\"1\" id=\"type_1\"" . ((getsetting("happy_hours", "freeleech") ? " checked=\"checked\"" : "")) . " /></td>\r\n\t\t\t\t\t\t\t<td><label for=\"type_1\">" . get_phrase("happy_hours_freeleech") . "</label></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td><input type=\"checkbox\" name=\"happy_hours[doubleupload]\" value=\"1\" id=\"type_2\"" . ((getsetting("happy_hours", "doubleupload") ? " checked=\"checked\"" : "")) . " /></td>\r\n\t\t\t\t\t\t\t<td><label for=\"type_2\">" . get_phrase("happy_hours_double_upload") . "</label></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>";
$formContents .= aaaaan(get_phrase("happy_hours_type"), $aaaabe);
$aaaaam = array( "option_name" => get_phrase("happy_hours") );
break;
case "social_media":
$formContents = "<div class=\"soptionTitle\">" . get_phrase("facebook_api_alt") . "</div>";
$inputbox = inputbox("settings[facebook_app_id]", $TSUE["TSUE_Settings"]->settings["global_settings"]["facebook_app_id"], "text");
$formContents .= aaaaan(get_phrase("facebook_app_id"), $inputbox, get_phrase("facebook_app_id_alt"));
$inputbox = inputbox("settings[facebook_app_secret]", $TSUE["TSUE_Settings"]->settings["global_settings"]["facebook_app_secret"], "text");
$formContents .= aaaaan(get_phrase("facebook_app_secret"), $inputbox, get_phrase("facebook_app_secret_alt"));
$formContents .= "\r\n\t\t\t\t\t<div class=\"soptionTitle\">\r\n\t\t\t\t\t\t" . get_phrase("twitter_api_alt") . "\r\n\t\t\t\t\t\t<span class=\"smallPassiveTextBlock\">" . get_phrase("twitter_api_tip") . "</span>\r\n\t\t\t\t\t</div>";
$inputbox = inputbox("settings[consumerKey]", getsetting("global_settings", "consumerKey"), "text");
$formContents .= aaaaan(get_phrase("consumer_key"), $inputbox);
$inputbox = inputbox("settings[consumerSecret]", getsetting("global_settings", "consumerSecret"), "text");
$formContents .= aaaaan(get_phrase("consumer_secret"), $inputbox);
$inputbox = inputbox("settings[accessToken]", getsetting("global_settings", "accessToken"), "text");
$formContents .= aaaaan(get_phrase("access_token"), $inputbox);
$inputbox = inputbox("settings[accessTokenSecret]", getsetting("global_settings", "accessTokenSecret"), "text");
$formContents .= aaaaan(get_phrase("access_token_secret"), $inputbox);
$aaaaam = array( "option_name" => get_phrase("social_media") );
break;
case "server":
if( isset($_POST["save_options"]) )
{
$server["http_port"] = (isset($_POST["server"]["http_port"]) ? 0 + $_POST["server"]["http_port"] : "");
$server["https_port"] = (isset($_POST["server"]["https_port"]) ? 0 + $_POST["server"]["https_port"] : "");
$server["ssh_port"] = (isset($_POST["server"]["ssh_port"]) ? 0 + $_POST["server"]["ssh_port"] : "");
$server["ftp_port"] = (isset($_POST["server"]["ftp_port"]) ? 0 + $_POST["server"]["ftp_port"] : "");
$server["pop3_port"] = (isset($_POST["server"]["pop3_port"]) ? 0 + $_POST["server"]["pop3_port"] : "");
updatesettings("server", $server);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = "<div class=\"soptionTitle\"><a href=\"?action=server-status\" target=\"_blank\">" . get_phrase("server_status") . "</a></div>";
$inputbox = inputbox("server[http_port]", getsetting("server", "http_port", 80), "text");
$formContents .= aaaaan(get_phrase("http_port"), $inputbox);
$inputbox = inputbox("server[https_port]", getsetting("server", "https_port", 443), "text");
$formContents .= aaaaan(get_phrase("https_port"), $inputbox);
$inputbox = inputbox("server[ssh_port]", getsetting("server", "ssh_port", 22), "text");
$formContents .= aaaaan(get_phrase("ssh_port"), $inputbox);
$inputbox = inputbox("server[ftp_port]", getsetting("server", "ftp_port", 21), "text");
$formContents .= aaaaan(get_phrase("ftp_port"), $inputbox);
$inputbox = inputbox("server[pop3_port]", getsetting("server", "pop3_port", 110), "text");
$formContents .= aaaaan(get_phrase("pop3_port"), $inputbox);
$aaaaam = array( "option_name" => get_phrase("server") );
break;
case "sls":
$radioButtons = radioyesno("settings[sls_active]", getsetting("global_settings", "sls_active"));
$formContents = aaaaan(get_phrase("sls_active"), $radioButtons);
$radioButtons = radioyesno("settings[sls_show_signup_link]", getsetting("global_settings", "sls_show_signup_link"));
$formContents .= aaaaan(get_phrase("sls_show_signup_link"), $radioButtons);
$radioButtons = radioyesno("settings[sls_show_fp_link]", getsetting("global_settings", "sls_show_fp_link"));
$formContents .= aaaaan(get_phrase("sls_show_fp_link"), $radioButtons);
$radioButtons = radioyesno("settings[sls_show_recent_torrents]", getsetting("global_settings", "sls_show_recent_torrents"));
$formContents .= aaaaan(get_phrase("sls_show_recent_torrents"), $radioButtons);
$aaaaam = array( "option_name" => get_phrase("sls") );
break;
case "uploader_inactivity":
if( isset($_POST["save_options"]) )
{
$uploader_inactivity["membergroups"] = (isset($_POST["uploader_inactivity"]["membergroups"]) && $_POST["uploader_inactivity"]["membergroups"] ? implode(",", $_POST["uploader_inactivity"]["membergroups"]) : "");
$uploader_inactivity["demote_to"] = (isset($_POST["uploader_inactivity"]["demote_to"]) ? 0 + $_POST["uploader_inactivity"]["demote_to"] : "");
$uploader_inactivity["criterias_torrents"] = (isset($_POST["uploader_inactivity"]["criterias_torrents"]) ? 0 + $_POST["uploader_inactivity"]["criterias_torrents"] : "");
$uploader_inactivity["criterias_days"] = (isset($_POST["uploader_inactivity"]["criterias_days"]) ? 0 + $_POST["uploader_inactivity"]["criterias_days"] : "");
updatesettings("uploader_inactivity", $uploader_inactivity);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = "<h2>" . get_phrase("demote_inactive_uploaders_cron") . "</h2>";
$Usergroups = aaaaaw("uploader_inactivity[membergroups][]", explode(",", getsetting("uploader_inactivity", "membergroups")));
$formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("inactivity_membergroups_alt"));
$Usergroups = aaaabf("uploader_inactivity[demote_to]", getsetting("uploader_inactivity", "demote_to"), true, "");
$formContents .= aaaaan(get_phrase("select_membergroup"), $Usergroups, get_phrase("uploader_inactivity_demote_to"));
$Criterias = "\r\n\t\t\t\t\t<div style=\"margin-top: 5px;\">\r\n\t\t\t\t\t\t" . get_phrase("query_criterias_for_demotion", "<input type=\"text\" name=\"uploader_inactivity[criterias_torrents]\" value=\"" . getsetting("uploader_inactivity", "criterias_torrents") . "\" class=\"text textVeryTiny\" />", "<input type=\"text\" name=\"uploader_inactivity[criterias_days]\" value=\"" . getsetting("uploader_inactivity", "criterias_days") . "\" class=\"text textVeryTiny\" />") . "\r\n\t\t\t\t\t</div>";
$formContents .= aaaaan(get_phrase("criterias_for_demotion"), $Criterias, "");
$aaaaam = array( "option_name" => get_phrase("uploader_inactivity") );
break;
case "automatic_invites":
if( isset($_POST["save_options"]) )
{
$automatic_invites["membergroups"] = (isset($_POST["automatic_invites"]["membergroups"]) && $_POST["automatic_invites"]["membergroups"] ? implode(",", $_POST["automatic_invites"]["membergroups"]) : "");
$automatic_invites["amount"] = (isset($_POST["automatic_invites"]["amount"]) ? intval($_POST["automatic_invites"]["amount"]) : "");
updatesettings("automatic_invites", $automatic_invites);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$formContents = "<h2>" . get_phrase("automatic_invites_cron") . "</h2>";
$Usergroups = aaaaaw("automatic_invites[membergroups][]", explode(",", getsetting("automatic_invites", "membergroups")));
$formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("automatic_invites_membergroups"));
$inputbox = inputbox("automatic_invites[amount]", getsetting("automatic_invites", "amount", 0), "text");
$formContents .= aaaaan(get_phrase("automatic_invites_amount"), $inputbox);
$aaaaam = array( "option_name" => get_phrase("automatic_invites") );
break;
case "magnet_links":
if( isset($_POST["save_options"]) )
{
$magnet_links["active"] = (isset($_POST["magnet_links"]["active"]) ? intval($_POST["magnet_links"]["active"]) : 0);
updatesettings("magnet_links", $magnet_links);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$radioButtons = radioyesno("magnet_links[active]", getsetting("magnet_links", "active"));
$formContents = aaaaan(get_phrase("magnet_links_active"), $radioButtons, nl2br(get_phrase("magnet_links_active_alt")));
$aaaaam = array( "option_name" => get_phrase("magnet_links") );
break;
case "auto_alert":
if( isset($_POST["save_options"]) )
{
$auto_alert["admins"] = (isset($_POST["auto_alert"]["admins"]) ? $_POST["auto_alert"]["admins"] : "");
$auto_alert["words"] = (isset($_POST["auto_alert"]["words"]) ? $_POST["auto_alert"]["words"] : "");
updatesettings("auto_alert", $auto_alert);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$inputbox = inputbox("auto_alert[admins]", getsetting("auto_alert", "admins"), "text", "", false, true, "", "autoCompleteMultiple");
$formContents = aaaaan(get_phrase("auto_alert_admins"), $inputbox, get_phrase("auto_alert_admins_alt"));
$inputbox = aaaaay("auto_alert[words]", getsetting("auto_alert", "words"));
$formContents .= aaaaan(get_phrase("auto_alert_words"), $inputbox, get_phrase("auto_alert_words_alt"));
$aaaaam = array( "option_name" => get_phrase("auto_alert") );
break;
case "search_system":
if( isset($_POST["save_options"]) )
{
$search_system["method"] = (isset($_POST["search_system"]["method"]) && $_POST["search_system"]["method"] == 2 ? 2 : 1);
updatesettings("search_system", $search_system);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$outputMessage = successmessage(get_phrase("message_saved"));
aaaaal();
_sendheaders($outputMessage);
}
$aaaaao = array( 1 => get_phrase("search_method_1"), 2 => get_phrase("search_method_2") );
$selectbox = selectbox("search_system[method]", getsetting("search_system", "method", 1), $aaaaao);
$formContents = aaaaan(get_phrase("search_system"), $selectbox, get_phrase("search_system_alert"));
$aaaaam = array( "option_name" => get_phrase("search_system") );
}
if( isset($formContents) )
{
$HTML .= aaaabg($formContents, $aaaaam);
}
}
}
else
{
$HTML = "\r\n\t\t<div id=\"options\">\r\n\t\t\t<div class=\"head\">" . get_phrase("dashboard_options_alt") . "</div>\r\n\t\t\t<div class=\"optionsScroll\">\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=website_active\">" . get_phrase("dashboard_options_website_active") . " <span>" . get_phrase("dashboard_options_website_active_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=basic_website_information\">" . get_phrase("dashboard_options_basic_website_information") . " <span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=email_options\">" . get_phrase("dashboard_options_email_options") . " <span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=member_registration\">" . get_phrase("dashboard_options_member_registration") . " <span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=appearance\">" . get_phrase("dashboard_options_appearance") . " <span>" . get_phrase("dashboard_options_appearance_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=cookies\">" . get_phrase("dashboard_options_cookies") . " <span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=announce\">" . get_phrase("dashboard_options_announce") . " <span>" . get_phrase("dashboard_options_announce_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=ipban\">" . get_phrase("dashboard_options_ipban") . " <span>" . get_phrase("dashboard_options_ipban_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=emailban\">" . get_phrase("dashboard_options_emailban") . " <span>" . get_phrase("dashboard_options_emailban_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=countryban\">" . get_phrase("dashboard_options_countryban") . " <span>" . get_phrase("dashboard_options_countryban_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=censoring\">" . get_phrase("dashboard_options_censoring") . " <span>" . get_phrase("dashboard_options_censoring_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=seo\">" . get_phrase("dashboard_options_seo") . " <span>" . get_phrase("dashboard_options_seo_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=limitations\">" . get_phrase("dashboard_options_limitations") . " <span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=member_alerts\">" . get_phrase("dashboard_options_member_alerts") . " <span>" . get_phrase("dashboard_options_member_alerts_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=cleanup\">" . get_phrase("dashboard_options_cleanup") . " <span>" . get_phrase("dashboard_options_cleanup_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=points\">" . get_phrase("dashboard_options_points") . " <span>" . get_phrase("dashboard_options_points_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=subtitles\">" . get_phrase("dashboard_options_subtitles") . " \r\n\t\t\t\t<span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=security\">" . get_phrase("dashboard_options_security") . " \r\n\t\t\t\t<span>" . get_phrase("dashboard_options_security_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=hitrun\">" . get_phrase("dashboard_options_hitrun") . " \r\n\t\t\t\t<span>" . get_phrase("dashboard_options_hitrun_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_uploader\">" . get_phrase("auto_uploader") . " \r\n\t\t\t\t<span>" . get_phrase("auto_uploader_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=downloads\">" . get_phrase("dm_title") . " \r\n\t\t\t\t<span>" . get_phrase("dm_title_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=ircbot\">" . get_phrase("ircbot") . "\r\n\t\t\t\t<span>" . get_phrase("ircbot_title") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=xbt\">XBT\r\n\t\t\t\t<span>" . get_phrase("xbt_title") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=gallery\">" . get_phrase("image_gallery") . "</div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_warning\">" . get_phrase("auto_warning_System") . "\r\n\t\t\t\t<span>" . get_phrase("auto_warning_System_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=shoutbox_announcements\">" . get_phrase("shoutbox_announcements") . "\r\n\t\t\t\t<span>" . get_phrase("shoutbox_announcements_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=manage_inactive_members\">" . get_phrase("manage_inactive_members") . "\r\n\t\t\t\t<span>" . get_phrase("manage_inactive_members_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=happy_hours\">" . get_phrase("happy_hours") . "\r\n\t\t\t\t<span>" . get_phrase("happy_hours_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=social_media\">" . get_phrase("social_media") . "\r\n\t\t\t\t<span>" . get_phrase("social_media_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=server\">" . get_phrase("server") . "\r\n\t\t\t\t<span>" . get_phrase("server_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=sls\">" . get_phrase("sls") . "\r\n\t\t\t\t<span>" . get_phrase("sls_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=uploader_inactivity\">" . get_phrase("uploader_inactivity") . "\r\n\t\t\t\t<span>" . get_phrase("uploader_inactivity_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=automatic_invites\">" . get_phrase("automatic_invites") . "\r\n\t\t\t\t<span>" . get_phrase("automatic_invites_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=magnet_links\">" . get_phrase("magnet_links") . "\r\n\t\t\t\t<span>" . get_phrase("magnet_links_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_alert\">" . get_phrase("auto_alert") . "\r\n\t\t\t\t<span>" . get_phrase("auto_alert_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=search_system\">" . get_phrase("search_system") . "\r\n\t\t\t\t<span>" . get_phrase("search_system_alt") . "</span></div>\r\n\t\t\t</div>\r\n\t\t</div>";
}
return $HTML;
}
function handlepages()
{
global $TSUE;
$HTML = "";
$aaaabh = aaaaae(array( "new=1" => array( "phrase" => get_phrase("pages_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$showinmenu = intval(getvar("showinmenu"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $pageID => $Sort )
{
$pageID = intval($pageID);
$Sort = intval($Sort);
$TSUE["TSUE_Database"]->update("tsue_pages", array( "sort" => $Sort ), "pageid=" . $TSUE["TSUE_Database"]->escape($pageID));
}
logadminaction(get_phrase("pages_all_pages_updated"));
handlerebuildcaches(false);
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $edit || $new )
{
$Page = array( "pageid" => 0, "parentid" => 0, "name" => "", "phrase" => "", "internal_link" => "", "external_link" => "", "sort" => 0, "active" => 0, "plugins_left" => array( ), "plugins_right" => array( ), "showinmenu" => 0, "viewpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Page = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Page )
{
return errormessage(get_phrase("message_content_error"));
}
$Page["plugins_left"] = tsue_explode(",", $Page["plugins_left"]);
$Page["plugins_right"] = tsue_explode(",", $Page["plugins_right"]);
$Page["viewpermissions"] = tsue_explode(",", $Page["viewpermissions"]);
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Page["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("pages_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Page"]) )
{
$Page = $_POST["Page"];
if( !$Page["name"] )
{
$formErrors[] = get_phrase("pages_page_name_error");
}
if( !$Page["phrase"] || !isset($TSUE["TSUE_Language"]["phrase"][$Page["phrase"]]) )
{
$formErrors[] = get_phrase("pages_page_phrase_error");
}
if( !$Page["internal_link"] && !$Page["external_link"] )
{
$Page["internal_link"] = "#";
}
if( !isset($Page["plugins_left"]) )
{
$Page["plugins_left"] = array( );
}
if( !isset($Page["plugins_right"]) )
{
$Page["plugins_right"] = array( );
}
if( !isset($Page["viewpermissions"]) )
{
$Page["viewpermissions"] = array( );
}
if( !isset($formErrors) )
{
$buildQuery = array( "parentid" => $Page["parentid"], "name" => $Page["name"], "phrase" => $Page["phrase"], "internal_link" => $Page["internal_link"], "external_link" => $Page["external_link"], "sort" => ($Page["sort"] ? $Page["sort"] : 0), "active" => ($Page["active"] ? $Page["active"] : 0), "plugins_left" => implode(",", $Page["plugins_left"]), "plugins_right" => implode(",", $Page["plugins_right"]), "showinmenu" => ($Page["showinmenu"] ? $Page["showinmenu"] : 0), "viewpermissions" => implode(",", $Page["viewpermissions"]) );
if( $edit )
{
$Page["pageid"] = $edit;
$TSUE["TSUE_Database"]->update("tsue_pages", $buildQuery, "pageid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_pages", $buildQuery);
$Page["pageid"] = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $Page["pageid"] . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
handlerebuildcaches(false);
handleprune(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Page[active]", $Page["active"]);
$formContents = aaaaan(get_phrase("pages_page_active"), $radioButtons);
$radioButtons = radioyesno("Page[showinmenu]", $Page["showinmenu"]);
$formContents .= aaaaan(get_phrase("pages_showinmenu_1"), $radioButtons);
$inputbox = inputbox("Page[name]", $Page["name"]);
$formContents .= aaaaan(get_phrase("pages_page_name"), $inputbox);
$inputbox = inputbox("Page[phrase]", $Page["phrase"]);
$formContents .= aaaaan(get_phrase("pages_page_phrase"), $inputbox, get_phrase("pages_page_phrase_alt"));
$inputbox = inputbox("Page[internal_link]", $Page["internal_link"]);
$formContents .= aaaaan(get_phrase("pages_page_internal_link"), $inputbox, get_phrase("pages_page_internal_link_alt") . "<br /><strong>" . get_phrase("pages_page_internal_link_alt2") . "</strong>");
$inputbox = inputbox("Page[external_link]", $Page["external_link"]);
$formContents .= aaaaan(get_phrase("pages_page_external_link"), $inputbox, get_phrase("pages_page_external_link_alt"));
$inputbox = inputbox("Page[sort]", $Page["sort"], "sortFirst");
$formContents .= aaaaan(get_phrase("global_sort"), $inputbox);
$parentPages = aaaabi("Page[parentid]", $Page["parentid"], (isset($Page["pageid"]) ? $Page["pageid"] : 0));
$formContents .= aaaaan(get_phrase("pages_parent_page"), $parentPages, get_phrase("pages_parent_page_alt"));
$aaaabj = aaaabk("Page[plugins_left][]", $Page["plugins_left"]);
$formContents .= aaaaan(get_phrase("pages_plugins_left"), $aaaabj, get_phrase("pages_plugins_left_alt"));
$aaaabl = aaaabk("Page[plugins_right][]", $Page["plugins_right"]);
$formContents .= aaaaan(get_phrase("pages_plugins_right"), $aaaabl, get_phrase("pages_plugins_left_alt"));
$Usergroups = aaaaaw("Page[viewpermissions][]", $Page["viewpermissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Page )
{
$TSUE["TSUE_Database"]->update("tsue_pages", $BuildQuery, "pageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $showinmenu )
{
$BuildQuery = array( "showinmenu" => array( "escape" => 0, "value" => "IF(showinmenu>0,0,1)" ) );
$Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($showinmenu));
if( $Page )
{
$TSUE["TSUE_Database"]->update("tsue_pages", $BuildQuery, "pageid = " . $TSUE["TSUE_Database"]->escape($showinmenu));
logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $showinmenu . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $delete )
{
$Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Page )
{
$TSUE["TSUE_Database"]->delete("tsue_pages", "pageid = " . $TSUE["TSUE_Database"]->escape($delete));
$TSUE["TSUE_Database"]->delete("tsue_pages", "parentid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("pages_page_deleted", $Page["name"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
$subPagesCache = array( );
$subPages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages WHERE parentid != 0 ORDER BY sort ASC");
if( $TSUE["TSUE_Database"]->num_Rows($subPages) )
{
while( $subPage = $TSUE["TSUE_Database"]->fetch_assoc($subPages) )
{
$subPagesCache[$subPage["parentid"]][] = $subPage;
}
}
$Pages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages WHERE parentid = 0 ORDER BY active DESC, sort ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Pages) )
{
$tableContents = errormessage(get_phrase("no_results_found"));
}
else
{
$tableContents = "";
while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
{
$tableContents .= buildpagelist($Page);
if( isset($subPagesCache[$Page["pageid"]]) )
{
foreach( $subPagesCache[$Page["pageid"]] as $subPage )
{
$tableContents .= buildpagelist($subPage, true);
}
}
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
$HTML .= aaaabn(createtable(get_phrase("dashboard_pages_alt"), $tableContents, 3, $aaaabh));
return $HTML;
}
}
function buildpagelist($Page, $isSubPage = false)
{
global $TSUE;
$linkClass = (!$Page["active"] ? "linkDisabled" : "");
$pageEditLink = aaaaae(array( "edit=" . $Page["pageid"] => array( "phrase" => $Page["name"], "class" => $linkClass ) ));
$aaaabo = aaaaae(array( "delete=" . $Page["pageid"] => array( "phrase" => getimage("buttons/delete" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubPage ? get_phrase("pages_page_delete_warning") : "")) ) ));
if( $Page["active"] )
{
$aaaabp = aaaaae(array( "enable_disable=" . $Page["pageid"] => array( "phrase" => getimage("buttons/disable" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_disable")) ) ));
}
else
{
$aaaabp = aaaaae(array( "enable_disable=" . $Page["pageid"] => array( "phrase" => getimage("buttons/enable" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_enable")) ) ));
}
if( $Page["showinmenu"] )
{
$aaaabq = aaaaae(array( "showinmenu=" . $Page["pageid"] => array( "phrase" => getimage("buttons/hide" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("pages_showinmenu_0")) ) ));
}
else
{
$aaaabq = aaaaae(array( "showinmenu=" . $Page["pageid"] => array( "phrase" => getimage("buttons/show" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("pages_showinmenu_1")) ) ));
}
$pageLink = "\r\n\t<span style=\"padding-left: 9px;\">\r\n\t\t<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $Page["internal_link"] . "&pid=" . $Page["pageid"] . "\" target=\"_blank\" style=\"color: #ccc; font-weight: normal; font-size: 10px;\">" . $Page["internal_link"] . "&pid=" . $Page["pageid"] . "</a>\r\n\t</span>";
if( $isSubPage )
{
$tableContents = aaaaag(array( array( "width" => "75%", "text" => " <span class=\"smallPassiveText\">-- " . $pageEditLink . "</span>" . $pageLink ), array( "width" => "5%", "text" => inputbox("sort[" . $Page["pageid"] . "]", $Page["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaabp . $aaaabq . $aaaabo, "align" => "right" ) ));
}
else
{
$tableContents = aaaaag(array( array( "width" => "65%", "text" => $pageEditLink . $pageLink ), array( "width" => "10%", "text" => inputbox("sort[" . $Page["pageid"] . "]", $Page["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaabp . $aaaabq . $aaaabo, "align" => "right" ) ));
}
return $tableContents;
}
function handlepolls()
{
global $TSUE;
$HTML = "";
$aaaabr = aaaaae(array( "new=1" => array( "phrase" => get_phrase("poll_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Poll = $TSUE["TSUE_Database"]->query_result("SELECT question FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Poll )
{
$TSUE["TSUE_Database"]->update("tsue_poll", $BuildQuery, "pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("poll_x_has_been_updated", $Poll["question"] . " (" . $enable_disable . ")"));
}
}
if( $delete )
{
$Poll = $TSUE["TSUE_Database"]->query_result("SELECT question FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Poll )
{
$TSUE["TSUE_Database"]->delete("tsue_poll", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("poll_x_has_been_deleted", $Poll["question"] . " (" . $delete . ")"));
}
}
if( $edit || $new )
{
$Poll = array( "active" => 1, "question" => "", "options" => array( ), "votes" => "", "voters" => "", "multiple" => 0, "closeDaysAfter" => 0, "closed" => 0, "threadid" => 0, "createdinThread" => 0 );
$aaaaam = "";
$pollOptionList = "";
$totalOptions = 5;
for( $i = 0; $i < $totalOptions; $i++ )
{
$pollOptionList .= (aaaabs);
}
if( $edit )
{
$Poll = $TSUE["TSUE_Database"]->query_result("SELECT active, question, options, votes, voters, multiple, closeDaysAfter, closed, threadid FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Poll )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$pollOptions = tsue_explode("~", $Poll["options"]);
$_pollOptionList = "";
foreach( $pollOptions as $pollOption )
{
$_pollOptionList .= aaaabs($pollOption);
$totalOptions++;
}
$pollOptionList = $_pollOptionList . $pollOptionList;
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Poll["question"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("poll_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Poll"]) )
{
$Poll = array_merge($Poll, $_POST["Poll"]);
if( !$Poll["question"] )
{
$formErrors[] = get_phrase("poll_error_no_question");
}
if( !$Poll["options"] || count($Poll["options"]) < 2 )
{
$formErrors[] = get_phrase("poll_error_no_options");
}
else
{
$Options = array( );
foreach( $Poll["options"] as $Option )
{
$Option = trim($Option);
if( !empty($Option) )
{
$Options[] = $Option;
}
}
if( !$Options || count($Options) < 2 )
{
$formErrors[] = get_phrase("poll_error_no_options");
}
else
{
$Poll["options"] = $Options;
}
}
if( $Poll["threadid"] )
{
$aaaabt = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_forums_threads WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Poll["threadid"]));
if( !$aaaabt )
{
$formErrors[] = get_phrase("message_content_error");
}
}
if( !isset($formErrors) )
{
$buildQuery = array( "active" => $Poll["active"], "question" => $Poll["question"], "options" => implode("~", $Poll["options"]), "votes" => $Poll["votes"], "voters" => $Poll["voters"], "multiple" => $Poll["multiple"], "closeDaysAfter" => $Poll["closeDaysAfter"], "closed" => $Poll["closed"], "threadid" => $Poll["threadid"], "createdinThread" => 0 );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_poll", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$buildQuery["date"] = TIMENOW;
$TSUE["TSUE_Database"]->insert("tsue_poll", $buildQuery);
}
logadminaction(get_phrase("poll_x_has_been_updated", $Poll["question"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Poll[active]", $Poll["active"]);
$formContents = aaaaan(get_phrase("poll_active"), $radioButtons);
$radioButtons = radioyesno("Poll[closed]", $Poll["closed"]);
$formContents .= aaaaan(get_phrase("poll_is_closed"), $radioButtons, get_phrase("poll_is_closed_alt"));
$inputbox = inputbox("Poll[closeDaysAfter]", $Poll["closeDaysAfter"]);
$formContents .= aaaaan(get_phrase("poll_close_days_after"), $inputbox, get_phrase("poll_close_days_after_alt"));
$radioButtons = radioyesno("Poll[multiple]", $Poll["multiple"]);
$formContents .= aaaaan(get_phrase("poll_multiple"), $radioButtons, get_phrase("poll_multiple_alt"));
$inputbox = inputbox("Poll[threadid]", $Poll["threadid"]);
$formContents .= aaaaan(get_phrase("discuss_threadid"), $inputbox, get_phrase("discuss_threadid_alt"));
$inputbox = inputbox("Poll[question]", $Poll["question"]);
$formContents .= aaaaan(get_phrase("poll_question"), $inputbox);
$formContents .= aaaaan(get_phrase("poll_options"), $pollOptionList, "", "optionsInOverlay", "", getimage("status/bullet_toggle_plus.png", get_phrase("button_add_more_fields"), "pointer middle"), "pollOptions");
$Script = "\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\tvar totalOptions = " . $totalOptions . ";\r\n\t\t\t\t\$(\"#polloptions img\").click(function(e)\r\n\t\t\t\t{\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\ttotalOptions++;\r\n\r\n\t\t\t\t\t\$('<input type=\"text\" class=\"text\" name=\"Poll[options][]\" id=\"ib_Poll[options][]\" value=\"\" style=\"display: none;\" />').appendTo('div[rel=\"pollOptions\"]').fadeIn(\"slow\");\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t</script>";
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML . $Script;
}
}
$Polls = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_poll WHERE createdinThread = 0 ORDER BY active DESC, date DESC");
if( !$TSUE["TSUE_Database"]->num_rows($Polls) )
{
$tableContents = errormessage(get_phrase("poll_no_poll_yet"));
}
else
{
$tableContents = "";
while( $Poll = $TSUE["TSUE_Database"]->fetch_assoc($Polls) )
{
$linkClass = (!$Poll["active"] ? "linkDisabled" : "");
$aaaabu = aaaaae(array( "edit=" . $Poll["pid"] => array( "phrase" => $Poll["question"], "class" => $linkClass ) ));
$aaaabv = aaaaae(array( "delete=" . $Poll["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Poll["active"] )
{
$aaaabw = aaaaae(array( "enable_disable=" . $Poll["pid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaabw = aaaaae(array( "enable_disable=" . $Poll["pid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaabu . " <span class=\"smallPassiveText\">(" . implode(" - ", tsue_explode("~", $Poll["options"])) . ") / " . get_phrase("poll_created", convert_relative_time($Poll["date"])) . " / " . get_phrase("poll_voters", count(tsue_explode("~", $Poll["voters"]))) . "</span>" ), array( "width" => "15%", "text" => $aaaabw . $aaaabv, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_polls"), $tableContents, 2, $aaaabr);
return $HTML;
}
function handlenews()
{
global $TSUE;
$HTML = "";
$aaaabx = aaaaae(array( "new=1" => array( "phrase" => get_phrase("news_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$tweet = intval(getvar("tweet"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$News = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $News )
{
$TSUE["TSUE_Database"]->update("tsue_news", $BuildQuery, "nid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("news_x_has_been_updated", $News["title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
}
}
if( $delete )
{
$News = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $News )
{
$TSUE["TSUE_Database"]->delete("tsue_news", "nid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("news_x_has_been_deleted", $News["title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
if( $edit || $new )
{
$News = array( "active" => 1, "title" => "", "content" => "" );
$aaaaam = "";
if( $edit )
{
$News = $TSUE["TSUE_Database"]->query_result("SELECT active,title,content FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$News )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $News["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("news_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["News"]) )
{
$News = $_POST["News"];
if( !$News["title"] )
{
$formErrors[] = get_phrase("news_error_no_title");
}
if( !$News["content"] )
{
$formErrors[] = get_phrase("news_error_no_content");
}
if( !isset($formErrors) )
{
$buildQuery = array( "active" => $News["active"], "title" => $News["title"], "content" => $News["content"] );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_news", $buildQuery, "nid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$buildQuery["memberid"] = $TSUE["TSUE_Member"]["memberid"];
$buildQuery["date"] = TIMENOW;
$TSUE["TSUE_Database"]->insert("tsue_news", $buildQuery);
}
logadminaction(get_phrase("news_x_has_been_updated", $News["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
handlerebuildcaches(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("News[active]", $News["active"]);
$formContents = aaaaan(get_phrase("news_active"), $radioButtons);
$inputbox = inputbox("News[title]", $News["title"]);
$formContents .= aaaaan(get_phrase("news_news_title"), $inputbox);
$textarea = textarea("News[content]", $News["content"], true);
$formContents .= aaaaan(get_phrase("news_content"), $textarea);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $tweet )
{
$News = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($tweet));
if( $News )
{
$HTML .= posttotwitter($News["content"], 120);
}
}
$AllNews = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_news ORDER BY active DESC, date DESC");
if( !$TSUE["TSUE_Database"]->num_rows($AllNews) )
{
$tableContents = errormessage(get_phrase("news_no_news_yet"));
}
else
{
$tableContents = "";
while( $News = $TSUE["TSUE_Database"]->fetch_assoc($AllNews) )
{
$linkClass = (!$News["active"] ? "linkDisabled" : "");
$aaaaby = aaaaae(array( "edit=" . $News["nid"] => array( "phrase" => $News["title"], "class" => $linkClass ) ));
$aaaabz = aaaaae(array( "delete=" . $News["nid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaaca = aaaaae(array( "tweet=" . $News["nid"] => array( "phrase" => getimage("buttons/twitter.png", "Tweet") ) ));
if( $News["active"] )
{
$aaaacb = aaaaae(array( "enable_disable=" . $News["nid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaacb = aaaaae(array( "enable_disable=" . $News["nid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaaby . " <span class=\"smallPassiveText\">" . get_phrase("news_created", convert_relative_time($News["date"])) . "</span>" ), array( "width" => "20%", "text" => $aaaaca . $aaaacb . $aaaabz, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_news"), $tableContents, 2, $aaaabx);
return $HTML;
}
function handlefaq()
{
global $TSUE;
$cid = intval(getvar("cid"));
$type = trim(getvar("type"));
$fid = intval(getvar("fid"));
$HTML = "";
if( $type == "deleteCategory" && $cid )
{
$FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
if( $FAQCategory )
{
$TSUE["TSUE_Database"]->delete("tsue_faq_categories", "cid = " . $TSUE["TSUE_Database"]->escape($cid));
$TSUE["TSUE_Database"]->delete("tsue_faq", "cid = " . $TSUE["TSUE_Database"]->escape($cid));
logadminaction(get_phrase("faq_category_has_been_deleted", $FAQCategory["name"] . " (" . $cid . ")"));
}
}
if( $type == "addCategory" || $type == "editCategory" )
{
if( $type == "editCategory" )
{
$FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
if( !$FAQCategory )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( get_phrase("faq_edit_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&cid=" . $cid . "&type=" . $type ));
$aaaaam = array( "cid" => $cid );
}
else
{
$FAQCategory = array( "name" => "", "sort" => "", "active" => 1 );
addbreadcrumb(array( get_phrase("faq_create_new_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=" . $type ));
$aaaaam = "";
}
if( isset($_POST["FAQCategory"]) )
{
$FAQCategory = $_POST["FAQCategory"];
if( !$FAQCategory["name"] )
{
$formErrors[] = get_phrase("faq_category_name_error");
}
if( !isset($formErrors) )
{
$buildQuery = array( "name" => $FAQCategory["name"], "sort" => $FAQCategory["sort"], "active" => $FAQCategory["active"] );
if( $type == "editCategory" )
{
$TSUE["TSUE_Database"]->update("tsue_faq_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($cid));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_faq_categories", $buildQuery);
$cid = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("faq_category_has_been_updated", $FAQCategory["name"] . " (" . $cid . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("FAQCategory[active]", $FAQCategory["active"]);
$formContents = aaaaan(get_phrase("faq_category_active"), $radioButtons);
$inputbox = inputbox("FAQCategory[name]", $FAQCategory["name"]);
$formContents .= aaaaan(get_phrase("faq_category_name"), $inputbox);
$inputbox = inputbox("FAQCategory[sort]", $FAQCategory["sort"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("faq_category_displayorder"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $type == "deleteItem" && $fid && $cid )
{
$FAQItem = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_faq WHERE fid = " . $TSUE["TSUE_Database"]->escape($fid) . " AND cid = " . $TSUE["TSUE_Database"]->escape($cid));
if( $FAQItem )
{
$TSUE["TSUE_Database"]->delete("tsue_faq", "fid = " . $TSUE["TSUE_Database"]->escape($fid));
logadminaction(get_phrase("faq_item_has_been_deleted", $FAQItem["title"] . " (" . $fid . ")"));
}
}
if( ($type == "addItem" || $type == "editItem") && $cid )
{
$FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
if( !$FAQCategory )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( get_phrase(($type == "editItem" ? "faq_edit_item" : "faq_add_item")) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&cid=" . $cid . "&type=" . $type ));
$FAQItem = array( "cid" => $cid, "title" => "", "content" => "", "sort" => "", "active" => 1 );
$aaaaam = "";
if( $type == "editItem" )
{
$FAQItem = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq WHERE fid = " . $TSUE["TSUE_Database"]->escape($fid));
if( !$FAQItem )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "fid" => $fid );
}
if( isset($_POST["FAQItem"]) )
{
$FAQItem = $_POST["FAQItem"];
if( !$FAQItem["title"] )
{
$formErrors[] = get_phrase("faq_title_error");
}
if( !$FAQItem["content"] )
{
$formErrors[] = get_phrase("faq_content_error");
}
if( !isset($formErrors) )
{
$buildQuery = array( "cid" => $cid, "title" => $FAQItem["title"], "content" => $FAQItem["content"], "sort" => $FAQItem["sort"], "active" => $FAQItem["active"] );
if( $type == "editItem" )
{
$TSUE["TSUE_Database"]->update("tsue_faq", $buildQuery, "fid=" . $TSUE["TSUE_Database"]->escape($fid));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_faq", $buildQuery);
$fid = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("faq_item_has_been_updated", $FAQItem["title"] . " (" . $fid . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("FAQItem[active]", $FAQItem["active"]);
$formContents = aaaaan(get_phrase("faq_item_active"), $radioButtons);
$inputbox = inputbox("FAQItem[title]", $FAQItem["title"]);
$formContents .= aaaaan(get_phrase("faq_item_title"), $inputbox);
$textarea = textarea("FAQItem[content]", $FAQItem["content"], true);
$formContents .= aaaaan(get_phrase("faq_item_content"), $textarea);
$inputbox = inputbox("FAQItem[sort]", $FAQItem["sort"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("faq_item_displayorder"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$aaaacc = array( );
$aaaacd = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_faq ORDER BY cid ASC");
while( $FAQItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaacd) )
{
$aaaace = aaaaae(array( "cid=" . $FAQItem["cid"] . "&fid=" . $FAQItem["fid"] . "&type=editItem" => array( "phrase" => get_phrase("button_edit") ) ));
$aaaacf = aaaaae(array( "cid=" . $FAQItem["cid"] . "&fid=" . $FAQItem["fid"] . "&type=deleteItem" => array( "phrase" => get_phrase("button_delete"), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$linkClass = (!$FAQItem["active"] ? "linkDisabled" : "");
$aaaacc[$FAQItem["cid"]][] = "\r\n\t\t<li>[" . $aaaace . "] [" . $aaaacf . "] <span class=\"" . $linkClass . "\">" . $FAQItem["title"] . "</span></li>";
}
$aaaacg = "";
$FAQCategories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_faq_categories ORDER BY cid ASC");
while( $FAQCategory = $TSUE["TSUE_Database"]->fetch_assoc($FAQCategories) )
{
$items = "";
if( isset($aaaacc[$FAQCategory["cid"]]) )
{
$items .= "<ul>";
foreach( $aaaacc[$FAQCategory["cid"]] as $cid => $li )
{
$items .= $li;
}
$items .= "</ul>";
}
$aaaach = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=editCategory" => array( "phrase" => get_phrase("button_edit") ) ));
$aaaaci = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=addItem" => array( "phrase" => get_phrase("faq_add_item") ) ));
$aaaacj = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=deleteCategory" => array( "phrase" => get_phrase("button_delete"), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$linkClass = (!$FAQCategory["active"] ? "linkDisabled" : "");
$aaaacg .= "\r\n\t\t<li>[" . $aaaaci . "] [" . $aaaach . "] [" . $aaaacj . "] <span class=\"" . $linkClass . "\"><b>" . $FAQCategory["name"] . "</b></span> " . $items . "</li>";
}
$aaaack = aaaaae(array( "type=addCategory" => array( "phrase" => get_phrase("faq_create_new_category") ) ));
return createtable(get_phrase("dashboard_faq_alt"), "\r\n\t<tr>\r\n\t\t<td>\r\n\t\t\t<ul style=\"line-height: 2;\">\r\n\t\t\t\t" . $aaaacg . "\r\n\t\t\t</ul>\r\n\t\t</td>\r\n\t</tr>", 1, $aaaack);
}
function handletorrentcategories()
{
global $TSUE;
$HTML = "";
$aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("torrent_categories_new_category") ) ));
$tableContents = "";
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$cid = intval(getvar("cid"));
$set = trim(getvar("set"));
$confirm = intval(getvar("confirm"));
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $Cid => $Sort )
{
$Cid = intval($Cid);
$Sort = intval($Sort);
$TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid));
}
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $set && $cid )
{
$Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
if( !$Category )
{
return errormessage(get_phrase("message_content_error"));
}
if( $set == "delete" )
{
$Phrase = "delete_all_torrents_in_this_category";
}
else
{
$Phrase = "set_all_torrents_" . $set . "_in_this_category";
}
if( !isset($TSUE["TSUE_Language"]["phrase"][$Phrase]) )
{
return errormessage(get_phrase("message_content_error"));
}
$Phrase = $TSUE["TSUE_Language"]["phrase"][$Phrase] . ": " . $Category["cname"];
if( !$confirm )
{
return errormessage("\r\n\t\t\t" . $Phrase . "\r\n\t\t\t<p>" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "</p>\r\n\t\t\t<p>" . aaaaae(array( "set=" . $set . "&cid=" . $cid . "&confirm=1" => array( "class" => "submit", "phrase" => get_phrase("button_apply") ) )) . "</p>");
}
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
switch( $set )
{
case "free":
case "non_free":
aaaacm(array( "download_multiplier" => ($set == "free" ? 0 : 1) ), $cid);
break;
case "double_upload":
case "non_double_upload":
aaaacm(array( "upload_multiplier" => ($set == "double_upload" ? 2 : 1) ), $cid);
break;
case "sticky":
case "un_sticky":
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "sticky" => ($set == "sticky" ? 1 : 0) ), "cid=" . $TSUE["TSUE_Database"]->escape($cid));
break;
case "anonymouse":
case "non_anonymouse":
aaaacm(array( "anonymouse" => ($set == "anonymouse" ? 1 : 0) ), $cid);
break;
case "record_stats":
case "non_record_stats":
aaaacm(array( "record_stats" => ($set == "record_stats" ? 1 : 0) ), $cid);
break;
case "delete":
$Torrents = $TSUE["TSUE_Database"]->query("SELECT tid FROM tsue_torrents WHERE cid = " . $cid);
if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
deletetorrent($Torrent["tid"]);
}
}
break;
}
}
if( $delete )
{
checkdemomode();
$Category = $TSUE["TSUE_Database"]->query_result("SELECT pid, cname FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Category )
{
$TSUE["TSUE_Database"]->delete("tsue_torrents_categories", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
foreach( array( "png", "gif", "jpg", "jpeg" ) as $extension )
{
$categoryImage = DATAPATH . "torrents/category_images/" . $delete . "." . $extension;
if( file_exists($categoryImage) )
{
@unlink($categoryImage);
}
}
if( !$Category["pid"] )
{
$subCategories = $TSUE["TSUE_Database"]->query("SELECT cid FROM tsue_torrents_categories WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->num_rows($subCategories) )
{
while( $subCategory = $TSUE["TSUE_Database"]->fetch_assoc($subCategories) )
{
foreach( array( "png", "gif", "jpg", "jpeg" ) as $extension )
{
$categoryImage = DATAPATH . "torrents/category_images/" . $subCategory["cid"] . "." . $extension;
if( file_exists($categoryImage) )
{
@unlink($categoryImage);
}
}
}
$TSUE["TSUE_Database"]->delete("tsue_torrents_categories", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
}
}
logadminaction(get_phrase("torrent_categories_category_has_been_deleted", $Category["cname"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $edit || $new )
{
$Category = array( "pid" => 0, "sort" => "", "cname" => "", "cviewpermissions" => array( ), "cdownloadpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Category )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]);
$Category["cdownloadpermissions"] = tsue_explode(",", $Category["cdownloadpermissions"]);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Category["cname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("torrent_categories_new_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Category"]) )
{
checkdemomode();
$Category = $_POST["Category"];
$categoryImage = $_FILES["categoryImage"];
if( !isset($Category["cviewpermissions"]) )
{
$Category["cviewpermissions"] = array( );
}
if( !isset($Category["cdownloadpermissions"]) )
{
$Category["cdownloadpermissions"] = array( );
}
if( !$Category["cname"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( $categoryImage && $categoryImage["tmp_name"] )
{
if( !is_uploaded_file($categoryImage["tmp_name"]) )
{
$flagError[] = get_phrase("upload_error3");
}
else
{
if( !$categoryImage["name"] || !$categoryImage["type"] || !$categoryImage["tmp_name"] || $categoryImage["error"] || !$categoryImage["size"] )
{
$flagError[] = get_phrase("upload_error3");
}
else
{
if( !in_array(file_extension($categoryImage["name"]), array( "png", "gif", "jpg", "jpeg" )) )
{
$flagError[] = get_phrase("upload_error6", "png,gif,jpg");
}
else
{
$aaaacn = file_extension($categoryImage["name"]);
$newFlag = $categoryImage["tmp_name"];
}
}
}
}
if( isset($flagError) )
{
$formErrors = (isset($formErrors) ? array_merge($formErrors, $flagError) : $flagError);
unset($flagError);
}
if( !isset($formErrors) )
{
$buildQuery = array( "cname" => $Category["cname"], "pid" => $Category["pid"], "sort" => $Category["sort"], "cviewpermissions" => implode(",", $Category["cviewpermissions"]), "cdownloadpermissions" => implode(",", $Category["cdownloadpermissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_torrents_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
$flagID = $edit;
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_torrents_categories", $buildQuery);
$flagID = $TSUE["TSUE_Database"]->insert_id();
}
if( isset($newFlag) && $flagID )
{
foreach( array( "png", "gif", "jpg", "jpeg" ) as $checkExtension )
{
$aaaaco = DATAPATH . "torrents/category_images/" . $flagID . "." . $checkExtension;
if( file_exists($aaaaco) )
{
@unlink($aaaaco);
}
}
$aaaacp = DATAPATH . "torrents/category_images/" . $flagID . "." . $aaaacn;
@move_uploaded_file($newFlag, $aaaacp);
}
logadminaction(get_phrase("torrent_categories_category_has_been_updated", $Category["cname"] . " (" . $flagID . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf");
$formContents = aaaaan(get_phrase("torrent_categories_category_name"), $inputbox);
$selectbox = aaaacq("Category[pid]", $Category["pid"], (isset($Category["cid"]) ? $Category["cid"] : 0));
$formContents .= aaaaan(get_phrase("global_parent_category"), $selectbox);
$inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
$aaaacr = aaaacs("categoryImage");
$formContents .= aaaaan(get_phrase("torrent_categories_category_image"), $aaaacr, ($edit ? get_phrase("global_leave_empty_keep_current_one") : ""));
$aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe);
$aaaabe = aaaaaw("Category[cdownloadpermissions][]", $Category["cdownloadpermissions"]);
$formContents .= aaaaan(get_phrase("global_download_permissions"), $aaaabe);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$aaaact = array( );
$subCategories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories WHERE pid > 0 ORDER BY `sort` ASC");
if( $TSUE["TSUE_Database"]->num_Rows($subCategories) )
{
while( $subCategory = $TSUE["TSUE_Database"]->fetch_assoc($subCategories) )
{
$aaaact[$subCategory["pid"]][] = $subCategory;
}
}
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories WHERE pid = 0 ORDER BY `sort` ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Categories) )
{
$tableContents = errormessage(get_phrase("no_results_found"));
}
else
{
$tableContents = "";
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$tableContents .= aaaacu($Category);
if( isset($aaaact[$Category["cid"]]) )
{
foreach( $aaaact[$Category["cid"]] as $subCategory )
{
$tableContents .= aaaacu($subCategory, true);
}
}
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
$HTML .= aaaabn(createtable(get_phrase("dashboard_torrent_categories_alt"), $tableContents, 3, $aaaacl));
return $HTML;
}
}
function aaaacm($Option, $Cid)
{
global $TSUE;
$Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE cid = " . $Cid);
if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
$buildQuery = array( );
$buildQuery["options"] = serialize(array_merge(unserialize($Torrent["options"]), $Option));
$buildQuery["flags"] = 2;
if( array_key_exists("upload_multiplier", $Option) )
{
$buildQuery["upload_multiplier"] = $Option["upload_multiplier"];
}
else
{
if( array_key_exists("download_multiplier", $Option) )
{
$buildQuery["download_multiplier"] = $Option["download_multiplier"];
}
}
$TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"]));
}
}
}
function aaaacu($Category, $isSubCategory = false)
{
global $TSUE;
$aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) ));
$aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete" . (($isSubCategory ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubCategory ? get_phrase("torrent_categories_category_delete_warning") : "")) ) ));
$categoryImage = get_torrent_category_image($Category["cid"]);
if( $categoryImage )
{
$categoryImage = "<img src=\"" . $categoryImage . "\" alt=\"" . $Category["cname"] . "\" title=\"" . $Category["cname"] . "\" border=\"0\"" . (($isSubCategory ? " width=\"30\" height=\"30\" style=\"margin-left: 30px;\"" : "")) . " />";
}
$Options = "\r\n\t<div rel=\"dropDownMenu\" class=\"dropDownMenu\">\r\n\t\t<span class=\"smallPassiveText\">[Options]</span>\r\n\t\t<div id=\"dropDownMenu\">\r\n\t\t\t" . aaaaae(array( "set=free&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_free_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=non_free&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_free_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=double_upload&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_double_upload_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=non_double_upload&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_double_upload_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=sticky&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_sticky_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=un_sticky&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_un_sticky_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=anonymouse&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_anonymouse_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=non_anonymouse&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_anonymouse_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=record_stats&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_record_stats_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=non_record_stats&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_record_stats_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=delete&cid=" . $Category["cid"] => array( "phrase" => get_phrase("delete_all_torrents_in_this_category") ) )) . "\r\n\t\t</div>\r\n\t</div>";
if( $isSubCategory )
{
$tableContents = aaaaag(array( array( "width" => "75%", "text" => " " . $categoryImage . " <span class=\"smallPassiveText\">-- " . $aaaacv . "</span>" . $Options ), array( "width" => "5%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaacw, "align" => "right" ) ));
}
else
{
$tableContents = aaaaag(array( array( "width" => "65%", "text" => $categoryImage . " " . $aaaacv . $Options ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) ));
}
return $tableContents;
}
function handlemarket()
{
global $TSUE;
$HTML = "";
$aaaacx = aaaaae(array( "new=1" => array( "phrase" => get_phrase("market_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Market = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Market )
{
$TSUE["TSUE_Database"]->update("tsue_market", $BuildQuery, "itemid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("market_item_x_updated", $Market["title"] . " (" . $enable_disable . ")"));
}
}
if( $delete )
{
$Market = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Market )
{
$TSUE["TSUE_Database"]->delete("tsue_market", "itemid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("market_item_x_deleted", $Market["title"] . " (" . $delete . ")"));
}
}
if( $edit || $new )
{
$Market = array( "title" => "", "description" => "", "required_points" => 0, "item_type" => "", "amount" => "", "active" => 1, "permissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Market = $TSUE["TSUE_Database"]->query_result("SELECT title,description,required_points,item_type,amount,active,permissions FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Market )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Market["permissions"] = tsue_explode(",", $Market["permissions"]);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Market["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("market_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Market"]) )
{
$Market = $_POST["Market"];
if( !$Market["title"] )
{
$formErrors[] = get_phrase("market_title_error");
}
if( !$Market["item_type"] )
{
$formErrors[] = get_phrase("market_item_type_error");
}
if( !$Market["amount"] && in_array($Market["item_type"], array( "invites_left", "uploaded", "gift", "hitrun" )) )
{
$formErrors[] = get_phrase("market_item_amount_error");
}
if( !isset($Market["permissions"]) )
{
$Market["permissions"] = array( );
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $Market["title"], "description" => $Market["description"], "required_points" => $Market["required_points"], "item_type" => $Market["item_type"], "amount" => $Market["amount"], "active" => $Market["active"], "permissions" => implode(",", $Market["permissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_market", $buildQuery, "itemid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_market", $buildQuery);
}
logadminaction(get_phrase("market_item_x_updated", $Market["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Market[active]", $Market["active"]);
$formContents = aaaaan(get_phrase("market_item_active"), $radioButtons);
$inputbox = inputbox("Market[title]", $Market["title"]);
$formContents .= aaaaan(get_phrase("market_item_title"), $inputbox);
$textarea = textarea("Market[description]", $Market["description"], true);
$formContents .= aaaaan(get_phrase("market_item_description"), $textarea);
$inputbox = inputbox("Market[required_points]", $Market["required_points"]);
$formContents .= aaaaan(get_phrase("market_required_points"), $inputbox);
$selectbox = selectbox("Market[item_type]", $Market["item_type"], array( "invites_left" => get_phrase("market_item_type_invites_left"), "custom_title" => get_phrase("market_item_type_custom_title"), "uploaded" => get_phrase("market_item_type_uploaded"), "gift" => get_phrase("market_item_type_gift"), "hitrun" => get_phrase("market_item_type_hitrun"), "change_membername" => get_phrase("change_membername") ));
$formContents .= aaaaan(get_phrase("market_item_type"), $selectbox);
$inputbox = inputbox("Market[amount]", $Market["amount"], "text texttiny", "", false, false, getimage("buttons/calculator.png", get_phrase("calculator"), "calculator"));
$formContents .= aaaaan(get_phrase("market_item_amount"), $inputbox);
$Usergroups = aaaaaw("Market[permissions][]", $Market["permissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$AllItems = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_market ORDER BY active DESC, required_points ASC");
if( !$TSUE["TSUE_Database"]->num_rows($AllItems) )
{
$tableContents = errormessage(get_phrase("market_item_no_item_yet"));
}
else
{
$tableContents = "";
while( $Market = $TSUE["TSUE_Database"]->fetch_assoc($AllItems) )
{
$linkClass = (!$Market["active"] ? "linkDisabled" : "");
$aaaacy = aaaaae(array( "edit=" . $Market["itemid"] => array( "phrase" => $Market["title"], "class" => $linkClass ) ));
$aaaacz = aaaaae(array( "delete=" . $Market["itemid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Market["active"] )
{
$aaaada = aaaaae(array( "enable_disable=" . $Market["itemid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaada = aaaaae(array( "enable_disable=" . $Market["itemid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaacy . " <span class=\"smallPassiveText\">" . get_phrase("market_required_points") . ": " . $Market["required_points"] . "</span>" ), array( "width" => "15%", "text" => $aaaada . $aaaacz, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_market_alt"), $tableContents, 2, $aaaacx);
return $HTML;
}
function handleapimanager()
{
global $TSUE;
$HTML = "";
$enable_disable = intval(getvar("enable_disable"));
$edit = intval(getvar("edit"));
$logs = intval(getvar("logs"));
if( $logs )
{
$API = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($logs));
if( !$API )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( $API["title"] . ": " . get_phrase("logs", $TSUE["TSUE_Member"]["membername"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&logs=" . $logs ));
$getLogs = $TSUE["TSUE_Database"]->query("SELECT t.amount, t.currency, t.dateline, t.full_log, p.hash, p.completed, p.memberid, u.upgrade_title, u.upgrade_length_type, u.upgrade_length, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_transaction t LEFT JOIN tsue_member_upgrades_purchases p USING(history_id) LEFT JOIN tsue_member_upgrades u ON (p.upgrade_id=u.upgrade_id) LEFT JOIN tsue_members m ON(p.memberid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE t.api_id = " . $TSUE["TSUE_Database"]->escape($logs) . " AND full_log != '' AND completed = 0 ORDER BY t.dateline DESC");
if( !$TSUE["TSUE_Database"]->num_rows($getLogs) )
{
return errormessage(get_phrase("message_nothing_found"));
}
$List = "";
while( $Log = $TSUE["TSUE_Database"]->fetch_assoc($getLogs) )
{
if( $Log["upgrade_length_type"] == "lifetime" )
{
$Log["upgrade_length"] = "";
$Log["upgrade_length_type"] = get_phrase("upgrade_lifetime");
}
else
{
if( $Log["upgrade_length_type"] )
{
$Log["upgrade_length_type"] = get_phrase("upgrade_" . $Log["upgrade_length_type"] . ((1 < $Log["upgrade_length"] ? "s" : "")));
}
}
if( $Log["amount"] )
{
$upradePrice = get_phrase("upgrade_price", $Log["amount"], strtoupper($Log["currency"]), $Log["upgrade_length"], $Log["upgrade_length_type"]);
}
else
{
$upradePrice = "[N/A]";
}
$List .= "\r\n\t\t\t<div class=\"apiLogs\">\r\n\t\t\t\t<span style=\"float: right;\">#" . $Log["hash"] . "</span>\r\n\t\t\t\t" . $Log["upgrade_title"] . " <span class=\"smallPassiveText\">" . $upradePrice . "</span><br />\r\n\t\t\t\t<b>" . get_phrase("upgrade_membername") . ":</b> " . aaaaaf("?p=profile&pid=18&memberid=" . $Log["memberid"], getmembername($Log["membername"], $Log["groupstyle"])) . "<br />\r\n\t\t\t\t<b>" . get_phrase("torrents_peer_last_updated") . ":</b> " . convert_relative_time($Log["dateline"]) . "<br />\r\n\t\t\t\t<b>" . get_phrase("logs") . ":</b> " . $Log["full_log"] . "\r\n\t\t\t</div>\r\n\t\t\t<br />";
}
return $List;
}
if( $edit )
{
$API = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$API )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( $API["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
$aaaaam = array( "edit" => $edit );
$APISettings = ($API["settings"] ? unserialize($API["settings"]) : false);
if( !$APISettings )
{
if( $API["classname"] == "coinbase" )
{
$APISettings = array( "secret_key" => "", "api_key" => "", "payment_inform_emails" => "", "payment_pm_owner" => "" );
}
else
{
$APISettings = array( "business" => "", "demo_mode" => 0, "payment_inform_emails" => "", "payment_pm_owner" => "" );
}
}
if( isset($_POST["APISettings"]) )
{
$APISettings = $_POST["APISettings"];
if( !isset($formErrors) )
{
$buildQuery = array( "settings" => serialize($APISettings) );
$TSUE["TSUE_Database"]->update("tsue_member_upgrades_api", $buildQuery, "api_id=" . $TSUE["TSUE_Database"]->escape($edit));
logadminaction(get_phrase("upgrade_api_has_been_updated", $API["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
if( $API["classname"] == "coinbase" )
{
$inputbox = inputbox("APISettings[secret_key]", $APISettings["secret_key"]);
$formContents = aaaaan(get_phrase("upgrade_api_secret_key"), $inputbox, get_phrase("upgrade_api_secret_key_alt"));
$inputbox = inputbox("APISettings[api_key]", $APISettings["api_key"]);
$formContents .= aaaaan(get_phrase("upgrade_api_api_key"), $inputbox, get_phrase("upgrade_api_api_key_alt"));
}
else
{
$inputbox = inputbox("APISettings[business]", $APISettings["business"]);
$formContents = aaaaan(get_phrase("upgrade_api_business"), $inputbox, get_phrase("upgrade_api_business_alt", $API["title"]));
$radioButtons = radioyesno("APISettings[demo_mode]", $APISettings["demo_mode"]);
$formContents .= aaaaan(get_phrase("upgrade_api_demo_mode"), $radioButtons);
}
$inputbox = inputbox("APISettings[payment_inform_emails]", $APISettings["payment_inform_emails"]);
$formContents .= aaaaan(get_phrase("upgrade_api_email_notification"), $inputbox, get_phrase("upgrade_api_email_notification_alt"));
$inputbox = inputbox("APISettings[payment_pm_owner]", $APISettings["payment_pm_owner"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("upgrade_api_pm_notification_owner"), $inputbox, get_phrase("upgrade_api_pm_notification_owner_alt"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$API = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $API )
{
$TSUE["TSUE_Database"]->update("tsue_member_upgrades_api", $BuildQuery, "api_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("upgrade_api_has_been_updated", $API["title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
}
}
$apiList = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_member_upgrades_api ORDER BY active DESC, title ASC");
if( !$TSUE["TSUE_Database"]->num_rows($apiList) )
{
$tableContents = errormessage(get_phrase("upgrade_no_api"));
}
else
{
$tableContents = "";
while( $API = $TSUE["TSUE_Database"]->fetch_assoc($apiList) )
{
$Image = array( "src" => "images/payment_api/" . $API["classname"] . ".png", "alt" => $API["title"], "title" => $API["title"], "class" => "middle", "id" => "", "rel" => "" );
$Image = aaaadb($Image);
$linkClass = (!$API["active"] ? "linkDisabled" : "");
$aaaadc = aaaaae(array( "edit=" . $API["api_id"] => array( "phrase" => $API["title"], "class" => $linkClass ) ));
$aaaadd = aaaaae(array( "logs=" . $API["api_id"] => array( "phrase" => getimage("buttons/examine.png", get_phrase("logs")) ) ));
if( $API["active"] )
{
$aaaade = aaaaae(array( "enable_disable=" . $API["api_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaade = aaaaae(array( "enable_disable=" . $API["api_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $Image . " " . $aaaadc . "<span class=\"smallPassiveText\">" . get_phrase("upgrade_api_supported_currency") . ": " . $API["currency"] . "</span>" ), array( "width" => "20%", "text" => $aaaadd . $aaaade, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_api_manager_alt"), $tableContents, 2);
return $HTML;
}
function handlecronentries()
{
global $TSUE;
$HTML = "";
$aaaadf = aaaaae(array( "new=1" => array( "phrase" => get_phrase("dashboard_cron_entries_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$run = intval(getvar("run"));
if( $run )
{
$BuildQuery = array( "nextrun" => TIMENOW );
$Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($run));
if( $Cron )
{
$TSUE["TSUE_Database"]->update("tsue_cron", $BuildQuery, "cid = " . $TSUE["TSUE_Database"]->escape($run));
logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"] . " (" . $run . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
}
}
if( $edit || $new )
{
$Cron = array( "title" => "", "nextrun" => TIMENOW, "minutes" => 0, "filename" => "", "function" => "", "active" => 0 );
$aaaaam = "";
if( $edit )
{
$Cron = $TSUE["TSUE_Database"]->query_result("SELECT title,nextrun,minutes,filename,function,active FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Cron )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Cron["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("dashboard_cron_entries_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Cron"]) )
{
$Cron = $_POST["Cron"];
$aaaadg = array( "years" => 365 * 24 * 60 * 60, "months" => 31 * 24 * 60 * 60, "weeks" => 7 * 24 * 60 * 60, "days" => 24 * 60 * 60, "hours" => 60 * 60, "minutes" => 60 );
$Cron["minutes"] = 0;
foreach( array( "years", "months", "weeks", "days", "hours", "minutes" ) as $aaaadh )
{
if( isset($_POST["Cron"][$aaaadh]) && $_POST["Cron"][$aaaadh] && isset($aaaadg[$aaaadh]) )
{
$Cron["minutes"] += intval($_POST["Cron"][$aaaadh]) * $aaaadg[$aaaadh];
}
}
if( !$Cron["title"] )
{
$formErrors[] = get_phrase("dashboard_cron_entries_cron_title_error");
}
if( !$Cron["filename"] || !is_file(LIBRARYPATH . "cron/" . $Cron["filename"]) )
{
$formErrors[] = get_phrase("dashboard_cron_entries_cron_file_error");
}
if( !$Cron["function"] )
{
$formErrors[] = get_phrase("dashboard_cron_entries_cron_function_error");
}
if( !$Cron["minutes"] )
{
$formErrors[] = get_phrase("dashboard_cron_entries_cron_run_period_error");
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $Cron["title"], "nextrun" => TIMENOW + $Cron["minutes"], "minutes" => $Cron["minutes"], "filename" => $Cron["filename"], "function" => $Cron["function"], "active" => $Cron["active"] );
if( $edit )
{
unset($buildQuery["nextrun"]);
$TSUE["TSUE_Database"]->update("tsue_cron", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_cron", $buildQuery);
}
logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Cron[active]", $Cron["active"]);
$formContents = aaaaan(get_phrase("dashboard_cron_entries_active"), $radioButtons);
$inputbox = inputbox("Cron[title]", $Cron["title"]);
$formContents .= aaaaan(get_phrase("dashboard_cron_entries_title"), $inputbox);
$inputbox = inputbox("Cron[filename]", $Cron["filename"]);
$formContents .= aaaaan(get_phrase("dashboard_cron_entries_filename"), $inputbox, get_phrase("global_file_path", (DEMO_MODE ? "" : LIBRARYPATH . "cron/")));
$inputbox = inputbox("Cron[function]", $Cron["function"]);
$formContents .= aaaaan(get_phrase("dashboard_cron_entries_function"), $inputbox);
$aaaadi = aaaadj($Cron["minutes"]);
$inputbox = inputbox("Cron[years]", $aaaadi["years"], "text textVeryTiny", get_phrase("dashboard_cron_entries_years"));
$inputbox .= inputbox("Cron[months]", $aaaadi["months"], "text textVeryTiny", get_phrase("dashboard_cron_entries_months"));
$inputbox .= inputbox("Cron[weeks]", $aaaadi["weeks"], "text textVeryTiny", get_phrase("dashboard_cron_entries_weeks"));
$inputbox .= inputbox("Cron[days]", $aaaadi["days"], "text textVeryTiny", get_phrase("dashboard_cron_entries_days"));
$inputbox .= inputbox("Cron[hours]", $aaaadi["hours"], "text textVeryTiny", get_phrase("dashboard_cron_entries_hours"));
$inputbox .= inputbox("Cron[minutes]", $aaaadi["minutes"], "text textVeryTiny", get_phrase("dashboard_cron_entries_minutes"));
$formContents .= aaaaan(get_phrase("dashboard_cron_entries_run_period"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Cron )
{
$TSUE["TSUE_Database"]->update("tsue_cron", $BuildQuery, "cid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"] . " (" . $enable_disable . ")"));
}
}
if( $delete )
{
$Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Cron )
{
$TSUE["TSUE_Database"]->delete("tsue_cron", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("dashboard_cron_entries_cron_deleted", $Cron["title"] . " (" . $delete . ")"));
}
}
$aaaadk = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_cron ORDER BY active DESC, filename ASC");
if( !$TSUE["TSUE_Database"]->num_rows($aaaadk) )
{
$tableContents = errormessage(get_phrase("dashboard_cron_entries_no_cron"));
}
else
{
$tableContents = "";
while( $Cron = $TSUE["TSUE_Database"]->fetch_assoc($aaaadk) )
{
$loadTime = get_phrase("load_time", round($Cron["loadTime"], 4));
$queryCount = get_phrase("query_count", number_format($Cron["queryCount"]));
$nextRun = get_phrase("dashboard_cron_entries_next_run", convert_relative_time($Cron["nextrun"]));
$linkClass = (!$Cron["active"] ? "linkDisabled" : "");
$aaaadl = aaaaae(array( "run=" . $Cron["cid"] => array( "phrase" => getimage("buttons/refresh.png", get_phrase("dashboard_cron_entries_run_cron")) ) ));
$aaaadm = aaaaae(array( "edit=" . $Cron["cid"] => array( "phrase" => $Cron["title"], "class" => $linkClass ) ));
$aaaadn = aaaaae(array( "delete=" . $Cron["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Cron["active"] )
{
$aaaado = aaaaae(array( "enable_disable=" . $Cron["cid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaado = aaaaae(array( "enable_disable=" . $Cron["cid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaadm . " <span class=\"smallPassiveText\">" . $nextRun . " | " . $queryCount . " | " . $loadTime . "</span>" ), array( "width" => "15%", "text" => $aaaado . $aaaadl . $aaaadn, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_cron_entries"), $tableContents, 2, $aaaadf);
return $HTML;
}
function handlerebuildcaches($logANDreturn = true)
{
global $TSUE;
$content = "";
$cacheContents = array( );
$Announcement = $TSUE["TSUE_Database"]->query_result("SELECT a.*, m.membername FROM tsue_announcements a LEFT JOIN tsue_members m USING(memberid) WHERE a.active = 1 ORDER BY a.date DESC LIMIT 1");
if( $Announcement )
{
$cacheContents["active_announcements_cache"] = array( "aid" => $Announcement["aid"], "memberid" => $Announcement["memberid"], "date" => $Announcement["date"], "title" => $Announcement["title"], "content" => $Announcement["content"] );
}
else
{
$cacheContents["active_announcements_cache"] = array( );
}
$News = $TSUE["TSUE_Database"]->query("SELECT n.*, m.membername FROM tsue_news n LEFT JOIN tsue_members m USING(memberid) WHERE n.active = 1 ORDER BY n.date DESC");
if( $TSUE["TSUE_Database"]->num_rows($News) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($News) )
{
$cacheContents["active_news_cache"][] = array( "nid" => $nItem["nid"], "memberid" => $nItem["memberid"], "date" => $nItem["date"], "title" => $nItem["title"], "content" => $nItem["content"] );
}
}
else
{
$cacheContents["active_news_cache"] = array( );
}
$aaaadp = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_country ORDER BY 'country'");
if( $TSUE["TSUE_Database"]->num_rows($aaaadp) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaadp) )
{
$cacheContents["banned_countries_cache"][] = $nItem["country"];
}
}
else
{
$cacheContents["banned_countries_cache"] = array( );
}
$aaaadq = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_email ORDER BY 'banned_email'");
if( $TSUE["TSUE_Database"]->num_rows($aaaadq) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaadq) )
{
$cacheContents["banned_emails_cache"][] = $nItem["banned_email"];
}
}
else
{
$cacheContents["banned_emails_cache"] = array( );
}
$bannedIPs = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ip_match WHERE match_type = 'banned'");
if( $TSUE["TSUE_Database"]->num_rows($bannedIPs) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($bannedIPs) )
{
$cacheContents["banned_ips_cache"][$nItem["first_octet"]][] = array( $nItem["start_range"], $nItem["end_range"] );
}
}
else
{
$cacheContents["banned_ips_cache"] = array( );
}
$Smilies = $TSUE["TSUE_Database"]->query("SELECT smilie_text, smilie_title, smilie_file FROM tsue_smilies");
if( $TSUE["TSUE_Database"]->num_rows($Smilies) )
{
while( $Smilie = $TSUE["TSUE_Database"]->fetch_assoc($Smilies) )
{
$cacheContents["dialog_smilies_cache"][] = $Smilie;
}
}
else
{
$cacheContents["dialog_smilies_cache"] = array( );
}
$permissions = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_permissions ORDER BY forumid ASC");
if( $TSUE["TSUE_Database"]->num_rows($permissions) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($permissions) )
{
$cacheContents["forums_permissions_cache"][] = array( "forumid" => $nItem["forumid"], "membergroupid" => $nItem["membergroupid"], "permissions" => $nItem["permissions"] );
}
}
else
{
$cacheContents["forums_permissions_cache"] = array( );
}
$prefixes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_thread_prefixes ORDER BY pname ASC");
if( $TSUE["TSUE_Database"]->num_rows($prefixes) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($prefixes) )
{
$cacheContents["forums_thread_prefixes"][] = array( "pid" => $nItem["pid"], "pname" => $nItem["pname"], "cssname" => $nItem["cssname"], "viewpermissions" => $nItem["viewpermissions"] );
}
}
else
{
$cacheContents["forums_thread_prefixes"] = array( );
}
$Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name, filename, contents, viewpermissions, pluginOptions FROM tsue_plugins WHERE `active` = 1");
if( $TSUE["TSUE_Database"]->num_rows($Plugins) )
{
while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
$cacheContents["tsue_plugins_cache"][] = $nItem;
}
}
else
{
$cacheContents["tsue_plugins_cache"] = array( );
}
$Genres = $TSUE["TSUE_Database"]->query("SELECT gid, gname, gicon, categories FROM tsue_torrents_genres WHERE active = 1 ORDER BY gname ASC");
if( $TSUE["TSUE_Database"]->num_rows($Genres) )
{
while( $Genre = $TSUE["TSUE_Database"]->fetch_assoc($Genres) )
{
$cacheContents["tsue_torrents_genres_cache"][] = $Genre;
}
}
else
{
$cacheContents["tsue_torrents_genres_cache"] = array( );
}
$Themes = $TSUE["TSUE_Database"]->query("SELECT themeid FROM tsue_themes WHERE active = 1");
if( $TSUE["TSUE_Database"]->num_rows($Themes) )
{
while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) )
{
$aaaadr[] = $Theme["themeid"];
}
$TSUE["TSUE_Settings"]->settings["global_settings"]["available_themes"] = implode(",", $aaaadr);
}
$Languages = $TSUE["TSUE_Database"]->query("SELECT languageid FROM tsue_languages WHERE active = 1");
if( $TSUE["TSUE_Database"]->num_rows($Languages) )
{
while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
{
$languageCache[] = $Language["languageid"];
}
$TSUE["TSUE_Settings"]->settings["global_settings"]["available_languages"] = implode(",", $languageCache);
}
updatesettings("global_settings", $TSUE["TSUE_Settings"]->settings["global_settings"]);
$tableContents = "";
if( !empty($cacheContents) )
{
foreach( $cacheContents as $settingname => $settingvalues )
{
updatesettings($settingname, $settingvalues);
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $settingname ), array( "width" => "10%", "text" => getimage("status/success-24.png") ) ));
}
}
if( !$logANDreturn )
{
return NULL;
}
logadminaction(get_phrase("log_cache_all_caches_has_been_updated"));
$HTML = createtable(get_phrase("dashboard_cache_rebuild_caches"), $tableContents, 2);
return $HTML;
}
function aaaady($Pagination, $Type, $WHERE)
{
global $TSUE;
$tabNames = array( 1 => "tabs-1", 2 => "tabs-2", 3 => "tabs-3" );
$tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name") ), array( "width" => "20%", "text" => get_phrase("table_list_date") ), array( "width" => "50%", "text" => get_phrase("table_list_log") ), array( "width" => "10%", "text" => get_phrase("global_action") ) ), NULL, "tableContentTDHeader");
$Logs = $TSUE["TSUE_Database"]->query("SELECT l.*, m.lastactivity, mg.groupname, mg.groupstyle FROM tsue_logs l LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups mg USING(membergroupid) WHERE type = " . intval($Type) . $WHERE . " ORDER BY l.logid DESC " . $Pagination["0"]);
while( $Log = $TSUE["TSUE_Database"]->fetch_assoc($Logs) )
{
$extraText = "";
if( $Type == 3 )
{
$logText = tsue_explode("~~~", $Log["log"]);
$Log["log"] = print_r(unserialize($logText["1"]), true);
$extraText = "<div class=\"accountUpdated\">" . $logText["0"] . "</div>";
unset($logText);
}
$tableContents .= aaaaag(array( array( "width" => "20%", "valign" => "top", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Log["memberid"] => array( "phrase" => getmembername($Log["membername"], $Log["groupstyle"]) ) )) ), array( "width" => "20%", "valign" => "top", "text" => convert_relative_time($Log["date"]) ), array( "width" => "50%", "valign" => "top", "text" => $extraText . strip_tags($Log["log"]) ), array( "width" => "10%", "valign" => "top", "text" => aaaaae(array( "delete=" . $Log["logid"] . "#" . $tabNames[$Log["type"]] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )) ) ));
}
return $tableContents;
}
function handlelogs()
{
global $TSUE;
$HTML = "";
$WHERE = "";
$adminLogs = "";
$aaaads = "";
$keywords = trim(getvar("keywords"));
$prune = intval(getvar("prune"));
$aaaadt = "";
$aaaadu = DATAPATH . "errors/";
$aaaadv = intval(getvar("delete"));
if( $aaaadv && $TSUE["TSUE_Database"]->delete("tsue_logs", "logid=" . $TSUE["TSUE_Database"]->escape($aaaadv)) )
{
$HTML .= successmessage(get_phrase("message_content_has_been_deleted"));
}
if( $prune && !DEMO_MODE )
{
if( $prune == 4 )
{
$Files = scandir($aaaadu);
if( $Files )
{
foreach( $Files as $phpErrorLogFile )
{
if( file_extension($phpErrorLogFile) == "log" )
{
@unlink($aaaadu . $phpErrorLogFile);
}
}
$aaaadt = successmessage(get_phrase("message_content_has_been_deleted"));
}
}
else
{
if( $TSUE["TSUE_Database"]->delete("tsue_logs", "type=" . $TSUE["TSUE_Database"]->escape($prune)) )
{
$aaaadt = successmessage(get_phrase("message_content_has_been_deleted"));
}
}
}
if( $keywords )
{
$WHERE = " AND log LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
}
$aaaadw = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 2" . $WHERE);
if( $aaaadw["logCount"] )
{
$aaaadx = pagination($aaaadw["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#tabs-2");
$tableContents = aaaady($aaaadx, 2, $WHERE);
$adminLogs = createtable(get_phrase("logs_admin_logs"), $tableContents, 4, $aaaadx["1"]);
}
else
{
$adminLogs = get_phrase("no_results_found");
}
$aaaadz = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 1" . $WHERE);
if( $aaaadz["logCount"] )
{
$aaaaea = pagination($aaaadz["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#website-logs");
$tableContents = aaaady($aaaaea, 1, $WHERE);
$aaaads = createtable(get_phrase("logs_website_logs"), $tableContents, 4, $aaaaea["1"]);
}
else
{
$aaaads = get_phrase("no_results_found");
}
$aaaaeb = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 3" . $WHERE);
if( $aaaaeb["logCount"] )
{
$aaaaec = pagination($aaaaeb["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#member-manager");
$tableContents = aaaady($aaaaec, 3, $WHERE);
$aaaaed = createtable(get_phrase("menu_member_manager"), $tableContents, 4, $aaaaec["1"]);
}
else
{
$aaaaed = get_phrase("no_results_found");
}
$aaaaee = "";
if( !DEMO_MODE )
{
$phpErrorLogFile = trim(urldecode(getvar("phpErrorLogFile")));
if( $phpErrorLogFile && file_extension($phpErrorLogFile) == "log" && is_file($aaaadu . $phpErrorLogFile) )
{
$aaaaee .= "\r\n\t\t\t<h5>" . $aaaadu . $phpErrorLogFile . "</h5>\r\n\t\t\t<div class=\"phpErrorLog\">\r\n\t\t\t\t" . nl2br(file_get_contents($aaaadu . $phpErrorLogFile)) . "\r\n\t\t\t</div>";
}
}
$deletePhpErrorLogFile = trim(urldecode(getvar("deletePhpErrorLogFile")));
if( $deletePhpErrorLogFile && file_extension($deletePhpErrorLogFile) == "log" && is_file($aaaadu . $deletePhpErrorLogFile) )
{
checkdemomode();
unlink($aaaadu . $deletePhpErrorLogFile);
}
if( !DEMO_MODE )
{
$aaaaef = scandir($aaaadu);
if( $aaaaef && 4 < count($aaaaef) )
{
$aaaaee .= "\r\n\t\t\t<ul class=\"phpErrorLogs\">";
foreach( $aaaaef as $FILE )
{
if( file_extension($FILE) == "log" )
{
$aaaaee .= "\r\n\t\t\t\t\t<li>[<a href=\"?action=Dashboard&do=Logs&deletePhpErrorLogFile=" . urlencode($FILE) . "#tabs-4\">x</a>] <a href=\"?action=Dashboard&do=Logs&phpErrorLogFile=" . urlencode($FILE) . "#tabs-4\">" . $FILE . " (" . friendly_size(filesize($aaaadu . $FILE)) . ")</a></li>";
}
}
$aaaaee .= "\r\n\t\t\t</ul>";
}
else
{
if( !$aaaaee )
{
$aaaaee = get_phrase("message_nothing_found");
}
}
}
else
{
$aaaaee = get_phrase("message_nothing_found");
}
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$searchForm = aaaabn(createtable(get_phrase("search_logs"), $searchForm), array( ), "?action=Dashboard&do=Logs#tabs-5");
$aaaaeg = "\r\n\t<a href=\"?action=Dashboard&do=Logs&prune=1#tabs-6\">" . get_phrase("prune_logs_website") . "</a> \r\n\t| \r\n\t<a href=\"?action=Dashboard&do=Logs&prune=2#tabs-6\">" . get_phrase("prune_logs_administrator") . "</a>\r\n\t| \r\n\t<a href=\"?action=Dashboard&do=Logs&prune=3#tabs-6\">" . get_phrase("prune_member_manager_logs") . "</a>\r\n\t| \r\n\t<a href=\"?action=Dashboard&do=Logs&prune=4#tabs-6\">" . get_phrase("prune_php_logs") . "</a>";
return createtabs(array( get_phrase("logs_website_logs") => $aaaads, get_phrase("logs_admin_logs") => $adminLogs, get_phrase("menu_member_manager") => $aaaaed, "PHP" => $aaaaee, get_phrase("search_logs") => $searchForm, get_phrase("prune_logs") => $aaaadt . $aaaaeg ));
}
function handleserver()
{
global $TSUE;
checkdemomode();
$mysqlVersion = $TSUE["TSUE_Database"]->query_result("SELECT VERSION() AS version");
$serverinfo = (SAFEMODE ? "<br />Safe Mode" : "");
$serverinfo .= (ini_get("file_uploads") == 0 || strtolower(ini_get("file_uploads")) == "off" ? "<br />File Uploads: Disabled" : "");
$aaaaeh = friendly_size(foldersize(ROOTPATH));
$aaaaei = 0;
$Tables = $TSUE["TSUE_Database"]->query("SHOW TABLE STATUS");
while( $Table = $TSUE["TSUE_Database"]->fetch_assoc($Tables) )
{
$aaaaei += $Table["Data_length"] + $Table["Index_length"];
}
$offset = timezone_offset_get(new DateTimeZone("GMT"), new DateTime());
$serverTime = date("d-m-Y h:i:s") . " " . date_default_timezone_get() . " " . fetch_timezones($offset);
$Variables = array( );
$MySQLVariables = $TSUE["TSUE_Database"]->query("SHOW VARIABLES WHERE Variable_Name IN (\"ft_max_word_len\", \"ft_min_word_len\", \"max_allowed_packet\", \"max_connections\")");
while( $V = $TSUE["TSUE_Database"]->fetch_assoc($MySQLVariables) )
{
if( $V["Variable_name"] == "max_allowed_packet" )
{
$V["Value"] = friendly_size($V["Value"]);
}
$Variables[] = $V["Variable_name"] . ": " . $V["Value"];
}
$serverDetails = array( "Server Type" => PHP_OS, "Server Software" => php_uname(), "Server Time" => $serverTime, "PHP Version" => phpversion(), "PHP Memory Limit" => friendly_size(ini_get("memory_limit")), "PHP Max Post Size" => ini_get("post_max_size"), "PHP Max Upload Size" => ini_get("upload_max_filesize"), "MySQL Version" => (($mysqlVersion ? $mysqlVersion["version"] : "N/A")) . " (" . implode(" - ", $Variables) . ")", "System Load Average(s)" => loadaverage(), "PHPInfo" => "<a href=\"?action=php-info\" target=\"_blank\">Click here to view</a>", "Server Status" => "<a href=\"?action=server-status\" target=\"_blank\">Click here to view</a>", "TSUE Folder Size" => $aaaaeh, "TSUE Database Size" => friendly_size($aaaaei) );
$tableContents = "";
foreach( $serverDetails as $text => $val )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => "<b>" . $text . ":</b> " . $val ) ));
}
$HTML = createtable(get_phrase("dashboard_server_alt"), $tableContents, 1);
return $HTML;
}
function loadaverage()
{
if( strtoupper(substr(PHP_OS, 0, 3)) === "WIN" && class_exists("COM") )
{
$wmi = new COM("Winmgmts://");
$server = $wmi->execquery("SELECT LoadPercentage FROM Win32_Processor");
$cpu_num = 0;
$load_total = 0;
foreach( $server as $cpu )
{
$cpu_num++;
$load_total += $cpu->loadpercentage;
}
return (int) round($load_total / $cpu_num);
}
else
{
if( function_exists("sys_getloadavg") )
{
return implode(" - ", sys_getloadavg());
}
return "-";
}
}
function handlenotes()
{
global $TSUE;
$HTML = "";
if( isset($_POST["notes"]) )
{
$buildQuery = array( "noteType" => "admin", "notes" => trim($_POST["notes"]), "updated" => TIMENOW, "updater" => $TSUE["TSUE_Member"]["memberid"] );
$TSUE["TSUE_Database"]->replace("tsue_notes", $buildQuery);
logadminaction(get_phrase("notes_has_been_updated"));
$HTML .= successmessage(get_phrase("message_saved"));
}
$Notes = $TSUE["TSUE_Database"]->query_result("SELECT notes FROM tsue_notes WHERE noteType = 'admin'");
if( !$Notes["notes"] )
{
$Notes["notes"] = "";
}
$tableContents = aaaaag(array( array( "width" => "100%", "text" => textarea("notes", $Notes["notes"], true, "templateTextareaTinyMCE"), "align" => "left" ) ));
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left" ) ));
$HTML .= aaaabn(createtable(get_phrase("dashboard_notes_alt"), $tableContents));
return $HTML;
}
function handlestatistics()
{
global $TSUE;
global $postsCache;
global $setYear;
global $chartType;
$chartType = (isset($_GET["s"]) ? strip_tags(trim($_GET["s"])) : "primetimeMembers");
$setYear = (isset($_GET["year"]) && $_GET["year"] ? intval($_GET["year"]) : convert_time(TIMENOW, "Y"));
$prepareStats = "";
$HTML = "\r\n\t<div id=\"chart_buttons\">\r\n\t\t" . yearselectbox() . "\r\n\t\t<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=primetimeMembers\"" . ((!$chartType || $chartType == "primetimeMembers" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_most_active") . "</a> \r\n\t\t<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=primetimeRegistrations\"" . (($chartType == "primetimeRegistrations" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_registrations") . "</a>\r\n\t\t<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=primetimeThreads\"" . (($chartType == "primetimeThreads" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_threads") . "</a>\r\n\t\t<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=primetimePosts\"" . (($chartType == "primetimePosts" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_posts") . "</a>\r\n\t\t<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=primetimeTorrents\"" . (($chartType == "primetimeTorrents" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_torrents") . "</a>\r\n\t</div>";
switch( $chartType )
{
case "primetimeMembers":
$prepareStats = primetimemembers($setYear);
break;
case "primetimeRegistrations":
$prepareStats = primetimeregistrations($setYear);
break;
case "primetimeThreads":
$prepareStats = primetimethreads($setYear);
break;
case "primetimePosts":
$prepareStats = primetimeposts($setYear);
break;
case "primetimeTorrents":
$prepareStats = primetimetorrents($setYear);
break;
}
if( $prepareStats )
{
$HTML .= "\r\n\t\t<div id=\"chart_div\">\r\n\t\t\t<div id=\"chart_notice\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>\r\n\t\t</div>\r\n\r\n\t\t<script type=\"text/javascript\" src=\"http://www.google.com/jsapi\"></script>\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\tgoogle.load(\"visualization\", \"1\", {\"packages\":[\"corechart\"]});\r\n\t\t\tgoogle.setOnLoadCallback(drawChart);\r\n\r\n\t\t\tfunction drawChart()\r\n\t\t\t{\r\n\t\t\t\tvar data = new google.visualization.DataTable();\r\n\t\t\t\t" . $prepareStats["buildScript"] . "\r\n\t\t\t\tvar options = {chartArea:{top:\"" . $prepareStats["top"] . "\"}, \"width\":\"" . $prepareStats["width"] . "\", height:\"" . $prepareStats["height"] . "\", legend:\"" . $prepareStats["legend"] . "\"};\r\n\t\t\t\tvar chart = new google.visualization.PieChart(document.getElementById(\"chart_div\"));\r\n\t\t\t\tchart.draw(data, options);\r\n\t\t\t}\r\n\r\n\t\t\t\$('select[name=\"year\"]').change(function()\r\n\t\t\t{\r\n\t\t\t\tvar \$setYear = parseInt(\$(this).val());\r\n\t\t\t\tif(\$setYear)\r\n\t\t\t\t{\r\n\t\t\t\t\twindow.location = \"?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=" . $chartType . "&year=\"+\$setYear;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t</script>";
}
return $HTML;
}
function handlereadpm()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$keywords = trim(getvar("keywords"));
$WHERE = "";
$message_id = intval(getvar("message_id"));
if( $message_id )
{
$aaaaek = $TSUE["TSUE_Database"]->query_result("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE message_id = " . $TSUE["TSUE_Database"]->escape($message_id) . " AND (message.owner_deleted = 0 OR message.receiver_deleted=0)");
if( !$aaaaek )
{
return errormessage(get_phrase("message_nothing_found"));
}
addbreadcrumb(array( get_phrase("dashboard_readpm") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&message_id=" . $message_id ));
$TSUE["TSUE_Security"] = new TSUE_Security();
$TSUE["TSUE_Parser"] = new TSUE_Parser();
$aaaael = "";
$Replies = $TSUE["TSUE_Database"]->query("SELECT r.*, m.membername, g.groupstyle FROM tsue_messages_replies r LEFT JOIN tsue_members m ON(r.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE message_id = " . $TSUE["TSUE_Database"]->escape($message_id) . " ORDER BY reply_date ASC");
while( $Reply = $TSUE["TSUE_Database"]->fetch_assoc($Replies) )
{
$sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Reply["memberid"] => array( "phrase" => getmembername($Reply["membername"], $Reply["groupstyle"]) ) ));
$reply_date = convert_relative_time($Reply["reply_date"]);
$message = $TSUE["TSUE_Parser"]->parse($Reply["reply"]);
$aaaael .= "\r\n\t\t\t<div style=\"float: left; margin-bottom: 10px; border: 1px solid #ccc; width: 100%;\">\r\n\t\t\t\t<div style=\"padding: 5px;\">\r\n\t\t\t\t\t<span style=\"float: right;\">" . $sender . " | " . $reply_date . "</span>\r\n\t\t\t\t\t" . $message . "\r\n\t\t\t\t</div>\r\n\t\t\t</div>";
}
return $aaaael;
}
$searchType = trim(getvar("searchType"));
if( !in_array($searchType, array( "subject", "owner", "receiver" )) )
{
$searchType = "subject";
}
if( $keywords && $searchType )
{
switch( $searchType )
{
case "subject":
$WHERE = " AND message.subject LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
break;
case "owner":
$searchMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($keywords));
$WHERE = " AND message.owner_memberid = " . $searchMember["memberid"];
break;
case "receiver":
$searchMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($keywords));
$WHERE = " AND message.receiver_memberid = " . $searchMember["memberid"];
break;
}
}
$orderBy["fieldname"] = "message.message_date";
$orderBy["type"] = "DESC";
if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
{
$allowedFieldNames = array( "message.owner_memberid", "message.receiver_memberid", "message.subject", "message.message_date" );
$allowedTypes = array( "DESC", "ASC" );
if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
{
$orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
$orderBy["type"] = $_REQUEST["orderBy"]["type"];
}
}
if( isset($_POST["deleteMessages"]) && $_POST["deleteMessages"] )
{
$deleteMessages = implode(",", array_map("intval", $_POST["deleteMessages"]));
$TSUE["TSUE_Database"]->delete("tsue_messages_master", "message_id IN (" . $deleteMessages . ")");
$TSUE["TSUE_Database"]->delete("tsue_messages_replies", "message_id IN (" . $deleteMessages . ")");
$Phrase = get_phrase("messages_deleted") . " (" . $deleteMessages . ")";
logadminaction($Phrase);
$HTML .= successmessage($Phrase);
}
$aaaaem = $TSUE["TSUE_Database"]->query("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE (message.owner_deleted = 0 OR message.receiver_deleted=0)" . $WHERE);
$messageCount = $TSUE["TSUE_Database"]->num_rows($aaaaem);
if( !$messageCount )
{
return errormessage(get_phrase("message_nothing_found"));
}
$Pagination = pagination($messageCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&orderBy[type]=" . $orderBy["type"] . (($keywords ? "&keywords=" . urlencode($keywords) . "&searchType=" . $searchType : "")));
$aaaaem = $TSUE["TSUE_Database"]->query("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE (message.owner_deleted = 0 OR message.receiver_deleted=0)" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
while( $Message = $TSUE["TSUE_Database"]->fetch_assoc($aaaaem) )
{
$owner = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Message["owner_memberid"] => array( "phrase" => getmembername($Message["owner"], $Message["ownergroup"]) ) ));
$receiver = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Message["receiver_memberid"] => array( "phrase" => getmembername($Message["receiver"], $Message["receivergroup"]) ) ));
$message_date = convert_relative_time($Message["message_date"]);
$messageLink = aaaaae(array( "message_id=" . $Message["message_id"] => array( "phrase" => strip_tags($Message["subject"]) ) ));
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $messageLink . "<br /><span class=\"smallPassiveTextBlock\">" . $message_date . ", " . $owner . " ---> " . $receiver . "</span>" ), array( "width" => "20%", "text" => "<input type=\"checkbox\" name=\"deleteMessages[]\" value=\"" . $Message["message_id"] . "\" />", "align" => "right" ) ));
}
$tableContents .= aaaaag(array( array( "width" => "100%", "colspan" => 2, "align" => "right", "text" => "<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("messages_delete") . "\" /> <input type=\"checkbox\" name=\"checkALL\" value=\"deleteMessages[]\" />" ) ));
$selectBox = "\r\n\t<select name=\"searchType\" class=\"selectNoWidth\">\r\n\t\t<option value=\"subject\"" . (($searchType == "subject" ? " selected=\"selected\"" : "")) . ">" . get_phrase("messages_subject") . "</option>\r\n\t\t<option value=\"owner\"" . (($searchType == "owner" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sender") . "</option>\r\n\t\t<option value=\"receiver\"" . (($searchType == "receiver" ? " selected=\"selected\"" : "")) . ">" . get_phrase("receiver") . "</option>\r\n\t</select>";
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
$HTML .= aaaabn(createtable(get_phrase("dashboard_readpm_alt"), $tableContents, 2, $Pagination["1"]));
$HTML .= "\r\n\t<div style=\"float: right; margin-top: 10px;\">\r\n\t\t" . aaaabn("\r\n\t\t" . get_phrase("torrents_sort_by") . "\r\n\t\t<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"message.owner_memberid\"" . (($orderBy["fieldname"] == "message.owner_memberid" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sender") . "</option>\r\n\t\t\t<option value=\"message.receiver_memberid\"" . (($orderBy["fieldname"] == "message.receiver_memberid" ? " selected=\"selected\"" : "")) . ">" . get_phrase("receiver") . "</option>\r\n\t\t\t<option value=\"message.subject\"" . (($orderBy["fieldname"] == "message.subject" ? " selected=\"selected\"" : "")) . ">" . get_phrase("messages_subject") . "</option>\r\n\t\t\t<option value=\"message.message_date\"" . (($orderBy["fieldname"] == "message.message_date" ? " selected=\"selected\"" : "")) . ">" . get_phrase("date_added") . "</option>\r\n\t\t</select>\r\n\t\t<select name=\"orderBy[type]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>\r\n\t\t\t<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>\r\n\t\t</select>\r\n\t\t<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "\r\n\t</div>";
return $HTML;
}
function handledatabase()
{
global $TSUE;
$SQL = intval(getvar("SQL"));
$AutomaticQuery = intval(getvar("AutomaticQuery"));
$Tables = intval(getvar("Tables"));
$DatabaseBackup = intval(getvar("DatabaseBackup"));
if( $SQL )
{
addbreadcrumb(array( get_phrase("database_sql_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&SQL=1" ));
return aaaaen();
}
if( $AutomaticQuery )
{
addbreadcrumb(array( get_phrase("auto_query") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&AutomaticQuery=1" ));
return aaaaeo();
}
if( $Tables )
{
addbreadcrumb(array( get_phrase("database_tables") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&Tables=1" ));
return aaaaep();
}
if( $DatabaseBackup )
{
addbreadcrumb(array( get_phrase("database_backup") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&DatabaseBackup=1" ));
$backupDir = DATAPATH . "backups/";
if( isset($_GET["sqlFile"]) && !empty($_GET["sqlFile"]) && substr($_GET["sqlFile"], -7) === ".sql.gz" && is_file($backupDir . $_GET["sqlFile"]) )
{
$fullPath = $backupDir . $_GET["sqlFile"];
$fileSize = filesize($fullPath);
if( headers_sent() )
{
exit( "Critical Error: Headers already sent!" );
}
if( ini_get("zlib.output_compression") )
{
ini_set("zlib.output_compression", "Off");
}
$download_rate = 4096;
setheader("Content-type", "application/octet-stream", true);
setheader("ETag", TIMENOW, true);
setheader("Content-Length", $fileSize, true);
setdownloadfilename($_GET["sqlFile"]);
if( $localFile = fopen($fullPath, "rb") )
{
while( !feof($localFile) )
{
if( connection_status() != CONNECTION_NORMAL )
{
break;
}
echo fread($localFile, round($download_rate * 1024));
@flush();
sleep(1);
}
fclose($localFile);
unlink($fullPath);
exit();
}
}
if( strtoupper($_SERVER["REQUEST_METHOD"]) == "POST" )
{
$sqlFiles = (isset($_POST["sqlFiles"]) ? $_POST["sqlFiles"] : "");
if( is_array($sqlFiles) && !empty($sqlFiles) )
{
foreach( $sqlFiles as $sqlFile )
{
if( substr($sqlFile, -7) === ".sql.gz" && is_file($backupDir . $sqlFile) )
{
unlink($backupDir . $sqlFile);
logadminaction(get_phrase("sql_x_deleted", $sqlFile));
}
}
}
}
$totalSize = 0;
$sqlFiles = scandir($backupDir);
$fileCache = array( );
foreach( $sqlFiles as $sqlFile )
{
if( substr($sqlFile, -7) === ".sql.gz" )
{
$fileSize = filesize($backupDir . $sqlFile);
$totalSize += $fileSize;
$fileCache[] = array( "filename" => $sqlFile, "filesize" => $fileSize, "filectime" => filectime($backupDir . $sqlFile) );
}
}
$HTML = "";
if( $fileCache )
{
$HTML .= "\r\n\t\t\t<form method=\"post\">\r\n\t\t\t<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("forums_attached_files_filename") . "</th>\r\n\t\t\t\t\t<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("forums_attached_files_filesize") . "</th>\r\n\t\t\t\t\t<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("date_added") . "</th>\r\n\t\t\t\t\t<th style=\"text-align: center; padding: 5px; background: #ddd;\"><input type=\"checkbox\" name=\"checkALL\" value=\"sqlFiles[]\" /></th>\r\n\t\t\t\t</tr>";
foreach( $fileCache as $File )
{
$HTML .= "\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\"><a href=\"?action=Dashboard&do=Database&DatabaseBackup=1&sqlFile=" . urlencode($File["filename"]) . "\">" . $File["filename"] . "</a></td>\r\n\t\t\t\t\t<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\">" . friendly_size($File["filesize"]) . "</td>\r\n\t\t\t\t\t<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\">" . convert_time($File["filectime"], "d-m-Y h:i") . "</td>\r\n\t\t\t\t\t<td style=\"text-align: center; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\"><input type=\"checkbox\" name=\"sqlFiles[]\" value=\"" . $File["filename"] . "\" /></th>\r\n\t\t\t\t</tr>";
}
$HTML .= "\r\n\t\t\t<tr>\r\n\t\t\t\t<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\"></th>\r\n\t\t\t\t<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . friendly_size($totalSize) . "</th>\r\n\t\t\t\t<th style=\"text-align: right; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\" colspan=\"2\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_delete") . "\" /></td>\r\n\t\t\t</tr>";
$HTML .= "\r\n\t\t\t</table>\r\n\t\t\t</form><br />";
}
return "\r\n\t\t" . $HTML . "\r\n\t\t<div style=\"padding: 10px; border: 1px solid #ddd; line-height: 1.6\">\r\n\t\t\t<div style=\"font-weight: bold; font-size: 14px;\">Automated MySQL Backup using CRON via shell.</div>\r\n\t\t\t<div style=\"color: #999; font-size: 12px;\">This script allows you to automatically make a backup of your TSUE database using cron job.</div>\r\n\t\t\t<div style=\"margin-top: 10px;\"><input type=\"text\" style=\"padding: 3px; border: 1px solid #ddd; font-size: 11px; color: red; width: 98%;\" value='php -q \"" . CLIPATH . "backupDatabase.php\"' /></div>\r\n\r\n\t\t\t<div style=\"margin: 10px; padding: 5px; background: #f6f8fa;\">\r\n\t\t\t\t" . nl2br("<b>cPanel</b>\r\n\t\t\t\tClick on the Cron Job icon in your control panel and select the Once A Day option from the Common Settings dropdown menu. Then paste the cron command into the Command field.\r\n\r\n\t\t\t\t<b>DirectAdmin</b>\r\n\t\t\t\tThe command for DirectAdmin is generally the same as above, however, you need to reference the full path to the php binary.\r\n\r\n\t\t\t\tThis can be /usr/bin/php, /usr/bin/home/php or /usr/local/bin/php but this is dependent on the server setup and you should check with your Server Administrator for the full path to the php binary.\r\n\r\n\t\t\t\tAn example command to run is:\r\n\t\t\t\t/usr/bin/php -q \"" . CLIPATH . "backupDatabase.php\"\r\n\t\t\t\t/usr/local/bin/php -q \"" . CLIPATH . "backupDatabase.php\"\r\n\r\n\t\t\t\t<b>Plesk</b>\r\n\t\t\t\tYou can specify the php command using the following on Linux Plesk:\r\n\t\t\t\tenv php -q \"" . CLIPATH . "backupDatabase.php\"\r\n\r\n\t\t\t\t<b>SSH (via crontab -e)</b>\r\n\t\t\t\t@daily php -q \"" . CLIPATH . "backupDatabase.php\"") . "\r\n\t\t\t</div>\r\n\t\t</div>";
}
else
{
$aaaaeq = optionbox("Database/SQL", get_phrase("database_sql"), get_phrase("database_sql_alt"), "Database");
$aaaaeq .= optionbox("Database/AutomaticQuery", get_phrase("auto_query"), get_phrase("auto_query_alt"), "Database");
$aaaaeq .= optionbox("Database/Tables", get_phrase("database_tables"), get_phrase("database_tables_alt"), "Database");
$aaaaeq .= optionbox("Database/DatabaseBackup", get_phrase("database_backup"), get_phrase("database_backup_alt"), "Database");
return $aaaaeq;
}
}
function aaaaen()
{
global $TSUE;
$HTML = "";
$Query = trim(getvar("Query"));
if( ispost() && $Query )
{
checkdemomode();
$TSUE["TSUE_Database"]->query($Query);
$HTML .= successmessage(get_phrase("your_sql_query_has_been_executed"));
}
$textarea = textarea("Query", $Query);
$formContents = aaaaan(get_phrase("database_sql_alt"), $textarea);
$HTML .= aaaabg($formContents, array( ), "", "database_sql_alt");
return $HTML;
}
function aaaaeo()
{
global $TSUE;
$HTML = "";
$queryID = trim(getvar("queryID"));
$confirmed = trim(getvar("confirmed"));
$affectedRows = 0;
if( ispost() && $queryID )
{
if( $confirmed != "true" )
{
$hiddenInputBoxes = array( "AutomaticQuery" => 1, "queryID" => $queryID, "confirmed" => "true" );
$formContents = errormessage("\r\n\t\t\t" . get_phrase("auto_query_" . $queryID) . "\r\n\t\t\t<p>" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "</p>\r\n\t\t\t<p><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_apply") . "\" /></p>");
return aaaabn($formContents, $hiddenInputBoxes);
}
$Queries = array( 1 => "ALTER TABLE `tsue_member_profile` CHANGE `torrentStyle` `torrentStyle` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '2' COMMENT 'Torrent List Style. 1: Modern 2: Classic';~UPDATE `tsue_member_profile` SET torrentStyle = 2;", 2 => "ALTER TABLE `tsue_member_profile` CHANGE `torrentStyle` `torrentStyle` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Torrent List Style. 1: Modern 2: Classic';~UPDATE `tsue_member_profile` SET torrentStyle = 1;", 3 => "UPDATE tsue_member_profile SET invites_left = 0;", 4 => "UPDATE tsue_member_profile SET uploaded = 0;", 5 => "UPDATE tsue_member_profile SET downloaded = 0;", 6 => "UPDATE tsue_member_profile SET hitRuns = 0;", 7 => "UPDATE tsue_member_profile SET total_warns = 0;", 8 => "UPDATE tsue_member_profile SET muted = 0;", 9 => "UPDATE tsue_member_profile SET points = 0;", 10 => "UPDATE tsue_members SET languageid = " . $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"], 11 => "UPDATE tsue_members SET themeid = " . $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"], 12 => "DELETE FROM tsue_messages_master;~DELETE FROM tsue_messages_replies;~UPDATE tsue_members SET unread_messages=0;", 13 => "DELETE FROM tsue_member_alerts;~UPDATE tsue_members SET unread_alerts=0;" );
if( isset($Queries[$queryID]) )
{
checkdemomode();
$Query = tsue_explode("~", $Queries[$queryID]);
if( $Query )
{
foreach( $Query as $SQL )
{
$TSUE["TSUE_Database"]->query($SQL);
$affectedRows += $TSUE["TSUE_Database"]->affected_rows();
}
$HTML .= successmessage(get_phrase("your_sql_query_has_been_executed") . " - " . get_phrase("affected_rows", $affectedRows));
}
}
else
{
$HTML .= errormessage(get_phrase("message_content_error"));
}
}
$optionArray = array( "", get_phrase("auto_query_1"), get_phrase("auto_query_2"), get_phrase("auto_query_3"), get_phrase("auto_query_4"), get_phrase("auto_query_5"), get_phrase("auto_query_6"), get_phrase("auto_query_7"), get_phrase("auto_query_8"), get_phrase("auto_query_9"), get_phrase("auto_query_10"), get_phrase("auto_query_11"), get_phrase("auto_query_12"), get_phrase("auto_query_13") );
$selectbox = selectbox("queryID", $queryID, $optionArray);
$formContents = aaaaan(get_phrase("auto_query"), $selectbox, get_phrase("auto_query_tip"));
$HTML .= aaaabg($formContents, array( ), "", "button_apply");
return $HTML;
}
function aaaaep()
{
global $TSUE;
checkdemomode();
$HTML = "";
$tableContents = "";
$requestedTables = getvar("requestedTables");
$dl = getvar("dl");
if( $dl )
{
$fullPath = DATAPATH . "cache/" . $dl;
if( !file_exists($fullPath) )
{
return errormessage(get_phrase("message_content_error"));
}
$fileSize = filesize($fullPath);
if( headers_sent() )
{
exit( "Critical Error: Headers already sent!" );
}
if( ini_get("zlib.output_compression") )
{
ini_set("zlib.output_compression", "Off");
}
$download_rate = 4096;
setheader("Content-type", "application/octet-stream", true);
setheader("ETag", TIMENOW, true);
setheader("Content-Length", $fileSize, true);
setdownloadfilename($dl);
if( $localFile = fopen($fullPath, "rb") )
{
while( !feof($localFile) )
{
if( connection_status() != CONNECTION_NORMAL )
{
break;
}
echo fread($localFile, round($download_rate * 1024));
@flush();
sleep(1);
}
fclose($localFile);
unlink($fullPath);
exit();
}
return errormessage(get_phrase("message_content_error"));
}
if( IS_AJAX && $requestedTables && ($requestedTables = tsue_explode(",", $requestedTables)) )
{
$time = convert_time(TIMENOW, "dS F Y \\a\\t H:i");
$mysqlversion = $TSUE["TSUE_Database"]->query_result("SELECT VERSION() AS version");
$backupSQL = "-- -------------------------------------------\n-- TSUE Database Backup\n-- Generated: " . $time . "\n-- PHP Version: " . phpversion() . "\n-- MySQL Version: " . $mysqlversion["version"] . "\n-- TSUE Version: " . V . "\n-- -------------------------------------------\n";
foreach( $requestedTables as $Table )
{
if( preg_match("#^[a-zA-Z_]+\$#", $Table) )
{
$backupSQL .= "\n-- ----------------------------------------------------------------------\n";
$backupSQL .= "-- Table structure for table `" . $Table . "`";
$backupSQL .= "\n-- ----------------------------------------------------------------------\n";
$Query = $TSUE["TSUE_Database"]->query_result("SHOW CREATE TABLE `" . $Table . "`");
$backupSQL .= $Query["Create Table"] . ";\n\n";
$backupSQL .= "\n-- ----------------------------------------------------------------------\n";
$backupSQL .= "-- Dumping data for table `" . $Table . "`";
$backupSQL .= "\n-- ----------------------------------------------------------------------\n";
$Fields = array( );
$rowTypes = array( );
$Rows = $TSUE["TSUE_Database"]->query("SHOW COLUMNS FROM " . $Table);
while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Rows) )
{
$Fields[] = "`" . $Row["Field"] . "`";
$rowTypes[] = $Row["Type"];
}
$Datas = $TSUE["TSUE_Database"]->query("SELECT * FROM " . $Table);
if( $TSUE["TSUE_Database"]->num_rows($Datas) )
{
while( $Data = $TSUE["TSUE_Database"]->fetch_row($Datas) )
{
foreach( $Data as $j => $k )
{
if( preg_match("#binary|blob#isU", strtolower($rowTypes[$j])) )
{
$Data[$j] = (!$k ? "''" : "0x" . bin2hex($k));
}
else
{
$Data[$j] = $TSUE["TSUE_Database"]->escape($k);
}
}
$backupSQL .= "INSERT INTO " . $Table . " (" . implode(",", $Fields) . ") VALUES (" . implode(",", $Data) . ");\n";
}
}
}
}
$fileName = "tsue_db_backup_" . TIMENOW . ".sql";
if( function_exists("gzopen") )
{
$fileName .= ".gz";
$fp = gzopen(DATAPATH . "cache/" . $fileName, "w9");
gzwrite($fp, $backupSQL);
}
else
{
$fp = fopen(DATAPATH . "cache/" . $fileName . ".sql", "w");
fwrite($fp, $backupSQL);
}
exit( get_phrase("your_backup_is_ready", "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&Tables=1&dl=" . $fileName) );
}
else
{
$Phrases = array( "Name" => get_phrase("database_table"), "Engine" => get_phrase("database_engine"), "Rows" => get_phrase("database_rows"), "Data_length" => get_phrase("database_data_length"), "Index_length" => get_phrase("database_index"), "Collation" => get_phrase("database_collation") );
$tableContents .= aaaaag(array( array( "width" => "25%", "text" => $Phrases["Name"] ), array( "width" => "13%", "text" => $Phrases["Engine"] ), array( "width" => "10%", "text" => $Phrases["Rows"] ), array( "width" => "13%", "text" => $Phrases["Data_length"] ), array( "width" => "12%", "text" => $Phrases["Index_length"] ), array( "width" => "20%", "text" => $Phrases["Collation"] ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"requestedTables[]\" />" ) ), "tableContentTR", "tableContentTDHeader");
$totalSize = 0;
$Tables = $TSUE["TSUE_Database"]->query("SHOW TABLE STATUS");
while( $Table = $TSUE["TSUE_Database"]->fetch_assoc($Tables) )
{
$totalSize += $Table["Data_length"] + $Table["Index_length"];
$tableContents .= aaaaag(array( array( "width" => "25%", "text" => $Table["Name"] ), array( "width" => "13%", "text" => $Table["Engine"] ), array( "width" => "10%", "text" => number_format($Table["Rows"]) ), array( "width" => "13%", "text" => ($Table["Data_length"] ? friendly_size($Table["Data_length"]) : "0") ), array( "width" => "12%", "text" => ($Table["Index_length"] ? friendly_size($Table["Index_length"]) : "0") ), array( "width" => "20%", "text" => $Table["Collation"] ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"requestedTables[]\" value=\"" . $Table["Name"] . "\"" . (($requestedTables && in_array($Table["Name"], $requestedTables) ? " checked=\"checked\"" : "")) . " />" ) ), "", "tableContentTD small");
}
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => "<span style=\"margin-right: 40px;\">" . get_phrase("database_size", "<b>" . friendly_size($totalSize) . "</b>") . "</span> " . aaaabm(get_phrase("database_backup_selected_tables")), "align" => "right", "colspan" => 7 ) ));
$script = "\r\n\t<script type=\"text/javascript\">\r\n\t\t\$(\"#simpleForm\").submit(function(e)\r\n\t\t{\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar \$requestedTables = new Array();\r\n\t\t\tvar \$rCount=0;\r\n\t\t\t\r\n\t\t\t\$searchCheckboxes = \$('input[name=\"requestedTables[]\"]', this).each(function()\r\n\t\t\t{\r\n\t\t\t\tif(\$(this).is(\":checked\"))\r\n\t\t\t\t{\r\n\t\t\t\t\t\$requestedTables[\$rCount] = \$(this).val();\r\n\t\t\t\t\t\$rCount++;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif(!\$rCount)\r\n\t\t\t{\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t\$(\"#mainText\").html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("backup_is_being_generated") . "');\r\n\r\n\t\t\tbuildQuery = \"isAjax=1&action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&Tables=1&requestedTables=\"+\$requestedTables.join(\",\");\r\n\t\t\t\$.ajax\r\n\t\t\t({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\tdata: buildQuery,\r\n\t\t\t\tbeforeSend: function()\r\n\t\t\t\t{\r\n\t\t\t\t\tTSUEAdmin.hideLoader();\r\n\t\t\t\t},\r\n\t\t\t\tsuccess: function(result)\r\n\t\t\t\t{\r\n\t\t\t\t\t\$(\"#mainText\").html(result);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn false;\r\n\t\t})\r\n\t</script>";
$HTML .= aaaabn(createtable(get_phrase("database_tables_alt"), $tableContents, 7), array( ), "", $script);
return $HTML;
}
}
function handleannouncements()
{
global $TSUE;
$HTML = "";
$aaaaer = aaaaae(array( "new=1" => array( "phrase" => get_phrase("announcement_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$tweet = intval(getvar("tweet"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Announcement = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Announcement )
{
$TSUE["TSUE_Database"]->update("tsue_announcements", $BuildQuery, "aid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("announcement_x_has_been_updated", $Announcement["title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
}
}
if( $delete )
{
$Announcement = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Announcement )
{
$TSUE["TSUE_Database"]->delete("tsue_announcements", "aid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("announcement_x_has_been_deleted", $Announcement["title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
if( $edit || $new )
{
$Announcement = array( "active" => 1, "title" => "", "content" => "", "reset" => 0 );
$aaaaam = "";
if( $edit )
{
$Announcement = $TSUE["TSUE_Database"]->query_result("SELECT active,title,content FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Announcement )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Announcement["reset"] = (isset($_POST["Announcement"]["reset"]) ? intval($_POST["Announcement"]["reset"]) : 0);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Announcement["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("announcement_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Announcement"]) )
{
$Announcement = $_POST["Announcement"];
if( !$Announcement["title"] )
{
$formErrors[] = get_phrase("news_error_no_title");
}
if( !$Announcement["content"] )
{
$formErrors[] = get_phrase("news_error_no_content");
}
if( !isset($formErrors) )
{
$buildQuery = array( "active" => $Announcement["active"], "title" => $Announcement["title"], "content" => $Announcement["content"] );
if( $edit )
{
if( $Announcement["reset"] )
{
$buildQuery["date"] = TIMENOW;
}
$TSUE["TSUE_Database"]->update("tsue_announcements", $buildQuery, "aid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$buildQuery["memberid"] = $TSUE["TSUE_Member"]["memberid"];
$buildQuery["date"] = TIMENOW;
$TSUE["TSUE_Database"]->insert("tsue_announcements", $buildQuery);
}
logadminaction(get_phrase("announcement_x_has_been_updated", $Announcement["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
handlerebuildcaches(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Announcement[active]", $Announcement["active"]);
$formContents = aaaaan(get_phrase("announcement_active"), $radioButtons);
if( $edit )
{
$radioButtons = radioyesno("Announcement[reset]", $Announcement["reset"]);
$formContents .= aaaaan(get_phrase("reset_announcement"), $radioButtons, get_phrase("reset_announcement_alt"));
}
$inputbox = inputbox("Announcement[title]", $Announcement["title"]);
$formContents .= aaaaan(get_phrase("announcement_title"), $inputbox);
$textarea = textarea("Announcement[content]", $Announcement["content"], true);
$formContents .= aaaaan(get_phrase("announcement_content"), $textarea);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $tweet )
{
$Announcement = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($tweet));
if( $Announcement )
{
$HTML .= posttotwitter($Announcement["content"], 120);
}
}
$Announcements = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_announcements ORDER BY active DESC, date DESC");
if( !$TSUE["TSUE_Database"]->num_rows($Announcements) )
{
$tableContents = errormessage(get_phrase("announcements_no_announcement_yet"));
}
else
{
$tableContents = "";
while( $Announcement = $TSUE["TSUE_Database"]->fetch_assoc($Announcements) )
{
$linkClass = (!$Announcement["active"] ? "linkDisabled" : "");
$aaaaes = aaaaae(array( "edit=" . $Announcement["aid"] => array( "phrase" => $Announcement["title"], "class" => $linkClass ) ));
$aaaaet = aaaaae(array( "delete=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaaca = aaaaae(array( "tweet=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/twitter.png", "Tweet") ) ));
if( $Announcement["active"] )
{
$aaaaeu = aaaaae(array( "enable_disable=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaaeu = aaaaae(array( "enable_disable=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaaes . " <span class=\"smallPassiveText\">" . get_phrase("news_created", convert_relative_time($Announcement["date"])) . "</span>" ), array( "width" => "20%", "text" => $aaaaca . $aaaaeu . $aaaaet, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("dashboard_announcements"), $tableContents, 2, $aaaaer);
return $HTML;
}
function handletorrents()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$manageTorrents = getvar("manageTorrents", false, false);
$torrentAction = getvar("torrentAction");
$hit_run_ratio = getvar("hit_run_ratio");
$new_category = intval(getvar("new_category"));
$upload_multiplier = getvar("upload_multiplier");
$download_multiplier = getvar("download_multiplier");
$tags = getvar("tags");
$searchType = trim(getvar("searchType"));
$keywords = trim(getvar("keywords"));
$categories = getvar("categories", false, false);
$sortOptions = getvar("sortOptions", false, false);
$showOnly = getvar("showOnly");
$WHERE = "";
$aaaaev = "";
$pagerConditions = array( );
$orderBY = " ORDER BY t.sticky DESC, t.added DESC";
$SelectedSortBy["added"] = " selected=\"selected\"";
$SelectedSortBy["times_completed"] = "";
$SelectedSortBy["size"] = $SelectedSortBy["times_completed"];
$SelectedSortBy["leechers"] = $SelectedSortBy["size"];
$SelectedSortBy["seeders"] = $SelectedSortBy["leechers"];
$SelectedOrderBy["desc"] = " selected=\"selected\"";
$SelectedOrderBy["asc"] = "";
if( !empty($sortOptions) && is_array($sortOptions) && count($sortOptions) == 2 )
{
$availableSortBY = array( "added", "seeders", "leechers", "size", "times_completed" );
$availableOrderBy = array( "asc", "desc" );
if( !empty($sortOptions["sortBy"]) && !empty($sortOptions["sortOrder"]) && in_array($sortOptions["sortOrder"], $availableOrderBy) && in_array($sortOptions["sortBy"], $availableSortBY) )
{
$SelectedSortBy[$sortOptions["sortBy"]] = " selected=\"selected\"";
$SelectedOrderBy[$sortOptions["sortOrder"]] = " selected=\"selected\"";
$orderBY = " ORDER BY t." . $sortOptions["sortBy"] . " " . strtoupper($sortOptions["sortOrder"]);
$pagerConditions[] = "sortOptions[sortBy]=" . $sortOptions["sortBy"];
$pagerConditions[] = "sortOptions[sortOrder]=" . $sortOptions["sortOrder"];
}
}
if( !$showOnly || !in_array($showOnly, array( "anonymouse", "record_stats", "upload_multiplier", "download_multiplier", "nuked", "hitRunRatio", "external", "dead", "sticky", "torrents_has_no_imdb", "silver_torrents", "x2_torrents" )) )
{
$showOnly = "";
}
if( ispost() && $torrentAction && $manageTorrents )
{
$tids = array_map("intval", $manageTorrents);
$escaped = "tid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $tids)) . ")";
switch( $torrentAction )
{
case "free":
aaaaew("download_multiplier", $escaped, 1, 0, 1);
$Phrase = get_phrase("set_free_non_free");
break;
case "double":
aaaaew("upload_multiplier", $escaped, 2, 1, 2);
$Phrase = get_phrase("set_double_non_double");
break;
case "sticky":
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "sticky" => array( "escape" => 0, "value" => "IF(sticky>0,0,1)" ) ), $escaped);
$Phrase = get_phrase("set_sticky_un_sticky");
break;
case "anonymouse":
aaaaew("anonymouse", $escaped, 1, 0, 1);
$Phrase = get_phrase("set_anonymouse_non_anonymouse");
break;
case "record_stats":
aaaaew("record_stats", $escaped, 1, 0, 1);
$Phrase = get_phrase("set_record_stats_non_record_stats");
break;
case "reset_hit_run":
aaaaew("hitRunRatio", $escaped, "", "", "", "!=");
$Phrase = get_phrase("reset_hit_and_run_ratio");
break;
case "set_hit_run":
aaaaew("hitRunRatio", $escaped, $hit_run_ratio, $hit_run_ratio, $hit_run_ratio, "!=");
$Phrase = get_phrase("set_hit_and_run_ratio");
break;
case "reset_tags":
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "tags" => "" ), $escaped);
$Phrase = get_phrase("reset_tags");
break;
case "set_tags":
if( $tags )
{
$tags = tsue_explode(",", cleartags(strip_tags(trim($tags))));
if( $tags )
{
$safeTags = array( );
foreach( $tags as $tag )
{
$tag = trim(strip_tags($tag));
if( 2 < strlen($tag) )
{
$tag = ucfirst(strtolower($tag));
if( !in_array($tag, $safeTags) && $tag )
{
$safeTags[] = $tag;
$TSUE["TSUE_Database"]->replace("tsue_tags", array( "tag" => $tag ));
}
}
}
$tags = implode(",", $safeTags);
unset($safeTags);
}
else
{
$tags = "";
}
if( $tags )
{
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "tags" => $tags ), $escaped);
}
}
$Phrase = get_phrase("set_tags");
break;
case "move_torrents":
if( $new_category )
{
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "cid" => $new_category ), $escaped);
$Phrase = get_phrase("move_to_another_category");
}
break;
case "remove_imdb":
aaaaex($tids);
$Phrase = get_phrase("remove_imdb");
break;
case "set_multipliers":
$Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE " . $escaped);
if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
$torrentOptions = unserialize($Torrent["options"]);
$torrentOptions["upload_multiplier"] = $upload_multiplier;
$torrentOptions["download_multiplier"] = $download_multiplier;
$buildQuery = array( "options" => serialize($torrentOptions), "flags" => 2, "upload_multiplier" => $upload_multiplier, "download_multiplier" => $download_multiplier );
$TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"]));
}
}
$Phrase = get_phrase("set_multipliers");
break;
case "delete_torrents":
$Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,name FROM tsue_torrents WHERE " . $escaped);
if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
deletetorrent($Torrent["tid"]);
}
}
$Phrase = get_phrase("delete_selected_torrents");
break;
}
if( isset($Phrase) && $tids )
{
$tids = implode(" ,", $tids);
$Phrase = get_phrase("dashboard_torrents_alt") . " -> " . get_phrase("select_an_action_to_apply") . " -> " . $Phrase . " -> " . $tids;
logadminaction($Phrase);
$HTML .= successmessage(get_phrase("message_saved"));
}
}
if( $keywords )
{
$pagerConditions[] = "keywords=" . html_clean($keywords);
$pagerConditions[] = "searchType=" . html_clean($searchType);
switch( $searchType )
{
case "name":
$whereConditions[] = explodesearchkeywords("t.name", $keywords);
break;
case "description":
$whereConditions[] = explodesearchkeywords("t.description", $keywords);
break;
case "uploader":
if( !is_valid_string($keywords) )
{
return errormessage(get_phrase("no_results_found"));
}
$whereConditions[] = "m.membername=" . $TSUE["TSUE_Database"]->escape($keywords);
break;
case "both":
case "default":
$whereConditions[] = explodesearchkeywords("t.name,t.description", $keywords);
break;
}
}
if( $categories )
{
if( !is_array($categories) )
{
$categories = tsue_explode(",", $categories);
}
$categories = array_map("intval", $categories);
$categories = implode(",", $categories);
$pagerConditions[] = "categories=" . $categories;
$whereConditions[] = "t.cid IN (" . $categories . ")";
}
if( isset($whereConditions) )
{
$WHERE = " WHERE " . implode(" AND ", $whereConditions);
}
if( !empty($pagerConditions) )
{
$aaaaev = implode("&", $pagerConditions);
}
$totalTorrents = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE t.tid, m.membername FROM tsue_torrents t LEFT JOIN tsue_members m ON(t.owner=m.memberid)" . $WHERE);
if( !$totalTorrents )
{
return errormessage(get_phrase("message_nothing_found"));
}
if( $showOnly )
{
$Pagination["1"] = "";
$Pagination["0"] = $Pagination["1"];
}
else
{
$Pagination = pagination($totalTorrents, $aaaaev);
}
$aaaaey = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE t.*, m.membername, g.groupname, g.groupstyle, c.cname, c.cviewpermissions, c.cdownloadpermissions, cc.cname as parentCategoryName, a.filename, i.content as IMDBContent FROM tsue_torrents t LEFT JOIN tsue_members m on (t.owner=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_torrents_categories c ON(t.cid=c.cid) LEFT JOIN tsue_torrents_categories cc ON(c.pid=cc.cid) LEFT JOIN tsue_attachments a ON (a.content_type='torrent_images' AND a.content_id=t.tid) LEFT JOIN tsue_imdb i USING(tid)" . $WHERE . " GROUP BY t.tid " . $orderBY . " " . $Pagination["0"]);
$tableContents .= aaaaag(array( array( "width" => "45%", "text" => get_phrase("torrent_name") ), array( "width" => "25%", "text" => get_phrase("torrent_categories_category_name") ), array( "width" => "25%", "text" => get_phrase("torrents_seeders") . "/" . get_phrase("torrents_leechers") . "/" . get_phrase("torrents_times_completed") ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"manageTorrents[]\" />" ) ), "tableContentTR", "tableContentTDHeader");
if( $showOnly )
{
$aaaaez = array( );
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($aaaaey) )
{
$torrentOptions = unserialize($Torrent["options"]);
if( isset($torrentOptions[$showOnly]) || in_array($showOnly, array( "external", "dead", "sticky", "torrents_has_no_imdb", "silver_torrents", "x2_torrents" )) )
{
switch( $showOnly )
{
case "anonymouse":
if( $torrentOptions[$showOnly] )
{
$aaaaez[] = $Torrent;
}
break;
case "record_stats":
if( !$torrentOptions[$showOnly] || !$torrentOptions["download_multiplier"] )
{
$aaaaez[] = $Torrent;
}
break;
case "upload_multiplier":
if( $torrentOptions[$showOnly] != "1" )
{
$aaaaez[] = $Torrent;
}
break;
case "download_multiplier":
if( $torrentOptions[$showOnly] != "1" )
{
$aaaaez[] = $Torrent;
}
break;
case "nuked":
if( $torrentOptions[$showOnly] )
{
$aaaaez[] = $Torrent;
}
break;
case "hitRunRatio":
if( $torrentOptions[$showOnly] )
{
$aaaaez[] = $Torrent;
}
break;
case "external":
if( $Torrent["external"] )
{
$aaaaez[] = $Torrent;
}
break;
case "dead":
if( !$Torrent["seeders"] )
{
$aaaaez[] = $Torrent;
}
break;
case "sticky":
if( $Torrent["sticky"] )
{
$aaaaez[] = $Torrent;
}
break;
case "torrents_has_no_imdb":
if( !$Torrent["IMDBContent"] )
{
$aaaaez[] = $Torrent;
}
break;
case "silver_torrents":
if( $torrentOptions["download_multiplier"] == "0.5" )
{
$aaaaez[] = $Torrent;
}
break;
case "x2_torrents":
if( $torrentOptions["upload_multiplier"] == "2" )
{
$aaaaez[] = $Torrent;
}
break;
}
}
}
if( !empty($aaaaez) )
{
foreach( $aaaaez as $Torrent )
{
$tableContents .= aaaafa($Torrent, $manageTorrents);
}
}
}
else
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($aaaaey) )
{
$tableContents .= aaaafa($Torrent, $manageTorrents);
}
}
$selectBox = "\r\n\t<select name=\"searchType\" class=\"selectNoWidth\">\r\n\t\t<option value=\"name\"" . (($searchType == "name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_name") . "</option>\r\n\t\t<option value=\"description\"" . (($searchType == "description" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_description") . "</option>\r\n\t\t<option value=\"both\"" . (($searchType == "both" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_both") . "</option>\r\n\t\t<option value=\"owner\"" . (($searchType == "owner" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_uploader") . "</option>\r\n\t</select>";
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texttiny") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) . " <input type=\"button\" id=\"categories\" name=\"categories\" value=\"" . get_phrase("categories") . "\" class=\"submit\" />" ) ));
$script = "\r\n\t<script type=\"text/javascript\">\r\n\t\t\$('input[name=\"categories\"]').click(function(e)\r\n\t\t{\r\n\t\t\te.preventDefault();\r\n\t\t\t\r\n\t\t\t\$this = \$(this);\r\n\r\n\t\t\t\$(\"#categoryList\").remove();\r\n\r\n\t\t\t\$.ajax\r\n\t\t\t({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\tdata: \"isAjax=1&action=searchInTorrentsShowCatz&categories=" . $categories . "\",\r\n\t\t\t\tsuccess: function(result)\r\n\t\t\t\t{\r\n\t\t\t\t\t\$('<div id=\"categoryList\">'+result+'</div>').insertAfter(\$this);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\treturn false;\r\n\t\t});\r\n\t</script>";
$HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], $script, "searchForm") . "<br />";
$selectBox = "\r\n\t<input type=\"hidden\" name=\"hit_run_ratio\" value=\"\" />\r\n\t<input type=\"hidden\" name=\"new_category\" value=\"\" />\r\n\t<input type=\"hidden\" name=\"upload_multiplier\" value=\"\" />\r\n\t<input type=\"hidden\" name=\"download_multiplier\" value=\"\" />\r\n\t<input type=\"hidden\" name=\"tags\" value=\"\" />\r\n\r\n\t<select name=\"torrentAction\" class=\"selectNoWidth\">\r\n\t\t<option value=\"\"></option>\r\n\t\t<option value=\"free\">" . get_phrase("set_free_non_free") . "</option>\r\n\t\t<option value=\"double\">" . get_phrase("set_double_non_double") . "</option>\r\n\t\t<option value=\"sticky\">" . get_phrase("set_sticky_un_sticky") . "</option>\r\n\t\t<option value=\"anonymouse\">" . get_phrase("set_anonymouse_non_anonymouse") . "</option>\r\n\t\t<option value=\"record_stats\">" . get_phrase("set_record_stats_non_record_stats") . "</option>\r\n\t\t<option value=\"fix_info_hashes\">" . get_phrase("fix_info_hashes") . "</option>\r\n\t\t<option value=\"reset_hit_run\">" . get_phrase("reset_hit_and_run_ratio") . "</option>\r\n\t\t<option value=\"set_hit_run\">" . get_phrase("set_hit_and_run_ratio") . "</option>\r\n\t\t<option value=\"reset_tags\">" . get_phrase("reset_tags") . "</option>\r\n\t\t<option value=\"set_tags\">" . get_phrase("set_tags") . "</option>\r\n\t\t<option value=\"move_torrents\">" . get_phrase("move_to_another_category") . "</option>\r\n\t\t<option value=\"remove_imdb\">" . get_phrase("remove_imdb") . "</option>\r\n\t\t<option value=\"reset_imdb\">" . get_phrase("reset_imdb") . "</option>\r\n\t\t<option value=\"set_multipliers\">" . get_phrase("set_multipliers") . "</option>\r\n\t\t<option value=\"delete_torrents\">" . get_phrase("delete_selected_torrents") . "</option>\r\n\t</select>";
$script = "\r\n\t<script type=\"text/javascript\">\r\n\t\tvar \$simpleForm = \$('#simpleForm');\r\n\r\n\t\t\$simpleForm.on(\"submit\", function(e)\r\n\t\t{\r\n\t\t\tvar \$tids = new Array(), \$torrentAction = \$('select[name=\"torrentAction\"]').val();\r\n\t\t\t\r\n\t\t\t\$('input[name=\"manageTorrents[]\"]:checked').each(function()\r\n\t\t\t{\r\n\t\t\t\t\$tids.push(\$(this).val());\r\n\t\t\t});\r\n\r\n\t\t\tvar \$total = \$tids.length;\r\n\r\n\t\t\t\r\n\t\t\tif(!\$total || !\$torrentAction)\r\n\t\t\t{\r\n\t\t\t\talert(\"" . get_phrase("message_required_fields_error") . "\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(\$torrentAction == \"fix_info_hashes\" || \$torrentAction == \"reset_imdb\")\r\n\t\t\t\t{\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\$noLoader = true;\r\n\r\n\t\t\t\t\tif(\$torrentAction == \"fix_info_hashes\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tTSUEAdmin.dialog('<h2>" . get_phrase("fix_info_hashes") . "</h2><div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>', false, false);\r\n\t\t\t\t\t\t\$(\$tids).each(function(index, element)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\thandleFixTorrentHashResult(element, \$total, index+1);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(\$torrentAction == \"reset_imdb\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tTSUEAdmin.dialog('<h2>" . get_phrase("reset_imdb") . "</h2><div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("torrent_upload_step_2") . "</div>', false, false);\r\n\t\t\t\t\t\t\$(\$tids).each(function(index, element)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\thandleResetIMDB(element, \$total, index+1);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\telse if(\$torrentAction == \"delete_torrents\")\r\n\t\t\t\t{\r\n\t\t\t\t\treturn confirm(\"" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tfunction endTorrentAction()\r\n\t\t{\r\n\t\t\t\$(\"#ajax-loader\").remove();\r\n\t\t\t\$('<div class=\"successStay\">" . get_phrase("operation_completed") . "</div>').prependTo(\".overlay_text\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfunction handleResetIMDB(tid, total, count)\r\n\t\t{\r\n\t\t\tif(tid)\r\n\t\t\t{\r\n\t\t\t\t\$.ajax\r\n\t\t\t\t({\r\n\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\tdata: \"isAjax=1&action=resetIMDB&tid=\"+tid,\r\n\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult = result.split(\"~~~\");\r\n\t\t\t\t\t\tvar imdbURL = result[0], torrentName = result[1];\r\n\r\n\t\t\t\t\t\tif(imdbURL == \"no_imdb\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div class=\"torrentFixed\">" . getimage("status/warning-24.png") . " ('+torrentName+') " . get_phrase("no_imdb") . "</div>').appendTo('.overlay_text');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div class=\"torrentFixed\">" . getimage("status/success-24.png") . " '+torrentName+' ('+imdbURL+')</div>').appendTo('.overlay_text');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\$(\"#ajax-loader\").remove();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(count == total)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tendTorrentAction();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("torrent_upload_step_2") . "</div>').appendTo(\".overlay_text\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction handleFixTorrentHashResult(tid, total, count)\r\n\t\t{\r\n\t\t\tif(tid)\r\n\t\t\t{\r\n\t\t\t\t\$.ajax\r\n\t\t\t\t({\r\n\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\tdata: \"isAjax=1&action=fixTorrentHash&tid=\"+tid,\r\n\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult = result.split(\"~~~\");\r\n\t\t\t\t\t\tvar torrentName = result[0], infoHash = result[1];\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\$('<div class=\"torrentFixed\">" . getimage("status/success-24.png") . " '+torrentName+' ('+infoHash+')</div>').appendTo('.overlay_text');\r\n\t\t\t\t\t\t\$(\"#ajax-loader\").remove();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(count == total)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tendTorrentAction();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>').appendTo(\".overlay_text\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\$('select[name=\"torrentAction\"]').change(function()\r\n\t\t{\r\n\t\t\tvar \$selectBox = \$(this), \$torrentAction = \$selectBox.val();\r\n\t\t\tswitch(\$torrentAction)\r\n\t\t\t{\r\n\t\t\t\tcase \"set_hit_run\":\r\n\t\t\t\t\tvar \$setHitRun = '<form name=\"set_hit_run_form\" method=\"post\" action=\"\">" . get_phrase("set_hit_and_run_ratio") . ": <input type=\"text\" name=\"hit_run_value\" value=\"\" class=\"text texttiny\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';\r\n\t\t\t\t\t\r\n\t\t\t\t\tTSUEAdmin.dialog(\$setHitRun, false, true);\r\n\t\t\t\t\t\r\n\t\t\t\t\t\$('form[name=\"set_hit_run_form\"]').submit(function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\$(\"#hitRunError\").remove();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar \$hitRunForm = \$(this), \$hitRunValue = \$('input[name=\"hit_run_value\"]', \$hitRunForm).val();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(!\$hitRunValue)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div id=\"hitRunError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$hitRunForm);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('input[name=\"hit_run_ratio\"]').val(\$hitRunValue);\r\n\t\t\t\t\t\t\t\$(\"#hitRunError\").remove();\r\n\t\t\t\t\t\t\tTSUEAdmin.closeDialog();\r\n\t\t\t\t\t\t\t\$simpleForm.submit();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"move_torrents\":\r\n\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t({\r\n\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\tdata: \"isAjax=1&action=torrentCategoriesInbutboxes&name=category_id\",\r\n\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar \$moveTorrent = '<h2>" . get_phrase("move_to_another_category") . "</h2><form name=\"move_torrent_form\" method=\"post\" action=\"\">'+result+' <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';\r\n\t\t\t\t\t\t\tTSUEAdmin.dialog(\$moveTorrent, false, true);\r\n\r\n\t\t\t\t\t\t\t\$('form[name=\"move_torrent_form\"]').on(\"submit\", function(e)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\$(\"#newCategoryError\").remove();\r\n\r\n\t\t\t\t\t\t\t\tvar \$moveTorrentForm = \$(this), \$newCategory = \$('input[name=\"category_id\"]:checked', \$moveTorrentForm).val();\r\n\r\n\t\t\t\t\t\t\t\tif(!\$newCategory)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$('<div id=\"hitRunError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$moveTorrentForm);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$('input[name=\"new_category\"]').val(\$newCategory);\r\n\t\t\t\t\t\t\t\t\t\$(\"#newCategoryError\").remove();\r\n\t\t\t\t\t\t\t\t\tTSUEAdmin.closeDialog();\r\n\t\t\t\t\t\t\t\t\t\$simpleForm.submit();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"set_multipliers\":\r\n\t\t\t\t\tvar \$multipliers = '<h2>" . get_phrase("set_multipliers") . "</h2><form name=\"multipliers_form\" method=\"post\" action=\"\">" . get_phrase("torrent_upload_multiplier") . ": <input type=\"text\" name=\"upload_multiplier_value\" value=\"\" class=\"text texttiny\" /> " . get_phrase("torrent_download_multiplier") . ": <input type=\"text\" name=\"download_multiplier_value\" value=\"\" class=\"text texttiny\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';\r\n\r\n\t\t\t\t\tTSUEAdmin.dialog(\$multipliers, false, true);\r\n\r\n\t\t\t\t\t\$('form[name=\"multipliers_form\"]').submit(function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\$(\"#multipliersError\").remove();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar \$multipliersForm = \$(this), \$uploadMultipliervalue = \$('input[name=\"upload_multiplier_value\"]', \$multipliersForm).val(), \$downloadMultipliervalue = \$('input[name=\"download_multiplier_value\"]', \$multipliersForm).val();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(!\$uploadMultipliervalue || !\$downloadMultipliervalue)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div id=\"multipliersError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$multipliersForm);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('input[name=\"upload_multiplier\"]').val(\$uploadMultipliervalue);\r\n\t\t\t\t\t\t\t\$('input[name=\"download_multiplier\"]').val(\$downloadMultipliervalue);\r\n\t\t\t\t\t\t\t\$(\"#multipliersError\").remove();\r\n\t\t\t\t\t\t\tTSUEAdmin.closeDialog();\r\n\t\t\t\t\t\t\t\$simpleForm.submit();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"set_tags\":\r\n\t\t\t\t\tvar \$setTags = '<h2>" . get_phrase("set_tags") . "</h2><form name=\"set_tags_form\" method=\"post\" action=\"\"><input type=\"text\" name=\"tags_value\" value=\"\" class=\"text textnormal\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /> <span class=\"smallPassiveTextBlock\">" . get_phrase("tags_altv2") . "</span></form>';\r\n\t\t\t\t\t\r\n\t\t\t\t\tTSUEAdmin.dialog(\$setTags, false, true);\r\n\t\t\t\t\t\r\n\t\t\t\t\t\$('form[name=\"set_tags_form\"]').submit(function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\$(\"#setTagsError\").remove();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar \$setTagsForm = \$(this), \$setTagsValue = \$('input[name=\"tags_value\"]', \$setTagsForm).val();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(!\$setTagsValue)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div id=\"setTagsError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$setTagsForm);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('input[name=\"tags\"]').val(\$setTagsValue);\r\n\t\t\t\t\t\t\t\$(\"#setTagsError\").remove();\r\n\t\t\t\t\t\t\tTSUEAdmin.closeDialog();\r\n\t\t\t\t\t\t\t\$simpleForm.submit();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\t</script>";
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("select_an_action_to_apply") . " " . $selectBox . " " . aaaabm(get_phrase("button_apply")), "align" => "right", "colspan" => 4 ) ));
$HTML .= aaaabn(createtable(get_phrase("dashboard_torrents_alt"), $tableContents, 7, $Pagination["1"]), array( ), "", $script);
$displayOptions = "\r\n\t<select name=\"sortOptions[sortBy]\" class=\"selectNoWidth\">\r\n\t\t<option value=\"added\"" . $SelectedSortBy["added"] . ">" . get_phrase("torrents_sort_by_added") . "</option>\r\n\t\t<option value=\"seeders\"" . $SelectedSortBy["seeders"] . ">" . get_phrase("torrents_seeders") . "</option>\r\n\t\t<option value=\"leechers\"" . $SelectedSortBy["leechers"] . ">" . get_phrase("torrents_leechers") . "</option>\r\n\t\t<option value=\"size\"" . $SelectedSortBy["size"] . ">" . get_phrase("torrents_size") . "</option>\r\n\t\t<option value=\"times_completed\"" . $SelectedSortBy["times_completed"] . ">" . get_phrase("torrents_times_completed") . "</option>\r\n\t</select>\r\n\t<select name=\"sortOptions[sortOrder]\" class=\"selectNoWidth\">\r\n\t\t<option value=\"desc\"" . $SelectedOrderBy["desc"] . ">" . get_phrase("torrents_sort_order_desc") . "</option>\r\n\t\t<option value=\"asc\"" . $SelectedOrderBy["asc"] . ">" . get_phrase("torrents_sort_order_asc") . "</option>\r\n\t</select>\r\n\t";
$tableContents = aaaaag(array( array( "width" => "80%", "text" => get_phrase("torrents_sort_by") . ": " . $displayOptions . " " . aaaabm(get_phrase("button_apply"), get_phrase("button_reset")) ) ));
$HTML .= "<br />" . aaaabn(createtable(get_phrase("torrents_display_options"), $tableContents), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], "", "displayOptions");
$aaaafb = "\r\n\t<select name=\"showOnly\" class=\"selectNoWidth\">\r\n\t\t<option value=\"anonymouse\"" . (($showOnly == "anonymouse" ? " selected=\"selected\"" : "")) . ">" . get_phrase("anonymouse_torrents") . "</option>\r\n\t\t<option value=\"record_stats\"" . (($showOnly == "record_stats" ? " selected=\"selected\"" : "")) . ">" . get_phrase("free_no_stats_torrents") . "</option>\r\n\t\t<option value=\"upload_multiplier\"" . (($showOnly == "upload_multiplier" ? " selected=\"selected\"" : "")) . ">" . get_phrase("different_upload_multiplier") . "</option>\r\n\t\t<option value=\"download_multiplier\"" . (($showOnly == "download_multiplier" ? " selected=\"selected\"" : "")) . ">" . get_phrase("different_download_multiplier") . "</option>\r\n\t\t<option value=\"nuked\"" . (($showOnly == "nuked" ? " selected=\"selected\"" : "")) . ">" . get_phrase("nuked_torrents") . "</option>\r\n\t\t<option value=\"hitRunRatio\"" . (($showOnly == "hitRunRatio" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_have_hit_run_ratio") . "</option>\r\n\t\t<option value=\"external\"" . (($showOnly == "external" ? " selected=\"selected\"" : "")) . ">" . get_phrase("external_torrents") . "</option>\r\n\t\t<option value=\"dead\"" . (($showOnly == "dead" ? " selected=\"selected\"" : "")) . ">" . get_phrase("dead_torrents") . "</option>\r\n\t\t<option value=\"sticky\"" . (($showOnly == "sticky" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sticky_torrents") . "</option>\r\n\t\t<option value=\"torrents_has_no_imdb\"" . (($showOnly == "torrents_has_no_imdb" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_has_no_imdb") . "</option>\r\n\t\t<option value=\"silver_torrents\"" . (($showOnly == "silver_torrents" ? " selected=\"selected\"" : "")) . ">" . get_phrase("silver_torrents") . "</option>\r\n\t\t<option value=\"x2_torrents\"" . (($showOnly == "x2_torrents" ? " selected=\"selected\"" : "")) . ">" . get_phrase("x2_torrents") . "</option>\r\n\t</select>";
$tableContents = aaaaag(array( array( "width" => "80%", "text" => "Show Only: " . $aaaafb . " " . aaaabm(get_phrase("button_apply"), get_phrase("button_reset")) ) ));
$HTML .= "<br />" . aaaabn(createtable(get_phrase("torrents_display_options"), $tableContents), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], "", "showOnly");
return $HTML;
}
function aaaafa($Torrent, $manageTorrents)
{
global $TSUE;
if( $Torrent["flags"] != 1 && $Torrent["size"] && $Torrent["name"] )
{
$Torrent["options"] = unserialize($Torrent["options"]);
$torrentImage = get_torrent_image($Torrent["filename"], ($Torrent["IMDBContent"] ? unserialize($Torrent["IMDBContent"]) : ""));
$torrentName = strip_tags($Torrent["name"]);
$torrentFlags = gettorrentmultipliers($Torrent);
$size = friendly_size($Torrent["size"]);
$aaaafc = get_phrase("torrents_owner", convert_relative_time($Torrent["added"]), getmembername($Torrent["membername"], $Torrent["groupstyle"]));
$aaaafd = strip_tags($Torrent["cname"]);
if( $Torrent["parentCategoryName"] )
{
$aaaafd = strip_tags($Torrent["parentCategoryName"]) . " > " . $aaaafd;
}
$seeders = number_format($Torrent["seeders"]);
$leechers = number_format($Torrent["leechers"]);
$aaaafe = number_format($Torrent["times_completed"]);
return aaaaag(array( array( "width" => "45%", "valign" => "top", "text" => "\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"torrentImage\">" . $torrentImage . "</div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"torrentDetails\">" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Torrent["tid"], $torrentName) . "</div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"torrentDetails\">" . $torrentFlags . "</div>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"smallPassiveTextBlock\">" . $size . " - " . aaaaaf("?p=profile&pid=18&memberid=" . $Torrent["owner"], $aaaafc) . "</span>" ), array( "width" => "25%", "valign" => "top", "text" => $aaaafd ), array( "width" => "25%", "valign" => "top", "text" => $seeders . "/" . $leechers . "/" . $aaaafe ), array( "width" => "5%", "valign" => "top", "text" => "<input type=\"checkbox\" name=\"manageTorrents[]\" value=\"" . $Torrent["tid"] . "\"" . (($manageTorrents && in_array($Torrent["tid"], $manageTorrents) ? " checked=\"checked\"" : "")) . " />" ) ));
}
}
function cleartags($tags)
{
$tags = removewhitespaces($tags);
$tags = preg_replace("/,+/", ",", $tags);
$tags = trim($tags, ",");
$tags = trim($tags);
return $tags;
}
function aaaaew($Option, $escaped, $if, $so, $otherwise, $type = "==")
{
global $TSUE;
$Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE " . $escaped);
if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
{
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
$torrentOptions = unserialize($Torrent["options"]);
if( $type == "==" )
{
$torrentOptions[$Option] = ($torrentOptions[$Option] == $if ? $so : $otherwise);
}
else
{
if( $type == "!=" )
{
$torrentOptions[$Option] = ($torrentOptions[$Option] != $if ? $so : $otherwise);
}
}
$buildQuery = array( );
$buildQuery["options"] = serialize($torrentOptions);
$buildQuery["flags"] = 2;
if( $Option == "upload_multiplier" )
{
$buildQuery["upload_multiplier"] = $torrentOptions[$Option];
}
else
{
if( $Option == "download_multiplier" )
{
$buildQuery["download_multiplier"] = $torrentOptions[$Option];
}
}
$TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"]));
}
}
}
function gettorrentmultipliers($Torrent)
{
global $TSUE;
$multipliers = $newIndicatorText = "";
$defaultThemeName = aaaaff();
if( $Torrent["options"]["record_stats"] == 0 )
{
$newIndicatorText[] = "torrent_no_record";
}
else
{
if( $Torrent["options"]["download_multiplier"] == 0 || $Torrent["download_multiplier"] == 0 )
{
$newIndicatorText[] = "torrent_free";
}
else
{
if( $Torrent["options"]["download_multiplier"] != 1 || $Torrent["download_multiplier"] != 1 )
{
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_free.png", "alt" => "", "title" => get_phrase("torrent_download_multiplier") . ": " . $Torrent["options"]["download_multiplier"], "class" => "middle", "id" => "", "rel" => "" );
$multipliers .= aaaadb($Image);
}
}
if( $Torrent["options"]["upload_multiplier"] != 1 || $Torrent["upload_multiplier"] != 1 )
{
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_multiple_upload.png", "alt" => "", "title" => get_phrase("torrent_upload_multiplier") . ": " . $Torrent["options"]["upload_multiplier"], "class" => "middle", "id" => "", "rel" => "" );
$multipliers .= aaaadb($Image);
}
}
if( $Torrent["sticky"] )
{
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/sticky.png", "alt" => "", "title" => get_phrase("sticky_torrent"), "class" => "middle", "id" => "", "rel" => "" );
$multipliers .= aaaadb($Image);
}
if( $Torrent["options"]["nuked"] )
{
$nuked_reason_x = str_replace("\"", "", strip_tags($Torrent["options"]["nuked"]));
$nuked_reason_x = get_phrase("nuked_reason_x", $nuked_reason_x);
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/buttons/nuke.png", "alt" => $nuked_reason_x, "title" => $nuked_reason_x, "class" => "middle", "id" => "", "rel" => "" );
$multipliers .= aaaadb($Image);
}
if( $newIndicatorText )
{
foreach( $newIndicatorText as $text )
{
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/" . $text . ".png", "alt" => "", "title" => get_phrase($text), "class" => "middle", "id" => "", "rel" => "" );
$multipliers .= aaaadb($Image);
}
}
if( $Torrent["external"] )
{
$Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/buttons/refresh.png", "alt" => $Torrent["tid"], "title" => get_phrase("refresh_external_torrent_status"), "class" => "middle clickable", "id" => "update_external_torrent", "rel" => "" );
$multipliers .= aaaadb($Image);
}
return $multipliers;
}
function aaaadb($Image = array( ))
{
return "<img src=\"" . $Image["src"] . "\" alt=\"" . $Image["alt"] . "\" title=\"" . $Image["title"] . "\" class=\"" . $Image["class"] . "\" id=\"" . $Image["id"] . "\" rel=\"" . $Image["rel"] . "\" />";
}
function get_torrent_image($filename, $IMDBContent = "")
{
global $TSUE;
if( $filename && is_file(DATAPATH . "torrents/torrent_images/s/" . $filename) )
{
$image = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/torrent_images/s/" . $filename;
}
else
{
if( $IMDBContent && is_file(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg") )
{
$image = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/imdb/" . $IMDBContent["title_id"] . ".jpg";
}
}
if( !isset($image) )
{
$defaultThemeName = aaaaff();
return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_s.png\" alt=\"\" title=\"\" />";
}
$Image = array( "src" => $image, "alt" => "", "title" => "", "class" => "middle", "id" => "", "rel" => "" );
return aaaadb($Image);
}
function handleaddons()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaafg = aaaaae(array( "install=1" => array( "phrase" => get_phrase("install_addon") ) ));
$aaaafh = aaaaae(array( "TSUEAddonStore=1" => array( "phrase" => get_phrase("tsue_store") ) ));
$aaaafi = aaaaae(array( "checkAddonUpdates=1" => array( "phrase" => get_phrase("check_updates") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$run = intval(getvar("run"));
$install = intval(getvar("install"));
$permissions = intval(getvar("permissions"));
$TSUEAddonStore = intval(getvar("TSUEAddonStore"));
$checkAddonUpdates = intval(getvar("checkAddonUpdates"));
$_SESSION["load-addon"] = "";
if( $checkAddonUpdates )
{
addbreadcrumb(array( get_phrase("check_updates") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&checkAddonUpdates=1" ));
return "\r\n\t\t<div class=\"ajaxLoaderDiv\" id=\"updatesAreBeingChecked\">\r\n\t\t\t" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "\r\n\t\t\t" . get_phrase("please_wait_while_updates_are_being_checked") . "\r\n\t\t</div>\r\n\t\t\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\tsetTimeout(function()\r\n\t\t\t{\r\n\t\t\t\t\$.ajax\r\n\t\t\t\t({\r\n\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\tdata: \"isAjax=1&action=checkAddonUpdates\",\r\n\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\"<div>\"+result+\"</div>\").insertBefore(\"#updatesAreBeingChecked\");\r\n\t\t\t\t\t\t\$(\"#updatesAreBeingChecked\").remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t</script>";
}
if( $permissions )
{
$Addon = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($permissions));
if( $Addon )
{
addbreadcrumb(array( get_phrase("set_permissions") . ": " . $Addon["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&permissions=" . $Addon["addon_id"] ));
$Permissions = ($Addon["permissions"] ? explode(",", $Addon["permissions"]) : array( ));
if( ispost() )
{
$Permissions = getvar("Permissions", array( ), false);
$newPerms = implode(",", array_map("intval", $Permissions));
$TSUE["TSUE_Database"]->update("tsue_admincp_addons", array( "permissions" => $newPerms ), "addon_id = " . $TSUE["TSUE_Database"]->escape($permissions));
$Phrase = get_phrase("addon_perms_updated", $Addon["title"]);
logadminaction($Phrase);
handlerebuildcaches(false);
$HTML .= successmessage($Phrase);
}
if( !$HTML )
{
$Usergroups = aaaaaw("Permissions[]", $Permissions);
$formContents = aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents);
return $HTML;
}
}
}
if( $run )
{
$Addon = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($run));
if( $Addon )
{
addbreadcrumb(array( $Addon["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&run=" . $Addon["addon_id"] ));
$addonFile = "./addons/files/" . $Addon["filename"] . ".php";
if( !is_file($addonFile) )
{
return errormessage("Add-on file does not exists: addons/files/" . $Addon["filename"] . ".php");
}
if( $Addon["permissions"] )
{
$aPerms = explode(",", $Addon["permissions"]);
if( !in_array($TSUE["TSUE_Member"]["membergroupid"], $aPerms) )
{
return errormessage(get_phrase("permission_denied"));
}
}
$_SESSION["load-addon"] = base64_encode(strrev(md5($Addon["filename"])));
$HTML .= "\r\n\t\t\t<iframe name=\"addonIframe\" id=\"addonIframe\" src=\"addons/load-addon.php?load=" . $Addon["filename"] . "\" frameborder=\"0\" border=\"0\" cellspacing=\"0\" style=\"border: 1px solid #ccc;width: 100%; height: 50px; margin-bottom: 10px;\"></iframe>\r\n\t\t\t<script type=\"text/javascript\" src=\"./js/jquery.iframe-auto-height.js\"></script>\r\n\t\t\t<script type=\"text/javascript\">\$(\"#addonIframe\").iframeAutoHeight();</script>";
}
}
if( $delete )
{
checkdemomode();
$Addon = $TSUE["TSUE_Database"]->query_result("SELECT filename,title FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Addon )
{
$TSUE["TSUE_Database"]->delete("tsue_admincp_addons", "addon_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( is_file("./addons/files/" . $Addon["filename"] . ".php") )
{
@unlink("./addons/files/" . $Addon["filename"] . ".php");
}
$Phrase = get_phrase("addon_x_has_been_deleted", $Addon["title"] . " (" . $delete . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
$HTML .= successmessage($Phrase);
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Addon = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Addon )
{
$TSUE["TSUE_Database"]->update("tsue_admincp_addons", $BuildQuery, "addon_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
$Phrase = get_phrase("addon_has_been_updated", $Addon["title"] . " (" . $enable_disable . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
$HTML .= successmessage($Phrase);
}
}
if( $TSUEAddonStore )
{
addbreadcrumb(array( get_phrase("tsue_store") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&TSUEAddonStore=1" ));
$HTML = "\r\n\t\t<div id=\"getTSUEAddons\">\r\n\t\t\t" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "\r\n\t\t</div>\r\n\t\t\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\t\$(window).load(function()\r\n\t\t\t{\r\n\t\t\t\tbuildQuery = \"isAjax=1&action=getTSUEAddons\";\r\n\t\t\t\t\$.ajax\r\n\t\t\t\t({\r\n\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\tdata: buildQuery,\r\n\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!response)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tresponse = \"" . get_phrase("message_nothing_found") . "\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\$(\"#getTSUEAddons\").html(response);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\$('#getTSUEAddons div[class=\"install_addon\"]').on(\"click\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\tvar \$installButton = \$(this), \$addonID = parseInt(\$installButton.attr(\"rel\"));\r\n\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").remove();\r\n\r\n\t\t\t\t\t\t\tvar purchaseFormHTML = '<div style=\"display: none; padding: 8px; margin: 5px 0; border: 1px solid #ccc; width: 400px;\" id=\"purchaseFormDiv\">'+\r\n\t\t\t\t\t\t\t'<form method=\"post\" id=\"purchaseForm\">'+\r\n\t\t\t\t\t\t\t'<div style=\"font-weight: bold; color: red; margin-bottom: 4px;\">" . get_phrase("enter_customer_number") . "</div>'+\r\n\t\t\t\t\t\t\t'" . get_phrase("customer_number") . ": <input type=\"text\" class=\"text texttiny\" name=\"customerNumber\" />'+\r\n\t\t\t\t\t\t\t' <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("upgrade_purchase") . "\" />'+ \r\n\t\t\t\t\t\t\t' <input type=\"button\" class=\"submit\" value=\"" . get_phrase("button_close") . "\" id=\"purchaseFormCancelButton\" />'+\r\n\t\t\t\t\t\t\t'</form>'+\r\n\t\t\t\t\t\t\t'</div>';\r\n\r\n\t\t\t\t\t\t\t\$(purchaseFormHTML).insertBefore(\$installButton).fadeIn(\"slow\").expose({closeOnEsc: false, closeOnClick: false});\r\n\t\t\t\t\t\t\t\$(\"#purchaseForm\").submit(function(e)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tvar \$customerNumber = \$('input[name=\"customerNumber\"]', \$(this)).val();\r\n\t\t\t\t\t\t\t\tif(\$customerNumber.length == 10)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$installButton.hide();\r\n\t\t\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "').css({\"text-align\":\"center\", \"color\": \"red\", \"border\": \"2px solid #000\"}).expose({closeOnEsc: false, closeOnClick: false});\r\n\t\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=purchaseTSUEAddon&customerNumber=\"+\$customerNumber+\"&addon_id=\"+\$addonID,\r\n\t\t\t\t\t\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").html(response);\r\n\t\t\t\t\t\t\t\t\t\t\t\$(\"#purchaseFormCancelButton\").click(function(e)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$.mask.close();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").remove();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$installButton.show();\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").effect(\"shake\", { times: 3 }, 300);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\$(\"#purchaseFormCancelButton\").click(function(e)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\$.mask.close();\r\n\t\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").remove();\r\n\t\t\t\t\t\t\t\t\$installButton.show();\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}).hover\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\tfunction()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(this).css({\"background\":\"#16cc16\"});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t,\r\n\t\t\t\t\t\t\tfunction()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(this).css({\"background\":\"#d8b654\"});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t</script>";
return $HTML;
}
if( $install )
{
addbreadcrumb(array( get_phrase("install_addon") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&install=1" ));
checkdemomode();
if( !function_exists("simplexml_load_file") )
{
return errormessage("TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>.");
}
if( ispost() )
{
$addonFile = (isset($_FILES["addon_file"]) ? $_FILES["addon_file"] : "");
if( $addonFile )
{
if( !$addonFile["name"] || !$addonFile["tmp_name"] || $addonFile["error"] || !$addonFile["size"] )
{
$HTML .= errormessage(get_phrase("upload_error3") . " (PE-" . $addonFile["error"] . ")");
}
else
{
if( !preg_match("#xml#", $addonFile["type"]) || file_extension($addonFile["name"]) != "xml" )
{
$HTML .= errormessage(get_phrase("upload_error6", "xml"));
}
else
{
if( !($Addon = simplexml_load_file($addonFile["tmp_name"])) )
{
$HTML .= errormessage(get_phrase("failed_to_open_x", htmlspecialchars($addonFile["name"])));
}
else
{
if( !isset($Addon->filename) || !isset($Addon->title) || !isset($Addon->description) || !isset($Addon->version_string) || !isset($Addon->version_id) || !isset($Addon->active) || !isset($Addon->permissions) )
{
$HTML .= errormessage(get_phrase("invalid_addon_xml"));
}
else
{
if( !preg_match("#^[a-zA-Z0-9_\\-]+\$#", $Addon->filename) )
{
$HTML .= errormessage("Addon filename contains bad chars. Only [a-z A-Z 0-9 - _] allowed.");
}
else
{
if( !is_file("./addons/files/" . $Addon->filename . ".php") )
{
$HTML .= errormessage("Add-on file does not exists: addons/files/" . $Addon->filename . ".php");
}
else
{
$aaaafj = $TSUE["TSUE_Database"]->query_result("SELECT filename FROM tsue_admincp_addons WHERE filename = " . $TSUE["TSUE_Database"]->escape($Addon->filename));
if( $aaaafj )
{
return errormessage(get_phrase("x_is_already_installed", $Addon->filename));
}
$buildQuery = array( "filename" => $Addon->filename, "title" => strip_tags($Addon->title), "description" => strip_tags($Addon->description), "version_string" => htmlspecialchars($Addon->version_string), "version_id" => htmlspecialchars($Addon->version_id), "active" => ($Addon->active == 1 ? 1 : 0), "permissions" => htmlspecialchars($Addon->permissions) );
$TSUE["TSUE_Database"]->insert("tsue_admincp_addons", $buildQuery);
$Phrase = get_phrase("new_addon_installed", $Addon->filename);
logadminaction($Phrase);
handlerebuildcaches(false);
return successmessage($Phrase);
}
}
}
}
}
}
}
else
{
$HTML .= errormessage(get_phrase("upload_error3"));
}
}
$aaaacr = aaaacs("addon_file");
$formContents = aaaaan(get_phrase("install_from_uploaded_file"), $aaaacr);
$HTML .= aaaabg($formContents, array( ), "", "install_addon");
return $HTML;
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => get_phrase("installed_addons") ), array( "width" => "20%", "text" => "" ) ), "tableContentTR", "tableContentTDHeader");
$Addons = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_admincp_addons ORDER BY active DESC, title ASC");
if( $TSUE["TSUE_Database"]->num_rows($Addons) )
{
while( $Addon = $TSUE["TSUE_Database"]->fetch_assoc($Addons) )
{
$linkClass = (!$Addon["active"] ? "linkDisabled" : "");
$aaaafk = aaaaae(array( "run=" . $Addon["addon_id"] => array( "phrase" => $Addon["title"], "class" => $linkClass ) ));
$aaaafl = aaaaae(array( "delete=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaafm = aaaaae(array( "permissions=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/permissions.png", get_phrase("set_permissions")) ) ));
if( $Addon["active"] )
{
$aaaafn = aaaaae(array( "enable_disable=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaafn = aaaaae(array( "enable_disable=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaafk . "<span class=\"smallPassiveText\">(" . $Addon["version_string"] . ") " . $Addon["description"] . "</span>" ), array( "width" => "20%", "text" => $aaaafm . $aaaafn . $aaaafl, "align" => "right" ) ));
}
}
else
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("there_is_no_any_addon_installed_yet"), "colspan" => "2" ) ));
}
$HTML .= aaaabn(createtable(get_phrase("addons_alt"), $tableContents, 2, $aaaafh . " | " . $aaaafg . " | " . $aaaafi));
return $HTML;
}
function handlerecentcomments()
{
global $TSUE;
$HTML = "";
$deleteComment = intval(getvar("deleteComment"));
$deleteReply = intval(getvar("deleteReply"));
if( $deleteComment )
{
$TSUE["TSUE_Database"]->delete("tsue_comments", "comment_id = " . $TSUE["TSUE_Database"]->escape($deleteComment) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")");
$TSUE["TSUE_Database"]->delete("tsue_comments_replies", "comment_id = " . $TSUE["TSUE_Database"]->escape($deleteComment) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")");
$Phrase = get_phrase("comment_x_has_been_deleted", $deleteComment);
logadminaction($Phrase);
$HTML = successmessage($Phrase);
}
if( $deleteReply )
{
$TSUE["TSUE_Database"]->delete("tsue_comments_replies", "reply_id = " . $TSUE["TSUE_Database"]->escape($deleteReply) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")");
$Phrase = get_phrase("comment_x_has_been_deleted", $deleteComment);
logadminaction($Phrase);
$HTML = successmessage($Phrase);
}
$totalComments = $TSUE["TSUE_Database"]->row_count("SELECT comment_id FROM tsue_comments WHERE content_type IN (\"torrent_comments\", \"profile_comments\")");
if( !$totalComments )
{
return errormessage(get_phrase("message_nothing_found"));
}
$Pagination = pagination($totalComments, "", 3, 20);
$Comments = $TSUE["TSUE_Database"]->query("SELECT c.*, m.membername, g.groupstyle FROM tsue_comments c LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE c.content_type IN (\"torrent_comments\", \"profile_comments\") ORDER BY post_date DESC " . $Pagination["0"]);
$aaaafo = $profileComments = $aaaafp = array( );
while( $Comment = $TSUE["TSUE_Database"]->fetch_assoc($Comments) )
{
$aaaafp[] = $Comment["comment_id"];
if( $Comment["content_type"] == "torrent_comments" )
{
$aaaafo[] = $Comment;
}
else
{
if( $Comment["content_type"] == "profile_comments" )
{
$profileComments[] = $Comment;
}
}
}
$commentReplyCache = array( );
$aaaafq = $TSUE["TSUE_Database"]->query("SELECT r.*, m.membername, g.groupstyle FROM tsue_comments_replies r LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE r.comment_id IN (0," . implode(",", $aaaafp) . ") ORDER BY post_date ASC");
if( $TSUE["TSUE_Database"]->num_rows($aaaafq) )
{
while( $Reply = $TSUE["TSUE_Database"]->fetch_assoc($aaaafq) )
{
$commentReplyCache[$Reply["comment_id"]][] = $Reply;
}
}
$TSUE["TSUE_Database"]->free($Comments);
$TSUE["TSUE_Database"]->free($aaaafq);
$TSUE["TSUE_Security"] = new TSUE_Security();
$TSUE["TSUE_Parser"] = new TSUE_Parser();
$tC = "";
if( $aaaafo )
{
foreach( $aaaafo as $Comment )
{
$tC .= buildcommentlist($Comment, "torrent_comments", 1, $commentReplyCache);
}
}
$pC = "";
if( $profileComments )
{
foreach( $profileComments as $Comment )
{
$pC .= buildcommentlist($Comment, "profile_posts", 2, $commentReplyCache);
}
}
$createTabs = createtabs(array( get_phrase("torrent_comments") => $tC, get_phrase("profile_posts") => $pC ));
return $HTML . createtable(get_phrase("recent_comments"), "<tr><td>" . $createTabs . "</td></tr>", 1, $Pagination["1"]);
}
function buildcommentlist($Comment, $Type, $tabNumber, $commentReplyCache)
{
global $TSUE;
$Sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Comment["memberid"] => array( "phrase" => getmembername($Comment["membername"], $Comment["groupstyle"]) ) ));
$postDate = convert_relative_time($Comment["post_date"]);
$Message = $TSUE["TSUE_Parser"]->parse($Comment["message"]);
if( $Type == "torrent_comments" )
{
$URL = "?p=torrents&pid=10&action=details&tid=" . $Comment["content_id"] . "#torrent_comments";
}
else
{
$URL = "?p=profile&pid=18&memberid=" . $Comment["content_id"] . "#profile_posts";
}
$Link = aaaaaf($URL, getimage("buttons/view_comment.png", get_phrase("view_comment")));
$Delete = aaaaae(array( "deleteComment=" . $Comment["comment_id"] . "#tabs-" . $tabNumber => array( "phrase" => getimage("buttons/delete_comment.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaafr = aaaafs($Comment["comment_id"], $Type, $tabNumber, $commentReplyCache);
return "\r\n\t<div style=\"margin-bottom: 10px; border-bottom: 3px solid #ccc;\">\r\n\t\t<div style=\"background: #fff; padding: 5px; font-size: 13px;\">\r\n\t\t\t<span style=\"float: right;\">" . $Link . " " . $Delete . "</span>\r\n\t\t\t" . $Sender . " | " . $postDate . "\r\n\t\t</div>\r\n\t\t<div style=\"padding: 5px; font-size: 12px;\">\r\n\t\t\t" . $Message . "\r\n\t\t\t" . $aaaafr . "\r\n\t\t</div>\r\n\t</div>";
}
function aaaafs($comment_id, $Type, $tabNumber, $commentReplyCache)
{
global $TSUE;
if( isset($commentReplyCache[$comment_id]) )
{
$Replies = "";
foreach( $commentReplyCache[$comment_id] as $Comment )
{
$Sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Comment["memberid"] => array( "phrase" => getmembername($Comment["membername"], $Comment["groupstyle"]) ) ));
$postDate = convert_relative_time($Comment["post_date"]);
$Message = $TSUE["TSUE_Parser"]->parse($Comment["message"]);
if( $Type == "torrent_comments" )
{
$URL = "?p=torrents&pid=10&action=details&tid=" . $Comment["content_id"] . "#torrent_comments";
}
else
{
$URL = "?p=profile&pid=18&memberid=" . $Comment["content_id"] . "#profile_posts";
}
$Link = aaaaaf($URL, getimage("buttons/view_comment.png", get_phrase("view_comment")));
$Delete = aaaaae(array( "deleteReply=" . $Comment["reply_id"] . "#tabs-" . $tabNumber => array( "phrase" => getimage("buttons/delete_comment.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$Replies .= "\r\n\t\t\t<div style=\"margin: 10px; border-bottom: 1px solid #ccc; border-top: 1px solid #ccc;\">\r\n\t\t\t\t<div style=\"background: #e1e0e0; padding: 0; font-size: 10px;\">\r\n\t\t\t\t\t<span style=\"float: right;\">" . $Link . " " . $Delete . "</span>\r\n\t\t\t\t\t" . $Sender . " | " . $postDate . "\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"padding: 5px; font-size: 9px;\">" . $Message . "</div>\r\n\t\t\t</div>";
}
return $Replies;
}
}
function handletorrentgenres()
{
global $TSUE;
$HTML = "";
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$genreImagesFullURL = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/torrent_genres/";
$aaaaft = DATAPATH . "torrents/torrent_genres/";
$tableContents = "";
if( !is_dir($aaaaft) || !is_writable($aaaaft) )
{
return errormessage(get_phrase("torrent_genres_folder_error"));
}
if( $new || $edit )
{
checkdemomode();
$Genre = array( "gname" => "", "gicon" => "", "active" => 0, "categories" => "" );
$aaaaam = "";
if( $edit )
{
$Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname, gicon, active, categories FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Genre )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$aaaafu = $Genre["gicon"];
$Genre["categories"] = explode(",", $Genre["categories"]);
addbreadcrumb(array( get_phrase("button_edit") . ": <img src=\"" . $genreImagesFullURL . $Genre["gicon"] . "\" style=\"width: 16px; height: 16px; border: 0; vertical-align: middle; margin: 0 3px;\" /> " . $Genre["gname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_new_genre") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Genre"]) )
{
$Genre = $_POST["Genre"];
if( !isset($Genre["categories"]) || !$Genre["categories"] )
{
$Genre["categories"] = array( );
}
if( !$Genre["gname"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
else
{
if( isset($_FILES["gicon"]) )
{
$aaaafv = $_FILES["gicon"];
if( !$aaaafv["size"] || $aaaafv["error"] )
{
if( !$edit )
{
$formErrors[] = get_phrase("upload_error3");
}
}
else
{
if( !in_array(file_extension($aaaafv["name"]), array( "gif", "jpg", "png", "jpeg" )) )
{
$formErrors[] = get_phrase("upload_error6", "gif, jpg, png");
}
else
{
if( is_file($aaaaft . $aaaafv["name"]) )
{
$formErrors[] = get_phrase("upload_error7");
}
else
{
if( !move_uploaded_file($aaaafv["tmp_name"], $aaaaft . $aaaafv["name"]) )
{
$formErrors[] = get_phrase("upload_error8");
}
else
{
$aaaafw = $aaaaft . $aaaafv["name"];
}
}
}
}
}
}
if( !$edit && (!isset($aaaafw) || !is_file($aaaafw)) )
{
$formErrors[] = get_phrase("genre_icon_error");
}
if( isset($formErrors) )
{
if( isset($aaaafw) )
{
@unlink($aaaafw);
}
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$buildQuery = array( "gname" => $Genre["gname"], "active" => $Genre["active"], "categories" => implode(",", $Genre["categories"]) );
if( $edit )
{
if( isset($aaaafw) )
{
if( is_file($aaaaft . $aaaafu) )
{
unlink($aaaaft . $aaaafu);
}
$buildQuery["gicon"] = str_replace($aaaaft, "", $aaaafw);
}
$Phrase = get_phrase("genre_x_updated", $Genre["gname"]);
$TSUE["TSUE_Database"]->update("tsue_torrents_genres", $buildQuery, "gid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$Phrase = get_phrase("new_genre_x_created", $Genre["gname"]);
$buildQuery["gicon"] = str_replace($aaaaft, "", $aaaafw);
$TSUE["TSUE_Database"]->insert("tsue_torrents_genres", $buildQuery);
}
$HTML .= successmessage($Phrase);
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$uploadDone = true;
}
}
if( !isset($uploadDone) )
{
$inputbox = inputbox("Genre[gname]", $Genre["gname"]);
$formContents = aaaaan(get_phrase("genre_name"), $inputbox);
$radioButtons = radioyesno("Genre[active]", $Genre["active"]);
$formContents .= aaaaan(get_phrase("genre_active"), $radioButtons);
$aaaacr = aaaacs("gicon");
$formContents .= aaaaan(get_phrase("genre_icon"), $aaaacr, ($edit ? get_phrase("global_leave_empty_keep_current_one") : ""));
$aaaact = array( );
$aaaafx = array( );
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
if( $Category["pid"] )
{
$aaaact[$Category["pid"]][] = $Category;
}
else
{
$aaaafx[] = $Category;
}
}
$aaaafy = "\r\n\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
$Count = 0;
$maxPerRow = 4;
foreach( $aaaafx as $Category )
{
if( $Count % $maxPerRow == 0 )
{
$aaaafy .= "\r\n\t\t\t\t\t</tr><tr>";
}
$Count++;
$subCategoryList = "";
if( isset($aaaact[$Category["cid"]]) )
{
foreach( $aaaact[$Category["cid"]] as $subCategory )
{
$checked = "";
if( in_array($subCategory["cid"], $Genre["categories"]) )
{
$checked = " checked=\"checked\"";
}
$subCategoryList .= "\r\n\t\t\t\t\t\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"Genre[categories][]\" value=\"" . $subCategory["cid"] . "\"" . $checked . " /> " . $subCategory["cname"] . "</label>\r\n\t\t\t\t\t\t</div>";
}
}
$checked = "";
if( in_array($Category["cid"], $Genre["categories"]) )
{
$checked = " checked=\"checked\"";
}
$aaaafy .= "\r\n\t\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"Genre[categories][]\" value=\"" . $Category["cid"] . "\"" . $checked . " /> " . $Category["cname"] . "</label>\r\n\t\t\t\t\t\t" . $subCategoryList . "\r\n\t\t\t\t\t</td>";
}
$aaaafy .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$formContents .= aaaaan(get_phrase("select_torrent_categories"), $aaaafy, get_phrase("select_torrent_categories_alt"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
checkdemomode();
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Genre )
{
$TSUE["TSUE_Database"]->update("tsue_torrents_genres", $BuildQuery, "gid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
$Phrase = get_phrase("torrent_genre_x_updated", $Genre["gname"] . " (" . $enable_disable . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( $delete )
{
checkdemomode();
$Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname, gicon FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Genre )
{
$TSUE["TSUE_Database"]->delete("tsue_torrents_genres", "gid = " . $TSUE["TSUE_Database"]->escape($delete));
if( is_file($aaaaft . $Genre["gicon"]) )
{
@unlink($aaaaft . $Genre["gicon"]);
}
$Phrase = get_phrase("torrent_genre_x_deleted", $Genre["gname"] . " (" . $delete . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( !$tableContents )
{
$Genres = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_genres ORDER BY active DESC, gname ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Genres) )
{
$tableContents = errormessage(get_phrase("message_nothing_found"));
}
else
{
$tableContents = "";
while( $Genre = $TSUE["TSUE_Database"]->fetch_assoc($Genres) )
{
$linkClass = (!$Genre["active"] ? "linkDisabled" : "");
$aaaafz = aaaaae(array( "edit=" . $Genre["gid"] => array( "phrase" => $Genre["gname"], "class" => $linkClass ) ));
$aaaaga = aaaaae(array( "delete=" . $Genre["gid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Genre["active"] )
{
$aaaagb = aaaaae(array( "enable_disable=" . $Genre["gid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaagb = aaaaae(array( "enable_disable=" . $Genre["gid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => "<img src=\"" . $genreImagesFullURL . $Genre["gicon"] . "\" style=\"width: 26px; height: 26px; border: 0; vertical-align: middle; margin-right: 5px;\" /> " . $aaaafz ), array( "width" => "10%", "text" => $aaaagb . $aaaaga, "align" => "center" ) ));
}
}
}
$aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) ));
$HTML .= createtable(get_phrase("torrent_genres"), $tableContents, 2, $aaaagc);
return $HTML;
}
function handleadvertisements()
{
global $TSUE;
$HTML = "";
$aaaagd = aaaaae(array( "new=1" => array( "phrase" => get_phrase("ads_create_new") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Ads = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Ads )
{
$TSUE["TSUE_Database"]->update("tsue_ads", $BuildQuery, "id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("ads_x_has_been_updated", $Ads["title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
}
}
if( $delete )
{
$Ads = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Ads )
{
$TSUE["TSUE_Database"]->delete("tsue_ads", "id = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("ads_x_has_been_deleted", $Ads["title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
if( $edit || $new )
{
$Ads = array( "title" => "", "content" => "", "position" => 0, "active" => 1, "permissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Ads = $TSUE["TSUE_Database"]->query_result("SELECT title, content, position, active, permissions FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Ads )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Ads["permissions"] = tsue_explode(",", $Ads["permissions"]);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Ads["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("ads_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Ads"]) )
{
$Ads = $_POST["Ads"];
if( !$Ads["title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$Ads["content"] )
{
$formErrors[] = get_phrase("error_no_content");
}
if( !isset($Ads["permissions"]) )
{
$Ads["permissions"] = array( );
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $Ads["title"], "content" => $Ads["content"], "position" => $Ads["position"], "active" => $Ads["active"], "permissions" => implode(",", $Ads["permissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_ads", $buildQuery, "id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_ads", $buildQuery);
}
logadminaction(get_phrase("ads_x_has_been_updated", $Ads["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
handlerebuildcaches(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Ads[active]", $Ads["active"]);
$formContents = aaaaan(get_phrase("ads_active"), $radioButtons);
$inputbox = inputbox("Ads[title]", $Ads["title"]);
$formContents .= aaaaan(get_phrase("ads_title"), $inputbox);
$textarea = textarea("Ads[content]", $Ads["content"], true);
$formContents .= aaaaan(get_phrase("ads_content"), $textarea);
$inputbox = inputbox("Ads[position]", $Ads["position"]);
$formContents .= aaaaan(get_phrase("ads_position"), $inputbox);
$Usergroups = aaaaaw("Ads[permissions][]", $Ads["permissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$aaaage = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ads ORDER BY active DESC, position ASC");
if( !$TSUE["TSUE_Database"]->num_rows($aaaage) )
{
$tableContents = errormessage(get_phrase("ads_no_ads_yet"));
}
else
{
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $id => $position )
{
$id = intval($id);
$position = intval($position);
$TSUE["TSUE_Database"]->update("tsue_ads", array( "position" => $position ), "id=" . $TSUE["TSUE_Database"]->escape($id));
}
logadminaction(get_phrase("ads_all_pages_updated"));
handlerebuildcaches(false);
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
$tableContents = "";
while( $Ads = $TSUE["TSUE_Database"]->fetch_assoc($aaaage) )
{
$linkClass = (!$Ads["active"] ? "linkDisabled" : "");
$aaaagf = aaaaae(array( "edit=" . $Ads["id"] => array( "phrase" => $Ads["title"], "class" => $linkClass ) ));
$aaaagg = aaaaae(array( "delete=" . $Ads["id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Ads["active"] )
{
$aaaagh = aaaaae(array( "enable_disable=" . $Ads["id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaagh = aaaaae(array( "enable_disable=" . $Ads["id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "70%", "text" => $aaaagf . " <span class=\"smallPassiveText\"></span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Ads["id"] . "]", $Ads["position"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaagh . $aaaagg, "align" => "right" ) ));
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
}
$HTML .= aaaabn(createtable(get_phrase("dashboard_ads"), $tableContents, 3, $aaaagd));
return $HTML;
}
function handleshoutboxchannels()
{
global $TSUE;
$HTML = "";
$aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_channel") ) ));
$tableContents = "";
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$cid = intval(getvar("cid"));
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $Cid => $Sort )
{
$Cid = intval($Cid);
$Sort = intval($Sort);
$TSUE["TSUE_Database"]->update("tsue_shoutbox_channels", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid));
}
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $delete )
{
checkdemomode();
if( $delete == 1 )
{
return errormessage(get_phrase("shoutbox_default_channel_cant_be_deleted"));
}
$Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_shoutbox_channels WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Category )
{
$TSUE["TSUE_Database"]->delete("tsue_shoutbox_channels", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("shoutbox_channel_deleted", $Category["cname"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $edit || $new )
{
$Category = array( "sort" => "", "cname" => "", "cviewpermissions" => array( ), "cshoutpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_shoutbox_channels WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Category )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]);
$Category["cshoutpermissions"] = tsue_explode(",", $Category["cshoutpermissions"]);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Category["cname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_new_channel") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Category"]) )
{
checkdemomode();
$Category = $_POST["Category"];
if( !isset($Category["cviewpermissions"]) )
{
$Category["cviewpermissions"] = array( );
}
if( !isset($Category["cshoutpermissions"]) )
{
$Category["cshoutpermissions"] = array( );
}
if( !$Category["cname"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( isset($flagError) )
{
$formErrors = (isset($formErrors) ? array_merge($formErrors, $flagError) : $flagError);
unset($flagError);
}
if( !isset($formErrors) )
{
$buildQuery = array( "cname" => $Category["cname"], "sort" => $Category["sort"], "cviewpermissions" => ($edit && $edit == 1 ? "" : implode(",", $Category["cviewpermissions"])), "cshoutpermissions" => implode(",", $Category["cshoutpermissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_shoutbox_channels", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
$flagID = $edit;
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_shoutbox_channels", $buildQuery);
$flagID = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("shoutbox_channel_updated", $Category["cname"] . " (" . $flagID . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf");
$formContents = aaaaan(get_phrase("channel_name"), $inputbox);
$inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
if( !($edit && $edit == 1) )
{
$aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe, get_phrase("global_leave_empty_all"));
}
$aaaabe = aaaaaw("Category[cshoutpermissions][]", $Category["cshoutpermissions"]);
$formContents .= aaaaan(get_phrase("global_shout_permissions"), $aaaabe, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_shoutbox_channels ORDER BY `sort` ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Categories) )
{
$tableContents = errormessage(get_phrase("no_results_found"));
}
else
{
$tableContents = "";
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) ));
$aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "65%", "text" => $aaaacv ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) ));
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
$HTML .= aaaabn(createtable(get_phrase("shoutbox_channels"), $tableContents, 3, $aaaacl));
return $HTML;
}
}
function aaaaah()
{
global $TSUE;
$HTML = "";
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$options = intval(getvar("options"));
if( $options )
{
$Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name, pluginOptions FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($options));
if( $Plugin && $Plugin["pluginOptions"] )
{
addbreadcrumb(array( get_phrase("dashboard_options") . ": " . $Plugin["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&options=" . $options ));
$Plugin["pluginOptions"] = unserialize($Plugin["pluginOptions"]);
$formContents = "";
if( isset($_POST["pluginOptions"]) )
{
$newOptions = array( );
foreach( $_POST["pluginOptions"] as $fieldType => $Fields )
{
foreach( $Fields as $fieldName => $fieldValue )
{
$newOptions[] = array( "fieldType" => $fieldType, "fieldName" => $fieldName, "fieldValue" => $fieldValue );
}
}
$buildQuery = array( "pluginOptions" => serialize($newOptions) );
$TSUE["TSUE_Database"]->update("tsue_plugins", $buildQuery, "pluginid=" . $TSUE["TSUE_Database"]->escape($options));
$Plugin["pluginOptions"] = $newOptions;
logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
$formContents = aaaagi($Plugin["pluginOptions"]);
$HTML .= aaaabg($formContents);
return $HTML;
}
else
{
return errormessage(get_phrase("message_nothing_found"));
}
}
else
{
if( $edit || $new )
{
$Plugin = array( "name" => "", "filename" => "", "contents" => "", "active" => 0, "viewpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name,filename,contents,active,viewpermissions FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Plugin )
{
return errormessage(get_phrase("message_content_error"));
}
$Plugin["viewpermissions"] = tsue_explode(",", $Plugin["viewpermissions"]);
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Plugin["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("plugin_manager_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&new=1" ));
}
if( isset($_POST["Plugin"]) )
{
$Plugin = $_POST["Plugin"];
if( !$Plugin["name"] )
{
$formErrors[] = get_phrase("dashboard_cron_entries_cron_title_error");
}
if( $Plugin["filename"] && !is_file(LIBRARYPATH . "plugins/" . $Plugin["filename"]) )
{
$formErrors[] = get_phrase("plugin_manager_plugin_file_error");
}
if( !$Plugin["filename"] && !$Plugin["contents"] )
{
$formErrors[] = get_phrase("plugin_manager_create_fatal_error");
}
if( !isset($Plugin["viewpermissions"]) )
{
$Plugin["viewpermissions"] = array( );
}
if( !isset($formErrors) )
{
$buildQuery = array( "name" => $Plugin["name"], "filename" => $Plugin["filename"], "active" => $Plugin["active"], "contents" => $Plugin["contents"], "viewpermissions" => implode(",", $Plugin["viewpermissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_plugins", $buildQuery, "pluginid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_plugins", $buildQuery);
}
logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("Plugin[active]", $Plugin["active"]);
$formContents = aaaaan(get_phrase("plugin_manager_plugin_active"), $radioButtons);
$inputbox = inputbox("Plugin[name]", $Plugin["name"]);
$formContents .= aaaaan(get_phrase("plugin_manager_plugin_name"), $inputbox);
$inputbox = inputbox("Plugin[filename]", $Plugin["filename"]);
$formContents .= aaaaan(get_phrase("plugin_manager_plugin_filename"), $inputbox, get_phrase("global_file_path", (DEMO_MODE ? "" : LIBRARYPATH . "plugins/")));
$textarea = textarea("Plugin[contents]", $Plugin["contents"], true);
$formContents .= aaaaan(get_phrase("plugin_manager_plugin_contents"), $textarea, get_phrase("plugin_manager_plugin_contents_alt"));
$Usergroups = aaaaaw("Plugin[viewpermissions][]", $Plugin["viewpermissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Plugin )
{
$TSUE["TSUE_Database"]->update("tsue_plugins", $BuildQuery, "pluginid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $delete )
{
$Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Plugin )
{
$TSUE["TSUE_Database"]->delete("tsue_plugins", "pluginid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("plugin_manager_plugin_deleted", $Plugin["name"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
$Plugins = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_plugins ORDER BY active DESC, name ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Plugins) )
{
$tableContents = errormessage(get_phrase("plugin_manager_no_plugin"));
}
else
{
$tableContents = "";
while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
$linkClass = (!$Plugin["active"] ? "linkDisabled" : "");
$aaaagj = aaaaae(array( "edit=" . $Plugin["pluginid"] => array( "phrase" => $Plugin["name"], "class" => $linkClass ) ));
$aaaagk = aaaaae(array( "delete=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaagl = "";
if( $Plugin["pluginOptions"] )
{
$aaaagl = aaaaae(array( "options=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/options.png", get_phrase("dashboard_options")) ) ));
}
if( $Plugin["active"] )
{
$aaaagm = aaaaae(array( "enable_disable=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaagm = aaaaae(array( "enable_disable=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaagj . "<span class=\"smallPassiveText\">" . $Plugin["filename"] . "</span>" ), array( "width" => "20%", "text" => $aaaagl . $aaaagm . $aaaagk, "align" => "right" ) ));
}
}
$aaaagn = aaaaae(array( "new=1" => array( "phrase" => get_phrase("plugin_manager_create_new") ) ));
$HTML .= createtable(get_phrase("plugin_manager_plugin_list"), $tableContents, 2, $aaaagn);
return $HTML;
}
}
function getpluginoption($Options = array( ), $optionFieldName = "", $defaultFieldValue = "")
{
foreach( $Options as $Option )
{
if( $Option["fieldName"] == $optionFieldName )
{
return $Option["fieldValue"];
}
}
return $defaultFieldValue;
}
function aaaagi($pluginOptions)
{
global $TSUE;
$formContents = "";
if( $pluginOptions )
{
foreach( $pluginOptions as $Options )
{
if( isset($Options["fieldType"]) && $Options["fieldType"] && isset($Options["fieldName"]) && $Options["fieldName"] )
{
$optionName = "pluginOptions[" . $Options["fieldType"] . "][" . $Options["fieldName"] . "]";
switch( $Options["fieldType"] )
{
case "input":
$inputbox = inputbox($optionName, getpluginoption($pluginOptions, $Options["fieldName"]));
$formContents .= aaaaan(get_phrase("plugin_" . $Options["fieldName"]), $inputbox);
break;
case "radioYesNo":
$radiobox = radioyesno($optionName, getpluginoption($pluginOptions, $Options["fieldName"]));
$formContents .= aaaaan(get_phrase("plugin_" . $Options["fieldName"]), $radiobox);
}
}
}
}
return $formContents;
}
function aaaago($Permissions, $parentid = 0)
{
$aaaagp = aaaagq(array( "canview_forum", "canview_thread_list", "canview_thread_posts" ), $Permissions, "forums_viewing_permissions");
$formContents = aaaaan(get_phrase("forums_viewing_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canupload", "candownload" ), $Permissions, "forums_attachment_permissions");
$formContents .= aaaaan(get_phrase("forums_attachment_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canreply_threads", "canpost_new_thread", "candelete_own_posts", "canedit_own_posts", "canedit_own_threads", "cansubscribe_to_threads" ), $Permissions, "forums_post_thread_permissions");
$formContents .= aaaaan(get_phrase("forums_post_thread_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canpost_polls", "candelete_own_polls", "canedit_own_polls" ), $Permissions, "forum_poll_permissions");
$formContents .= aaaaan(get_phrase("forum_poll_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "candelete_posts", "candelete_threads", "canedit_posts", "canedit_threads", "canmanage_locked_threads", "canmove_threads", "canlock_threads", "cansticky_threads", "candelete_polls", "canedit_polls" ), $Permissions, "forums_admin_mod_permissions");
$formContents .= aaaaan(get_phrase("forums_admin_mod_permissions"), $aaaagp);
$extra = "";
if( $parentid == -1 )
{
$extra = "<label><input type=\"checkbox\" name=\"apply_to_subforums\" value=\"1\" checked=\"checked\" /> " . get_phrase("forums_apply_to_subforums") . "</label>";
}
return array( $formContents, $extra );
}
function handleforums()
{
global $TSUE;
$HTML = "";
$aaaagr = aaaaae(array( "new=1" => array( "phrase" => get_phrase("forums_create_new") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$permissions = intval(getvar("permissions"));
$membergroupid = intval(getvar("membergroupid"));
$type = trim(getvar("type"));
$quickPermissions = intval(getvar("quickPermissions"));
$defaultTheme = aaaaff();
$aaaags = ROOTPATH . "styles/" . $defaultTheme . "/forums/forum_icons/";
$forumIconsFullURL = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/forums/forum_icons/";
if( isset($_POST["displayorder"]) )
{
foreach( $_POST["displayorder"] as $forumID => $displayorder )
{
$forumID = intval($forumID);
$displayorder = intval($displayorder);
$TSUE["TSUE_Database"]->update("tsue_forums", array( "displayorder" => $displayorder ), "forumid=" . $TSUE["TSUE_Database"]->escape($forumID));
}
logadminaction(get_phrase("forums_forum_has_been_updated"));
handlerebuildcaches(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $edit || $new )
{
$Forum = array( "forumid" => 0, "parentid" => -1, "title" => "", "description" => "", "icon" => "1.png", "displayorder" => "", "password" => "", "external_link" => "", "last_post_info" => "" );
$aaaaam = "";
if( $edit )
{
$Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Forum )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Forum["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("forums_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Forum"]) )
{
$Forum = $_POST["Forum"];
$usePassword = (isset($_POST["usePassword"]) && $_POST["usePassword"] == 1 ? true : false);
if( !$Forum["title"] )
{
$formErrors[] = get_phrase("forums_title_error");
}
if( !isset($formErrors) )
{
$buildQuery = array( "parentid" => $Forum["parentid"], "title" => $Forum["title"], "description" => $Forum["description"], "icon" => $Forum["icon"], "displayorder" => intval($Forum["displayorder"]), "external_link" => $Forum["external_link"], "last_post_info" => "" );
if( $Forum["password"] && $usePassword )
{
$buildQuery["password"] = sha1($Forum["password"]);
}
else
{
if( !$usePassword )
{
$buildQuery["password"] = "";
}
}
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_forums", $buildQuery, "forumid=" . $TSUE["TSUE_Database"]->escape($edit));
$Forum["forumid"] = $edit;
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_forums", $buildQuery);
$Forum["forumid"] = $TSUE["TSUE_Database"]->insert_id();
aaaagt($Forum["forumid"]);
}
logadminaction(get_phrase("forums_forum_has_been_updated", $Forum["title"] . " (" . $Forum["forumid"] . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
handlerebuildcaches(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Forum[title]", $Forum["title"]);
$formContents = aaaaan(get_phrase("forums_forum_title"), $inputbox);
$inputbox = inputbox("Forum[description]", $Forum["description"]);
$formContents .= aaaaan(get_phrase("forums_forum_description"), $inputbox);
$inputbox = inputbox("Forum[displayorder]", $Forum["displayorder"], "text veryTinyText");
$formContents .= aaaaan(get_phrase("forums_forum_displayorder"), $inputbox);
$aaaagu = aaaagv("Forum[parentid]", $Forum["parentid"], (isset($Forum["forumid"]) ? $Forum["forumid"] : 0));
$formContents .= aaaaan(get_phrase("forums_parent_forum"), $aaaagu, get_phrase("forums_parent_forum_alt"));
$inputbox = inputbox("Forum[password]", NULL);
$formContents .= aaaaan("<label><input type=\"checkbox\" name=\"usePassword\" checked=\"checked\" value=\"1\" class=\"middle\" /> " . get_phrase("forums_forum_password") . "</label>", $inputbox, get_phrase("forums_forum_password_alt"));
$inputbox = inputbox("Forum[external_link]", $Forum["external_link"]);
$formContents .= aaaaan(get_phrase("forums_forum_external_link"), $inputbox, get_phrase("forums_forum_external_link_alt"));
$aaaagw = scandir($aaaags);
if( 3 < count($aaaagw) )
{
$Icons = "<input type=\"hidden\" name=\"Forum[icon]\" value=\"" . $Forum["icon"] . "\" />";
foreach( $aaaagw as $Icon )
{
if( in_array(file_extension($Icon), array( "jpg", "jpeg", "png", "gif" )) )
{
$Icons .= "\r\n\t\t\t\t\t\t<div class=\"forumIcon" . (($Forum["icon"] == $Icon ? " selectedForumIcon" : "")) . "\"><img src=\"" . $forumIconsFullURL . $Icon . "\" alt=\"" . $Icon . "\" title=\"" . $Icon . "\" rel=\"" . $Icon . "\" /></div>";
}
}
$Icons .= "\r\n\t\t\t\t<div class=\"clear\"></div>\r\n\t\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t\t\$(\"div.forumIcon\").on(\"click\", function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\tvar \$this = \$(this), \$hiddenIconInputBox = \$('input[name=\"Forum[icon]\"]'), \$selectedNewIcon = \$this.find(\"img\").attr(\"alt\");\r\n\r\n\t\t\t\t\t\t\$(\"div.forumIcon\").removeClass(\"selectedForumIcon\");\r\n\t\t\t\t\t\t\$this.addClass(\"selectedForumIcon\");\r\n\t\t\t\t\t\t\$hiddenIconInputBox.val(\$selectedNewIcon);\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\t</script>";
$formContents .= aaaaan(get_phrase("forum_icon"), $Icons, get_phrase("forum_icon_alt"));
}
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $delete )
{
$Forum = $TSUE["TSUE_Database"]->query_result("SELECT parentid, title FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Forum )
{
deleteforum($delete);
if( $Forum["parentid"] == -1 )
{
$subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->num_rows($subForums) )
{
while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) )
{
deleteforum($subForum["forumid"]);
$deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"]));
if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
{
while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
{
deleteforum($deepSubForum["forumid"]);
}
}
}
}
}
else
{
$deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
{
while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
{
deleteforum($deepSubForum["forumid"]);
}
}
}
logadminaction(get_phrase("forums_forum_has_been_deleted", $Forum["title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
if( $permissions )
{
$Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions));
if( !$Forum )
{
return errormessage(get_phrase("message_content_error"));
}
$TITLE = get_phrase("membergroups_forum_permissions") . " : " . $Forum["title"];
addbreadcrumb(array( get_phrase("membergroups_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&permissions=" . $permissions ));
$forumPermissions = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums_permissions WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions));
if( !$forumPermissions )
{
aaaagt($permissions);
}
if( $type == "edit" && $membergroupid )
{
$membergroup = $TSUE["TSUE_Database"]->query_result("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups WHERE membergroupid=" . $TSUE["TSUE_Database"]->escape($membergroupid));
if( !$membergroup )
{
return errormessage(get_phrase("message_content_error"));
}
$forumPermissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_forums_permissions WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions) . " AND membergroupid = " . $TSUE["TSUE_Database"]->escape($membergroupid));
if( !$forumPermissions )
{
return errormessage(get_phrase("message_content_error"));
}
$Permissions = unserialize($forumPermissions["permissions"]);
addbreadcrumb(array( get_phrase("forums_view_permissions") . ": " . $membergroup["groupname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&permissions=" . $permissions . "&type=" . $type . "&membergroupid=" . $membergroupid ));
if( isset($_POST["Permissions"]) )
{
$newPermissions = serialize($_POST["Permissions"]);
$Permissions = $_POST["Permissions"];
$buildQuery = array( "forumid" => $permissions, "membergroupid" => $membergroupid, "permissions" => $newPermissions );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
if( $Forum["parentid"] == -1 && isset($_POST["apply_to_subforums"]) && $_POST["apply_to_subforums"] == 1 )
{
$subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($permissions));
if( $TSUE["TSUE_Database"]->num_rows($subForums) )
{
while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) )
{
$buildQuery = array( "forumid" => $subForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $newPermissions );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
$deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"]));
if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
{
while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
{
$buildQuery = array( "forumid" => $deepSubForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $newPermissions );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
}
}
}
}
}
logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $permissions . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
$aaaagx = aaaago($Permissions, $Forum["parentid"]);
$HTML .= "<h3>" . $Forum["title"] . "</h3>" . aaaabg($aaaagx["0"], array( ), $aaaagx["1"]);
return $HTML;
}
$aaaagy = "";
$membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups ORDER BY membergroupid ASC");
while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
{
$aaaagz = aaaaae(array( "permissions=" . $Forum["forumid"] . "&type=edit&membergroupid=" . $membergroup["membergroupid"] => array( "phrase" => get_phrase("forums_view_permissions") ) ));
$aaaagy .= "<li>[" . $aaaagz . "] " . getmembername($membergroup["groupname"], $membergroup["groupstyle"]) . "</li>";
}
$aaaaha = aaaaae(array( "edit=" . $Forum["forumid"] => array( "phrase" => $Forum["title"] ) ));
return createtable($TITLE, "\r\n\t\t<tr>\r\n\t\t\t<td>\r\n\t\t\t\t<ul style=\"line-height: 2;\">\r\n\t\t\t\t\t<li>\r\n\t\t\t\t\t\t" . $aaaaha . "\r\n\t\t\t\t\t\t<ul>" . $aaaagy . "</ul>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t</ul>\r\n\t\t\t</td>\r\n\t\t</tr>");
}
if( $quickPermissions )
{
$formErrors = array( );
$membergroups = array( );
$HTML = "";
$Permissions = aaaahb();
$Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($quickPermissions));
if( !$Forum )
{
return errormessage(get_phrase("message_content_error"));
}
$TITLE = get_phrase("quick_forum_permissions") . " : " . $Forum["title"];
addbreadcrumb(array( get_phrase("quick_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&quickPermissions=" . $quickPermissions ));
if( ispost() && isset($_POST["save_options"]) )
{
$membergroups = (isset($_POST["membergroups"]) ? $_POST["membergroups"] : "");
$Permissions = (isset($_POST["Permissions"]) ? $_POST["Permissions"] : "");
if( !$membergroups )
{
$formErrors[] = get_phrase("select_membergroups_to_apply_perms");
}
if( $formErrors )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$aaaahc = serialize($Permissions);
foreach( $membergroups as $membergroupid )
{
$buildQuery = array( "forumid" => $quickPermissions, "membergroupid" => $membergroupid, "permissions" => $aaaahc );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
if( $Forum["parentid"] == -1 && isset($_POST["apply_to_subforums"]) && $_POST["apply_to_subforums"] == 1 )
{
$subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($quickPermissions));
if( $TSUE["TSUE_Database"]->num_rows($subForums) )
{
while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) )
{
$buildQuery = array( "forumid" => $subForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $aaaahc );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
$deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"]));
if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
{
while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
{
$buildQuery = array( "forumid" => $deepSubForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $aaaahc );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
}
}
}
}
}
}
logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $permissions . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
}
$Usergroups = aaaaaw("membergroups[]", $membergroups);
$formContents = aaaaan(get_phrase("select_membergroups_to_apply_perms"), $Usergroups);
$aaaagx = aaaago($Permissions, $Forum["parentid"]);
$formContents .= $aaaagx["0"];
$HTML .= "<h3>" . $TITLE . "</h3>" . aaaabg($formContents, array( ), $aaaagx["1"]);
return $HTML;
}
$Forums = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums ORDER BY displayorder ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Forums) )
{
$tableContents = errormessage(get_phrase("no_results_found"));
}
else
{
$forumCategories = $subForums = array( );
while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
{
if( $Forum["parentid"] == -1 )
{
$forumCategories[] = $Forum;
}
else
{
$subForums[$Forum["parentid"]][] = $Forum;
}
}
$tableContents = "";
foreach( $forumCategories as $Forum )
{
$tableContents .= aaaahd($Forum, false, false, $forumIconsFullURL);
if( isset($subForums[$Forum["forumid"]]) )
{
foreach( $subForums[$Forum["forumid"]] as $subForum )
{
$tableContents .= aaaahd($subForum, true, false, $forumIconsFullURL);
if( isset($subForums[$subForum["forumid"]]) )
{
foreach( $subForums[$subForum["forumid"]] as $deepSubForum )
{
$tableContents .= aaaahd($deepSubForum, true, true, $forumIconsFullURL);
}
}
}
}
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
$HTML .= aaaabn(createtable(get_phrase("menu_forum_manager"), $tableContents, 3, $aaaagr));
return $HTML;
}
}
function aaaaai()
{
global $TSUE;
$formErrors = array( );
$membergroups = array( );
$forums = array( );
$HTML = "";
$Permissions = aaaahb();
if( ispost() && isset($_POST["save_options"]) )
{
$forums = (isset($_POST["forums"]) ? $_POST["forums"] : "");
$membergroups = (isset($_POST["membergroups"]) ? $_POST["membergroups"] : "");
$Permissions = (isset($_POST["Permissions"]) ? $_POST["Permissions"] : "");
if( !$forums )
{
$formErrors[] = get_phrase("select_forums_to_apply_permissions");
}
if( !$membergroups )
{
$formErrors[] = get_phrase("select_membergroups_to_apply_perms");
}
if( $formErrors )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$aaaahc = serialize($Permissions);
foreach( $forums as $forumid )
{
$forumid = intval($forumid);
if( $forumid )
{
$Forum = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
if( $Forum )
{
foreach( $membergroups as $membergroupid )
{
$membergroupid = intval($membergroupid);
if( $membergroupid )
{
$buildQuery = array( "forumid" => $forumid, "membergroupid" => $membergroupid, "permissions" => $aaaahc );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
}
}
logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $forumid . ")"));
}
}
}
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
}
$Forums = aaaabc("forums[]", $forums);
$formContents = aaaaan(get_phrase("select_forums_to_apply_permissions"), $Forums);
$Usergroups = aaaaaw("membergroups[]", $membergroups);
$formContents .= aaaaan(get_phrase("select_membergroups_to_apply_perms"), $Usergroups);
$aaaagx = aaaago($Permissions);
$formContents .= $aaaagx["0"];
$HTML .= aaaabg($formContents);
return $HTML;
}
function aaaahd($Forum, $isSubForum = false, $isDeepSubForum = false, $forumIconsFullURL)
{
global $TSUE;
$aaaaha = aaaaae(array( "edit=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/edit" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("button_edit")) ) ));
$aaaahe = aaaaae(array( "permissions=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/permissions" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("forums_view_permissions")) ) ));
$aaaahf = aaaaae(array( "quickPermissions=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/quickpermissions" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("forums_set_quick_permissions")) ) ));
$aaaahg = aaaaae(array( "delete=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/delete" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubForum ? get_phrase("pages_page_delete_warning") : "")) ) ));
$forumIcon = "";
if( $Forum["icon"] )
{
$forumIcon = "<img src=\"" . $forumIconsFullURL . $Forum["icon"] . "\" alt=\"\" title=\"\" style=\"width: 16px; margin-right: 2px;\" />";
}
$pageLink = "\r\n\t<span style=\"padding-left: 9px;\">\r\n\t\t<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/?p=forums&pid=11&fid=" . $Forum["forumid"] . "\" target=\"_blank\" style=\"color: #ccc; font-weight: normal; font-size: 10px;\">?p=forums&pid=11&fid=" . $Forum["forumid"] . "</a>\r\n\t</span>";
if( $isDeepSubForum )
{
$tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumDeepSub\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) ));
}
else
{
if( $isSubForum )
{
$tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumSub\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) ));
}
else
{
$tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumMain\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) ));
}
}
return $tableContents;
}
function aaaagt($forumid = 0)
{
global $TSUE;
if( !$forumid )
{
return false;
}
$aaaahh = aaaahb();
$membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, permissions FROM tsue_membergroups ORDER BY membergroupid ASC");
while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
{
$groupPerm = unserialize($membergroup["permissions"]);
$aaaahi = serialize((isset($groupPerm["canlogin_admincp"]) && $groupPerm["canlogin_admincp"] ? $aaaahh["adminForumPermissions"] : $aaaahh["defaultForumPermissions"]));
$buildQuery = array( "forumid" => $forumid, "membergroupid" => $membergroup["membergroupid"], "permissions" => $aaaahi );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
}
}
function deleteforum($forumid = 0)
{
global $TSUE;
checkdemomode();
if( !$forumid )
{
return false;
}
$TSUE["TSUE_Database"]->delete("tsue_forums", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
$TSUE["TSUE_Database"]->delete("tsue_forums_permissions", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
$Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads WHERE forumid=" . $TSUE["TSUE_Database"]->escape($forumid));
if( $TSUE["TSUE_Database"]->num_rows($Threads) )
{
while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
{
$threadCache[] = $Thread["threadid"];
}
$postCache = array( );
$aaaahj = array( );
$Posts = $TSUE["TSUE_Database"]->query("SELECT postid, memberid FROM tsue_forums_posts WHERE threadid IN (" . implode(",", $threadCache) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Posts) )
{
while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) )
{
if( isset($aaaahj[$Post["memberid"]]) )
{
$aaaahj[$Post["memberid"]] += 1;
}
else
{
$aaaahj[$Post["memberid"]] = 1;
}
$postCache[] = $Post["postid"];
}
}
if( $aaaahj )
{
foreach( $aaaahj as $memberid => $postCount )
{
$BuildQuery = array( "total_posts" => array( "escape" => 0, "value" => "IF(total_posts>" . $postCount . ", total_posts-" . $postCount . ", 0)" ) );
$TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $memberid);
}
}
$Attachments = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type ='posts' AND content_id IN (" . implode(",", $postCache) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Attachments) )
{
while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) )
{
$filePath = DATAPATH . "posts/" . $Attachment["filename"];
@unlink($filePath);
}
$TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type ='posts' AND content_id IN (" . implode(",", $postCache) . ")");
}
$TSUE["TSUE_Database"]->delete("tsue_forums_posts", "threadid IN (" . implode(",", $threadCache) . ")");
$TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "threadid IN (" . implode(",", $threadCache) . ")");
}
$TSUE["TSUE_Database"]->delete("tsue_forums_threads", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
return true;
}
function threadprefixes()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaahk = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_thread_prefix") ) ));
$new = intval(getvar("new"));
$edit = intval(getvar("edit"));
$delete = intval(getvar("delete"));
if( $edit || $new )
{
$Prefix = array( "pname" => "", "cssname" => "pink", "viewpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Prefix = $TSUE["TSUE_Database"]->query_result("SELECT pname, cssname, viewpermissions FROM tsue_forums_thread_prefixes WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Prefix )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
if( !$Prefix["viewpermissions"] )
{
$Prefix["viewpermissions"] = array( );
}
else
{
$Prefix["viewpermissions"] = unserialize($Prefix["viewpermissions"]);
}
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Prefix["pname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_new_thread_prefix") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Prefix"]) )
{
$Prefix = $_POST["Prefix"];
if( !isset($Prefix["viewpermissions"]) || !$Prefix["viewpermissions"] )
{
$Prefix["viewpermissions"] = array( );
}
if( !$Prefix["pname"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
if( !$Prefix["cssname"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
}
if( !isset($formErrors) )
{
$buildQuery = array( "pname" => $Prefix["pname"], "cssname" => $Prefix["cssname"], "viewpermissions" => ($Prefix["viewpermissions"] ? serialize($Prefix["viewpermissions"]) : "") );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_forums_thread_prefixes", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_forums_thread_prefixes", $buildQuery);
}
logadminaction(get_phrase("prefix_has_been_updated", $Prefix["pname"] . " (" . $edit . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Prefix[pname]", $Prefix["pname"]);
$formContents = aaaaan(get_phrase("forums_title"), $inputbox);
$selectbox = "\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"pink\"" . (($Prefix["cssname"] == "pink" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton pink\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"green\"" . (($Prefix["cssname"] == "green" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton green\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"red\"" . (($Prefix["cssname"] == "red" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton red\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"orange\"" . (($Prefix["cssname"] == "orange" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton orange\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"blue\"" . (($Prefix["cssname"] == "blue" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton blue\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"yellow\"" . (($Prefix["cssname"] == "yellow" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton yellow\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"black\"" . (($Prefix["cssname"] == "black" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton black\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t";
$formContents .= aaaaan(get_phrase("display_styling"), $selectbox);
$Usergroups = aaaaaw("Prefix[viewpermissions][]", $Prefix["viewpermissions"]);
$formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $delete )
{
$Prefix = $TSUE["TSUE_Database"]->query_result("SELECT pname FROM tsue_forums_thread_prefixes WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Prefix )
{
$TSUE["TSUE_Database"]->delete("tsue_forums_thread_prefixes", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
$TSUE["TSUE_Database"]->update("tsue_forums_thread_prefixes", array( "pid" => 0 ), "pid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("prefix_has_been_deleted", $Prefix["pname"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
$Prefixes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_thread_prefixes ORDER BY pname ASC");
if( $TSUE["TSUE_Database"]->num_rows($Prefixes) )
{
while( $Prefix = $TSUE["TSUE_Database"]->fetch_assoc($Prefixes) )
{
$aaaahl = aaaaae(array( "edit=" . $Prefix["pid"] => array( "phrase" => $Prefix["pname"] ) ));
$aaaahm = aaaaae(array( "delete=" . $Prefix["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<span class=\"prefixButton " . $Prefix["cssname"] . "\">" . $Prefix["cssname"] . "</span> " . $aaaahl ), array( "width" => "15%", "text" => $aaaahm, "align" => "right" ) ));
}
}
$HTML .= createtable(get_phrase("thread_prefixes"), $tableContents, 2, $aaaahk);
return $HTML;
}
function rebuildforumcounters()
{
return "\r\n\t<div class=\"ajaxLoaderDiv\" id=\"forumCountersUpdating\">\r\n\t\t" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "\r\n\t\t" . get_phrase("please_wait_while_forum_counters_are_updated") . "\r\n\t</div>\r\n\t\r\n\t<script type=\"text/javascript\">\r\n\t\tsetTimeout(function()\r\n\t\t{\r\n\t\t\t\$.ajax\r\n\t\t\t({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\tdata: \"isAjax=1&action=rebuildForumCounters\",\r\n\t\t\t\tsuccess: function(result)\r\n\t\t\t\t{\r\n\t\t\t\t\t\$(\"#forumCountersUpdating\").css({\"text-align\": \"left\"}).html(result)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}, 1000);\r\n\t</script>";
}
function handlethemes()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$themeid = intval(getvar("themeid"));
$enable_disable = intval(getvar("enable_disable"));
$type = trim(getvar("type"));
$template = intval(getvar("template"));
$editTemplate = intval(getvar("editTemplate"));
$deleteTemplate = intval(getvar("deleteTemplate"));
$newTemplate = intval(getvar("newTemplate"));
$revertTemplate = intval(getvar("revertTemplate"));
$style = intval(getvar("style"));
$editStyle = intval(getvar("editStyle"));
$newStyle = intval(getvar("newStyle"));
$revertStyle = intval(getvar("revertStyle"));
$searchPhrase = trim(getvar("searchPhrase", "", false));
$export = intval(getvar("export"));
$import = intval(getvar("import"));
$WHERE = "";
if( $import )
{
if( !extension_loaded("zip") )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (i1) http://php.net/manual/en/book.zip.php");
}
checkdemomode();
addbreadcrumb(array( get_phrase("import_a_theme") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&import=1" ));
if( isset($_FILES["theme"]) )
{
$importTheme = $_FILES["theme"];
if( $importTheme["error"] != UPLOAD_ERR_OK )
{
switch( $importTheme["error"] )
{
case 1:
$formErrors[] = get_phrase("upload_error1");
break;
case 4:
$formErrors[] = get_phrase("upload_error3");
break;
default:
$formErrors[] = get_phrase("an_error_hash_occurded") . ": (UE-" . $importTheme["error"] . ")";
break;
}
}
else
{
if( file_extension($importTheme["name"]) != "zip" )
{
$formErrors[] = get_phrase("upload_error6", "zip");
}
else
{
$zip = new ZipArchive();
$res = $zip->open($importTheme["tmp_name"]);
if( $res === true )
{
$tmpFolder = DATAPATH . "cache/tmp_theme_folder/";
if( is_dir($tmpFolder) )
{
rrmdir($tmpFolder);
}
if( !mkdir($tmpFolder, 511) )
{
$formErrors[] = get_phrase("an_error_hash_occurded") . ": (i3)";
}
else
{
$zip->extractTo($tmpFolder);
$zip->close();
$aaaahn = $tmpFolder . "install_tsue_theme.xml";
if( !file_exists($aaaahn) )
{
$formErrors[] = get_phrase("pls_install_a_valid_theme");
}
else
{
$XML = simplexml_load_file($aaaahn);
if( !$XML )
{
$formErrors[] = get_phrase("an_error_hash_occurded") . ": (i4) " . $aaaahn;
}
else
{
$checkTheme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themename = " . $TSUE["TSUE_Database"]->escape($XML->themename));
if( $checkTheme )
{
$formErrors[] = get_phrase("theme_manager_theme_name_alt");
}
else
{
$buildQuery = array( "themename" => $XML->themename, "viewpermissions" => $XML->viewpermissions, "active" => $XML->active );
if( $TSUE["TSUE_Database"]->insert("tsue_themes", $buildQuery) )
{
$themeID = $TSUE["TSUE_Database"]->insert_id();
foreach( $XML->styles->style as $style )
{
$buildQuery = array( "stylename" => $style->stylename, "themeid" => $themeID, "css" => $style->css_content, "last_updated" => $style->last_updated, "orj_css" => $style->orj_css_content );
$TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery);
}
foreach( $XML->templates->template as $template )
{
$buildQuery = array( "themeid" => $themeID, "templatename" => $template->templatename, "template" => aaaaho($template->template_content), "last_updated" => $template->last_updated, "orj_template" => aaaaho($template->orj_template_content) );
$TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery);
}
if( is_dir(DATAPATH . "cache/" . $XML->themename) )
{
rrmdir(DATAPATH . "cache/" . $XML->themename);
}
if( !rename($tmpFolder, DATAPATH . "cache/" . $XML->themename) )
{
$aaaahp = "I can not rename the folder name. Please rename this: " . $tmpFolder . " with this: " . DATAPATH . "cache/" . $XML->themename . " and then move " . DATAPATH . "cache/" . $XML->themename . " into " . ROOTPATH . "styles/";
}
else
{
if( !is_writable(ROOTPATH . "styles") )
{
$aaaahp = ROOTPATH . "styles is not writable. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/";
}
else
{
if( !copy_directory(DATAPATH . "cache/" . $XML->themename, ROOTPATH . "styles/" . $XML->themename) )
{
$aaaahp = "I can not move the folder. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/";
}
else
{
if( !is_dir(ROOTPATH . "styles/" . $XML->themename) )
{
$aaaahp = "I can not move the folder. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/";
}
else
{
rrmdir(DATAPATH . "cache/" . $XML->themename);
unlink(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml");
}
}
}
}
$phrase = get_phrase("theme_manager_theme_imported", $XML->themename);
if( isset($aaaahp) )
{
if( is_file(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml") )
{
unlink(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml");
}
if( is_file(DATAPATH . "cache/" . $XML->themename) )
{
unlink(DATAPATH . "cache/" . $XML->themename . "/install_tsue_theme.xml");
}
if( is_file($aaaahn) )
{
unlink($aaaahn);
}
$phrase .= "<br /><br />" . $aaaahp;
}
logadminaction($phrase);
$HTML .= successmessage($phrase);
handlerebuildcaches(false);
handleprune(false);
$importDone = true;
}
else
{
$formErrors[] = get_phrase("database_error") . ": (i5)";
}
}
}
}
}
}
else
{
$formErrors[] = get_phrase("an_error_hash_occurded") . ": (i2)";
}
}
}
if( isset($formErrors) )
{
if( isset($tmpFolder) && is_dir($tmpFolder) )
{
rrmdir($tmpFolder);
}
if( isset($XML->themename) && is_dir(DATAPATH . "cache/" . $XML->themename) )
{
rrmdir(DATAPATH . "cache/" . $XML->themename);
}
if( isset($XML->themename) && is_dir(ROOTPATH . "styles/" . $XML->themename) )
{
rrmdir(ROOTPATH . "styles/" . $XML->themename);
}
if( isset($themeID) )
{
$TSUE["TSUE_Database"]->delete("tsue_themes", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID));
$TSUE["TSUE_Database"]->delete("tsue_templates", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID));
$TSUE["TSUE_Database"]->delete("tsue_styles", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID));
}
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($importDone) )
{
$aaaacr = aaaacs("theme");
$formContents = aaaaan(get_phrase("theme_manager_import_from_uploaded_file"), $aaaacr);
$HTML .= aaaabg($formContents);
$HTML .= "\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t\$(\"#overlay_form\").submit(function(e)\r\n\t\t\t\t{\r\n\t\t\t\t\t\$(this).hide();\r\n\t\t\t\t\t\$('<div style=\"font-size: 20px; font-weight: bold; color: red; border: 1px solid #ddd; padding: 15px; text-align: center;\"> " . getimage("ajax/ajax-loader.gif") . " " . get_phrase("please_wait_uploading") . "</div>').appendTo(\"#mainText\");\r\n\t\t\t\t});\r\n\t\t\t</script>";
return $HTML;
}
}
if( $export )
{
checkdemomode();
if( !extension_loaded("zip") )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (e1) http://php.net/manual/en/book.zip.php");
}
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename, viewpermissions, active FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export));
if( !$Theme )
{
return errormessage(get_phrase("message_content_error") . " (e2)");
}
$Styles = $TSUE["TSUE_Database"]->query("SELECT stylename, css, last_updated, orj_css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export));
if( !$Styles )
{
return errormessage(get_phrase("message_content_error") . " (e3)");
}
$Templates = $TSUE["TSUE_Database"]->query("SELECT templatename, template, last_updated, orj_template FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export));
if( !$Templates )
{
return errormessage(get_phrase("message_content_error") . " (e4)");
}
$xmlOutput = "<?xml version=\"1.0\" encoding=\"" . $TSUE["TSUE_Language"]["charset"] . "\"?>\r\n<tsuetheme>\r\n\t<themename>" . $Theme["themename"] . "</themename>\r\n\t<viewpermissions>" . $Theme["viewpermissions"] . "</viewpermissions>\r\n\t<active>" . $Theme["active"] . "</active>";
$xmlOutput .= "\r\n\t<styles>";
while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) )
{
$xmlOutput .= "\r\n\t\t<style>\r\n\t\t\t<stylename>" . $Style["stylename"] . "</stylename>\r\n\t\t\t<css_content><![CDATA[" . $Style["css"] . "]]></css_content>\r\n\t\t\t<last_updated>" . $Style["last_updated"] . "</last_updated>\r\n\t\t\t<orj_css_content><![CDATA[" . $Style["orj_css"] . "]]></orj_css_content>\r\n\t\t</style>";
}
$xmlOutput .= "\r\n\t</styles>";
$xmlOutput .= "\r\n\t<templates>";
while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) )
{
$xmlOutput .= "\r\n\t\t<template>\r\n\t\t\t<templatename>" . $Template["templatename"] . "</templatename>\r\n\t\t\t<template_content><![CDATA[" . aaaahq($Template["template"]) . "]]></template_content>\r\n\t\t\t<last_updated>" . $Template["last_updated"] . "</last_updated>\r\n\t\t\t<orj_template_content><![CDATA[" . aaaahq($Template["orj_template"]) . "]]></orj_template_content>\r\n\t\t</template>";
}
$xmlOutput .= "\r\n\t</templates>";
$xmlOutput .= "\r\n</tsuetheme>";
$xmlOutput = utf8_encode($xmlOutput);
$aaaahr = safe_names($Theme["themename"]);
$aaaahs = DATAPATH . "cache/" . $aaaahr . "/";
$createXMLFile = $aaaahs . "install_tsue_theme.xml";
if( is_dir($aaaahs) )
{
rrmdir($aaaahs);
}
if( !is_dir($aaaahs) && !mkdir($aaaahs, 511) )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (e5) " . $aaaahs);
}
if( !file_put_contents($createXMLFile, $xmlOutput) )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (e6) " . $createXMLFile);
}
$XML = simplexml_load_file($createXMLFile);
if( !$XML )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (e7) " . $createXMLFile);
}
$themeFiles = ROOTPATH . "styles/" . $Theme["themename"] . "/";
copy_directory($themeFiles, $aaaahs);
$zipFileName = "tsue_theme_" . V . "_" . $aaaahr . ".zip";
$createZipFile = DATAPATH . "cache/" . $zipFileName;
if( is_file($createZipFile) )
{
unlink($createZipFile);
}
if( !zip($aaaahs, $createZipFile) )
{
return errormessage(get_phrase("an_error_hash_occurded") . ": (e8) " . $createZipFile);
}
rrmdir($aaaahs);
downloadfile($createZipFile, $zipFileName);
unlink($createZipFile);
exit();
}
if( $type == "manageTemplates" && $themeid )
{
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid));
if( !$Theme )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( get_phrase("theme_manager_manage_templates") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageTemplates" ));
if( $deleteTemplate )
{
$Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($deleteTemplate));
if( !$Template )
{
return errormessage(get_phrase("message_content_error"));
}
$TSUE["TSUE_Database"]->delete("tsue_templates", "templateid = " . $TSUE["TSUE_Database"]->escape($deleteTemplate));
$Phrase = get_phrase("template_x_has_been_deleted", $Template["templatename"]);
$HTML .= errormessage($Phrase);
handlerebuildcaches(false);
handleprune(false);
}
if( $revertTemplate )
{
$Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename,template FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($revertTemplate));
if( !$Template )
{
return errormessage(get_phrase("message_content_error"));
}
$BuildQuery = array( "template" => array( "escape" => 0, "value" => "orj_template" ) );
$TSUE["TSUE_Database"]->update("tsue_templates", $BuildQuery, "templateid = " . $TSUE["TSUE_Database"]->escape($revertTemplate));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
}
if( $searchPhrase )
{
$WHERE = " AND (templatename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%' OR template LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%')";
}
$Templates = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE . " ORDER BY last_updated DESC, templatename ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Templates) )
{
return errormessage(get_phrase("message_content_error"));
}
if( $editTemplate || $newTemplate )
{
if( isset($_GET["created"]) && !ispost() )
{
$HTML .= successmessage(get_phrase("message_saved"));
}
$Template = array( "templatename" => "", "template" => "" );
$aaaaam = "";
if( $editTemplate )
{
$Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename,template FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($editTemplate));
if( !$Template )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "editTemplate" => $editTemplate );
$aaaaht = $Template["templatename"];
addbreadcrumb(array( $Template["templatename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageTemplates&editTemplate=" . $editTemplate ));
}
else
{
addbreadcrumb(array( get_phrase("theme_manage_create_new_template") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageTemplates&newTemplate=1" ));
}
if( isset($_POST["Template"]) )
{
$Template = $_POST["Template"];
if( !$Template["templatename"] || !$Template["template"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( $Template["templatename"] && (!$editTemplate || $editTemplate && $aaaaht != $Template["templatename"]) )
{
$checkTemplate = $TSUE["TSUE_Database"]->query_result("SELECT templatename FROM tsue_templates WHERE templatename = " . $TSUE["TSUE_Database"]->escape($Template["templatename"]) . " AND themeid = " . $TSUE["TSUE_Database"]->escape($themeid));
if( $checkTemplate )
{
$formErrors[] = get_phrase("theme_manager_template_name_alt");
}
}
if( !isset($formErrors) )
{
$buildQuery = array( "themeid" => $themeid, "templatename" => $Template["templatename"], "template" => $Template["template"], "last_updated" => TIMENOW );
if( $editTemplate )
{
$TSUE["TSUE_Database"]->update("tsue_templates", $buildQuery, "templateid=" . $TSUE["TSUE_Database"]->escape($editTemplate));
}
else
{
$buildQuery["orj_template"] = $buildQuery["template"];
$TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery);
$aaaahu = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("theme_manager_template_updated", $Template["templatename"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
if( !$editTemplate )
{
header("Location: ?action=" . $TSUE["action"] . "&do=Themes&themeid=" . $themeid . "&type=manageTemplates&editTemplate=" . $aaaahu . "&created=1");
exit();
}
$Templates = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Template[templatename]", $Template["templatename"], "text");
$formContents = aaaaan(get_phrase("theme_manager_template_name"), $inputbox, get_phrase("theme_manager_template_name_alt"));
$inputbox = textarea("Template[template]", $Template["template"], false, "templateTextarea");
$formContents .= aaaaan(get_phrase("theme_manager_template_html"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$tableContents = "";
while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) )
{
$aaaahv = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&deleteTemplate=" . $Template["templateid"] . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")) => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaahw = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&editTemplate=" . $Template["templateid"] => array( "phrase" => $Template["templatename"] ) ));
$aaaahx = "";
if( $Template["template"] != $Template["orj_template"] )
{
$aaaahx = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&revertTemplate=" . $Template["templateid"] => array( "phrase" => get_phrase("revert") ) ));
}
$last_updated = convert_relative_time($Template["last_updated"]);
$size = friendly_size(strlen($Template["template"]));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaahv . " " . $aaaahw . "<span class=\"smallPassiveText\">" . get_phrase("torrents_peer_last_updated") . ": " . $last_updated . " (" . $size . ")</span>" ), array( "width" => "15%", "text" => "<span class=\"revertTemplate\">" . $aaaahx . "</span>", "align" => "right" ) ));
}
$aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_search_in_templates_keywords"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("theme_manager_search_in_templates"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageTemplates&search=1");
$aaaahz = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&newTemplate=1" => array( "phrase" => get_phrase("theme_manage_create_new_template") ) ));
$HTML .= "\r\n\t\t<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">\r\n\t\t\t" . createtable(get_phrase("theme_manager_manage_templates") . " (" . $Theme["themename"] . ")", $tableContents, 2, $aaaahz) . "\r\n\t\t</div>";
return $HTML;
}
if( $type == "manageStyles" && $themeid )
{
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid));
if( !$Theme )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( get_phrase("theme_manager_manage_styles") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageStyles" ));
if( $searchPhrase )
{
$WHERE = " AND (stylename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%' OR css LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%')";
}
if( $revertStyle )
{
/*$Style = $TSUE["TSUE_Database"]->query_result("SELECT stylename FROM tsue_styles WHERE styleid = " . $TSUE["TSUE_Database"]->escape($revertStyle));
if( !$Style )
{
return errormessage(get_phrase("message_content_error"));
}
$BuildQuery = array( "css" => array( "escape" => 0, "value" => "orj_css" ) );
$TSUE["TSUE_Database"]->update("tsue_styles", $BuildQuery, "styleid = " . $TSUE["TSUE_Database"]->escape($revertStyle));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);*/
}
$Styles = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE . " ORDER BY last_updated DESC");
if( !$TSUE["TSUE_Database"]->num_rows($Styles) )
{
return errormessage(get_phrase("message_content_error"));
}
if( $editStyle || $newStyle )
{
$Style = array( "stylename" => "", "css" => "" );
$aaaaam = "";
if( $editStyle )
{
$Style = $TSUE["TSUE_Database"]->query_result("SELECT stylename,css FROM tsue_styles WHERE styleid = " . $TSUE["TSUE_Database"]->escape($editStyle));
if( !$Style )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "editStyle" => $editStyle );
$aaaaia = $Style["stylename"];
addbreadcrumb(array( $Style["stylename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageStyles&editStyle=" . $editStyle ));
}
else
{
addbreadcrumb(array( get_phrase("theme_manage_create_new_style") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageStyles&newStyle=1" ));
}
if( isset($_POST["Style"]) )
{
$Style = $_POST["Style"];
if( !$Style["stylename"] || !$Style["css"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( $Style["stylename"] && (!$editStyle || $editStyle && $aaaaia != $Style["stylename"]) )
{
$checkStyle = $TSUE["TSUE_Database"]->query_result("SELECT stylename FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . " AND stylename = " . $TSUE["TSUE_Database"]->escape($Style["stylename"]));
if( $checkStyle )
{
$formErrors[] = get_phrase("theme_manager_style_name_alt");
}
}
if( !isset($formErrors) )
{
$buildQuery = array( "stylename" => $Style["stylename"], "themeid" => $themeid, "css" => $Style["css"], "last_updated" => TIMENOW );
if( $editStyle )
{
$TSUE["TSUE_Database"]->update("tsue_styles", $buildQuery, "styleid=" . $TSUE["TSUE_Database"]->escape($editStyle));
}
else
{
$buildQuery["orj_css"] = $buildQuery["css"];
$TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery);
}
logadminaction(get_phrase("theme_manager_style_updated", $Style["stylename"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$Styles = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
$inputbox = inputbox("Style[stylename]", $Style["stylename"], "text");
$formContents = aaaaan(get_phrase("theme_manager_style_name"), $inputbox, get_phrase("theme_manager_style_name_alt"));
$inputbox = textarea("Style[css]", $Style["css"], false, "templateTextarea");
$formContents .= aaaaan(get_phrase("theme_manager_style_css"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
$tableContents = "";
while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) )
{
$aaaaib = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&editStyle=" . $Style["styleid"] => array( "phrase" => $Style["stylename"] ) ));
$aaaahx = "";
if( $Style["css"] != $Style["orj_css"] )
{
$aaaahx = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&revertStyle=" . $Style["styleid"] => array( "phrase" => get_phrase("revert") ) ));
}
$last_updated = convert_relative_time($Style["last_updated"]);
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaaib . "<span class=\"smallPassiveText\">" . get_phrase("torrents_peer_last_updated") . ": " . $last_updated . "</span>" ), array( "width" => "15%", "text" => "<span class=\"revertTemplate\">" . $aaaahx . "</span>", "align" => "right" ) ));
}
$aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_search_in_templates_keywords"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("theme_manager_search_in_styles"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageStyles&search=1");
$aaaaic = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&newStyle=1" => array( "phrase" => get_phrase("theme_manage_create_new_style") ) ));
$HTML .= "\r\n\t\t<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">\r\n\t\t\t" . createtable(get_phrase("theme_manager_manage_styles") . " (" . $Theme["themename"] . ")", $tableContents, 2, $aaaaic) . "\r\n\t\t</div>";
return $HTML;
}
if( $delete )
{
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Theme )
{
if( !$TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid != " . $TSUE["TSUE_Database"]->escape($delete) . " AND active = 1") )
{
return errormessage(get_phrase("you_cant_delete_disable_this_theme"));
}
$TSUE["TSUE_Database"]->delete("tsue_themes", "themeid = " . $TSUE["TSUE_Database"]->escape($delete));
$TSUE["TSUE_Database"]->delete("tsue_templates", "themeid = " . $TSUE["TSUE_Database"]->escape($delete));
$TSUE["TSUE_Database"]->delete("tsue_styles", "themeid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("theme_manager_theme_deleted", $Theme["themename"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $edit || $new )
{
$Theme = array( "themename" => "", "viewpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename, viewpermissions FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Theme )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$aaaaid = $Theme["themename"];
if( $Theme["viewpermissions"] )
{
$Theme["viewpermissions"] = unserialize($Theme["viewpermissions"]);
}
else
{
$Theme["viewpermissions"] = array( );
}
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("theme_manager_create_new_theme") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Theme"]) )
{
$Theme = $_POST["Theme"];
if( !isset($Theme["viewpermissions"]) )
{
$Theme["viewpermissions"] = array( );
}
if( !$Theme["themename"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
if( !$edit || $edit && $aaaaid != $Theme["themename"] )
{
$checkTheme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themename = " . $TSUE["TSUE_Database"]->escape($Theme["themename"]));
if( $checkTheme )
{
$formErrors[] = get_phrase("theme_manager_theme_name_alt");
}
}
}
if( !is_dir(STYLEPATH . $Theme["themename"]) )
{
$formErrors[] = get_phrase("theme_manager_theme_folder_error", (DEMO_MODE ? "" : STYLEPATH));
}
if( !isset($formErrors) )
{
$buildQuery = array( "themename" => $Theme["themename"] );
if( $Theme["viewpermissions"] )
{
$buildQuery["viewpermissions"] = serialize($Theme["viewpermissions"]);
}
else
{
$buildQuery["viewpermissions"] = "";
}
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_themes", $buildQuery, "themeid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_themes", $buildQuery);
$aaaaie = $TSUE["TSUE_Database"]->insert_id();
$defaultThemeID = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"];
if( $aaaaie && $defaultThemeID )
{
$allTemplates = $TSUE["TSUE_Database"]->query("SELECT templatename, template, last_updated, orj_template FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($defaultThemeID));
if( $TSUE["TSUE_Database"]->num_rows($allTemplates) )
{
while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($allTemplates) )
{
$buildQuery = array( "themeid" => $aaaaie, "templatename" => $Template["templatename"], "template" => $Template["template"], "last_updated" => $Template["last_updated"], "orj_template" => $Template["orj_template"] );
$TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery);
}
}
$allStyles = $TSUE["TSUE_Database"]->query("SELECT stylename, css, last_updated, orj_css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($defaultThemeID));
if( $TSUE["TSUE_Database"]->num_rows($allStyles) )
{
while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($allStyles) )
{
$buildQuery = array( "themeid" => $aaaaie, "stylename" => $Style["stylename"], "css" => $Style["css"], "last_updated" => $Style["last_updated"], "orj_css" => $Style["orj_css"] );
$TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery);
}
}
}
}
logadminaction(get_phrase("theme_manager_theme_updated", $Theme["themename"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Theme[themename]", $Theme["themename"], "text texthalf");
$formContents = aaaaan(get_phrase("theme_manager_theme_name"), $inputbox, get_phrase("theme_manager_theme_name_alt"));
$Usergroups = aaaaaw("Theme[viewpermissions][]", $Theme["viewpermissions"]);
$formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Query = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Query )
{
if( !$TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid != " . $TSUE["TSUE_Database"]->escape($enable_disable) . " AND active = 1") )
{
return errormessage(get_phrase("you_cant_delete_disable_this_theme"));
}
$TSUE["TSUE_Database"]->update("tsue_themes", $BuildQuery, "themeid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("theme_manager_theme_updated", $Query["themename"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
$Themes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_themes ORDER BY active DESC, themename ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Themes) )
{
$tableContents = errormessage(get_phrase("theme_manager_no_theme"));
}
else
{
$tableContents = "";
while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) )
{
$linkClass = (!$Theme["active"] ? "linkDisabled" : "");
$aaaaif = aaaaae(array( "edit=" . $Theme["themeid"] => array( "phrase" => $Theme["themename"], "class" => $linkClass ) ));
$aaaaig = aaaaae(array( "themeid=" . $Theme["themeid"] . "&type=manageTemplates" => array( "phrase" => getimage("buttons/managetemplates.png", get_phrase("theme_manager_manage_templates")) ) ));
$aaaaih = aaaaae(array( "export=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/save.png", get_phrase("button_export")), "target" => "_blank" ) ));
$aaaaii = aaaaae(array( "themeid=" . $Theme["themeid"] . "&type=manageStyles" => array( "phrase" => getimage("buttons/managestyles.png", get_phrase("theme_manager_manage_styles")) ) ));
$aaaaij = aaaaae(array( "delete=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Theme["active"] )
{
$aaaaik = aaaaae(array( "enable_disable=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaaik = aaaaae(array( "enable_disable=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "70%", "text" => $aaaaif . ((DEMO_MODE ? "" : "<span class=\"smallPassiveText\">" . get_phrase("theme_manager_themepath", STYLEPATH . $Theme["themename"]) . "</span>")) ), array( "width" => "30%", "text" => $aaaaik . $aaaaig . $aaaaii . $aaaaih . $aaaaij, "align" => "right" ) ));
}
}
$aaaail = aaaaae(array( "new=1" => array( "phrase" => get_phrase("theme_manager_create_new_theme") ) ));
$aaaaim = aaaaae(array( "import=1" => array( "phrase" => get_phrase("import_a_theme") ) ));
$HTML .= createtable(get_phrase("theme_manager_themes_alt"), $tableContents, 2, $aaaail . " - " . $aaaaim);
return $HTML;
}
function handlelanguages()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$enable_disable = intval(getvar("enable_disable"));
$languageid = intval(getvar("languageid"));
$type = trim(getvar("type"));
$import = intval(getvar("import"));
$examine = intval(getvar("examine"));
$fixMissing = intval(getvar("fixMissing"));
$searchPhrase = trim(getvar("searchPhrase", "", false));
if( $delete )
{
checkdemomode();
$Language = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Language )
{
if( !$TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($delete) . " AND active = 1") )
{
return errormessage(get_phrase("you_cant_delete_disable_this_language"));
}
$TSUE["TSUE_Database"]->delete("tsue_languages", "languageid = " . $TSUE["TSUE_Database"]->escape($delete));
if( file_exists(DATAPATH . "languageFlags/" . $delete . ".png") )
{
@unlink(DATAPATH . "languageFlags/" . $delete . ".png");
}
logadminaction(get_phrase("theme_manager_language_deleted", $Language["title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $edit || $new )
{
$Language = array( "title" => "", "content_language" => "", "charset" => "", "date_format" => "", "time_format" => "" );
$aaaaam = "";
if( $edit )
{
$Language = $TSUE["TSUE_Database"]->query_result("SELECT title,content_language,charset,date_format,time_format FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Language )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]);
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Language["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("theme_manager_create_new_language") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Language"]) )
{
checkdemomode();
$Language = $_POST["Language"];
$Flag = $_FILES["flag"];
if( !$Language["title"] || !$Language["content_language"] || !$Language["charset"] || !$Language["date_format"] || !$Language["date_format"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
$TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]);
}
if( !$Flag )
{
$flagErrors[] = get_phrase("upload_error3");
}
else
{
if( !is_uploaded_file($Flag["tmp_name"]) )
{
$flagError[] = get_phrase("upload_error3");
}
else
{
if( !$Flag["name"] || !$Flag["type"] || !$Flag["tmp_name"] || $Flag["error"] || !$Flag["size"] )
{
$flagError[] = get_phrase("upload_error3");
}
else
{
if( !in_array(file_extension($Flag["name"]), array( "png" )) )
{
$flagError[] = get_phrase("upload_error6", "png");
}
else
{
$newFlag = $Flag["tmp_name"];
}
}
}
}
if( isset($flagError) && !$edit )
{
$formErrors = array_merge($formErrors, $flagError);
unset($flagError);
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $Language["title"], "content_language" => $Language["content_language"], "charset" => $Language["charset"], "date_format" => $Language["date_format"], "time_format" => $Language["time_format"] );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid=" . $TSUE["TSUE_Database"]->escape($edit));
$flagID = $edit;
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_languages", $buildQuery);
$flagID = $TSUE["TSUE_Database"]->insert_id();
$newLanguageID = $flagID;
$defaultLanguageID = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"];
if( $newLanguageID && $defaultLanguageID )
{
$phraseGlobal = $TSUE["TSUE_Database"]->query_result("SELECT phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($defaultLanguageID));
if( $phraseGlobal )
{
$buildQuery = array( "phrase_global" => $phraseGlobal["phrase_global"] );
$TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($newLanguageID));
}
}
}
if( isset($newFlag) && $flagID )
{
@move_uploaded_file($newFlag, DATAPATH . "languageFlags/" . $flagID . ".png");
}
logadminaction(get_phrase("theme_manager_language_updated", $Language["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Language[title]", $Language["title"], "text texthalf");
$formContents = aaaaan(get_phrase("theme_manager_language_title"), $inputbox);
$inputbox = inputbox("Language[content_language]", $Language["content_language"], "text texthalf");
$formContents .= aaaaan(get_phrase("theme_manager_content_language"), $inputbox, get_phrase("theme_manager_content_language_alt"));
$inputbox = inputbox("Language[charset]", $Language["charset"], "text texthalf");
$formContents .= aaaaan(get_phrase("theme_manager_language_charset"), $inputbox);
$inputbox = inputbox("Language[date_format]", $Language["date_format"], "text texthalf");
$formContents .= aaaaan(get_phrase("theme_manager_language_date_format"), $inputbox, get_phrase("theme_manager_language_date_time_help"));
$inputbox = inputbox("Language[time_format]", $Language["time_format"], "text texthalf");
$formContents .= aaaaan(get_phrase("theme_manager_language_time_format"), $inputbox, get_phrase("theme_manager_language_date_time_help"));
$aaaacr = aaaacs("flag");
$formContents .= aaaaan(get_phrase("theme_manager_language_flag"), $aaaacr, ($edit ? get_phrase("theme_manager_language_flag_alt") : ""));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $type == "deletePhrase" )
{
$aaaain = trim(getvar("text"));
if( !$aaaain )
{
return errormessage(get_phrase("message_content_error"));
}
$checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
if( !$checkPhrase )
{
return errormessage(get_phrase("message_content_error"));
}
$phraseGlobal = unserialize($checkPhrase["phrase_global"]);
if( !isset($phraseGlobal[$aaaain]) )
{
return errormessage(get_phrase("message_content_error"));
}
unset($phraseGlobal[$aaaain]);
$phraseGlobal = serialize($phraseGlobal);
$BuildQuery = array( "phrase_global" => $phraseGlobal );
$TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $languageid);
if( $TSUE["TSUE_Database"]->affected_rows() )
{
logadminaction(get_phrase("theme_manager_language_updated", $checkPhrase["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$type = "phraseList";
}
else
{
return errormessage(get_phrase("database_error"));
}
}
if( $type == "editPhrase" || $type == "newPhrase" )
{
addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=phraseList&languageid=" . $languageid ));
$text = trim(getvar("text"));
if( !$text && $type == "editPhrase" )
{
return errormessage(get_phrase("message_content_error"));
}
$checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, charset, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
if( !$checkPhrase )
{
return errormessage(get_phrase("message_content_error"));
}
$TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]);
$phrase = unserialize($checkPhrase["phrase_global"]);
if( $type == "editPhrase" && !isset($phrase[$text]) )
{
return errormessage(get_phrase("message_content_error"));
}
if( isset($_POST["Phrase"]) )
{
$_POST["Phrase"]["title"] = trim($_POST["Phrase"]["title"]);
if( $type == "newPhrase" && isset($phrase[$_POST["Phrase"]["title"]]) )
{
return errormessage(get_phrase("theme_manager_phrase_title_alt"));
}
if( !$_POST["Phrase"]["title"] || !aaaaio($_POST["Phrase"]["title"]) )
{
return errormessage(get_phrase("theme_manager_phrase_title_error"));
}
$phrase[$_POST["Phrase"]["title"]] = trim($_POST["Phrase"]["text"]);
$phrase = serialize($phrase);
$BuildQuery = array( "phrase_global" => $phrase );
$TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $languageid);
if( $TSUE["TSUE_Database"]->affected_rows() )
{
$aaaaip = $TSUE["TSUE_Database"]->query("SELECT languageid, phrase_global FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($languageid));
if( $TSUE["TSUE_Database"]->num_rows($aaaaip) )
{
while( $aaaaiq = $TSUE["TSUE_Database"]->fetch_assoc($aaaaip) )
{
$aaaair = unserialize($aaaaiq["phrase_global"]);
if( !isset($aaaair[$_POST["Phrase"]["title"]]) )
{
$aaaair[$_POST["Phrase"]["title"]] = trim($_POST["Phrase"]["text"]);
$BuildQuery = array( "phrase_global" => serialize($aaaair) );
$TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $aaaaiq["languageid"]);
}
}
}
logadminaction(get_phrase("theme_manager_language_updated", $checkPhrase["title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$aaaais = true;
$type = "phraseList";
}
else
{
return errormessage(get_phrase("database_error"));
}
}
if( !isset($aaaais) )
{
$aaaaam = array( "type" => $type, "languageid" => $languageid, "text" => $text );
$inputbox = inputbox("Phrase[title]", $text, "text");
$formContents = aaaaan(get_phrase("theme_manager_phrase_title"), $inputbox, get_phrase("theme_manager_phrase_title_alt"));
$inputbox = textarea("Phrase[text]", (isset($phrase[$text]) ? $phrase[$text] : ""), false, "phraseTextarea");
$formContents .= aaaaan(get_phrase("theme_manager_phrase_text"), $inputbox, get_phrase("theme_manager_phrase_text_alt"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $type == "phraseList" )
{
$page = intval(getvar("page"));
addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=phraseList&languageid=" . $languageid ));
$checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, charset, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
if( !$checkPhrase )
{
return errormessage(get_phrase("message_content_error"));
}
$TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]);
$phrase_global = unserialize($checkPhrase["phrase_global"]);
if( !isset($_GET["noSort"]) )
{
ksort($phrase_global);
}
$aaaait = array( );
foreach( $phrase_global as $name => $value )
{
if( $searchPhrase )
{
if( stristr($name, $searchPhrase) !== false || stristr($value, $searchPhrase) !== false )
{
$aaaait[] = array( "name" => trim($name), "value" => trim($value) );
}
}
else
{
$aaaait[] = array( "name" => trim($name), "value" => trim($value) );
}
}
unset($phrase_global);
if( $aaaait )
{
$pages = array_chunk($aaaait, $TSUE["array_items_perpage"]);
$countPages = count($aaaait);
$Pagination = pagination($countPages, "type=" . $type . "&languageid=" . $languageid . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")), 3, $TSUE["array_items_perpage"], true);
unset($aaaait);
$tableContents = "";
foreach( $pages[$page] as $Phrase )
{
$aaaaiu = aaaaae(array( "type=editPhrase&languageid=" . $languageid . "&text=" . $Phrase["name"] => array( "phrase" => $Phrase["name"] ) ));
$aaaaiv = aaaaae(array( "type=deletePhrase&languageid=" . $languageid . "&text=" . $Phrase["name"] . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")) => array( "phrase" => "[x]", "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => $aaaaiv . " " . $aaaaiu . " <span class=\"smallPassiveText\">" . htmlspecialchars($Phrase["value"]) . "</span>" ) ));
}
}
else
{
$Pagination["0"] = "";
$Pagination["1"] = "";
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("theme_manager_search_phrases_no_result") ) ));
}
$aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_phrase_text"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("theme_manager_search_phrases"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=" . $type . "&languageid=" . $languageid);
$aaaaiw = aaaaae(array( "type=newPhrase&languageid=" . $languageid => array( "phrase" => get_phrase("theme_manager_phrase_new") ) ));
$HTML .= "\r\n\t\t<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">\r\n\t\t\t" . createtable(get_phrase("theme_manager_language_phrases") . ": " . $checkPhrase["title"] . " (" . $aaaaiw . ")", $tableContents, 1, $Pagination["1"]) . "\r\n\t\t</div>";
return $HTML;
}
else
{
if( $type == "export" )
{
addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=phraseList&languageid=" . $languageid ));
$checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
if( !$checkPhrase )
{
return errormessage(get_phrase("message_content_error"));
}
$TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]);
$fileName = "language-" . $checkPhrase["title"] . "-" . $checkPhrase["content_language"] . ".txt";
$phraseGlobal = unserialize($checkPhrase["phrase_global"]);
$phraseList = PHP_EOL;
foreach( $phraseGlobal as $aaaain => $aaaaix )
{
$phraseList .= "[PHRASE][PHRASE_TITLE]" . $aaaain . "[/PHRASE_TITLE][PHRASE_CONTENT]" . $aaaaix . "[/PHRASE_CONTENT][/PHRASE]" . PHP_EOL . PHP_EOL;
}
$Contents = "[TITLE]" . $checkPhrase["title"] . "[/TITLE]" . PHP_EOL . "[CONTENT_LANGUAGE]" . $checkPhrase["content_language"] . "[/CONTENT_LANGUAGE]" . PHP_EOL . "[CHARSET]" . $checkPhrase["charset"] . "[/CHARSET]" . PHP_EOL . "[DATE_FORMAT]" . $checkPhrase["date_format"] . "[/DATE_FORMAT]" . PHP_EOL . "[TIME_FORMAT]" . $checkPhrase["time_format"] . "[/TIME_FORMAT]" . PHP_EOL . $phraseList;
downloadfile(NULL, $fileName, $Contents);
exit();
}
else
{
if( $import )
{
checkdemomode();
addbreadcrumb(array( get_phrase("theme_manager_import") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&import=1" ));
if( isset($_FILES["language"]) )
{
$Language = $_FILES["language"];
if( !$Language["size"] || $Language["error"] )
{
$formErrors[] = get_phrase("theme_manager_import_valid_file");
}
else
{
if( file_extension($Language["name"]) != "txt" )
{
$formErrors[] = get_phrase("upload_error6", "txt");
}
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$Language = file_get_contents($Language["tmp_name"]);
if( !$Language )
{
$formErrors[] = get_phrase("theme_manager_import_valid_file");
}
else
{
preg_match("#\\[TITLE\\](.*?)\\[\\/TITLE\\]#esi", $Language, $Title);
$Title = (isset($Title["1"]) && $Title["1"] ? $Title["1"] : "");
preg_match("#\\[CONTENT_LANGUAGE\\](.*?)\\[\\/CONTENT_LANGUAGE\\]#esi", $Language, $contentLanguage);
$contentLanguage = (isset($contentLanguage["1"]) && $contentLanguage["1"] ? $contentLanguage["1"] : "");
preg_match("#\\[CHARSET\\](.*?)\\[\\/CHARSET\\]#esi", $Language, $Charset);
$Charset = (isset($Charset["1"]) && $Charset["1"] ? $Charset["1"] : "");
preg_match("#\\[DATE_FORMAT\\](.*?)\\[\\/DATE_FORMAT\\]#esi", $Language, $dateFormat);
$dateFormat = (isset($dateFormat["1"]) && $dateFormat["1"] ? $dateFormat["1"] : "");
preg_match("#\\[TIME_FORMAT\\](.*?)\\[\\/TIME_FORMAT\\]#esi", $Language, $timeFormat);
$timeFormat = (isset($timeFormat["1"]) && $timeFormat["1"] ? $timeFormat["1"] : "");
$phraseGlobal = array( );
preg_match_all("#\\[PHRASE\\](.*?)\\[\\/PHRASE\\]#esi", $Language, $PHRASES);
foreach( $PHRASES["1"] as $PHRASE )
{
preg_match("#\\[PHRASE_TITLE\\](.*?)\\[\\/PHRASE_TITLE\\]#esi", $PHRASE, $aaaain);
preg_match("#\\[PHRASE_CONTENT\\](.*?)\\[\\/PHRASE_CONTENT\\]#esi", $PHRASE, $aaaaix);
$phraseGlobal[$aaaain["1"]] = $aaaaix["1"];
}
$aaaaiy = $TSUE["TSUE_Database"]->query_result("SELECT phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"]));
$aaaaiy = unserialize($aaaaiy["phrase_global"]);
$aaaaiz = array( );
foreach( $aaaaiy as $aaaain => $phraseValue )
{
if( !isset($phraseGlobal[$aaaain]) )
{
$aaaaiz[$aaaain] = $phraseValue;
}
}
if( $aaaaiz )
{
$phraseGlobal = array_merge($phraseGlobal, $aaaaiz);
}
$buildQuery = array( "title" => $Title, "content_language" => $contentLanguage, "charset" => $Charset, "date_format" => $dateFormat, "time_format" => $timeFormat, "phrase_global" => serialize($phraseGlobal) );
$TSUE["TSUE_Database"]->insert("tsue_languages", $buildQuery);
$newLanguageID = $TSUE["TSUE_Database"]->insert_id();
logadminaction(get_phrase("theme_manager_language_imported", $Title));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=Languages&edit=" . $newLanguageID);
exit();
}
}
}
$aaaacr = aaaacs("language");
$formContents = aaaaan(get_phrase("theme_manager_import_from_uploaded_file"), $aaaacr);
$HTML .= aaaabg($formContents);
return $HTML;
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Query = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Query )
{
if( !$TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($enable_disable) . " AND active = 1") )
{
return errormessage(get_phrase("you_cant_delete_disable_this_language"));
}
$TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("theme_manager_language_updated", $Query["title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $examine )
{
$aaaaja = $TSUE["TSUE_Database"]->query_result("SELECT title, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($examine));
if( !$aaaaja )
{
return errormessage(get_phrase("message_content_error"));
}
addbreadcrumb(array( get_phrase("examine_this_language") . " (" . $aaaaja["title"] . ")" => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&examine=" . $examine ));
$aaaajb = @unserialize($aaaaja["phrase_global"]);
$aaaajc = array( );
$aaaaiz = array( );
$orjPhrases = @unserialize(@trim(@file_get_contents("oops")));
if( !$orjPhrases )
{
return errormessage(get_phrase("unable_fetch_orj_language"));
}
foreach( $orjPhrases as $phraseName => $phraseValue )
{
if( !isset($aaaajb[$phraseName]) )
{
$aaaaiz[$phraseName] = $phraseValue;
}
}
foreach( $aaaajb as $phraseName => $phraseValue )
{
if( !isset($orjPhrases[$phraseName]) )
{
$aaaajc[$phraseName] = $phraseValue;
}
}
if( empty($aaaajc) && empty($aaaaiz) )
{
return successmessage(get_phrase("language_x_is_valid", $aaaaja["title"]));
}
$Output = "";
if( $fixMissing )
{
foreach( $aaaaiz as $phraseName => $phraseValue )
{
$aaaajb[$phraseName] = $phraseValue;
}
$buildQuery = array( "phrase_global" => serialize($aaaajb) );
$TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($examine));
$Status = get_phrase("missing_phrases_for_x_has_been_fixed", $aaaaja["title"]);
logadminaction($Status);
handlerebuildcaches(false);
handleprune(false);
return successmessage($Status);
}
else
{
if( !empty($aaaajc) )
{
$tableContents = "";
foreach( $aaaajc as $phraseName => $phraseValue )
{
$tableContents .= aaaaag(array( array( "width" => "30%", "text" => $phraseName ), array( "width" => "70%", "text" => htmlspecialchars($phraseValue) ) ));
}
$Output .= createtable(get_phrase("following_phrases_are_outdated"), $tableContents, 2);
}
if( !empty($aaaaiz) )
{
$tableContents = "";
foreach( $aaaaiz as $phraseName => $phraseValue )
{
$tableContents .= aaaaag(array( array( "width" => "30%", "text" => $phraseName ), array( "width" => "70%", "text" => htmlspecialchars($phraseValue) ) ));
}
if( $Output )
{
$Output .= "<br />";
}
$aaaajd = aaaaae(array( "examine=" . $examine . "&fixMissing=1" => array( "phrase" => get_phrase("fix_missing_phrases") ) ));
$Output .= createtable(get_phrase("following_phrases_are_missing"), $tableContents, 2, $aaaajd);
}
return $Output;
}
}
else
{
$Languages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_languages ORDER BY active DESC, title ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Languages) )
{
$tableContents = errormessage(get_phrase("theme_manager_no_language"));
}
else
{
$tableContents = "";
while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
{
$linkClass = (!$Language["active"] ? "linkDisabled" : "");
$aaaaje = aaaaae(array( "edit=" . $Language["languageid"] => array( "phrase" => $Language["title"], "class" => $linkClass ) ));
$aaaajf = aaaaae(array( "delete=" . $Language["languageid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaajg = aaaaae(array( "type=phraseList&languageid=" . $Language["languageid"] => array( "phrase" => getimage("buttons/phrases.png", get_phrase("theme_manager_language_phrases")) ) ));
$aaaajh = aaaaae(array( "type=export&languageid=" . $Language["languageid"] => array( "phrase" => getimage("buttons/save.png", get_phrase("button_export")), "target" => "_blank" ) ));
$aaaaji = aaaaae(array( "examine=" . $Language["languageid"] => array( "phrase" => getimage("buttons/examine.png", get_phrase("examine_this_language")) ) ));
if( $Language["active"] )
{
$aaaajj = aaaaae(array( "enable_disable=" . $Language["languageid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaajj = aaaaae(array( "enable_disable=" . $Language["languageid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "70%", "text" => aaaajk($Language["languageid"]) . " " . $aaaaje . "<span class=\"smallPassiveText\">" . $Language["charset"] . "</span>" ), array( "width" => "30%", "align" => "right", "text" => $aaaajg . $aaaaji . $aaaajh . $aaaajj . $aaaajf ) ));
}
}
$aaaajl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("theme_manager_create_new_language") ) ));
$aaaajm = aaaaae(array( "import=1" => array( "phrase" => get_phrase("theme_manager_import") ) ));
$HTML .= createtable(get_phrase("theme_manager_themes_alt"), $tableContents, 2, $aaaajl . " - " . $aaaajm);
return $HTML;
}
}
}
}
function handleuploadtorrent()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$createNewField = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_field") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$enable_disable = intval(getvar("enable_disable"));
$htmlCode = intval(getvar("htmlCode"));
$aaaajn = array( 1 => get_phrase("torrent_details"), 2 => get_phrase("torrent_options"), 3 => get_phrase("torrent_file"), 4 => get_phrase("torrent_finish_upload") );
$aaaajo = array( 1 => "Input Text", 2 => "Textarea", 3 => "Selectbox", 4 => "Input Checkbox(es)", 5 => "Input Radio Button(s)" );
if( $htmlCode )
{
$Field = $TSUE["TSUE_Database"]->query_result("SELECT title,name FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($htmlCode));
if( !$Field )
{
return errormessage(get_phrase("message_content_error"));
}
exit( "<div style=\"font-weight: bold; font-size: 14px;\">" . get_phrase("generate_html_code") . ": " . $Field["title"] . "</div>\r\n\t\t<div style=\"border-bottom: 1px solid #ddd; font-size: 12px; padding-bottom: 2px; margin-bottom: 2px;\">" . get_phrase("generated_html_code_tip") . "</div>\r\n\t\t" . highlight_string("{\$Torrent['" . $Field["name"] . "']}", true) );
}
if( $new || $edit )
{
checkdemomode();
$Field = array( "area" => 1, "title" => "", "name" => "", "type" => 1, "default_value" => "", "tip_phrase" => "", "active" => 1, "display_order" => 0 );
$aaaaam = "";
if( $edit )
{
$Field = $TSUE["TSUE_Database"]->query_result("SELECT field_id, area, title, name, type, default_value, tip_phrase, active, display_order FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Field )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$aaaajp = $Field["name"];
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Field["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_new_field") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Field"]) )
{
$Field = $_POST["Field"];
if( !$Field["title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$Field["name"] )
{
$formErrors[] = get_phrase("you_must_enter_unique_field_name");
}
else
{
if( !preg_match("#^[a-zA-Z0-9\\_]+\$#", $Field["name"]) )
{
$formErrors[] = get_phrase("invalid_field_name");
}
else
{
if( !$edit && $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) || $edit && $aaaajp != $Field["name"] && $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) )
{
$formErrors[] = get_phrase("you_must_enter_unique_field_name");
}
else
{
$checkFieldName = $TSUE["TSUE_Database"]->query_result("SELECT field_id FROM tsue_torrents_upload_extra_fields WHERE name = " . $TSUE["TSUE_Database"]->escape($Field["name"]) . (($edit ? " AND field_id != " . $TSUE["TSUE_Database"]->escape($edit) : "")));
if( $checkFieldName )
{
$formErrors[] = get_phrase("you_must_enter_unique_field_name");
}
}
}
}
if( !isset($aaaajn[$Field["area"]]) )
{
$formErrors[] = get_phrase("field_area_error");
}
if( !isset($aaaajo[$Field["type"]]) )
{
$formErrors[] = get_phrase("field_type_error");
}
if( in_array($Field["type"], array( 3, 4, 5 )) && !$Field["default_value"] )
{
$formErrors[] = get_phrase("field_default_value_error");
}
if( $Field["tip_phrase"] && !$TSUE["TSUE_Language"]["phrase"][$Field["tip_phrase"]] )
{
$formErrors[] = get_phrase("the_specific_phrase_x_does_not_exists", $Field["tip_phrase"]);
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$buildQuery = array( "area" => $Field["area"], "title" => $Field["title"], "name" => strtolower($Field["name"]), "type" => $Field["type"], "default_value" => $Field["default_value"], "tip_phrase" => $Field["tip_phrase"], "active" => $Field["active"], "display_order" => $Field["display_order"] );
if( $edit )
{
if( $aaaajp != $Field["name"] )
{
if( $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $aaaajp) )
{
$TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` DROP `" . $aaaajp . "`");
}
$TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` ADD `" . $Field["name"] . "` MEDIUMBLOB");
}
$Phrase = get_phrase("new_field_x_updated", $Field["title"]);
$TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", $buildQuery, "field_id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` ADD `" . $Field["name"] . "` MEDIUMBLOB");
$Phrase = get_phrase("new_field_x_updated", $Field["title"]);
$TSUE["TSUE_Database"]->insert("tsue_torrents_upload_extra_fields", $buildQuery);
}
$HTML .= successmessage($Phrase);
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$uploadDone = true;
}
}
if( !isset($uploadDone) )
{
$radioButtons = radioyesno("Field[active]", $Field["active"]);
$formContents = aaaaan(get_phrase("field_is_active"), $radioButtons);
$inputbox = inputbox("Field[title]", $Field["title"]);
$formContents .= aaaaan(get_phrase("field_title"), $inputbox);
$inputbox = inputbox("Field[name]", $Field["name"]);
$formContents .= aaaaan(get_phrase("field_name"), $inputbox);
$selectbox = selectbox("Field[area]", $Field["area"], $aaaajn);
$formContents .= aaaaan(get_phrase("field_area"), $selectbox);
$selectbox = selectbox("Field[type]", $Field["type"], $aaaajo);
$formContents .= aaaaan(get_phrase("field_type"), $selectbox);
$textarea = textarea("Field[default_value]", $Field["default_value"], false, "phraseTextarea textareaHeightNormal");
$formContents .= aaaaan(get_phrase("field_default_values"), $textarea, get_phrase("field_default_values_alt"));
$inputbox = inputbox("Field[tip_phrase]", $Field["tip_phrase"]);
$formContents .= aaaaan(get_phrase("field_tip_phrase"), $inputbox);
$inputbox = inputbox("Field[display_order]", $Field["display_order"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
checkdemomode();
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Field )
{
$TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", $BuildQuery, "field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
$Phrase = get_phrase("new_field_x_updated", $Field["title"] . " (" . $enable_disable . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( $delete )
{
checkdemomode();
$Field = $TSUE["TSUE_Database"]->query_result("SELECT title, name FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Field )
{
$TSUE["TSUE_Database"]->delete("tsue_torrents_upload_extra_fields", "field_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) )
{
$TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` DROP `" . $Field["name"] . "`");
}
$Phrase = get_phrase("field_x_has_been_deleted", $Field["title"] . " (" . $delete . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( !$tableContents )
{
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $field_id => $display_order )
{
$field_id = intval($field_id);
$display_order = intval($display_order);
$TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", array( "display_order" => $display_order ), "field_id=" . $TSUE["TSUE_Database"]->escape($field_id));
}
$HTML .= successmessage(get_phrase("field_display_options_updated"));
logadminaction(get_phrase("field_display_options_updated"));
handleprune(false);
}
$Fields = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_upload_extra_fields ORDER BY active DESC, display_order ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Fields) )
{
$tableContents = errormessage(get_phrase("message_nothing_found"));
}
else
{
$tableContents = "";
while( $Field = $TSUE["TSUE_Database"]->fetch_assoc($Fields) )
{
$linkClass = (!$Field["active"] ? "linkDisabled" : "");
$aaaajq = aaaaae(array( "edit=" . $Field["field_id"] => array( "phrase" => $Field["title"], "class" => $linkClass ) ));
$aaaajr = aaaaae(array( "delete=" . $Field["field_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Field["active"] )
{
$aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$aaaajt = aaaaae(array( "htmlCode=" . $Field["field_id"] => array( "phrase" => getimage("buttons/generateHTMLcode.png", get_phrase("generate_html_code")), "rel" => $Field["field_id"], "class" => "generateHTMLCode" ) ));
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => $aaaajq . " <span class=\"smallPassiveText\">" . $aaaajn[$Field["area"]] . " - " . $aaaajo[$Field["type"]] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Field["field_id"] . "]", $Field["display_order"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "15%", "text" => $aaaajt . $aaaajs . $aaaajr, "align" => "center" ) ));
}
$tableContents = "\r\n\t\t\t<script type=\"text/javascript\">\r\n\r\n\t\t\t\t\$(document).on(\"click\", \".generateHTMLCode\", function(e)\r\n\t\t\t\t{\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tvar \$field_id = parseInt(\$(this).attr(\"rel\"));\r\n\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t({\r\n\t\t\t\t\t\tmethod: \"POST\",\r\n\t\t\t\t\t\tdata: \"isAjax=1&action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&htmlCode=\"+\$field_id,\r\n\t\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tTSUEAdmin.dialog(response, true, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t</script>" . $tableContents;
}
}
$tableContents .= aaaaag(array( array( "width" => "70%", "text" => NULL ), array( "width" => "30%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
$aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) ));
$HTML .= aaaabn(createtable(get_phrase("navigation_upload_torrent") . " | " . get_phrase("add_extra_fields"), $tableContents, 3, $createNewField));
return $HTML;
}
function handleautodescription()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$createNewField = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_field") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$enable_disable = intval(getvar("enable_disable"));
$aaaaju = "(" . get_phrase("auto_description") . ") ";
$aaaajn = array( 1 => get_phrase("navigation_upload_torrent"), 2 => get_phrase("messages_new_message"), 3 => get_phrase("forums_post_new_thread") );
if( $new || $edit )
{
checkdemomode();
$Field = array( "area" => 1, "title" => "", "default_value" => "", "active" => 1, "display_order" => 0, "viewpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Field = $TSUE["TSUE_Database"]->query_result("SELECT field_id, area, title, default_value, active, display_order, viewpermissions FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Field )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
if( !$Field["viewpermissions"] )
{
$Field["viewpermissions"] = array( );
}
else
{
$Field["viewpermissions"] = unserialize($Field["viewpermissions"]);
}
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Field["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_new_field") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Field"]) )
{
$Field = $_POST["Field"];
if( !$Field["title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !isset($aaaajn[$Field["area"]]) )
{
$formErrors[] = get_phrase("field_area_error");
}
if( !$Field["default_value"] )
{
$formErrors[] = get_phrase("field_default_value_error");
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
if( !isset($Field["viewpermissions"]) || !$Field["viewpermissions"] )
{
$Field["viewpermissions"] = array( );
}
$buildQuery = array( "area" => $Field["area"], "title" => $Field["title"], "default_value" => $Field["default_value"], "active" => $Field["active"], "display_order" => $Field["display_order"], "viewpermissions" => ($Field["viewpermissions"] ? serialize($Field["viewpermissions"]) : "") );
if( $edit )
{
$Phrase = get_phrase("new_field_x_updated", $Field["title"]);
$TSUE["TSUE_Database"]->update("tsue_auto_description", $buildQuery, "field_id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$Phrase = get_phrase("new_field_x_updated", $Field["title"]);
$TSUE["TSUE_Database"]->insert("tsue_auto_description", $buildQuery);
}
$HTML .= successmessage($Phrase);
logadminaction($aaaaju . $Phrase);
handlerebuildcaches(false);
handleprune(false);
$uploadDone = true;
}
}
if( !isset($uploadDone) )
{
$radioButtons = radioyesno("Field[active]", $Field["active"]);
$formContents = aaaaan(get_phrase("field_is_active"), $radioButtons);
$inputbox = inputbox("Field[title]", $Field["title"]);
$formContents .= aaaaan(get_phrase("field_title"), $inputbox);
$selectbox = selectbox("Field[area]", $Field["area"], $aaaajn);
$formContents .= aaaaan(get_phrase("field_area"), $selectbox);
$textarea = textarea("Field[default_value]", $Field["default_value"], false, "phraseTextarea textareaHeightNormal");
$formContents .= aaaaan(get_phrase("field_default_values"), $textarea, get_phrase("field_default_values_alt"));
$inputbox = inputbox("Field[display_order]", $Field["display_order"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
$Usergroups = aaaaaw("Field[viewpermissions][]", $Field["viewpermissions"]);
$formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
checkdemomode();
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Field )
{
$TSUE["TSUE_Database"]->update("tsue_auto_description", $BuildQuery, "field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
$Phrase = get_phrase("new_field_x_updated", $Field["title"] . " (" . $enable_disable . ")");
logadminaction($aaaaju . $Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( $delete )
{
checkdemomode();
$Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Field )
{
$TSUE["TSUE_Database"]->delete("tsue_auto_description", "field_id = " . $TSUE["TSUE_Database"]->escape($delete));
$Phrase = get_phrase("field_x_has_been_deleted", $Field["title"] . " (" . $delete . ")");
logadminaction($aaaaju . $Phrase);
handlerebuildcaches(false);
handleprune(false);
$HTML .= successmessage($Phrase);
}
}
if( !$tableContents )
{
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $field_id => $display_order )
{
$field_id = intval($field_id);
$display_order = intval($display_order);
$TSUE["TSUE_Database"]->update("tsue_auto_description", array( "display_order" => $display_order ), "field_id=" . $TSUE["TSUE_Database"]->escape($field_id));
}
$HTML .= successmessage(get_phrase("field_display_options_updated"));
logadminaction($aaaaju . get_phrase("field_display_options_updated"));
handleprune(false);
}
$Fields = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_auto_description ORDER BY active DESC, display_order ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Fields) )
{
$tableContents = errormessage(get_phrase("message_nothing_found"));
}
else
{
$tableContents = "";
while( $Field = $TSUE["TSUE_Database"]->fetch_assoc($Fields) )
{
$linkClass = (!$Field["active"] ? "linkDisabled" : "");
$aaaajq = aaaaae(array( "edit=" . $Field["field_id"] => array( "phrase" => $Field["title"], "class" => $linkClass ) ));
$aaaajr = aaaaae(array( "delete=" . $Field["field_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Field["active"] )
{
$aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => $aaaajq . " <span class=\"smallPassiveText\">" . $aaaajn[$Field["area"]] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Field["field_id"] . "]", $Field["display_order"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "15%", "text" => $aaaajs . $aaaajr, "align" => "center" ) ));
}
}
}
$tableContents .= aaaaag(array( array( "width" => "70%", "text" => NULL ), array( "width" => "30%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
$aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) ));
$HTML .= aaaabn(createtable(get_phrase("auto_description"), $tableContents, 3, $createNewField));
return $HTML;
}
function aaaaaj($Query = NULL)
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaajv = aaaaae(array( "new=1" => array( "phrase" => get_phrase("members_create_new") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( $delete )
{
$Member = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE memberid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Member )
{
deletemember($delete);
logadminaction(get_phrase("members_member_deleted", $Member["membername"] . " (" . $delete . ")"));
}
}
if( $edit || $new )
{
$Member = array( "membergroupid" => 2, "membername" => "", "password" => "", "passkey" => "", "email" => "", "themeid" => 1, "languageid" => 1, "timezone" => 1, "gender" => "", "visible" => 1, "accountParked" => 0 );
$memberProfile = array( "date_of_birth" => "", "signature" => "", "country" => "", "custom_title" => "", "uploaded" => 0, "downloaded" => 0, "total_posts" => 0, "invites_left" => 0, "points" => 0, "total_warns" => 0, "hitRuns" => 0, "torrent_pass" => "", "torrentStyle" => 1, "defaultTorrentCategories" => "" );
$memberPrivacy = array( "allow_view_profile" => "members", "receive_admin_email" => 1, "receive_pm_email" => 1, "show_your_age" => 1 );
$aaaajw = "";
$defaultEmail = "";
if( $edit )
{
$Member = $TSUE["TSUE_Database"]->query_result("SELECT m.membergroupid, m.membername, m.passkey, m.email, m.themeid, m.languageid, m.timezone, m.gender, m.visible, m.accountParked, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_member_bans b USING(memberid) WHERE m.memberid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Member )
{
return errormessage(get_phrase("member_not_found"));
}
$aaaajw = $Member["membername"];
$defaultEmail = $Member["email"];
$memberProfile = $TSUE["TSUE_Database"]->query_result("SELECT date_of_birth, signature, country, custom_title, uploaded, downloaded, total_posts, invites_left, points, total_warns, hitRuns, torrent_pass, torrentStyle, defaultTorrentCategories FROM tsue_member_profile WHERE memberid = " . $TSUE["TSUE_Database"]->escape($edit));
$memberPrivacy = $TSUE["TSUE_Database"]->query_result("SELECT allow_view_profile, receive_admin_email, receive_pm_email, show_your_age FROM tsue_member_privacy WHERE memberid = " . $TSUE["TSUE_Database"]->escape($edit));
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Member["membername"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("members_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Member"]) )
{
$Member = $_POST["Member"];
$memberProfile = $_POST["memberProfile"];
$memberPrivacy = $_POST["memberPrivacy"];
if( !isset($_POST["Member"]["visible"]) )
{
$Member["visible"] = 0;
}
if( !isset($_POST["Member"]["accountParked"]) )
{
$Member["accountParked"] = 0;
}
if( !isset($_POST["memberPrivacy"]["receive_admin_email"]) )
{
$memberPrivacy["receive_admin_email"] = 0;
}
if( !isset($_POST["memberPrivacy"]["receive_pm_email"]) )
{
$memberPrivacy["receive_pm_email"] = 0;
}
if( !isset($_POST["memberPrivacy"]["show_your_age"]) )
{
$memberPrivacy["show_your_age"] = 0;
}
if( !isset($_POST["memberProfile"]["defaultTorrentCategories"]) || empty($_POST["memberProfile"]["defaultTorrentCategories"]) )
{
$memberProfile["defaultTorrentCategories"] = "";
}
else
{
$aaaajx = array( );
foreach( $_POST["memberProfile"]["defaultTorrentCategories"] as $dtcid )
{
$dtcid = intval($dtcid);
if( $dtcid )
{
$aaaajx[] = $dtcid;
}
}
$memberProfile["defaultTorrentCategories"] = implode(",", $aaaajx);
unset($aaaajx);
}
if( !$Member["membername"] || !is_valid_string($Member["membername"]) )
{
$formErrors[] = get_phrase("invalid_membername");
}
else
{
if( strlen($Member["membername"]) < $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"] )
{
$formErrors[] = get_phrase("invalid_membername_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"]);
}
else
{
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"] < strlen($Member["membername"]) )
{
$formErrors[] = get_phrase("invalid_membername_max_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"]);
}
else
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($Member["membername"]));
if( $checkMember && $Member["membername"] != $aaaajw )
{
$formErrors[] = get_phrase("invalid_membername_in_use");
}
else
{
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"] )
{
$member_name_illegal_member_names = preg_split("/\\r?\\n/", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"], -1, PREG_SPLIT_NO_EMPTY);
if( $member_name_illegal_member_names )
{
foreach( $member_name_illegal_member_names as $name )
{
$name = trim($name);
if( $name === "" )
{
continue;
}
if( stripos($Member["membername"], $name) !== false && $Member["membername"] != $aaaajw )
{
$formErrors[] = get_phrase("invalid_membername_in_use");
}
}
}
}
}
}
}
}
if( !is_valid_email($Member["email"]) )
{
$formErrors[] = get_phrase("invalid_email");
}
else
{
$checkEmail = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE email = " . $TSUE["TSUE_Database"]->escape($Member["email"]));
if( $checkEmail && $Member["email"] != $defaultEmail )
{
$formErrors[] = get_phrase("invalid_email_in_use");
}
}
if( !$Member["passkey"] )
{
$Member["passkey"] = generatepasskey();
}
if( $Member["password"] )
{
if( strlen($Member["password"]) < $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"] )
{
$formErrors[] = get_phrase("invalid_memberpassword_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"]);
}
else
{
if( $Member["password"] == $Member["membername"] )
{
$formErrors[] = get_phrase("invalid_memberpassword_same_as_name");
}
}
}
else
{
if( $new )
{
$formErrors[] = get_phrase("invalid_memberpassword_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"]);
}
}
if( !$memberProfile["date_of_birth"] || substr_count($memberProfile["date_of_birth"], "/") != 2 || 10 < strlen($memberProfile["date_of_birth"]) )
{
$formErrors[] = get_phrase("invalid_date_of_birth");
}
else
{
list($day, $month, $year) = @tsue_explode("/", $memberProfile["date_of_birth"]);
if( !checkdate($month, $day, $year) || date("Y") <= $year )
{
$formErrors[] = get_phrase("invalid_date_of_birth");
}
}
if( !isset($formErrors) )
{
if( empty($Member["password"]) )
{
unset($Member["password"]);
}
else
{
$Member["password"] = md5($Member["password"]);
}
$memberProfile["custom_title"] = html_declean($memberProfile["custom_title"]);
$memberProfile["torrent_pass"] = substr($Member["passkey"], 0, 32);
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_members", $Member, "memberid=" . $TSUE["TSUE_Database"]->escape($edit));
$TSUE["TSUE_Database"]->update("tsue_member_profile", $memberProfile, "memberid=" . $TSUE["TSUE_Database"]->escape($edit));
$TSUE["TSUE_Database"]->update("tsue_member_privacy", $memberPrivacy, "memberid=" . $TSUE["TSUE_Database"]->escape($edit));
$Member["memberid"] = $edit;
}
else
{
$Member["password_date"] = TIMENOW;
$Member["joindate"] = TIMENOW;
$TSUE["TSUE_Database"]->insert("tsue_members", $Member);
$Member["memberid"] = $TSUE["TSUE_Database"]->insert_id();
$memberProfile["memberid"] = $Member["memberid"];
$TSUE["TSUE_Database"]->insert("tsue_member_profile", $memberProfile);
$memberPrivacy["memberid"] = $Member["memberid"];
$TSUE["TSUE_Database"]->insert("tsue_member_privacy", $memberPrivacy);
}
$aaaajy = get_phrase("members_member_updated", $Member["membername"] . " (" . $Member["memberid"] . ")");
logadminaction($aaaajy);
$memberQuery = array_merge($Member, $memberProfile, $memberPrivacy);
logadminaction($aaaajy . "~~~" . serialize($memberQuery), 3);
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$table1 = " \r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("your_name") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("Member[membername]", $Member["membername"]) . " " . ((isset($Member["isBanned"]) && $Member["isBanned"] ? "<span class=\"smallPassiveText\">" . get_phrase("banned") . "</span>" : "")) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("your_email") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("Member[email]", $Member["email"]) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("your_password") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("Member[password]", NULL) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("your_passkey") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("Member[passkey]", $Member["passkey"], "text" . (($edit ? " textanormal" : "")), NULL, false, false, ($edit ? "<a href=\"#\" id=\"reset_passkey\" data=\"" . $edit . "\">[" . get_phrase("reset_passkey") . "]</a>" : "")) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("your_membergroup") . "</td>\r\n\t\t\t\t\t<td>" . aaaabf("Member[membergroupid]", $Member["membergroupid"]) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("memberinfo_custom_title") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[custom_title]", strip_tags($memberProfile["custom_title"])) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t\$(\"#reset_passkey\").click(function(e)\r\n\t\t\t\t{\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tvar \$this = \$(this), \$memberid = parseInt(\$this.attr(\"data\"));\r\n\r\n\t\t\t\t\tif(\$memberid)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuildQuery = \"isAjax=1&action=reset_passkey&memberid=\"+\$memberid;\r\n\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\tdata: buildQuery,\r\n\t\t\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(response.length == 40)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$('<div class=\"success\">" . get_phrase("reset_passkey_message", $Member["membername"]) . "</div>').insertAfter(\"#reset_passkey\");\r\n\t\t\t\t\t\t\t\t\t\$this.remove();\r\n\t\t\t\t\t\t\t\t\t\$('input[name=\"Member[passkey]\"]').val(response);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t</script>";
$table2 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_uploaded") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[uploaded]", $memberProfile["uploaded"], "text texthalf", friendly_size($memberProfile["uploaded"])) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_downloaded") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[downloaded]", $memberProfile["downloaded"], "text texthalf", friendly_size($memberProfile["downloaded"])) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_total_posts") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[total_posts]", $memberProfile["total_posts"], "text texthalf") . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_total_invites") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[invites_left]", $memberProfile["invites_left"], "text texthalf") . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_points") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[points]", $memberProfile["points"], "text texthalf") . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$table3 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("memberinfo_gender") . "</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<select name=\"Member[gender]\" class=\"select\">\r\n\t\t\t\t\t\t\t<option value=\"m\"" . (($Member["gender"] == "m" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_male") . "</option>\r\n\t\t\t\t\t\t\t<option value=\"f\"" . (($Member["gender"] == "f" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_female") . "</option>\r\n\t\t\t\t\t\t\t<option value=\"\"" . (($Member["gender"] == "" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_unspecified") . "</option>\r\n\t\t\t\t\t\t</select>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("memberinfo_date_of_birth") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[date_of_birth]", $memberProfile["date_of_birth"], "text", NULL, true) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right; vertical-align: top;\">" . get_phrase("memberinfo_country") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[country]", $memberProfile["country"]) . " " . (($memberProfile["country"] ? getcountryflag($memberProfile["country"]) : "")) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$torrentCategoriesInbutboxes = torrentcategoriesinbutboxes("memberProfile[defaultTorrentCategories][]", "checkbox", explode(",", $memberProfile["defaultTorrentCategories"]));
$table4 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_style") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\">" . selectbox("Member[themeid]", $Member["themeid"], aaaaap()) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right; width: 150px;\">" . get_phrase("torrent_listing") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\">" . selectbox("memberProfile[torrentStyle]", $memberProfile["torrentStyle"], array( 1 => get_phrase("modern"), 2 => get_phrase("classic") )) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_language") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\">" . selectbox("Member[languageid]", $Member["languageid"], aaaaaq()) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_timezone") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\">" . selectbox("Member[timezone]", $Member["timezone"], fetch_timezones()) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td colspan=\"2\" style=\"border-top: 1px solid #ccc;\"></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;vertical-align: top; width: 150px;\">" . get_phrase("default_categories") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\">" . $torrentCategoriesInbutboxes . "</td>\r\n\t\t\t\t</tr>\r\n\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td colspan=\"2\" style=\"border-top: 1px solid #ccc;\"></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right; width: 150px; vertical-align: top;\">" . get_phrase("park_account") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\"><input type=\"checkbox\" name=\"Member[accountParked]\" value=\"1\"" . (($Member["accountParked"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("park_account_info") . "</span></td>\r\n\t\t\t\t</tr>\r\n\r\n\t\t\t</table>";
$table5 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("membercp_online_status") . "</td>\r\n\t\t\t\t\t<td><input type=\"checkbox\" name=\"Member[visible]\" value=\"1\"" . (($Member["visible"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_online_status_info") . "</span></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("membercp_receive_email") . "</td>\r\n\t\t\t\t\t<td><input type=\"checkbox\" name=\"memberPrivacy[receive_admin_email]\" value=\"1\"" . (($memberPrivacy["receive_admin_email"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_receive_email_info") . "</span></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("membercp_receive_pm_email") . "</td>\r\n\t\t\t\t\t<td><input type=\"checkbox\" name=\"memberPrivacy[receive_pm_email]\" value=\"1\"" . (($memberPrivacy["receive_pm_email"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_receive_pm_email_info") . "</span></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("show_your_age") . "</td>\r\n\t\t\t\t\t<td><input type=\"checkbox\" name=\"memberPrivacy[show_your_age]\" value=\"1\"" . (($memberPrivacy["show_your_age"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("show_your_age_info") . "</span></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("membercp_view_your_details") . "</td>\r\n\t\t\t\t\t<td>" . selectbox("memberPrivacy[allow_view_profile]", $memberPrivacy["allow_view_profile"], array( "everyone" => get_phrase("membercp_all_visitors"), "members" => get_phrase("membercp_members_only"), "followed" => get_phrase("membercp_people_you_follow"), "none" => get_phrase("membercp_none") )) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$table6 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"100%\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"align: right; vertical-align: top;\">" . textarea("memberProfile[signature]", $memberProfile["signature"], true) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$table7 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"100%\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_total_warns") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[total_warns]", $memberProfile["total_warns"], "text texthalf") . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_hitrun_warns") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[hitRuns]", $memberProfile["hitRuns"], "text texthalf") . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$createTabs = createtabs(array( get_phrase("members_member_essantials") => $table1, get_phrase("stats_title") => $table2, get_phrase("navigation_membercp_personal_details") => $table3, get_phrase("navigation_membercp_preferences") => $table4, get_phrase("navigation_membercp_privacy") => $table5, get_phrase("navigation_membercp_signature") => $table6, get_phrase("member_manager_warned_members") => $table7 ));
$HTML .= "\r\n " . $createTabs . "\r\n <div id=\"submit_reset_container\">\r\n\t\t\t\t " . (($edit ? "<span class=\"floatRight\">" . aaaaaf("?p=profile&pid=18&memberid=" . $edit, get_phrase("memberinfo_title", $Member["membername"])) . "</span>" : "")) . "\r\n\t\t\t\t " . aaaabm(get_phrase("button_save"), get_phrase("button_reset")) . "\r\n </div>";
$aaaaam = ($edit ? array( "edit" => $edit ) : "");
$HTML = aaaabn($HTML, $aaaaam);
}
if( !isset($updateDone) )
{
return $HTML;
}
}
if( $Query )
{
$membersCount = $TSUE["TSUE_Database"]->num_rows($Query);
}
else
{
$membersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as membersCount FROM tsue_members");
}
if( !$membersCount )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 2 ) ));
}
else
{
$aaaajz = array( );
$bannedMembers = $TSUE["TSUE_Database"]->query("SELECT memberid FROM tsue_member_bans", true);
if( $TSUE["TSUE_Database"]->num_rows($bannedMembers) )
{
while( $bannedMember = $TSUE["TSUE_Database"]->fetch_assoc($bannedMembers) )
{
$aaaajz[$bannedMember["memberid"]] = true;
}
}
if( $Query )
{
$Members = $Query;
$Pagination["0"] = "";
$Pagination["1"] = "";
}
else
{
$Pagination = pagination($membersCount["membersCount"]);
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.ipaddress, m.joindate, m.lastactivity, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid) ORDER BY membername ASC " . $Pagination["0"]);
}
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
if( !isset($aaaajz[$Member["memberid"]]) )
{
$aaaaka = aaaaae(array( "?action=Member Manager&do=Banned Members&ban=1&membername=" . $Member["membername"] => array( "phrase" => getimage("options/bannedmembers.png", get_phrase("banned_ban_member"), "", "16") ) ));
}
else
{
$aaaaka = aaaaae(array( "?action=Member Manager&do=Banned Members&lift=" . $Member["memberid"] => array( "phrase" => getimage("options/prune.png", get_phrase("banned_lift_ban"), "", "16") ) ));
}
$aaaakb = aaaaae(array( "edit=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) ));
$aaaakc = aaaaae(array( "delete=" . $Member["memberid"] => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$joinDate = get_phrase("memberinfo_membersince", convert_time($Member["joindate"], "d-m-Y"));
$lastActivity = get_phrase("memberinfo_lastactivity", convert_time($Member["lastactivity"], "d-m-Y"));
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . "<span class=\"smallPassiveTextlowMargin\">" . (($Member["isBanned"] ? "(" . get_phrase("banned") . ") " : "")) . strip_tags($Member["ipaddress"]) . " / " . strip_tags($Member["email"]) . " / UL:" . friendly_size($Member["uploaded"]) . " / DL:" . friendly_size($Member["downloaded"]) . " / R:" . member_ratio($Member["uploaded"], $Member["downloaded"]) . " / " . $joinDate . " / " . $lastActivity . "</span>" ), array( "width" => "10%", "align" => "right", "text" => $aaaaka . $aaaakc ) ));
}
}
$HTML .= createtable(get_phrase("member_manager_list_all_members_alt") . " (" . number_format(($Query ? $membersCount : $membersCount["membersCount"])) . ") (" . $aaaajv . ")", $tableContents, 2, $Pagination["1"]);
return $HTML;
}
function manageawaitingapproval()
{
global $TSUE;
$HTML = "";
$tableContents = "";
if( isset($_POST["approve"]) && !empty($_POST["approve"]) )
{
$aaaakd = array( );
foreach( $_POST["approve"] as $MemberID )
{
if( intval($MemberID) )
{
$aaaakd[] = $MemberID;
}
}
if( !empty($aaaakd) )
{
$aaaakd = implode(",", $aaaakd);
$Members = $TSUE["TSUE_Database"]->query("SELECT memberid, membername, email FROM tsue_members WHERE memberid IN(" . $aaaakd . ") AND membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
if( $TSUE["TSUE_Database"]->num_rows($Members) )
{
if( isset($_POST["deleteMembers"]) )
{
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
deletemember($Member["memberid"]);
logadminaction(get_phrase("members_member_deleted", $Member["membername"] . " (" . $Member["memberid"] . ")"));
}
}
else
{
if( isset($_POST["approve_notify"]) && $_POST["approve_notify"] == 1 )
{
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$subject = get_phrase("approve_account_approved_title", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]);
$message = get_phrase("approve_account_approved_body", $Member["membername"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
sent_mail($Member["email"], $Member["membername"], $subject, $message);
}
}
$TSUE["TSUE_Database"]->update("tsue_members", array( "membergroupid" => is_member_of("registeredusers") ), "memberid IN(" . $aaaakd . ") AND membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
logadminaction(get_phrase("approve_members_approved", $aaaakd));
}
}
}
}
$unapprovedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as unapprovedMembersCount FROM tsue_members WHERE membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
if( !$unapprovedMembersCount["unapprovedMembersCount"] )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("approve_no_results") ) ));
return createtable(get_phrase("member_manager_awaiting_approval_alt"), $tableContents);
}
$Pagination = pagination($unapprovedMembersCount["unapprovedMembersCount"]);
$Members = $TSUE["TSUE_Database"]->query("SELECT m.*, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ") " . $Pagination["0"]);
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) ));
$joinDate = get_phrase("approve_account_created", convert_relative_time($Member["joindate"]));
$tableContents .= aaaaag(array( array( "width" => "99%", "text" => $aaaakb . " <span class=\"smallPassiveText\">(" . strip_tags($Member["email"]) . ") -- " . $joinDate . "</span>" ), array( "width" => "1%", "text" => "<input type=\"checkbox\" name=\"approve[]\" value=\"" . $Member["memberid"] . "\" />" ) ));
}
$tableContents .= aaaaag(array( array( "width" => "99%", "text" => "<label><input type=\"checkbox\" name=\"approve_notify\" value=\"1\" checked=\"checked\" /> " . get_phrase("approve_notify") . "</label> \r\n\t\t\t\t\t\t\t\t\t\t\t\t <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("approve_approve_account") . "\" name=\"approveMembers\" /> \r\n\t\t\t\t\t\t\t\t\t\t\t\t <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("delete_selected_members") . "\" name=\"deleteMembers\" />", "align" => "left" ), array( "width" => "1%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"approve[]\" />", "align" => "right" ) ));
$HTML .= aaaabn(createtable(get_phrase("member_manager_awaiting_approval_alt"), $tableContents, 2, $Pagination["1"]));
return $HTML;
}
function managebannedmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaake = aaaaae(array( "ban=1" => array( "phrase" => get_phrase("banned_ban_member") ) ));
$ban = intval(getvar("ban"));
$lift = intval(getvar("lift"));
if( $lift )
{
$bannedMember = $TSUE["TSUE_Database"]->query_result("SELECT b.*, m.membername, mm.membername AS bannedBy FROM tsue_member_bans b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.banned_by=mm.memberid) WHERE b.memberid=" . $TSUE["TSUE_Database"]->escape($lift));
if( !$bannedMember )
{
return errormessage(get_phrase("member_not_found"));
}
$TSUE["TSUE_Database"]->delete("tsue_member_bans", "memberid=" . $TSUE["TSUE_Database"]->escape($lift));
logadminaction(get_phrase("banned_ban_has_been_lifted", $bannedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
if( $ban )
{
$banMember = array( "membername" => (isset($_GET["membername"]) ? strip_tags($_GET["membername"]) : ""), "memberid" => "", "banned_by" => $TSUE["TSUE_Member"]["memberid"], "ban_date" => TIMENOW, "end_date" => 0, "reason" => "" );
if( isset($_POST["banMember"]) )
{
$banMember = array_merge($banMember, $_POST["banMember"]);
if( !$banMember["membername"] )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($banMember["membername"]));
if( !$checkMember )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$banMember["memberid"] = $checkMember["memberid"];
$aaaakf = $banMember["membername"];
unset($banMember["membername"]);
}
}
if( $banMember["end_date"] )
{
$end_date = list($day, $month, $year) = tsue_explode("/", $banMember["end_date"]);
$end_date = strtotime((string) $year . "/" . $month . "/" . $day);
if( !checkdate($month, $day, $year) || $end_date <= TIMENOW )
{
$formErrors[] = get_phrase("banned_invalid_date");
}
}
if( !isset($formErrors) )
{
if( isset($end_date) )
{
$banMember["end_date"] = $end_date;
}
else
{
$banMember["end_date"] = 0;
}
$TSUE["TSUE_Database"]->replace("tsue_member_bans", $banMember);
logadminaction(get_phrase("banned_member_has_been_banned", $aaaakf, $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("banMember[membername]", (isset($banMember["membername"]) ? $banMember["membername"] : $aaaakf), "text", NULL, false, true);
$formContents = aaaaan(get_phrase("your_name"), $inputbox);
$inputbox = inputbox("banMember[reason]", $banMember["reason"]);
$formContents .= aaaaan(get_phrase("banned_reason"), $inputbox, get_phrase("banned_reason_alt"));
$inputbox = inputbox("banMember[end_date]", $banMember["end_date"], "text texthalf", get_phrase("banned_ban_length_alt"), true);
$formContents .= aaaaan(get_phrase("banned_ban_length"), $inputbox, get_phrase("banned_ban_length_alt"));
$HTML .= aaaabg($formContents);
return $HTML;
}
}
$bannedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as bannedMembersCount FROM tsue_member_bans");
if( !$bannedMembersCount["bannedMembersCount"] )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("banned_no_banned_members") ) ));
return createtable(get_phrase("member_manager_banned_members_alt") . " (" . $aaaake . ")", $tableContents);
}
$Pagination = pagination($bannedMembersCount["bannedMembersCount"]);
$bannedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS bannedBy FROM tsue_member_bans b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.banned_by=mm.memberid) " . $Pagination["0"]);
while( $bannedMember = $TSUE["TSUE_Database"]->fetch_assoc($bannedMembers) )
{
$reason = get_phrase("banned_reason") . ": " . (($bannedMember["reason"] ? strip_tags($bannedMember["reason"]) : ".."));
$ban_date = get_phrase("banned_ban_started", convert_relative_time($bannedMember["ban_date"]));
$end_date = get_phrase("banned_ban_ends", ($bannedMember["end_date"] && TIMENOW < $bannedMember["end_date"] ? convert_time($bannedMember["end_date"], "d/m/Y") : get_phrase("banned_ban_ends_never")));
$banned_by = get_phrase("banned_banned_by", $bannedMember["bannedBy"]);
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $bannedMember["memberid"] => array( "phrase" => $bannedMember["membername"] ) ));
$aaaakg = aaaaae(array( "lift=" . $bannedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("banned_lift_ban")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $ban_date . " -- " . $end_date . " -- " . $banned_by . " -- " . $reason . "</span>" ), array( "width" => "10%", "text" => $aaaakg ) ));
}
$HTML .= createtable(get_phrase("member_manager_banned_members_alt") . " (" . number_format($bannedMembersCount["bannedMembersCount"]) . ") (" . $aaaake . ")", $tableContents, 2, $Pagination["1"]);
return $HTML;
}
function managewarnedmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaakh = aaaaae(array( "warn=1" => array( "phrase" => get_phrase("warned_warn_member") ) ));
$warn = intval(getvar("warn"));
$lift = intval(getvar("lift"));
if( $lift )
{
$warnedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername, mm.membername AS warnedBy FROM tsue_member_warns w LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (w.warned_by=mm.memberid) WHERE w.warnid=" . $TSUE["TSUE_Database"]->escape($lift));
if( !$warnedMember )
{
return errormessage(get_phrase("member_not_found"));
}
$TSUE["TSUE_Database"]->delete("tsue_member_warns", "warnid=" . $TSUE["TSUE_Database"]->escape($lift));
$BuildQuery = array( "total_warns" => array( "escape" => 0, "value" => "IF(total_warns > 0, total_warns-1, 0)" ) );
$TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $warnedMember["memberid"]);
alert_member($warnedMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "warns", 0, "warn_lifted");
logadminaction(get_phrase("warned_warn_has_been_lifted", $warnedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
if( $warn )
{
$warnMember = array( "membername" => (isset($_GET["membername"]) ? strip_tags($_GET["membername"]) : ""), "memberid" => "", "warned_by" => $TSUE["TSUE_Member"]["memberid"], "warn_date" => TIMENOW, "end_date" => 0, "notes" => "" );
if( isset($_POST["warnMember"]) )
{
$warnMember = array_merge($warnMember, $_POST["warnMember"]);
if( !$warnMember["membername"] )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($warnMember["membername"]));
if( !$checkMember )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$warnMember["memberid"] = $checkMember["memberid"];
$aaaaki = $warnMember["membername"];
unset($warnMember["membername"]);
}
}
if( $warnMember["end_date"] )
{
$end_date = list($day, $month, $year) = tsue_explode("/", $warnMember["end_date"]);
$end_date = strtotime((string) $year . "/" . $month . "/" . $day);
if( !checkdate($month, $day, $year) || $end_date <= TIMENOW )
{
$formErrors[] = get_phrase("warned_invalid_date");
}
}
if( !isset($formErrors) )
{
if( isset($end_date) )
{
$warnMember["end_date"] = $end_date;
}
else
{
$warnMember["end_date"] = 0;
}
$TSUE["TSUE_Database"]->replace("tsue_member_warns", $warnMember);
$BuildQuery = array( "total_warns" => array( "escape" => 0, "value" => "total_warns+1" ) );
$TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $warnMember["memberid"]);
alert_member($warnMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "warns", 0, "warn_member");
logadminaction(get_phrase("warned_member_has_been_warned", $aaaaki, $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("warnMember[membername]", (isset($warnMember["membername"]) ? $warnMember["membername"] : $aaaaki), "text", NULL, false, true);
$formContents = aaaaan(get_phrase("your_name"), $inputbox);
$inputbox = inputbox("warnMember[notes]", $warnMember["notes"]);
$formContents .= aaaaan(get_phrase("warned_reason"), $inputbox, get_phrase("warned_reason_alt"));
$inputbox = inputbox("warnMember[end_date]", $warnMember["end_date"], "text texthalf", get_phrase("warned_warn_length_alt"), true);
$formContents .= aaaaan(get_phrase("warned_warn_length"), $inputbox, get_phrase("warned_warn_length_alt"));
$HTML .= aaaabg($formContents);
return $HTML;
}
}
$warnedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as warnedMembersCount FROM tsue_member_warns");
if( !$warnedMembersCount["warnedMembersCount"] )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("warned_no_warned_members") ) ));
return createtable(get_phrase("member_manager_warned_members_alt") . " (" . $aaaakh . ")", $tableContents);
}
$Pagination = pagination($warnedMembersCount["warnedMembersCount"]);
$warnedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS warnedBy FROM tsue_member_warns b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.warned_by=mm.memberid) " . $Pagination["0"]);
while( $warnedMember = $TSUE["TSUE_Database"]->fetch_assoc($warnedMembers) )
{
$notes = get_phrase("warned_reason") . ": " . (($warnedMember["notes"] ? strip_tags($warnedMember["notes"]) : ".."));
$warn_date = get_phrase("warned_warn_started", convert_relative_time($warnedMember["warn_date"]));
$end_date = get_phrase("warned_warn_ends", ($warnedMember["end_date"] && TIMENOW < $warnedMember["end_date"] ? convert_time($warnedMember["end_date"], "d/m/Y") : get_phrase("warned_warn_ends_never")));
$warned_by = get_phrase("warned_warned_by", $warnedMember["warnedBy"]);
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $warnedMember["memberid"] => array( "phrase" => $warnedMember["membername"] ) ));
$aaaakj = aaaaae(array( "lift=" . $warnedMember["warnid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("warned_lift_warn")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $warn_date . " -- " . $end_date . " -- " . $warned_by . " -- " . $notes . "</span>" ), array( "width" => "10%", "text" => $aaaakj ) ));
}
$HTML .= createtable(get_phrase("member_manager_warned_members_alt") . " (" . number_format($warnedMembersCount["warnedMembersCount"]) . ") (" . $aaaakh . ")", $tableContents, 2, $Pagination["1"]);
return $HTML;
}
function managemembergroups()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaakk = aaaaae(array( "new=1" => array( "phrase" => get_phrase("membergroups_create_new") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$copy = intval(getvar("copy"));
$Permissions = array( "canview_member_profiles" => 1, "canreport" => 1, "canfollow" => 1, "canupload_avatar" => 0, "canpost_signature" => 0, "canvote_polls" => 1, "cansend_invite" => 1, "canpark_account" => 1, "canchange_own_email" => 1, "canreceive_pm_email" => 0, "canchange_birthday" => 0, "canview_torrents" => 1, "canview_torrent_details" => 1, "canview_peers" => 0, "canview_torrent_filelist" => 1, "candownload_torrents" => 1, "canupload_torrents" => 0, "canedit_own_torrents" => 1, "candelete_own_torrents" => 0, "canrequest_reseed" => 1, "canrefresh_imdb" => 0, "canupdate_external_torrents" => 1, "do_not_record_download_stats" => 0, "canuse_bookmarks" => 1, "force_to_read_unread_pm" => 0, "max_slot_limit" => 0, "minratio_dl_torrents" => 0, "canview_subtitles" => 1, "canupload_subtitles" => 0, "candownload_subtitles" => 1, "canpost_comments" => 1, "canedit_own_comments" => 1, "candelete_own_comments" => 0, "canpost_a_new_message" => 1, "canpost_a_reply_to_message" => 1, "canlike" => 1, "canview_like_list" => 0, "canview_any_forum" => 1, "cansearch_in_forums" => 1, "canview_shout" => 1, "canpost_shout" => 1, "canedit_own_shout" => 1, "candelete_own_shout" => 0, "canview_market" => 1, "canpurchase_item" => 1, "canrequest_torrent" => 1, "canvote_request" => 1, "canfill_request" => 0, "request_limit" => 1, "canview_dm" => 1, "candownload_dm" => 1, "canupload_dm" => 0, "canedit_own_files" => 0, "candelete_own_files" => 0, "speed_throttling_dm" => 250, "max_simultaneous_downloads" => 3, "max_bandwidth_usage_per_day" => 1073741824, "max_downloads_per_day" => 5, "canview_image_gallery" => 1, "canupload_image" => 0, "candelete_own_image" => 1, "max_image_uploads" => 10, "canlogin_admincp" => 0, "canedit_shout" => 0, "candelete_shout" => 0, "canprune_shouts" => 0, "canpost_notice" => 0, "canedit_comments" => 0, "candelete_comments" => 0, "canedit_torrents" => 0, "candelete_torrents" => 0, "canset_multipliers" => 0, "canview_invisible_members" => 0, "canview_special_details" => 0, "canview_debug" => 0, "canview_offline_website" => 0, "canview_all_profiles" => 0, "canmanage_reports" => 0, "canedit_subtitles" => 0, "candelete_subtitles" => 0, "canwarn_member" => 0, "canban_member" => 0, "canview_member_history" => 0, "canmute_member" => 0, "canremove_avatar" => 0, "canset_hitrun_ratio" => 0, "canmanage_applications" => 0, "candelete_request" => 0, "canedit_request" => 0, "cansticky_torrents" => 0, "canview_all_content" => 0, "candelete_files" => 0, "canedit_files" => 0, "cannuke_torrents" => 0, "candelete_image_gallery_files" => 0, "canreply_staff_messages" => 0, "candelete_staff_messages" => 0, "canreset_passkey" => 0, "canaward_members" => 0, "canreset_request" => 0, "canadd_note" => 0, "candelete_staff_notes" => 0, "canview_poll_voters" => 0, "canfill_upcomingreleases" => 0, "canedit_upcomingreleases" => 0, "candelete_upcomingreleases" => 0, "canbump_torrents" => 0, "candelete_applications" => 0, "can_moderate_torrents" => 0, "canuse_spam_cleaner" => 0 );
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $aaaakl => $Sort )
{
$aaaakl = intval($aaaakl);
$Sort = intval($Sort);
$TSUE["TSUE_Database"]->update("tsue_membergroups", array( "sort" => $Sort ), "membergroupid=" . $TSUE["TSUE_Database"]->escape($aaaakl));
}
logadminaction(get_phrase("pages_all_pages_updated"));
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $delete )
{
$Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT groupname, protected FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
if( !$Membergroup )
{
return errormessage(get_phrase("message_content_error"));
}
if( $Membergroup["protected"] == 1 )
{
return errormessage(get_phrase("membergroups_cant_delete_default"));
}
$checkMembers = $TSUE["TSUE_Database"]->query("SELECT memberid, membergroupid FROM tsue_members WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->num_rows($checkMembers) )
{
$TSUE["TSUE_Database"]->update("tsue_members", array( "membergroupid" => is_member_of("registeredusers") ), "membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
}
$TSUE["TSUE_Database"]->delete("tsue_membergroups", "membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("membergroups_membergroup_deleted", $Membergroup["groupname"]));
$HTML .= successmessage(get_phrase("membergroups_membergroup_deleted", $Membergroup["groupname"]));
handlerebuildcaches(false);
}
if( $copy )
{
$Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($copy));
if( !$Membergroup )
{
return errormessage(get_phrase("message_content_error"));
}
$Permissions = unserialize($Membergroup["permissions"]);
$new = 1;
}
if( $edit || $new )
{
$Membergroup = array( "groupname" => "", "groupstyle" => "{membername}", "flood_limit" => 30, "showOnStaff" => 0, "passwordExpires" => 184 );
$aaaaam = "";
if( $edit )
{
$Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Membergroup )
{
return errormessage(get_phrase("message_content_error"));
}
$Permissions = unserialize($Membergroup["permissions"]);
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( getmembername($Membergroup["groupname"], $Membergroup["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("membergroups_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Membergroup"]) )
{
$Membergroup = $_POST["Membergroup"];
if( !$Membergroup["groupname"] )
{
$formErrors[] = get_phrase("membergroups_invalid_groupname");
}
if( !preg_match("#\\{membername\\}#", $Membergroup["groupstyle"]) )
{
$formErrors[] = get_phrase("membergroups_invalid_groupstyle");
}
$Permissions = $_POST["Permissions"];
if( !isset($formErrors) )
{
$buildQuery = array( "groupname" => $Membergroup["groupname"], "groupstyle" => html_declean($Membergroup["groupstyle"]), "flood_limit" => intval($Membergroup["flood_limit"]), "permissions" => serialize($Permissions), "showOnStaff" => $Membergroup["showOnStaff"], "passwordExpires" => $Membergroup["passwordExpires"] );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_membergroups", $buildQuery, "membergroupid=" . $TSUE["TSUE_Database"]->escape($edit));
$aaaakm = $edit;
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_membergroups", $buildQuery);
$aaaakn = $TSUE["TSUE_Database"]->insert_id();
$aaaahh = aaaahb();
if( !$aaaakn )
{
return NULL;
}
$aaaakm = $aaaakn;
$Forums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums ORDER BY forumid ASC");
if( $TSUE["TSUE_Database"]->num_rows($Forums) )
{
while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
{
$aaaahi = serialize((isset($Permissions["canlogin_admincp"]) && $Permissions["canlogin_admincp"] ? $aaaahh["adminForumPermissions"] : $aaaahh["defaultForumPermissions"]));
$buildQuery = array( "forumid" => $Forum["forumid"], "membergroupid" => $aaaakn, "permissions" => $aaaahi );
$TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
}
}
}
if( $aaaakm )
{
$pagePermissions = getvar("pagePermissions", array( ), false);
$aaaako = array( );
if( is_array($pagePermissions) && !empty($pagePermissions) )
{
foreach( $pagePermissions as $pageID => $value )
{
$pageID = intval($pageID);
if( $pageID && $value == 1 )
{
$aaaako[] = $pageID;
}
}
}
if( !empty($aaaako) )
{
$Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, viewpermissions FROM tsue_pages WHERE pageid IN (" . implode(",", $aaaako) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Pages) )
{
while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
{
$viewpermissions = tsue_explode(",", $Page["viewpermissions"]);
if( empty($viewpermissions) )
{
$viewpermissions = aaaakp();
}
else
{
if( !in_array($aaaakm, $viewpermissions) )
{
$viewpermissions[] = $aaaakm;
}
}
$TSUE["TSUE_Database"]->update("tsue_pages", array( "viewpermissions" => implode(",", $viewpermissions) ), "pageid=" . $TSUE["TSUE_Database"]->escape($Page["pageid"]));
}
$Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, viewpermissions FROM tsue_pages WHERE pageid NOT IN (" . implode(",", $aaaako) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Pages) )
{
while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
{
$viewpermissions = tsue_explode(",", $Page["viewpermissions"]);
if( empty($viewpermissions) )
{
$viewpermissions = aaaakp($aaaakm);
}
$viewpermissions = aaaakq($viewpermissions, $aaaakm);
$TSUE["TSUE_Database"]->update("tsue_pages", array( "viewpermissions" => implode(",", $viewpermissions) ), "pageid=" . $TSUE["TSUE_Database"]->escape($Page["pageid"]));
}
}
}
}
$pluginPermissions = getvar("pluginPermissions", array( ), false);
$aaaakr = array( );
if( is_array($pluginPermissions) && !empty($pluginPermissions) )
{
foreach( $pluginPermissions as $pluginID => $value )
{
$pluginID = intval($pluginID);
if( $pluginID && $value == 1 )
{
$aaaakr[] = $pluginID;
}
}
}
if( !empty($aaaakr) )
{
$Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, viewpermissions FROM tsue_plugins WHERE pluginid IN (" . implode(",", $aaaakr) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Plugins) )
{
while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
$viewpermissions = tsue_explode(",", $Plugin["viewpermissions"]);
if( empty($viewpermissions) )
{
$viewpermissions = aaaakp();
}
else
{
if( !in_array($aaaakm, $viewpermissions) )
{
$viewpermissions[] = $aaaakm;
}
}
$TSUE["TSUE_Database"]->update("tsue_plugins", array( "viewpermissions" => implode(",", $viewpermissions) ), "pluginid=" . $TSUE["TSUE_Database"]->escape($Plugin["pluginid"]));
}
$Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, viewpermissions FROM tsue_plugins WHERE pluginid NOT IN (" . implode(",", $aaaakr) . ")");
if( $TSUE["TSUE_Database"]->num_rows($Plugins) )
{
while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
$viewpermissions = tsue_explode(",", $Plugin["viewpermissions"]);
if( empty($viewpermissions) )
{
$viewpermissions = aaaakp($aaaakm);
}
$viewpermissions = aaaakq($viewpermissions, $aaaakm);
$TSUE["TSUE_Database"]->update("tsue_plugins", array( "viewpermissions" => implode(",", $viewpermissions) ), "pluginid=" . $TSUE["TSUE_Database"]->escape($Plugin["pluginid"]));
}
}
}
}
$torrentCategoryViewPermissions = getvar("torrentCategoryViewPermissions", array( ), false);
$torrentCategoryDownloadPermissions = getvar("torrentCategoryDownloadPermissions", array( ), false);
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$cviewpermissions = tsue_explode(",", $Category["cviewpermissions"]);
if( isset($torrentCategoryViewPermissions[$Category["cid"]]) && !in_array($aaaakm, $cviewpermissions) )
{
$cviewpermissions[] = $aaaakm;
}
else
{
if( !isset($torrentCategoryViewPermissions[$Category["cid"]]) && in_array($aaaakm, $cviewpermissions) )
{
$cviewpermissions = aaaakq($cviewpermissions, $aaaakm);
}
}
$cviewpermissions = implode(",", $cviewpermissions);
$TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "cviewpermissions" => $cviewpermissions ), "cid=" . $TSUE["TSUE_Database"]->escape($Category["cid"]));
}
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$cdownloadpermissions = tsue_explode(",", $Category["cdownloadpermissions"]);
if( isset($torrentCategoryDownloadPermissions[$Category["cid"]]) && !in_array($aaaakm, $cdownloadpermissions) )
{
$cdownloadpermissions[] = $aaaakm;
}
else
{
if( !isset($torrentCategoryDownloadPermissions[$Category["cid"]]) && in_array($aaaakm, $cdownloadpermissions) )
{
$cdownloadpermissions = aaaakq($cdownloadpermissions, $aaaakm);
}
}
$cdownloadpermissions = implode(",", $cdownloadpermissions);
$TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "cdownloadpermissions" => $cdownloadpermissions ), "cid=" . $TSUE["TSUE_Database"]->escape($Category["cid"]));
}
}
logadminaction(get_phrase("membergroups_membergroup_updated", $Membergroup["groupname"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune();
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Membergroup[groupname]", $Membergroup["groupname"]);
$formContents = aaaaan(get_phrase("membergroups_groupname"), $inputbox);
$inputbox = inputbox("Membergroup[groupstyle]", html_clean($Membergroup["groupstyle"]), "text", "", false, false, getmembername($Membergroup["groupname"], $Membergroup["groupstyle"]));
$formContents .= aaaaan(get_phrase("membergroups_groupstyle"), $inputbox);
$inputbox = inputbox("Membergroup[flood_limit]", intval($Membergroup["flood_limit"]));
$formContents .= aaaaan(get_phrase("membergroups_flood_limit"), $inputbox, get_phrase("set_to_0_for_no_limit"));
$inputbox = radioyesno("Membergroup[showOnStaff]", intval($Membergroup["showOnStaff"]));
$formContents .= aaaaan(get_phrase("membergroups_show_on_staff_page"), $inputbox);
$inputbox = inputbox("Membergroup[passwordExpires]", intval($Membergroup["passwordExpires"]));
$formContents .= aaaaan(get_phrase("membergroups_password_expires"), $inputbox, get_phrase("membergroups_password_expires_alt"));
$aaaagp = aaaagq(array( "canview_member_profiles", "canreport", "canfollow", "canupload_avatar", "canpost_signature", "canvote_polls", "cansend_invite", "canpark_account", "canchange_own_email", "canreceive_pm_email", "canchange_birthday" ), $Permissions, "membergroups_general_permissions");
$formContents .= aaaaan(get_phrase("membergroups_general_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_torrents", "canview_torrent_details", "canview_peers", "canview_torrent_filelist", "candownload_torrents", "canupload_torrents" => array( "canupload_torrents" => array( get_phrase("option_yes") => 1, get_phrase("option_no") => 0, get_phrase("option_moderate") => 2 ) ), "canedit_own_torrents", "candelete_own_torrents", "canrequest_reseed", "canrefresh_imdb", "canupdate_external_torrents", "do_not_record_download_stats", "force_to_read_unread_pm", "canuse_bookmarks" ), $Permissions, "membergroups_torrent_permissions");
$aaaagp .= aaaaks(array( "max_slot_limit" => get_phrase("set_to_0_for_no_limit"), "minratio_dl_torrents" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
$formContents .= aaaaan(get_phrase("membergroups_torrent_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_subtitles", "canupload_subtitles", "candownload_subtitles" ), $Permissions, "membergroups_subtitles_permissions");
$formContents .= aaaaan(get_phrase("membergroups_subtitles_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canpost_comments", "canedit_own_comments", "candelete_own_comments" ), $Permissions, "membergroups_comment_permissions");
$formContents .= aaaaan(get_phrase("membergroups_comment_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canpost_a_new_message", "canpost_a_reply_to_message" ), $Permissions, "membergroups_pm_permissions");
$formContents .= aaaaan(get_phrase("membergroups_pm_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canlike", "canview_like_list" ), $Permissions, "membergroups_like_permissions");
$formContents .= aaaaan(get_phrase("membergroups_like_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_any_forum", "cansearch_in_forums" ), $Permissions, "membergroups_forum_permissions");
$formContents .= aaaaan(get_phrase("membergroups_forum_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_shout", "canpost_shout", "canedit_own_shout", "candelete_own_shout" ), $Permissions, "membergroups_shoutbox_permissions");
$formContents .= aaaaan(get_phrase("membergroups_shoutbox_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_market", "canpurchase_item" ), $Permissions, "membergroups_market_permissions");
$formContents .= aaaaan(get_phrase("membergroups_market_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canrequest_torrent", "canvote_request", "canfill_request" ), $Permissions, "request_a_torrent_permissions");
$aaaagp .= aaaaks(array( "request_limit" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
$formContents .= aaaaan(get_phrase("request_a_torrent_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canview_dm", "candownload_dm", "canupload_dm", "canedit_own_files", "candelete_own_files" ), $Permissions, "dm_title");
$aaaagp .= aaaaks(array( "speed_throttling_dm" => get_phrase("set_to_0_for_no_limit"), "max_simultaneous_downloads" => get_phrase("set_to_0_for_no_limit"), "max_bandwidth_usage_per_day" => friendly_size($Permissions["max_bandwidth_usage_per_day"]) . " | " . get_phrase("set_to_0_for_no_limit"), "max_downloads_per_day" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
$formContents .= aaaaan(get_phrase("dm_title") . " (" . get_phrase("dm_title_alt") . ")", $aaaagp);
$aaaagp = aaaagq(array( "canview_image_gallery", "canupload_image", "candelete_own_image" ), $Permissions, "image_gallery_permissions");
$aaaagp .= aaaaks(array( "max_image_uploads" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
$formContents .= aaaaan(get_phrase("image_gallery_permissions"), $aaaagp);
$aaaagp = aaaagq(array( "canlogin_admincp", "canedit_shout", "candelete_shout", "canprune_shouts", "canpost_notice", "canedit_comments", "candelete_comments", "canedit_torrents", "candelete_torrents", "canset_multipliers", "canview_invisible_members", "canview_special_details", "canview_debug", "canview_offline_website", "canview_all_profiles", "canmanage_reports", "canedit_subtitles", "candelete_subtitles", "canwarn_member", "canban_member", "canview_member_history", "canmute_member", "canremove_avatar", "canset_hitrun_ratio", "canmanage_applications", "candelete_request", "canedit_request", "cansticky_torrents", "canview_all_content", "candelete_files", "canedit_files", "cannuke_torrents", "candelete_image_gallery_files", "canreply_staff_messages", "candelete_staff_messages", "canreset_passkey", "canaward_members", "canreset_request", "canadd_note", "candelete_staff_notes", "canview_poll_voters", "canfill_upcomingreleases", "canedit_upcomingreleases", "candelete_upcomingreleases", "canbump_torrents", "candelete_applications", "can_moderate_torrents", "canuse_spam_cleaner" ), $Permissions, "membergroups_administrator_permissions");
$formContents .= aaaaan(get_phrase("membergroups_administrator_permissions"), $aaaagp);
$subPagesCache = array( );
$aaaakt = array( );
$Pages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages ORDER BY sort ASC");
while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
{
if( $Page["parentid"] )
{
$subPagesCache[$Page["parentid"]][] = $Page;
}
else
{
$aaaakt[] = $Page;
}
}
$pagePermissions = "\r\n\t\t\t" . get_phrase("select_pages_to_allow_view_for_this_group") . "\r\n\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
$Count = 0;
$maxPerRow = 4;
foreach( $aaaakt as $Page )
{
if( $Count % $maxPerRow == 0 )
{
$pagePermissions .= "\r\n\t\t\t\t\t</tr><tr>";
}
$Count++;
$aaaaku = "";
if( isset($subPagesCache[$Page["pageid"]]) )
{
foreach( $subPagesCache[$Page["pageid"]] as $subPage )
{
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $subPage["viewpermissions"])) || isset($_POST["pagePermissions"][$subPage["pageid"]]) || empty($subPage["viewpermissions"]) )
{
$checked = " checked=\"checked\"";
}
$aaaaku .= "\r\n\t\t\t\t\t\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"pagePermissions[" . $subPage["pageid"] . "]\" value=\"1\"" . $checked . " /> " . $TSUE["TSUE_Language"]["phrase"][$subPage["phrase"]] . "</label>\r\n\t\t\t\t\t\t</div>";
}
}
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $Page["viewpermissions"])) || isset($_POST["pagePermissions"][$Page["pageid"]]) || empty($Page["viewpermissions"]) )
{
$checked = " checked=\"checked\"";
}
$pagePermissions .= "\r\n\t\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"pagePermissions[" . $Page["pageid"] . "]\" value=\"1\"" . $checked . " /> " . $TSUE["TSUE_Language"]["phrase"][$Page["phrase"]] . "</label>\r\n\t\t\t\t\t\t" . $aaaaku . "\t\t\t\t\t\t\r\n\t\t\t\t\t</td>";
}
$pagePermissions .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$pluginPermissions = "\r\n\t\t\t" . get_phrase("select_plugins_to_allow_view_for_this_group") . "\r\n\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
$Count = 0;
$maxPerRow = 3;
$Plugins = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_plugins ORDER BY name ASC");
while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
if( $Count % $maxPerRow == 0 )
{
$pluginPermissions .= "\r\n\t\t\t\t\t</tr><tr>";
}
$Count++;
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $Plugin["viewpermissions"])) || isset($_POST["pluginPermissions"][$Plugin["pluginid"]]) || empty($Plugin["viewpermissions"]) )
{
$checked = " checked=\"checked\"";
}
$pluginPermissions .= "\r\n\t\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"pluginPermissions[" . $Plugin["pluginid"] . "]\" value=\"1\"" . $checked . " /> " . $Plugin["name"] . "</label>\r\n\t\t\t\t\t</td>";
}
$pluginPermissions .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$aaaact = array( );
$aaaafx = array( );
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
if( $Category["pid"] )
{
$aaaact[$Category["pid"]][] = $Category;
}
else
{
$aaaafx[] = $Category;
}
}
$torrentCategoryViewPermissions = "\r\n\t\t\t" . get_phrase("select_torrent_categories_to_allow_view_for_this_group") . "\r\n\t\t\t<h3>" . get_phrase("global_view_permissions") . "</h3>\r\n\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
$Count = 0;
$maxPerRow = 4;
foreach( $aaaafx as $Category )
{
if( $Count % $maxPerRow == 0 )
{
$torrentCategoryViewPermissions .= "\r\n\t\t\t\t\t</tr><tr>";
}
$Count++;
$subCategoryList = "";
if( isset($aaaact[$Category["cid"]]) )
{
foreach( $aaaact[$Category["cid"]] as $subCategory )
{
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $subCategory["cviewpermissions"])) || isset($_POST["torrentCategoryViewPermissions"][$subCategory["cid"]]) )
{
$checked = " checked=\"checked\"";
}
$subCategoryList .= "\r\n\t\t\t\t\t\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"torrentCategoryViewPermissions[" . $subCategory["cid"] . "]\" value=\"1\"" . $checked . " /> " . $subCategory["cname"] . "</label>\r\n\t\t\t\t\t\t</div>";
}
}
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $Category["cviewpermissions"])) || isset($_POST["torrentCategoryViewPermissions"][$Category["cid"]]) )
{
$checked = " checked=\"checked\"";
}
$torrentCategoryViewPermissions .= "\r\n\t\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"torrentCategoryViewPermissions[" . $Category["cid"] . "]\" value=\"1\"" . $checked . " /> " . $Category["cname"] . "</label>\r\n\t\t\t\t\t\t" . $subCategoryList . "\r\n\t\t\t\t\t</td>";
}
$torrentCategoryViewPermissions .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$torrentCategoryDownloadPermissions = "\r\n\t\t\t<h3>" . get_phrase("global_download_permissions") . "</h3>\r\n\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
$Count = 0;
$maxPerRow = 4;
foreach( $aaaafx as $Category )
{
if( $Count % $maxPerRow == 0 )
{
$torrentCategoryDownloadPermissions .= "\r\n\t\t\t\t\t</tr><tr>";
}
$Count++;
$subCategoryList = "";
if( isset($aaaact[$Category["cid"]]) )
{
foreach( $aaaact[$Category["cid"]] as $subCategory )
{
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $subCategory["cdownloadpermissions"])) || isset($_POST["torrentCategoryDownloadPermissions"][$subCategory["cid"]]) )
{
$checked = " checked=\"checked\"";
}
$subCategoryList .= "\r\n\t\t\t\t\t\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"torrentCategoryDownloadPermissions[" . $subCategory["cid"] . "]\" value=\"1\"" . $checked . " /> " . $subCategory["cname"] . "</label>\r\n\t\t\t\t\t\t</div>";
}
}
$checked = "";
if( $edit && in_array($edit, tsue_explode(",", $Category["cdownloadpermissions"])) || isset($_POST["torrentCategoryDownloadPermissions"][$Category["cid"]]) )
{
$checked = " checked=\"checked\"";
}
$torrentCategoryDownloadPermissions .= "\r\n\t\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"torrentCategoryDownloadPermissions[" . $Category["cid"] . "]\" value=\"1\"" . $checked . " /> " . $Category["cname"] . "</label>\r\n\t\t\t\t\t\t" . $subCategoryList . "\r\n\t\t\t\t\t</td>";
}
$torrentCategoryDownloadPermissions .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$createTabs = createtabs(array( get_phrase("membergroup_options_and_perms") => $formContents, get_phrase("pages_view_permissions") => $pagePermissions, get_phrase("plugins_view_permissions") => $pluginPermissions, get_phrase("torrents_view_and_download_permissions") => $torrentCategoryViewPermissions . $torrentCategoryDownloadPermissions ));
$HTML .= aaaabn($createTabs . "\r\n <div id=\"submit_reset_container\">\r\n " . aaaabm(get_phrase("button_save"), get_phrase("button_reset")) . "\r\n </div>", $aaaaam);
return $HTML;
}
}
$membergroupCache = array( );
$Members = $TSUE["TSUE_Database"]->query("SELECT membergroupid FROM tsue_members", true);
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
if( isset($membergroupCache[$Member["membergroupid"]]) )
{
$membergroupCache[$Member["membergroupid"]]++;
}
else
{
$membergroupCache[$Member["membergroupid"]] = 1;
}
}
$Membergroups = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_membergroups");
while( $Membergroup = $TSUE["TSUE_Database"]->fetch_assoc($Membergroups) )
{
$aaaakv = aaaaae(array( "edit=" . $Membergroup["membergroupid"] => array( "phrase" => getmembername($Membergroup["groupname"], $Membergroup["groupstyle"]) ) ));
$aaaakw = aaaaae(array( "delete=" . $Membergroup["membergroupid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaakx = aaaaae(array( "copy=" . $Membergroup["membergroupid"] => array( "phrase" => getimage("buttons/copy.png", get_phrase("create_a_new_membergroup_based_on_this")) ) ));
$tableContents .= aaaaag(array( array( "text" => $aaaakv . " <span class=\"smallPassiveText\">" . get_phrase("membergroups_groupid", $Membergroup["membergroupid"]) . " / " . get_phrase("membergroups_total_members", (isset($membergroupCache[$Membergroup["membergroupid"]]) ? number_format($membergroupCache[$Membergroup["membergroupid"]]) : 0)) . "</span>" ), array( "text" => inputbox("sort[" . $Membergroup["membergroupid"] . "]", $Membergroup["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "12%", "text" => $aaaakx . $aaaakw, "align" => "right" ) ));
}
$tableContents .= aaaaag(array( array( "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "right", "colspan" => 2 ), array( "text" => " ", "align" => "right", "colspan" => 1, "width" => "12%" ) ));
$HTML .= aaaabn(createtable(get_phrase("member_manager_membergroups_alt"), $tableContents, 3, $aaaakk));
return $HTML;
}
}
function aaaagq($permNames, $Permissions, $REL)
{
global $TSUE;
$List = "\r\n\t<table cellpadding=\"5\" cellspacing=\"0\" border=\"0\">\r\n\t\t<tr>\r\n\t\t\t<td> </td>\r\n\t\t\t<td>\r\n\t\t\t\t<a href=\"javascript:void(0);\" id=\"setALLYes\" rel=\"" . $REL . "\">" . getimage("status/checkall_yes.png", get_phrase("global_setall_yes")) . "</a> \r\n\t\t\t\t<a href=\"javascript:void(0);\" id=\"setALLNo\" rel=\"" . $REL . "\">" . getimage("status/checkall_no.png", get_phrase("global_setall_no")) . "</a>\r\n\t\t\t</td>\r\n\t\t</tr>";
foreach( $permNames as $Name )
{
if( !is_array($Name) )
{
$phrase = $Name;
$radioBox = radioyesno("Permissions[" . $Name . "]", (isset($Permissions[$Name]) ? $Permissions[$Name] : ""), NULL, $REL) . ((isset($TSUE["TSUE_Language"]["phrase"][(string) $Name . "_tip"]) ? aaaaky($TSUE["TSUE_Language"]["phrase"][(string) $Name . "_tip"]) : ""));
}
else
{
$radioBox = "";
foreach( $Name as $nName => $nValues )
{
$phrase = $nName;
foreach( $nValues as $nm => $val )
{
$radioBox .= aaaakz("Permissions[" . $nName . "]", $val, isset($Permissions[$nName]) && $Permissions[$nName] == $val, $nm, (isset($TSUE["TSUE_Language"]["phrase"][(string) $nName . "_tip"]) ? aaaaky($TSUE["TSUE_Language"]["phrase"][(string) $nName . "_tip"]) : ""));
}
}
}
$phrase = get_phrase($phrase);
if( 50 < strlen($phrase) )
{
$phrase = "<span style=\"font-size: 11px;\">" . $phrase . "</span>";
}
$List .= "\r\n\t\t<tr class=\"tableContentTR\">\r\n\t\t\t<td style=\"text-align: right; font-weight: bold; width: 350px; vertical-align: top;\" width=\"350\" valign=\"top\">" . $phrase . "</td>\r\n\t\t\t<td style=\"text-align: left; width: 300px;\" width=\"300\">" . $radioBox . "</td>\r\n\t\t</tr>";
}
$List .= "</table>";
return $List;
}
function aaaaks($permNames, $Permissions)
{
global $TSUE;
$List = "\r\n\t<table cellpadding=\"5\" cellspacing=\"0\" border=\"0\">";
foreach( $permNames as $permName => $nextToInputText )
{
$Options = array( "Phrase" => $permName, "fieldName" => "Permissions[" . $permName . "]", "Value" => (isset($Permissions[$permName]) ? $Permissions[$permName] : ""), "altPhrase" => (isset($TSUE["TSUE_Language"]["phrase"][$permName . "_alt"]) ? $TSUE["TSUE_Language"]["phrase"][$permName . "_alt"] : ""), "nextToInputText" => $nextToInputText );
$phrase = get_phrase($Options["Phrase"]);
if( 50 < strlen($phrase) )
{
$phrase = "<span style=\"font-size: 11px;\">" . $phrase . "</span>";
}
$List .= "\r\n\t\t<tr class=\"tableContentTR\">\r\n\t\t\t<td style=\"text-align: right; font-weight: bold; width: 350px; vertical-align: top;\" width=\"350\" valign=\"top\">" . $phrase . "</td>\r\n\t\t\t<td style=\"text-align: left; width: 300px;\" width=\"300\">\r\n\t\t\t\t" . inputbox($Options["fieldName"], $Options["Value"], "text", $Options["altPhrase"]) . " \r\n\t\t\t\t<span class=\"smallPassiveText\">" . $Options["nextToInputText"] . "</span>\r\n\t\t\t</td>\r\n\t\t</tr>";
}
$List .= "</table>";
return $List;
}
function manageemailmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$emailMembers = array( "from_name" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"], "from_email" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"], "email_title" => "", "email_body" => "", "receive_admin_email" => 1, "membername" => "", "email" => "", "joindate" => "", "lastactivity" => "", "membergroup" => array( ) );
if( isset($_POST["emailMembers"]) )
{
checkdemomode();
$emailMembers = $_POST["emailMembers"];
if( !isset($emailMembers["membergroup"]) )
{
$emailMembers["membergroup"] = array( );
}
if( !isset($emailMembers["receive_admin_email"]) )
{
$emailMembers["receive_admin_email"] = 0;
}
foreach( array( "from_name", "from_email", "email_title", "email_body" ) as $required )
{
if( empty($emailMembers[$required]) )
{
$errorDetected = true;
}
}
if( isset($errorDetected) )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( !is_valid_email($emailMembers["from_email"]) )
{
$formErrors[] = get_phrase("invalid_email");
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$Where = "";
$searchCriteria = array( );
if( $emailMembers["receive_admin_email"] )
{
$searchCriteria[] = "privacy.receive_admin_email = 1";
}
if( $emailMembers["membername"] )
{
$searchCriteria[] = "m.membername = " . $TSUE["TSUE_Database"]->escape($emailMembers["membername"]);
}
if( $emailMembers["email"] )
{
$searchCriteria[] = "m.email = " . $TSUE["TSUE_Database"]->escape($emailMembers["email"]);
}
if( $emailMembers["joindate"] )
{
$joindate = list($day, $month, $year) = tsue_explode("/", $emailMembers["joindate"]);
$joindate = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.joindate > " . $joindate;
}
if( $emailMembers["lastactivity"] )
{
$lastactivity = list($day, $month, $year) = tsue_explode("/", $emailMembers["lastactivity"]);
$lastactivity = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.lastactivity > " . $lastactivity;
}
$aaaala = false;
if( !empty($emailMembers["membergroup"]) )
{
$aaaala = in_array(is_member_of("banned"), $emailMembers["membergroup"]);
$searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $emailMembers["membergroup"])) . ")";
}
if( !empty($searchCriteria) )
{
$WHERE = " WHERE " . implode(" AND ", $searchCriteria);
}
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, b.memberid AS isBanned, g.groupstyle, p.uploaded, p.downloaded \r\n\t\t\tFROM tsue_members m \r\n\t\t\tLEFT JOIN tsue_member_bans b USING(memberid)\r\n\t\t\tLEFT JOIN tsue_membergroups g USING(membergroupid) \r\n\t\t\tLEFT JOIN tsue_member_profile p USING(memberid) \r\n\t\t\tLEFT JOIN tsue_member_privacy privacy USING(memberid)\r\n\t\t\t" . $WHERE . " ORDER BY membername ASC");
if( !($totalMembers = $TSUE["TSUE_Database"]->num_rows($Members)) )
{
$HTML .= errormessage(get_phrase("no_members_matched"));
}
else
{
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
if( !($aaaala && $Member["isBanned"]) )
{
sent_mail($Member["email"], $Member["membername"], $emailMembers["email_title"], $emailMembers["email_body"], $emailMembers["from_email"], $emailMembers["from_name"], false);
}
}
$HTML .= successmessage(get_phrase("email_members_email_was_sent", number_format($totalMembers)));
}
}
}
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_from_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[from_name]", $emailMembers["from_name"]) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_from_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[from_email]", $emailMembers["from_email"]) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_email_title"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[email_title]", $emailMembers["email_title"]) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_email_body"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => textarea("emailMembers[email_body]", $emailMembers["email_body"], true) ) ));
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("global_search_criteria"), "colspan" => 2 ) ), "tableContentTDHeader");
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => "<input type=\"checkbox\" name=\"emailMembers[receive_admin_email]\" value=\"1\"" . (($emailMembers["receive_admin_email"] == 1 ? " checked=\"checked\"" : "")) . " /> " . get_phrase("email_members_only_to_members_receive_email_enabled") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[membername]", $emailMembers["membername"], "text texthalf", NULL, false, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[email]", $emailMembers["email"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[joindate]", $emailMembers["joindate"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[lastactivity]", $emailMembers["lastactivity"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("emailMembers[membergroup][]", $emailMembers["membergroup"], 3) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("member_manager_email_members"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("member_manager_email_members_alt"), $tableContents, 2)) . "\r\n\t<script type=\"text/javascript\">\r\n\t\t\$(\"#simpleForm\").submit(function(e)\r\n\t\t{\r\n\t\t\tTSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("sending_email") . "', false, false);\r\n\t\t});\r\n\t</script>";
return $HTML;
}
function managesearchmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$Search = array( "membername" => "", "email" => "", "passkey" => "", "joindate" => "", "lastactivity" => "", "ipaddress" => "", "uploaded" => "", "downloaded" => "", "ratio" => "", "ratioType" => "", "total_posts" => "", "membergroup" => array( ) );
if( isset($_POST["Search"]) )
{
$Search = $_POST["Search"];
$Where = "";
$searchCriteria = array( );
if( !isset($Search["membergroup"]) )
{
$Search["membergroup"] = array( );
}
if( $Search["membername"] )
{
$searchCriteria[] = "m.membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["membername"]) . "%'";
}
if( $Search["email"] )
{
$searchCriteria[] = "m.email LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["email"]) . "%'";
}
if( $Search["passkey"] )
{
$searchCriteria[] = "m.passkey LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["passkey"]) . "%'";
}
if( $Search["joindate"] )
{
$joindate = list($day, $month, $year) = tsue_explode("/", $Search["joindate"]);
$joindate = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.joindate > " . $joindate;
}
if( $Search["lastactivity"] )
{
$lastactivity = list($day, $month, $year) = tsue_explode("/", $Search["lastactivity"]);
$lastactivity = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.lastactivity > " . $lastactivity;
}
if( $Search["ipaddress"] )
{
$searchCriteria[] = "m.ipaddress LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["ipaddress"]) . "%'";
}
if( $Search["uploaded"] )
{
$searchCriteria[] = "p.uploaded > " . (0 + $Search["uploaded"]);
}
if( $Search["downloaded"] )
{
$searchCriteria[] = "p.downloaded > " . (0 + $Search["downloaded"]);
}
$Search["ratio"] = 0 + $Search["ratio"];
if( $Search["ratio"] && in_array($Search["ratioType"], array( "=", ">", ">=", "<", "<=" )) )
{
$searchCriteria[] = "(p.downloaded > 0 AND p.uploaded/p.downloaded " . $Search["ratioType"] . " " . $Search["ratio"] . ")";
}
if( $Search["total_posts"] )
{
$searchCriteria[] = "p.total_posts > " . (0 + $Search["total_posts"]);
}
if( !empty($Search["membergroup"]) )
{
$searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $Search["membergroup"])) . ")";
}
if( empty($searchCriteria) )
{
$HTML .= errormessage(get_phrase("no_members_matched"));
}
else
{
$WHERE = " WHERE " . implode(" AND ", $searchCriteria);
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.joindate, m.lastactivity, m.ipaddress, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid)" . $WHERE . " ORDER BY m.membername ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Members) )
{
$HTML .= errormessage(get_phrase("no_members_matched"));
}
else
{
$TSUE["do"] = "All Members";
return aaaaaj($Members);
}
}
}
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[membername]", $Search["membername"], "text texthalf", NULL, false, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[email]", $Search["email"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_passkey"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[passkey]", $Search["passkey"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[joindate]", $Search["joindate"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[lastactivity]", $Search["lastactivity"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_ip"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[ipaddress]", $Search["ipaddress"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_uploaded"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[uploaded]", $Search["uploaded"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_downloaded"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[downloaded]", $Search["downloaded"], "text texthalf") ) ));
$aaaaao = array( "=" => "=", ">" => ">", ">=" => ">=", "<" => "<", "<=" => "<=" );
$selectbox = selectbox("Search[ratioType]", $Search["ratioType"], $aaaaao, "select smallSelect");
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_ratio"), "align" => "right" ), array( "width" => "80%", "text" => $selectbox . inputbox("Search[ratio]", $Search["ratio"], "text texttiny") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_total_posts"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[total_posts]", $Search["total_posts"], "text texthalf") ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("Search[membergroup][]", $Search["membergroup"], 3) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("member_manager_search_members_alt"), $tableContents, 2));
return $HTML;
}
function managepeers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$delete = intval(getvar("delete"));
$keywords = trim(getvar("keywords"));
$searchType = trim(getvar("searchType"));
$WHERE = "";
if( !in_array($searchType, array( "membername", "torrentname" )) )
{
$searchType = "membername";
}
if( $keywords && $searchType )
{
switch( $searchType )
{
case "membername":
$WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords);
break;
case "torrentname":
$WHERE = " AND t.name LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
break;
}
}
if( getsetting("xbt", "active") )
{
$orderBy["fieldname"] = "p.mtime";
}
else
{
$orderBy["fieldname"] = "p.last_updated";
}
$orderBy["type"] = "DESC";
if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
{
$allowedFieldNames = array( "m.membername", "t.name", "p.ipaddress", "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed", "p.announced", "p.last_updated" );
$allowedTypes = array( "DESC", "ASC" );
if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
{
$orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
$orderBy["type"] = $_REQUEST["orderBy"]["type"];
}
}
if( $delete )
{
if( getsetting("xbt", "active") )
{
$memberid = intval(getvar("memberid"));
$Peer = $TSUE["TSUE_Database"]->query_result("SELECT SQL_NO_CACHE uid FROM xbt_files_users WHERE fid = " . $TSUE["TSUE_Database"]->escape($delete) . " AND uid=" . $TSUE["TSUE_Database"]->escape($memberid));
if( $Peer )
{
$TSUE["TSUE_Database"]->delete("xbt_files_users", "fid=" . $TSUE["TSUE_Database"]->escape($delete) . " AND uid=" . $TSUE["TSUE_Database"]->escape($memberid));
logadminaction(get_phrase("peers_peer_deleted", $delete));
}
}
else
{
$Peer = $TSUE["TSUE_Database"]->query_result("SELECT SQL_NO_CACHE memberid FROM tsue_torrents_peers WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Peer )
{
$TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "pid=" . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("peers_peer_deleted", $delete));
}
}
}
if( getsetting("xbt", "active") )
{
$peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE);
}
else
{
$peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE);
}
$tableContents .= aaaaag(array( array( "width" => "25%", "text" => get_phrase("your_name") ), array( "width" => "15%", "text" => get_phrase("search_criteria_ip") ), array( "width" => "15%", "text" => get_phrase("stats_uploaded") ), array( "width" => "15%", "text" => get_phrase("stats_downloaded") ), array( "width" => "10%", "text" => get_phrase("torrents_peer_announced") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_last_updated") ), array( "width" => "5%", "text" => get_phrase("global_action") ) ), "tableContentTR", "tableContentTDHeader");
if( !$peerCount )
{
$Pagination["1"] = "";
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 7 ) ));
}
else
{
$Pagination = pagination($peerCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&orderBy[type]=" . $orderBy["type"] . (($keywords ? "&keywords=" . urlencode($keywords) . "&searchType=" . $searchType : "")));
if( getsetting("xbt", "active") )
{
$aaaalb["fieldname"] = str_replace(array( "p.ipaddress", "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed", "p.last_updated" ), array( "m.ipaddress", "p.uploaded", "p.up_rate", "p.downloaded", "p.down_rate", "p.mtime" ), $orderBy["fieldname"]);
$Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.fid as pid, p.announced, p.port, p.downloaded as total_downloaded, p.uploaded as total_uploaded, p.mtime as last_updated, p.up_rate as upload_speed, p.down_rate as download_speed, t.tid, t.name, m.memberid, m.membername, m.ipaddress, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE . " ORDER BY " . $aaaalb["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
}
else
{
$Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
}
while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
{
$torrentName = strip_tags($Peer["name"]);
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) ));
$aaaalc = aaaaae(array( "delete=" . $Peer["pid"] . "&memberid=" . $Peer["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "text" => $aaaakb . "<br />" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], "<span title=\"" . $torrentName . "\">" . substr($torrentName, 0, 25) . "</span>", $torrentName) ), array( "text" => strip_tags($Peer["ipaddress"]) . ":" . intval($Peer["port"]) . ((getsetting("xbt", "active") ? "" : "<div style=\"font-size: 10px;\">" . get_phrase("peer_id") . ": " . friendlypeerid($Peer["peer_id"]) . "</div>")) ), array( "text" => friendly_size($Peer["total_uploaded"]) . "<br />" . friendly_size($Peer["upload_speed"]) . "/s" ), array( "text" => friendly_size($Peer["total_downloaded"]) . "<br />" . friendly_size($Peer["download_speed"]) . "/s" ), array( "text" => number_format($Peer["announced"]) ), array( "text" => convert_relative_time($Peer["last_updated"]) ), array( "text" => $aaaalc ) ));
}
}
$selectBox = "\r\n\t<select name=\"searchType\" class=\"selectNoWidth\">\r\n\t\t<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t<option value=\"torrentname\"" . (($searchType == "torrentname" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>\r\n\t</select>";
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
$HTML .= createtable(get_phrase("member_manager_peers_alt"), $tableContents, 7, $Pagination["1"]);
$HTML .= "\r\n\t<div style=\"float: right; margin-top: 10px;\">\r\n\t\t" . aaaabn("\r\n\t\t" . get_phrase("torrents_sort_by") . "\r\n\t\t<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t\t<option value=\"t.name\"" . (($orderBy["fieldname"] == "t.name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>\r\n\t\t\t<option value=\"p.ipaddress\"" . (($orderBy["fieldname"] == "p.ipaddress" ? " selected=\"selected\"" : "")) . ">" . get_phrase("search_criteria_ip") . "</option>\r\n\t\t\t<option value=\"p.total_uploaded\"" . (($orderBy["fieldname"] == "p.total_uploaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_uploaded") . "</option>\r\n\t\t\t<option value=\"p.upload_speed\"" . (($orderBy["fieldname"] == "p.upload_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_uploaded") . "</option>\r\n\t\t\t<option value=\"p.total_downloaded\"" . (($orderBy["fieldname"] == "p.total_downloaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_downloaded") . "</option>\r\n\t\t\t<option value=\"p.download_speed\"" . (($orderBy["fieldname"] == "p.download_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_downloaded") . "</option>\r\n\t\t\t<option value=\"p.announced\"" . (($orderBy["fieldname"] == "p.announced" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_announced") . "</option>\r\n\t\t\t<option value=\"p.last_updated\"" . (($orderBy["fieldname"] == "p.last_updated" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_last_updated") . "</option>\r\n\t\t</select>\r\n\t\t<select name=\"orderBy[type]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>\r\n\t\t\t<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>\r\n\t\t</select>\r\n\t\t<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "\r\n\t</div>";
return $HTML;
}
function manageaccountupgrades()
{
global $TSUE;
$HTML = "";
$aaaald = aaaaae(array( "new=1" => array( "phrase" => get_phrase("upgrade_create_new") ) ));
$aaaale = aaaaae(array( "list_active_upgrades=1" => array( "phrase" => get_phrase("upgrade_list_active_upgrades") ) ));
$aaaalf = aaaaae(array( "list_active_upgrades=1&create_new_active_upgrade=1" => array( "phrase" => get_phrase("create_new_active_upgrade") ) ));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$list_active_upgrades = intval(getvar("list_active_upgrades"));
$promotion_id = intval(getvar("promotion_id"));
$create_new_active_upgrade = intval(getvar("create_new_active_upgrade"));
$edit_promotion_id = intval(getvar("edit_promotion_id"));
if( $list_active_upgrades )
{
if( $promotion_id )
{
$aaaalg = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, u.upgrade_title, m.membername FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_members m USING(memberid) WHERE p.promotion_id = " . $TSUE["TSUE_Database"]->escape($promotion_id) . " AND p.active = 1");
if( !$aaaalg )
{
return errormessage(get_phrase("message_content_error"));
}
$buildQuery = array( "expiry_date" => TIMENOW );
$TSUE["TSUE_Database"]->update("tsue_member_upgrades_promotions", $buildQuery, "promotion_id =" . $TSUE["TSUE_Database"]->escape($promotion_id));
aaaabd("expired.php");
logadminaction(get_phrase("upgrade_member_downrage_completed", $aaaalg["membername"], $aaaalg["upgrade_title"]));
$HTML .= successmessage(get_phrase("message_saved"));
}
addbreadcrumb(array( get_phrase("upgrade_list_active_upgrades") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_upgrades=1" ));
if( $create_new_active_upgrade )
{
$membername = getvar("membername");
$upgrade_id = intval(getvar("upgrade_id"));
addbreadcrumb(array( get_phrase("create_new_active_upgrade") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_upgrades=1&create_new_active_upgrade=1" ));
if( ispost() )
{
return aaaalh($membername, $upgrade_id);
}
$inputbox = inputbox("membername", $membername, "text", "", false, true);
$formContents = aaaaan(get_phrase("upgrade_membername"), $inputbox);
$optionArray = array( );
$Upgrades = $TSUE["TSUE_Database"]->query("SELECT upgrade_id, upgrade_title FROM tsue_member_upgrades");
while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($Upgrades) )
{
$optionArray[$Upgrade["upgrade_id"]] = $Upgrade["upgrade_title"];
}
$selectbox = selectbox("upgrade_id", $upgrade_id, $optionArray);
$formContents .= aaaaan(get_phrase("upgrade_account_upgrades"), $selectbox);
$HTML .= aaaabg($formContents);
return $HTML;
}
if( $edit_promotion_id )
{
$aaaali = $TSUE["TSUE_Database"]->query_result("SELECT p.promotion_id, p.start_date, p.expiry_date, p.memberid, p.active, u.upgrade_title, u.upgrade_length, u.upgrade_length_type, t.txn_id, t.amount, t.currency, a.title as processor, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_member_upgrades_transaction t USING(txn_id) LEFT JOIN tsue_member_upgrades_api a USING(api_id) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.promotion_id = " . $TSUE["TSUE_Database"]->escape($edit_promotion_id) . " AND p.active = 1");
if( $aaaali )
{
addbreadcrumb(array( $aaaali["upgrade_title"] . ": " . getmembername($aaaali["membername"], $aaaali["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_upgrades=1&edit_promotion_id=" . $edit_promotion_id ));
if( ispost() )
{
$expiry_date = getvar("expiry_date");
if( $expiry_date )
{
$expiry_date = str_replace("/", "-", $expiry_date);
$expiry_date = strtotime($expiry_date);
}
if( $expiry_date )
{
$TSUE["TSUE_Database"]->update("tsue_member_upgrades_promotions", array( "expiry_date" => $expiry_date ), "promotion_id = " . $TSUE["TSUE_Database"]->escape($edit_promotion_id) . " AND active = 1");
$aaaali["expiry_date"] = $expiry_date;
logadminaction(get_phrase("upgrade_item_has_been_updated", $aaaali["upgrade_title"] . ": " . getmembername($aaaali["membername"], $aaaali["groupstyle"])));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
if( !$expiry_date )
{
$HTML .= errormessage(get_phrase("message_required_fields_error"));
}
}
if( !isset($updateDone) )
{
if( $aaaali["upgrade_length_type"] == "lifetime" || !$aaaali["expiry_date"] )
{
$expiry_date = "";
}
else
{
$expiry_date = date("d/m/Y", $aaaali["expiry_date"]);
}
$inputbox = inputbox("expiry_date", $expiry_date, "text", "", true);
$formContents = aaaaan(get_phrase("upgrade_item_expires"), $inputbox);
$HTML .= aaaabg($formContents);
return $HTML;
}
}
}
$aaaalj = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as upgradesCount FROM tsue_member_upgrades_promotions WHERE active = 1");
$Pagination = pagination($aaaalj["upgradesCount"], "list_active_upgrades=1");
if( $aaaalj && $aaaalj["upgradesCount"] )
{
$memberUpgrades = $TSUE["TSUE_Database"]->query("SELECT p.promotion_id, p.start_date, p.expiry_date, p.memberid, p.active, u.upgrade_title, u.upgrade_length, u.upgrade_length_type, t.txn_id, t.amount, t.currency, a.title as processor, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_member_upgrades_transaction t USING(txn_id) LEFT JOIN tsue_member_upgrades_api a USING(api_id) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1 GROUP BY txn_id ORDER BY p.expiry_date " . $Pagination["0"]);
$tableContents = aaaaag(array( array( "width" => "15%", "text" => get_phrase("upgrade_membername") ), array( "width" => "25%", "text" => get_phrase("upgrade_item_title") ), array( "width" => "20%", "text" => get_phrase("upgrade_item_length") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_start_date") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_expires") ), array( "width" => "10%", "text" => get_phrase("global_action") ) ), NULL, "tableContentTDHeader");
while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($memberUpgrades) )
{
$noAction = 0;
if( $Upgrade["upgrade_length_type"] == "lifetime" || !$Upgrade["expiry_date"] )
{
$Upgrade["upgrade_length"] = "";
$Upgrade["upgrade_length_type"] = get_phrase("upgrade_lifetime");
}
else
{
if( $Upgrade["upgrade_length_type"] )
{
$Upgrade["upgrade_length_type"] = get_phrase("upgrade_" . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : "")));
}
}
if( !$Upgrade["txn_id"] )
{
$Upgrade["txn_id"] = "N/A";
}
if( $Upgrade["amount"] )
{
$upradePrice = get_phrase("upgrade_price", $Upgrade["amount"], strtoupper($Upgrade["currency"]), $Upgrade["upgrade_length"], $Upgrade["upgrade_length_type"]);
}
else
{
$upradePrice = "[N/A]";
}
$Upgrade["start_date"] = convert_relative_time($Upgrade["start_date"]);
if( !$Upgrade["active"] )
{
$Upgrade["expiry_date"] = get_phrase("upgrade_disabled");
}
else
{
if( !$Upgrade["expiry_date"] || $Upgrade["upgrade_length_type"] == "lifetime" )
{
$Upgrade["expiry_date"] = get_phrase("upgrade_lifetime");
}
else
{
if( $Upgrade["expiry_date"] <= TIMENOW )
{
$Upgrade["expiry_date"] = get_phrase("upgrade_expired_waiting_cron");
$noAction = 1;
}
else
{
$Upgrade["expiry_date"] = convert_time($Upgrade["expiry_date"]);
}
}
}
$editLink = aaaaae(array( "list_active_upgrades=1&edit_promotion_id=" . $Upgrade["promotion_id"] => array( "phrase" => getimage("buttons/edit_s.png", get_phrase("button_edit")) ) ));
$aaaalk = ($noAction ? "" : aaaaae(array( "list_active_upgrades=1&promotion_id=" . $Upgrade["promotion_id"] => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("upgrade_downgrade")), "confirmation" => get_phrase("upgrade_downgrade_confirm", $Upgrade["membername"]) ) )));
$tableContents .= aaaaag(array( array( "width" => "15%", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Upgrade["memberid"] => array( "phrase" => getmembername($Upgrade["membername"], $Upgrade["groupstyle"]) ) )) . " <span class=\"smallPassiveTextBlock\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Upgrade["memberid"] => array( "phrase" => getmembername($Upgrade["groupname"], $Upgrade["groupstyle"]) ) )) . "</span>" ), array( "width" => "25%", "text" => $Upgrade["upgrade_title"] . " <span class=\"smallPassiveTextBlock\">" . $Upgrade["processor"] . " [#" . $Upgrade["txn_id"] . "]</span>" ), array( "width" => "20%", "text" => $upradePrice ), array( "width" => "15", "text" => $Upgrade["start_date"] ), array( "width" => "15%", "text" => $Upgrade["expiry_date"] ), array( "width" => "10%", "text" => $editLink . $aaaalk ) ));
}
$HTML .= createtable(get_phrase("upgrade_list_active_upgrades") . " (" . number_format($aaaalj["upgradesCount"]) . ") (" . $aaaalf . ")", $tableContents, 6, $Pagination["1"]);
return $HTML;
}
return errormessage(get_phrase("upgrade_no_active_upgrades") . " " . $aaaalf);
}
if( $edit || $new )
{
$Upgrade = array( "upgrade_title" => "", "upgrade_description" => "", "upgrade_length" => "", "upgrade_length_type" => "", "upgrade_membergroupid" => "", "upgrade_points" => "", "upgrade_invites" => "", "upgrade_upload" => "", "upgrade_price" => "", "upgrade_currency" => "", "viewpermissions" => array( ), "upgrade_demote_to" => 0 );
$aaaaam = "";
if( $edit )
{
$Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Upgrade )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
if( !$Upgrade["viewpermissions"] )
{
$Upgrade["viewpermissions"] = array( );
}
else
{
$Upgrade["viewpermissions"] = unserialize($Upgrade["viewpermissions"]);
}
}
if( isset($_POST["Upgrade"]) )
{
$Upgrade = $_POST["Upgrade"];
if( !isset($Upgrade["viewpermissions"]) || !$Upgrade["viewpermissions"] )
{
$Upgrade["viewpermissions"] = array( );
}
if( !$Upgrade["upgrade_title"] )
{
$formErrors[] = get_phrase("upgrade_title_error");
}
if( !$Upgrade["upgrade_price"] )
{
$formErrors[] = get_phrase("upgrade_price_error");
}
if( !isset($formErrors) )
{
if( $Upgrade["upgrade_length_type"] == "lifetime" )
{
$Upgrade["upgrade_length"] = 0;
}
$buildQuery = array( "upgrade_title" => $Upgrade["upgrade_title"], "upgrade_description" => $Upgrade["upgrade_description"], "upgrade_length" => $Upgrade["upgrade_length"], "upgrade_length_type" => $Upgrade["upgrade_length_type"], "upgrade_membergroupid" => $Upgrade["upgrade_membergroupid"], "upgrade_points" => $Upgrade["upgrade_points"], "upgrade_invites" => $Upgrade["upgrade_invites"], "upgrade_upload" => $Upgrade["upgrade_upload"], "upgrade_price" => $Upgrade["upgrade_price"], "upgrade_currency" => $Upgrade["upgrade_currency"], "upgrade_demote_to" => intval($Upgrade["upgrade_demote_to"]), "viewpermissions" => ($Upgrade["viewpermissions"] ? serialize($Upgrade["viewpermissions"]) : "") );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_member_upgrades", $buildQuery, "upgrade_id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_member_upgrades", $buildQuery);
}
logadminaction(get_phrase("upgrade_item_has_been_updated", $Upgrade["upgrade_title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Upgrade[upgrade_title]", $Upgrade["upgrade_title"]);
$formContents = aaaaan(get_phrase("upgrade_item_title"), $inputbox);
$textarea = textarea("Upgrade[upgrade_description]", $Upgrade["upgrade_description"], true);
$formContents .= aaaaan(get_phrase("upgrade_item_description"), $textarea);
$inputbox = inputbox("Upgrade[upgrade_length]", $Upgrade["upgrade_length"], "text textVeryTiny");
$optionArray = array( "day" => get_phrase("upgrade_day"), "week" => get_phrase("upgrade_week"), "month" => get_phrase("upgrade_month"), "year" => get_phrase("upgrade_year"), "lifetime" => get_phrase("upgrade_lifetime") );
$selectbox = selectbox("Upgrade[upgrade_length_type]", $Upgrade["upgrade_length_type"], $optionArray, "select smallSelect");
$formContents .= aaaaan(get_phrase("upgrade_length"), $inputbox . $selectbox);
$Usergroups = aaaabf("Upgrade[upgrade_membergroupid]", $Upgrade["upgrade_membergroupid"], true);
$formContents .= aaaaan(get_phrase("upgrade_membergroup"), $Usergroups, get_phrase("upgrade_membergroup_alt"));
$Usergroups = aaaabf("Upgrade[upgrade_demote_to]", $Upgrade["upgrade_demote_to"], true, get_phrase("previous_membergroup"));
$formContents .= aaaaan(get_phrase("upgrade_demote_membergroup"), $Usergroups, get_phrase("upgrade_demote_membergroup_alt"));
$inputbox = inputbox("Upgrade[upgrade_points]", $Upgrade["upgrade_points"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("upgrade_gift_points"), $inputbox);
$inputbox = inputbox("Upgrade[upgrade_invites]", $Upgrade["upgrade_invites"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("upgrade_gift_invites"), $inputbox);
$inputbox = inputbox("Upgrade[upgrade_upload]", $Upgrade["upgrade_upload"], "text textVeryTiny", "GB");
$formContents .= aaaaan(get_phrase("upgrade_gift_upload"), $inputbox);
$inputbox = inputbox("Upgrade[upgrade_price]", $Upgrade["upgrade_price"], "text textVeryTiny");
$optionArray = currencycodes();
$selectbox = selectbox("Upgrade[upgrade_currency]", $Upgrade["upgrade_currency"], $optionArray, "select smallSelect", "", true);
$formContents .= aaaaan(get_phrase("upgrade_item_price_currency"), $inputbox . $selectbox);
$Usergroups = aaaaaw("Upgrade[viewpermissions][]", $Upgrade["viewpermissions"]);
$formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT upgrade_title FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Upgrade )
{
$TSUE["TSUE_Database"]->update("tsue_member_upgrades", $BuildQuery, "upgrade_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("upgrade_item_has_been_updated", $Upgrade["upgrade_title"] . " (" . $enable_disable . ")"));
handlerebuildcaches(false);
}
}
if( $delete )
{
$Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT upgrade_title FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Upgrade )
{
$TSUE["TSUE_Database"]->delete("tsue_member_upgrades", "upgrade_id = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("upgrade_item_has_been_deleted", $Upgrade["upgrade_title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
$Upgrades = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_member_upgrades ORDER BY active DESC, upgrade_price ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Upgrades) )
{
$tableContents = errormessage(get_phrase("upgrade_account_no_items"));
}
else
{
$membergroupCache = array( );
$membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups");
while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
{
$membergroupCache[$membergroup["membergroupid"]] = getmembername($membergroup["groupname"], $membergroup["groupstyle"]);
}
$tableContents = "";
while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($Upgrades) )
{
$linkClass = (!$Upgrade["active"] ? "linkDisabled" : "");
$aaaall = aaaaae(array( "edit=" . $Upgrade["upgrade_id"] => array( "phrase" => $Upgrade["upgrade_title"], "class" => $linkClass ) ));
$aaaalm = aaaaae(array( "delete=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Upgrade["upgrade_length_type"] == "lifetime" )
{
$Upgrade["upgrade_length"] = "";
$Upgrade["upgrade_length_type"] = get_phrase("upgrade_lifetime");
}
else
{
$Upgrade["upgrade_length_type"] = get_phrase("upgrade_" . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : "")));
}
$upradePrice = get_phrase("upgrade_price", $Upgrade["upgrade_price"], strtoupper($Upgrade["upgrade_currency"]), $Upgrade["upgrade_length"], $Upgrade["upgrade_length_type"]);
$Promotions = "";
if( $Upgrade["upgrade_membergroupid"] )
{
$Promotions[] = get_phrase("upgrade_membergroup_x", $membergroupCache[$Upgrade["upgrade_membergroupid"]]);
}
if( $Upgrade["upgrade_points"] )
{
$Promotions[] = get_phrase("upgrade_points_x", number_format($Upgrade["upgrade_points"]));
}
if( $Upgrade["upgrade_invites"] )
{
$Promotions[] = get_phrase("upgrade_invites_x", number_format($Upgrade["upgrade_invites"]));
}
if( $Upgrade["upgrade_upload"] )
{
$Promotions[] = get_phrase("upgrade_upload_x", friendly_size($Upgrade["upgrade_upload"] * 1073741824));
}
if( $Promotions )
{
$Promotions = "<br />" . implode(" - ", $Promotions);
}
if( $Upgrade["active"] )
{
$aaaaln = aaaaae(array( "enable_disable=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaaln = aaaaae(array( "enable_disable=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaall . "<span class=\"smallPassiveText\">" . $upradePrice . " " . $Promotions . "</span>" ), array( "width" => "15%", "text" => $aaaaln . $aaaalm ) ));
}
}
$HTML .= createtable(get_phrase("upgrade_account_upgrades_alt"), $tableContents, 2, $aaaald . " - " . $aaaale);
return $HTML;
}
function aaaalh($membername, $upgrade_id)
{
global $TSUE;
$Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($upgrade_id));
if( !$Upgrade )
{
return errormessage(get_phrase("upgrade_invalid_item"));
}
$Member = $TSUE["TSUE_Database"]->query_result("SELECT memberid, membername, membergroupid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($membername));
if( !$Member )
{
return errormessage(get_phrase("member_not_found"));
}
$hash = md5($Member["memberid"] . $Upgrade["upgrade_title"] . $Upgrade["upgrade_id"] . generatepasskey(10));
$BuildQuery = array( "hash" => $hash, "upgrade_id" => $Upgrade["upgrade_id"], "memberid" => $Member["memberid"], "completed" => 1, "created" => TIMENOW );
$TSUE["TSUE_Database"]->insert("tsue_member_upgrades_purchases", $BuildQuery);
$history_id = $TSUE["TSUE_Database"]->insert_id();
$BuildQuery = array( "history_id" => $history_id, "amount" => $Upgrade["upgrade_price"], "currency" => $Upgrade["upgrade_currency"], "state" => 1, "dateline" => TIMENOW, "api_id" => 1, "full_log" => "Added via Admin CP by " . $TSUE["TSUE_Member"]["membername"] );
$TSUE["TSUE_Database"]->insert("tsue_member_upgrades_transaction", $BuildQuery);
$txn_id = $TSUE["TSUE_Database"]->insert_id();
$buildPromotion = array( );
$buildPromotion["upgrade_id"] = $Upgrade["upgrade_id"];
$buildPromotion["history_id"] = $history_id;
$buildPromotion["txn_id"] = $txn_id;
$buildPromotion["start_date"] = TIMENOW;
if( $Upgrade["upgrade_length"] && $Upgrade["upgrade_length_type"] != "lifetime" )
{
$buildPromotion["expiry_date"] = strtotime("+" . $Upgrade["upgrade_length"] . " " . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : "")));
}
else
{
$buildPromotion["expiry_date"] = 0;
}
$buildPromotion["memberid"] = $Member["memberid"];
$previousUpgrade = $TSUE["TSUE_Database"]->query_result("SELECT old_membergroupid FROM tsue_member_upgrades_promotions WHERE memberid = " . $TSUE["TSUE_Database"]->escape($Member["memberid"]) . " AND (expiry_date = 0 OR expiry_date > " . TIMENOW . ") AND active = 1 ORDER BY start_date ASC LIMIT 1");
if( $previousUpgrade )
{
$buildPromotion["old_membergroupid"] = $previousUpgrade["old_membergroupid"];
}
else
{
$buildPromotion["old_membergroupid"] = $Member["membergroupid"];
}
$buildPromotion["active"] = 1;
$TSUE["TSUE_Database"]->insert("tsue_member_upgrades_promotions", $buildPromotion);
$updateAccount = array( );
$profileUpdate = array( );
if( $Upgrade["upgrade_membergroupid"] )
{
$updateAccount["membergroupid"] = $Upgrade["upgrade_membergroupid"];
}
if( $Upgrade["upgrade_points"] )
{
$profileUpdate["points"] = array( "escape" => 0, "value" => "points+" . $Upgrade["upgrade_points"] );
}
if( $Upgrade["upgrade_invites"] )
{
$profileUpdate["invites_left"] = array( "escape" => 0, "value" => "invites_left+" . $Upgrade["upgrade_invites"] );
}
if( $Upgrade["upgrade_upload"] )
{
$profileUpdate["uploaded"] = array( "escape" => 0, "value" => "uploaded+" . $Upgrade["upgrade_upload"] * 1024 * 1024 * 1024 );
}
if( $updateAccount )
{
$TSUE["TSUE_Database"]->update("tsue_members", $updateAccount, "memberid=" . $TSUE["TSUE_Database"]->escape($Member["memberid"]));
}
if( $profileUpdate )
{
profileupdate($Member["memberid"], $profileUpdate);
}
$subject = get_phrase("upgrade_thank_you_subject");
$message = nl2br(get_phrase("upgrade_thank_you_message", $Member["membername"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]));
sendpm($subject, $TSUE["TSUE_Member"]["memberid"], $Member["memberid"], $message);
aaaabd("expired.php");
logadminaction(get_phrase("new_active_upgrade_added", $Upgrade["upgrade_title"], $Member["membername"] . " (" . $Member["memberid"] . ")"));
handlerebuildcaches(false);
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_upgrades=1");
exit();
}
function managemutedmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaalo = aaaaae(array( "mute=1" => array( "phrase" => get_phrase("mute_member") ) ));
$mute = intval(getvar("mute"));
$lift = intval(getvar("lift"));
if( $lift )
{
$mutedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername, mm.membername AS mutedBy FROM tsue_member_mutes w LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (w.muted_by=mm.memberid) WHERE w.memberid=" . $TSUE["TSUE_Database"]->escape($lift));
if( !$mutedMember )
{
return errormessage(get_phrase("member_not_found"));
}
$TSUE["TSUE_Database"]->delete("tsue_member_mutes", "memberid=" . $TSUE["TSUE_Database"]->escape($lift));
$BuildQuery = array( "muted" => 0 );
$TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $mutedMember["memberid"]);
alert_member($mutedMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "mutes", 0, "mute_lifted");
logadminaction(get_phrase("mute_has_been_lifted", $mutedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
if( $mute )
{
$muteMember = array( "membername" => "", "memberid" => "", "muted_by" => $TSUE["TSUE_Member"]["memberid"], "mute_date" => TIMENOW, "end_date" => 0, "notes" => "" );
if( isset($_POST["muteMember"]) )
{
$muteMember = array_merge($muteMember, $_POST["muteMember"]);
if( !$muteMember["membername"] )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($muteMember["membername"]));
if( !$checkMember )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$muteMember["memberid"] = $checkMember["memberid"];
$aaaalp = $muteMember["membername"];
unset($muteMember["membername"]);
}
}
$mutetype = getvar("mutetype", array( ), false);
if( empty($mutetype) )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
$mutetype = array_map("intval", $mutetype);
if( empty($mutetype) )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
}
$mutetype = implode("", $mutetype);
if( $muteMember["end_date"] )
{
$end_date = list($day, $month, $year) = tsue_explode("/", $muteMember["end_date"]);
$end_date = strtotime((string) $year . "/" . $month . "/" . $day);
if( !checkdate($month, $day, $year) || $end_date <= TIMENOW )
{
$formErrors[] = get_phrase("mute_invalid_date");
}
}
if( !isset($formErrors) )
{
if( isset($end_date) )
{
$muteMember["end_date"] = $end_date;
}
else
{
$muteMember["end_date"] = 0;
}
$TSUE["TSUE_Database"]->replace("tsue_member_mutes", $muteMember);
$BuildQuery = array( "muted" => $mutetype );
$TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $muteMember["memberid"]);
alert_member($muteMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "mutes", 0, "mute_member");
logadminaction(get_phrase("member_has_been_muted", $aaaalp, $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("muteMember[membername]", (isset($muteMember["membername"]) ? $muteMember["membername"] : $aaaalp), "text", NULL, false, true);
$formContents = aaaaan(get_phrase("your_name"), $inputbox);
$inputbox = inputbox("muteMember[notes]", $muteMember["notes"]);
$formContents .= aaaaan(get_phrase("mute_reason"), $inputbox, get_phrase("mute_reason_alt"));
$inputbox = inputbox("muteMember[end_date]", $muteMember["end_date"], "text texthalf", get_phrase("mute_length_alt"), true);
$formContents .= aaaaan(get_phrase("mute_length"), $inputbox, get_phrase("mute_length_alt"));
$inputbox = aaaalq();
$formContents .= aaaaan(get_phrase("mute_type"), $inputbox);
$HTML .= aaaabg($formContents);
return $HTML;
}
}
$mutedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as mutedMembersCount FROM tsue_member_mutes");
if( !$mutedMembersCount["mutedMembersCount"] )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_muted_members") ) ));
return createtable(get_phrase("mute_reason_alt") . " (" . $aaaalo . ")", $tableContents);
}
$Pagination = pagination($mutedMembersCount["mutedMembersCount"]);
$mutedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS mutedBy, p.muted FROM tsue_member_mutes b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.muted_by=mm.memberid) LEFT JOIN tsue_member_profile p ON (b.memberid=p.memberid) " . $Pagination["0"]);
while( $mutedMember = $TSUE["TSUE_Database"]->fetch_assoc($mutedMembers) )
{
$listMutes = get_phrase("mute_type") . ": " . listmutes($mutedMember["muted"], false);
$notes = get_phrase("mute_reason") . ": " . (($mutedMember["notes"] ? strip_tags($mutedMember["notes"]) : ".."));
$mute_date = get_phrase("mute_started", convert_relative_time($mutedMember["mute_date"]));
$end_date = get_phrase("mute_end_date") . ": " . (($mutedMember["end_date"] && TIMENOW < $mutedMember["end_date"] ? convert_time($mutedMember["end_date"], "d/m/Y") : get_phrase("mutes_end_date_never")));
$muted_by = get_phrase("muted_by") . ": " . $mutedMember["mutedBy"];
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $mutedMember["memberid"] => array( "phrase" => $mutedMember["membername"] ) ));
$aaaalr = aaaaae(array( "lift=" . $mutedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("lift_mute")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $mute_date . " -- " . $end_date . " -- " . $muted_by . " -- " . $notes . " -- " . $listMutes . "</span>" ), array( "width" => "10%", "text" => $aaaalr ) ));
}
$HTML .= createtable(get_phrase("member_manager_muted_members_alt") . " (" . $aaaalo . ")", $tableContents, 2, $Pagination["1"]);
return $HTML;
}
function aaaalq()
{
return "\r\n\t<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">\r\n\t\t<tr>\r\n\t\t\t<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"1\" id=\"mute_in_comments\" /></td>\r\n\t\t\t<td><label for=\"mute_in_comments\">" . get_phrase("mute_in_comments") . "</label></td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"2\" id=\"mute_in_forums\" /></td>\r\n\t\t\t<td><label for=\"mute_in_forums\">" . get_phrase("mute_in_forums") . "</label></td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"3\" id=\"mute_in_shoutbox\" /></td>\r\n\t\t\t<td><label for=\"mute_in_shoutbox\">" . get_phrase("mute_in_shoutbox") . "</label></td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"4\" id=\"mute_in_pm\" /></td>\r\n\t\t\t<td><label for=\"mute_in_pm\">" . get_phrase("mute_in_pm") . "</label></td>\r\n\t\t</tr>\r\n\t</table>";
}
function managepmmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$pmMembers = array( "sender" => $TSUE["TSUE_Member"]["membername"], "subject" => "", "reply" => "", "joindate" => "", "lastactivity" => "", "membergroup" => array( ) );
if( isset($_POST["pmMembers"]) )
{
$pmMembers = $_POST["pmMembers"];
if( !isset($pmMembers["membergroup"]) )
{
$pmMembers["membergroup"] = array( );
}
foreach( array( "sender", "subject", "reply" ) as $required )
{
if( !isset($pmMembers[$required]) || empty($pmMembers[$required]) )
{
$errorDetected = true;
}
}
if( isset($errorDetected) )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
$Sender = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membergroupid, m.gender, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($pmMembers["sender"]));
if( !$Sender )
{
$formErrors[] = get_phrase("member_not_found");
}
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$Where = "";
$searchCriteria = array( );
if( $pmMembers["joindate"] )
{
$joindate = list($day, $month, $year) = tsue_explode("/", $pmMembers["joindate"]);
$joindate = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.joindate > " . $joindate;
}
if( $pmMembers["lastactivity"] )
{
$lastactivity = list($day, $month, $year) = tsue_explode("/", $pmMembers["lastactivity"]);
$lastactivity = strtotime((string) $year . "/" . $month . "/" . $day);
$searchCriteria[] = "m.lastactivity > " . $lastactivity;
}
if( !empty($pmMembers["membergroup"]) )
{
$searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $pmMembers["membergroup"])) . ")";
}
$WHERE = "";
if( !empty($searchCriteria) )
{
$WHERE = " WHERE " . implode(" AND ", $searchCriteria);
}
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, g.groupstyle, p.uploaded FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid)" . $WHERE . " ORDER BY membername ASC");
if( !($totalMembers = $TSUE["TSUE_Database"]->num_rows($Members)) )
{
$HTML .= errormessage(get_phrase("no_members_matched"));
}
else
{
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
sendpm($pmMembers["subject"], $Sender["memberid"], $Member["memberid"], $pmMembers["reply"]);
}
$HTML .= successmessage(get_phrase("pm_members_pm_sent", number_format($totalMembers)));
}
}
}
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("sender"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[sender]", $pmMembers["sender"], "text texthalf", NULL, false, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_subject"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[subject]", $pmMembers["subject"]) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_message"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => textarea("pmMembers[reply]", $pmMembers["reply"], true) ) ));
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("global_search_criteria"), "colspan" => 2 ) ), "tableContentTDHeader");
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[joindate]", $pmMembers["joindate"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[lastactivity]", $pmMembers["lastactivity"], "text texthalf", NULL, true) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("pmMembers[membergroup][]", $pmMembers["membergroup"], 3) ) ));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("button_send"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("member_manager_pm_members_alt"), $tableContents, 2)) . "\r\n\t<script type=\"text/javascript\">\r\n\t\t\$(\"#simpleForm\").submit(function(e)\r\n\t\t{\r\n\t\t\tTSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("sending_pm") . "', false, false);\r\n\t\t});\r\n\t</script>";
return $HTML;
}
function managepromotions()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaaam = "";
$aaaals = aaaaae(array( "list_active_promotions=1" => array( "phrase" => get_phrase("promotions_list_active_promotions") ) ));
$aaaalt = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_a_new_promotion") ) ));
$list_active_promotions = intval(getvar("list_active_promotions"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$enable_disable = intval(getvar("enable_disable"));
$delete = intval(getvar("delete"));
if( $list_active_promotions )
{
addbreadcrumb(array( get_phrase("promotions_list_active_promotions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_promotions=1" ));
$aaaalu = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as promotionCount FROM tsue_member_promotions");
$Pagination = pagination($aaaalu["promotionCount"], "list_active_promotions=1");
if( $aaaalu && $aaaalu["promotionCount"] )
{
$aaaalv = $TSUE["TSUE_Database"]->query("SELECT p.*, m.membername, g.groupname, g.groupstyle, gg.groupname AS prevGroupname, gg.groupstyle AS prevGroupstyle FROM tsue_member_promotions p INNER JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_membergroups gg ON(p.beforeMembergroupid=gg.membergroupid) " . $Pagination["0"]);
$tableContents = aaaaag(array( array( "width" => "15%", "text" => get_phrase("upgrade_membername") ), array( "width" => "15%", "text" => get_phrase("promotions_previous_membergroup") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_start_date") ) ), NULL, "tableContentTDHeader");
while( $Promotion = $TSUE["TSUE_Database"]->fetch_assoc($aaaalv) )
{
$Promotion["date"] = convert_relative_time($Promotion["date"]);
$tableContents .= aaaaag(array( array( "width" => "40%", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Promotion["memberid"] => array( "phrase" => getmembername($Promotion["membername"], $Promotion["groupstyle"]) ) )) . " <span class=\"smallPassiveTextBlock\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Promotion["memberid"] => array( "phrase" => getmembername($Promotion["groupname"], $Promotion["groupstyle"]) ) )) . "</span>" ), array( "width" => "40%", "text" => getmembername($Promotion["prevGroupname"], $Promotion["prevGroupstyle"]) ), array( "width" => "20%", "text" => $Promotion["date"] ) ));
}
$HTML .= createtable(get_phrase("promotions_list_active_promotions"), $tableContents, 3, $Pagination["1"]);
return $HTML;
}
return errormessage(get_phrase("promotions_no_active_promotion"));
}
if( $enable_disable )
{
$BuildQuery = array( "promotionSystemActive" => array( "escape" => 0, "value" => "IF(promotionSystemActive>0,0,1)" ) );
$Promotion = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $Promotion )
{
$TSUE["TSUE_Database"]->update("tsue_auto_promotions", $BuildQuery, "pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
logadminaction(get_phrase("promotion_x_has_been_updated", $Promotion["title"] . " (" . $enable_disable . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
}
}
if( $delete )
{
$Promotion = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Promotion )
{
$TSUE["TSUE_Database"]->delete("tsue_auto_promotions", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("promotion_x_has_been_deleted", $Promotion["title"] . " (" . $delete . ")"));
}
}
if( $edit || $new )
{
$Promotion = array( "title" => "", "promotionSystemActive" => 0, "checkForMembergroupid" => 0, "promoteMembergroupid" => 0, "minDaysRegistered" => 0, "minUpload" => 0, "minRatio" => 0, "minPosts" => 0 );
if( $edit )
{
$Promotion = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Promotion )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
}
if( isset($_POST["Promotion"]) )
{
$Promotion = $_POST["Promotion"];
if( !$Promotion["title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$Promotion["checkForMembergroupid"] || !$Promotion["promoteMembergroupid"] )
{
$formErrors[] = get_phrase("select_promotion_membergroups_to_apply");
}
else
{
if( $Promotion["checkForMembergroupid"] == $Promotion["promoteMembergroupid"] )
{
$formErrors[] = get_phrase("select_promotion_membergroups_to_apply");
}
}
if( !$Promotion["minDaysRegistered"] && !$Promotion["minUpload"] && !$Promotion["minRatio"] && !$Promotion["minPosts"] )
{
$formErrors[] = get_phrase("enter_at_least_one_promotion_rule");
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $Promotion["title"], "promotionSystemActive" => $Promotion["promotionSystemActive"], "checkForMembergroupid" => $Promotion["checkForMembergroupid"], "promoteMembergroupid" => $Promotion["promoteMembergroupid"], "minDaysRegistered" => $Promotion["minDaysRegistered"], "minUpload" => $Promotion["minUpload"], "minRatio" => $Promotion["minRatio"], "minPosts" => $Promotion["minPosts"] );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_auto_promotions", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_auto_promotions", $buildQuery);
$edit = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("promotion_x_has_been_updated", $Promotion["title"] . " (" . $edit . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = radioyesno("Promotion[promotionSystemActive]", intval($Promotion["promotionSystemActive"]));
$formContents = aaaaan(get_phrase("promotions_system_active"), $inputbox);
$inputbox = inputbox("Promotion[title]", $Promotion["title"], "text");
$formContents .= aaaaan(get_phrase("promotion_title"), $inputbox);
$Usergroups = aaaabf("Promotion[checkForMembergroupid]", $Promotion["checkForMembergroupid"], true);
$formContents .= aaaaan(get_phrase("promotion_checkfor_membergroupid"), $Usergroups, get_phrase("promotion_checkfor_membergroupid_alt"));
$Usergroups = aaaabf("Promotion[promoteMembergroupid]", $Promotion["promoteMembergroupid"], true);
$formContents .= aaaaan(get_phrase("promotion_promoteMembergroupid"), $Usergroups, get_phrase("promotion_promoteMembergroupid_alt"));
$inputbox = inputbox("Promotion[minDaysRegistered]", $Promotion["minDaysRegistered"], "text texttiny");
$formContents .= aaaaan(get_phrase("promotion_minDaysRegistered"), $inputbox, get_phrase("promotion_minDaysRegistered_alt"));
$inputbox = inputbox("Promotion[minUpload]", $Promotion["minUpload"], "text texttiny", "GB");
$formContents .= aaaaan(get_phrase("promotion_minUpload"), $inputbox, get_phrase("promotion_minUpload_alt"));
$inputbox = inputbox("Promotion[minRatio]", $Promotion["minRatio"], "text texttiny");
$formContents .= aaaaan(get_phrase("promotion_minRatio"), $inputbox, get_phrase("promotion_minRatio_alt"));
$inputbox = inputbox("Promotion[minPosts]", $Promotion["minPosts"], "text texttiny");
$formContents .= aaaaan(get_phrase("promotion_minPosts"), $inputbox, get_phrase("promotion_minPosts_alt"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$Promotions = $TSUE["TSUE_Database"]->query("SELECT p.*, g.groupname, g.groupstyle, gg.groupname as groupname2, gg.groupstyle as groupstyle2 FROM tsue_auto_promotions p LEFT JOIN tsue_membergroups g ON (p.checkForMembergroupid=g.membergroupid) LEFT JOIN tsue_membergroups gg ON (p.promoteMembergroupid=gg.membergroupid) ORDER BY p.promotionSystemActive DESC, p.title ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Promotions) )
{
return errormessage(get_phrase("no_promotion_found", "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1"));
}
$tableContents = "";
while( $Promotion = $TSUE["TSUE_Database"]->fetch_assoc($Promotions) )
{
$linkClass = (!$Promotion["promotionSystemActive"] ? "linkDisabled" : "");
$aaaalw = aaaaae(array( "edit=" . $Promotion["pid"] => array( "phrase" => $Promotion["title"], "class" => $linkClass ) ));
$aaaalx = aaaaae(array( "delete=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
if( $Promotion["promotionSystemActive"] )
{
$aaaaly = aaaaae(array( "enable_disable=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaaly = aaaaae(array( "enable_disable=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$aaaalz = getmembername($Promotion["groupname"], $Promotion["groupstyle"]) . " => " . getmembername($Promotion["groupname2"], $Promotion["groupstyle2"]);
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaalw . "<span class=\"smallPassiveText\">(" . $aaaalz . ")</span>" ), array( "width" => "20%", "text" => $aaaaly . $aaaalx, "align" => "right" ) ));
}
$HTML .= createtable(get_phrase("promotions"), $tableContents, 2, $aaaals . " - " . $aaaalt);
return $HTML;
}
function manageduplicateips()
{
global $TSUE;
$HTML = "";
$counter = $TSUE["TSUE_Database"]->query("\r\n\t\tSELECT ipaddress, count(*) as tot \r\n\t\tFROM tsue_members\r\n\t\tGROUP BY ipaddress \r\n\t\tHAVING tot > 1 \r\n\t\tORDER BY ipaddress");
if( !$TSUE["TSUE_Database"]->num_rows($counter) )
{
return errormessage(get_phrase("message_nothing_found"));
}
$x = "";
while( $ipaddress = $TSUE["TSUE_Database"]->fetch_assoc($counter) )
{
$ipaddress["ipaddress"] = preg_replace("/[^0-9-\\.]/u", "-", trim($ipaddress["ipaddress"]));
if( $ipaddress["ipaddress"] != "" )
{
$x .= "'" . $ipaddress["ipaddress"] . "',";
}
}
$x .= "'XXX'";
$Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.joindate, m.lastactivity, m.ipaddress, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid) WHERE m.ipaddress IN (" . $x . ") ORDER BY m.ipaddress");
$TSUE["do"] = "All Members";
return aaaaaj($Members);
}
function aaaaak()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$keywords = trim(getvar("keywords"));
$searchType = trim(getvar("searchType"));
$fixAll = intval(getvar("fixAll"));
$WHERE = "";
if( !in_array($searchType, array( "membername", "torrentname" )) )
{
$searchType = "membername";
}
if( $keywords && $searchType )
{
switch( $searchType )
{
case "membername":
$WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords);
break;
case "torrentname":
$WHERE = " AND t.name LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
break;
}
}
$orderBy["fieldname"] = "m.memberid";
$orderBy["type"] = "DESC";
if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
{
$allowedFieldNames = array( "m.membername", "t.name", "t.size", "p.total_uploaded", "p.active", "p.upload_speed", "p.total_downloaded", "p.download_speed" );
$allowedTypes = array( "DESC", "ASC" );
if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
{
$orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
$orderBy["type"] = $_REQUEST["orderBy"]["type"];
}
}
if( getsetting("xbt", "active") )
{
$peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE);
}
else
{
$peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE);
}
$tableContents .= aaaaag(array( array( "width" => "18%", "text" => get_phrase("your_name") ), array( "width" => "29%", "text" => get_phrase("torrent_name") . "/" . get_phrase("torrents_size") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_downloaded") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_uploaded") ), array( "width" => "16%", "text" => get_phrase("torrent_hitrun_ratio") ), array( "width" => "7%", "text" => get_phrase("stats_ratio") ) ), "tableContentTR", "tableContentTDHeader");
if( !$peerCount )
{
$Pagination["1"] = "";
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 6 ) ));
}
else
{
if( $fixAll )
{
if( getsetting("xbt", "active") )
{
$Peers = $TSUE["TSUE_Database"]->query("SELECT fid, uid FROM xbt_files_users WHERE isWarned=1");
while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
{
aaaama($Peer["fid"], $Peer["uid"]);
}
}
else
{
$Peers = $TSUE["TSUE_Database"]->query("SELECT pid, tid, memberid FROM tsue_torrents_peers WHERE isWarned=1");
while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
{
aaaamb($Peer["pid"], $Peer["memberid"], $Peer["tid"]);
}
}
}
if( isset($_POST["fixRatios"]) && is_array($_POST["fixRatios"]) && !empty($_POST["fixRatios"]) )
{
if( getsetting("xbt", "active") )
{
foreach( $_POST["fixRatios"] as $array )
{
list($fid, $uid) = tsue_explode("|", $array);
aaaama($fid, $uid);
}
}
else
{
foreach( $_POST["fixRatios"] as $array )
{
list($pid, $memberid, $tid) = tsue_explode("|", $array);
aaaamb($pid, $memberid, $tid);
}
}
}
$Pagination = pagination($peerCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&orderBy[type]=" . $orderBy["type"] . (($keywords ? "&keywords=" . urlencode($keywords) . "&searchType=" . $searchType : "")));
if( getsetting("xbt", "active") )
{
$aaaalb["fieldname"] = str_replace(array( "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed" ), array( "p.uploaded", "p.up_rate", "p.downloaded", "p.down_rate" ), $orderBy["fieldname"]);
$Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.fid, p.uid, p.uploaded as total_uploaded, p.downloaded as total_downloaded, p.up_rate as upload_speed, p.down_rate as download_speed, p.active, t.tid, t.name, t.size, t.options, m.memberid, m.membername, m.email, m.joindate, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE . " ORDER BY " . $aaaalb["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
}
else
{
$Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, m.joindate, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
}
while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
{
$torrentOptions = unserialize($Peer["options"]);
$torrentName = strip_tags($Peer["name"]);
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) ));
$tableContents .= aaaaag(array( array( "text" => $aaaakb . "<div class=\"verySmall\">" . get_phrase("memberinfo_membersince", convert_time($Peer["joindate"], "d-m-Y")) . "</div>" ), array( "text" => aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], substr($torrentName, 0, 30), $torrentName) . "<div class=\"verySmall\">" . friendly_size($Peer["size"]) . "</div>" ), array( "text" => friendly_size($Peer["total_downloaded"]) . "<br />" . friendly_size($Peer["download_speed"]) . "/s" ), array( "text" => friendly_size($Peer["total_uploaded"]) . "<br />" . friendly_size($Peer["upload_speed"]) . "/s" ), array( "text" => (isset($torrentOptions["hitRunRatio"]) ? 0 + $torrentOptions["hitRunRatio"] : 0) ), array( "text" => "<label>" . member_ratio($Peer["total_uploaded"], $Peer["size"]) . "<div><input type=\"checkbox\" name=\"fixRatios[]\" value=\"" . ((getsetting("xbt", "active") ? $Peer["fid"] . "|" . $Peer["uid"] : $Peer["pid"] . "|" . $Peer["memberid"] . "|" . $Peer["tid"])) . "\" /></div></label>" ) ), ($Peer["active"] ? "" : "greyBackground"));
}
}
$selectBox = "\r\n\t<select name=\"searchType\" class=\"selectNoWidth\">\r\n\t\t<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t<option value=\"torrentname\"" . (($searchType == "torrentname" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>\r\n\t</select>";
if( $peerCount )
{
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
}
if( !$peerCount )
{
$fixRatios = "";
}
else
{
$fixRatios = aaaaag(array( array( "colspan" => 6, "text" => aaaabm(get_phrase("fix_remove_hit_run")), "align" => "right" ) ));
}
$aaaamc = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&fixAll=1" => array( "phrase" => get_phrase("remove_all_hit_run_warnings") ) ));
$HTML .= aaaabn(createtable(get_phrase("hit_and_runners"), $tableContents . $fixRatios, 6, $aaaamc . $Pagination["1"]));
if( $peerCount )
{
$HTML .= "\r\n\t\t<div style=\"margin-top: 10px;\">\r\n\t\t\t<span style=\"float: left; margin-right: 8px; padding: 6px 10px; font-size: 11px; color: #000;\" class=\"greyBackground\">" . get_phrase("inactive_peer") . "</span>\r\n\t\t\t" . aaaabn("\r\n\t\t\t" . get_phrase("torrents_sort_by") . "\r\n\t\t\t<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">\r\n\t\t\t\t<option value=\"p.active\"" . (($orderBy["fieldname"] == "p.active" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_active") . "</option>\r\n\t\t\t\t<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t\t\t<option value=\"t.name\"" . (($orderBy["fieldname"] == "t.name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>\r\n\t\t\t\t<option value=\"t.size\"" . (($orderBy["fieldname"] == "t.size" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_size") . "</option>\r\n\t\t\t\t<option value=\"p.total_uploaded\"" . (($orderBy["fieldname"] == "p.total_uploaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_uploaded") . "</option>\t\t\t\r\n\t\t\t\t<option value=\"p.upload_speed\"" . (($orderBy["fieldname"] == "p.upload_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_uploaded") . "</option>\r\n\t\t\t\t<option value=\"p.total_downloaded\"" . (($orderBy["fieldname"] == "p.total_downloaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_downloaded") . "</option>\t\t\t\r\n\t\t\t\t<option value=\"p.download_speed\"" . (($orderBy["fieldname"] == "p.download_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_downloaded") . "</option>\r\n\t\t\t</select>\r\n\t\t\t<select name=\"orderBy[type]\" class=\"selectNoWidth\">\r\n\t\t\t\t<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>\r\n\t\t\t\t<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>\r\n\t\t\t</select>\r\n\t\t\t<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "\r\n\t\t</div>";
}
return $HTML;
}
function aaaamb($pid = 0, $memberid = 0, $tid = 0)
{
global $TSUE;
if( $pid && $memberid && $tid )
{
$Torrent = $TSUE["TSUE_Database"]->query_result("SELECT size FROM tsue_torrents WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
if( $Torrent && $Torrent["size"] )
{
$TSUE["TSUE_Database"]->update("tsue_torrents_peers", array( "isWarned" => 0, "total_uploaded" => array( "escape" => 0, "value" => "IF(total_downloaded>0 && total_uploaded<" . $Torrent["size"] . "," . $Torrent["size"] . ",total_uploaded)" ) ), "pid=" . $TSUE["TSUE_Database"]->escape($pid));
$TSUE["TSUE_Database"]->update("tsue_member_profile", array( "hitRuns" => array( "escape" => 0, "value" => "IF(hitRuns>0,hitRuns-1,0)" ) ), "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
}
}
}
function aaaama($fid = 0, $uid = 0)
{
global $TSUE;
if( $fid && $uid )
{
$Torrent = $TSUE["TSUE_Database"]->query_result("SELECT size FROM tsue_torrents WHERE tid = " . $TSUE["TSUE_Database"]->escape($fid));
if( $Torrent && $Torrent["size"] )
{
$TSUE["TSUE_Database"]->update("xbt_files_users", array( "isWarned" => 0, "uploaded" => array( "escape" => 0, "value" => "IF(downloaded>0 && uploaded<" . $Torrent["size"] . "," . $Torrent["size"] . ",uploaded)" ) ), "fid=" . $TSUE["TSUE_Database"]->escape($fid) . " AND uid=" . $TSUE["TSUE_Database"]->escape($uid));
$TSUE["TSUE_Database"]->update("tsue_member_profile", array( "hitRuns" => array( "escape" => 0, "value" => "IF(hitRuns>0,hitRuns-1,0)" ) ), "memberid=" . $TSUE["TSUE_Database"]->escape($uid));
}
}
}
function managetestpermissions()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$membername = "";
if( isset($_POST["membername"]) )
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($_POST["membername"]));
if( !$checkMember )
{
return errormessage(get_phrase("member_not_found"));
}
cookie_set("testPermissions", $_POST["membername"]);
header("Location: " . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
exit();
}
$aaaaam = "";
$inputbox = inputbox("membername", $membername, "text texthalf", get_phrase("test_permissions_input"), false, true);
$formContents = aaaaan(get_phrase("test_permissions"), $inputbox, get_phrase("test_permissions_info"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
function manageadministrators()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$editPerm = intval(getvar("editPerm"));
$new = intval(getvar("new"));
$delete = intval(getvar("delete"));
if( $delete )
{
$Member = $TSUE["TSUE_Database"]->query_result("SELECT p.*, m.membername, g.groupname, g.groupstyle FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.memberid=" . $TSUE["TSUE_Database"]->escape($delete));
if( !$Member )
{
return errormessage(get_phrase("member_not_found"));
}
$TSUE["TSUE_Database"]->delete("tsue_staffcp_permissions", "memberid=" . $TSUE["TSUE_Database"]->escape($delete));
$Phrase = get_phrase("x_admin_perms_deleted", $Member["membername"] . " (" . $Member["memberid"] . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
return successmessage($Phrase);
}
if( $new )
{
addbreadcrumb(array( get_phrase("create_new_administrator") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&&new=1" ));
return aaaamd();
}
if( $editPerm )
{
$Member = $TSUE["TSUE_Database"]->query_result("SELECT p.*, m.membername, m.membergroupid, g.groupname, g.groupstyle, g.permissions as groupPermissions FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.memberid=" . $TSUE["TSUE_Database"]->escape($editPerm));
if( !$Member )
{
return errormessage(get_phrase("member_not_found"));
}
addbreadcrumb(array( getmembername($Member["membername"], $Member["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&&editPerm=" . $editPerm ));
$Permissions = unserialize($Member["permissions"]);
return aaaame($Permissions, $Member);
}
$Members = $TSUE["TSUE_Database"]->query("SELECT p.memberid, m.membername, g.groupname, g.groupstyle FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid)");
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$membername = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&editPerm=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) ));
$deleteLink = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&delete=" . $Member["memberid"] => array( "phrase" => get_phrase("button_delete") ) ));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => $membername . " <span class=\"smallPassiveText\">" . $Member["groupname"] . " [" . $deleteLink . "]</span>" ), array( "width" => "15%", "text" => "", "align" => "right" ) ));
}
$HTML .= createtable(get_phrase("administrators"), $tableContents, 2, aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" => array( "phrase" => get_phrase("create_new_administrator") ) )));
return $HTML;
}
function aaaamd()
{
global $TSUE;
$staffCPAvailableActions = aaaamf();
if( ispost() )
{
$membername = (isset($_POST["membername"]) ? $_POST["membername"] : "");
if( !$membername )
{
return errormessage(get_phrase("member_not_found"));
}
$Member = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membername, m.membergroupid, g.permissions FROM tsue_members m INNER JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($membername));
if( !$Member )
{
return errormessage(get_phrase("member_not_found"));
}
$memberPermissions = unserialize($Member["permissions"]);
if( !isset($memberPermissions["canlogin_admincp"]) || !$memberPermissions["canlogin_admincp"] )
{
return errormessage(get_phrase("insufficient_permission", TSUE_ADMINCP_URL . "?action=Member Manager&do=Membergroups&edit=" . $Member["membergroupid"] . "#administratorpermissions"));
}
$newPerms = array( );
if( isset($_POST["permissions"]) && $_POST["permissions"] )
{
foreach( $_POST["permissions"] as $Action )
{
$newPerms[$Action] = 1;
}
}
$staffCPAvailableActions = array_merge($staffCPAvailableActions, $newPerms);
$TSUE["TSUE_Database"]->replace("tsue_staffcp_permissions", array( "memberid" => $Member["memberid"], "permissions" => serialize($staffCPAvailableActions) ));
$Phrase = get_phrase("x_admin_perms_updated", $Member["membername"] . " (" . $Member["memberid"] . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
return successmessage($Phrase);
}
else
{
$Checkboxes = "\r\n\t<div>" . get_phrase("your_name") . ":<br />" . inputbox("membername", "", "text texthalf", get_phrase("administrator_tip"), false, true) . "</div>\r\n\t<ul class=\"adminPerms\">";
ksort($staffCPAvailableActions);
foreach( $staffCPAvailableActions as $Action => $Perm )
{
$Checkboxes .= "\r\n\t\t<li><label><input type=\"checkbox\" name=\"permissions[]\" value=\"" . $Action . "\"" . (($Perm ? " checked=\"checked\"" : "")) . " /> " . $Action . "</label></li>";
}
$Checkboxes .= "\r\n\t<div class=\"clear\"></div>\r\n\t</ul>\r\n\t" . aaaabm(get_phrase("create_new_administrator"), get_phrase("button_reset"));
$tableContents = aaaaag(array( array( "width" => "100%", "text" => $Checkboxes ) ));
$aaaaam = array( "new" => 1 );
$aaaamg = "<input type=\"checkbox\" name=\"checkALL\" value=\"permissions[]\" />";
return aaaabn(createtable(get_phrase("administrators_alt"), $tableContents, 1, $aaaamg), $aaaaam);
}
}
function aaaame($Permissions, $Member)
{
global $TSUE;
$staffCPAvailableActions = aaaamf();
if( ispost() )
{
$memberPermissions = unserialize($Member["groupPermissions"]);
if( !isset($memberPermissions["canlogin_admincp"]) || !$memberPermissions["canlogin_admincp"] )
{
return errormessage(get_phrase("insufficient_permission", TSUE_ADMINCP_URL . "?action=Member Manager&do=Membergroups&edit=" . $Member["membergroupid"] . "#administratorpermissions"));
}
$newPerms = array( );
if( isset($_POST["permissions"]) && $_POST["permissions"] )
{
foreach( $_POST["permissions"] as $Action )
{
$newPerms[$Action] = 1;
}
}
$staffCPAvailableActions = array_merge($staffCPAvailableActions, $newPerms);
$TSUE["TSUE_Database"]->replace("tsue_staffcp_permissions", array( "memberid" => $Member["memberid"], "permissions" => serialize($staffCPAvailableActions) ));
$Phrase = get_phrase("x_admin_perms_updated", $Member["membername"] . " (" . $Member["memberid"] . ")");
logadminaction($Phrase);
handlerebuildcaches(false);
handleprune(false);
return successmessage($Phrase);
}
else
{
$staffCPAvailableActions = array_merge($staffCPAvailableActions, $Permissions);
$Checkboxes = "\r\n\t<ul class=\"adminPerms\">";
ksort($staffCPAvailableActions);
foreach( $staffCPAvailableActions as $Action => $Perm )
{
$Checkboxes .= "\r\n\t\t<li><label><input type=\"checkbox\" name=\"permissions[]\" value=\"" . $Action . "\"" . (($Perm ? " checked=\"checked\"" : "")) . " /> " . $Action . "</label></li>";
}
$Checkboxes .= "\r\n\t<div class=\"clear\"></div>\r\n\t</ul>\r\n\t" . aaaabm(get_phrase("button_save"), get_phrase("button_reset"));
$tableContents = aaaaag(array( array( "width" => "100%", "text" => $Checkboxes ) ));
$aaaaam = array( "editPerm" => $Member["memberid"] );
$aaaamg = "<input type=\"checkbox\" name=\"checkALL\" value=\"permissions[]\" />";
return aaaabn(createtable(get_phrase("administrators_alt"), $tableContents, 1, $aaaamg), $aaaaam);
}
}
function aaaamf()
{
return array( "Options" => 0, "Pages" => 0, "Polls" => 0, "News" => 0, "FAQ" => 0, "Torrent Categories" => 0, "Market" => 0, "API Manager" => 0, "Cron Entries" => 0, "Rebuild Caches" => 0, "Logs" => 0, "Server" => 0, "Notes" => 0, "Statistics" => 0, "Read PM" => 0, "Database" => 0, "Announcements" => 0, "Torrents" => 0, "Add-ons" => 0, "TSUE Store" => 0, "Recent Comments" => 0, "Torrent Genres" => 0, "Advertisements" => 0, "Shoutbox Channels" => 0, "Plugin Manager" => 0, "Forum Manager" => 0, "Appearance" => 0, "All Members" => 0, "Awaiting Approval" => 0, "Banned Members" => 0, "Warned Members" => 0, "Membergroups" => 0, "Email Members" => 0, "Search Members" => 0, "Peers" => 0, "Account Upgrades" => 0, "Muted Members" => 0, "PM Members" => 0, "Promotions" => 0, "Duplicate Ips" => 0, "Hit and Runners" => 0, "Test Permissions" => 0, "Administrators" => 0, "Gift" => 0, "Mass Invite" => 0, "Awards" => 0, "Auto Warned Members" => 0, "Uploader Activity" => 0, "First Line Support" => 0, "Spam Cleaner" => 0, "Prune" => 0, "Smilies" => 0, "Country Flags" => 0, "Attachment Browser" => 0, "Downloads" => 0, "Permissions" => 0, "Cleanup" => 0 );
}
function managegift()
{
global $TSUE;
$formErrors = "";
$Gift = array( "membernames" => "", "membergroups" => array( ), "gift_amount" => "", "gift_type" => "", "send_pm" => "" );
if( ispost() )
{
$Gift = array_merge($Gift, $_POST["Gift"]);
$Gift["gift_amount"] = 0 + $Gift["gift_amount"];
$Gift["gift_type"] = (in_array($Gift["gift_type"], array( "gift_upload", "gift_invite", "gift_point" )) ? $Gift["gift_type"] : "");
$Gift["send_pm"] = 0 + $Gift["send_pm"];
if( !$Gift["membernames"] && !$Gift["membergroups"] || !$Gift["gift_amount"] || !$Gift["gift_type"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
if( $Gift["membernames"] )
{
$membernames = tsue_explode("-", trim($Gift["membernames"]));
foreach( $membernames as $membername )
{
if( !is_valid_string($membername) )
{
$formErrors[] = "(" . html_clean($membername) . ") " . get_phrase("invalid_membername");
}
}
if( !$formErrors && $membernames )
{
foreach( $membernames as $membername )
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername=" . $TSUE["TSUE_Database"]->escape($membername) . " LIMIT 1");
if( !$checkMember )
{
$formErrors[] = "(" . html_clean($membername) . ") " . get_phrase("member_not_found");
}
}
if( !$formErrors )
{
$WHERE = "membername IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $membernames)) . ")";
}
}
}
else
{
if( $Gift["membergroups"] )
{
foreach( $Gift["membergroups"] as $membergroup )
{
$membergroup = intval($membergroup);
if( !is_int($membergroup) )
{
$formErrors[] = "(" . html_clean($membergroup) . ") " . get_phrase("invalid_membergroup");
}
}
if( !$formErrors )
{
foreach( $Gift["membergroups"] as $membergroup )
{
$checkGroup = $TSUE["TSUE_Database"]->query_result("SELECT groupname FROM tsue_membergroups WHERE membergroupid=" . $TSUE["TSUE_Database"]->escape($membergroup) . " LIMIT 1");
if( !$checkGroup )
{
$formErrors[] = "(" . html_clean($membergroup) . ") " . get_phrase("invalid_membergroup");
}
}
if( !$formErrors )
{
$WHERE = "membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $Gift["membergroups"])) . ")";
}
}
}
}
}
}
if( $formErrors )
{
$formErrors = errormessage(implode("<br />", $formErrors));
}
else
{
if( isset($WHERE) && ispost() )
{
$getMembers = $TSUE["TSUE_Database"]->query("SELECT memberid, membername FROM tsue_members WHERE " . $WHERE);
if( !$TSUE["TSUE_Database"]->num_rows($getMembers) )
{
return errormessage(get_phrase("message_nothing_found"));
}
$Members = $aaaamh = array( );
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($getMembers) )
{
$Members[] = $Member["memberid"];
$aaaamh[] = $Member["membername"];
}
switch( $Gift["gift_type"] )
{
case "gift_upload":
$aaaami = array( "uploaded" => array( "escape" => 0, "value" => "uploaded + " . $Gift["gift_amount"] ) );
break;
case "gift_invite":
$aaaami = array( "invites_left" => array( "escape" => 0, "value" => "invites_left + " . $Gift["gift_amount"] ) );
break;
case "gift_point":
$aaaami = array( "points" => array( "escape" => 0, "value" => "points + " . $Gift["gift_amount"] ) );
}
if( isset($aaaami) )
{
$TSUE["TSUE_Database"]->update("tsue_member_profile", $aaaami, "memberid IN (" . implode(",", $Members) . ")");
}
$aaaamj = ($Gift["gift_type"] == "gift_upload" ? friendly_size($Gift["gift_amount"]) : $Gift["gift_amount"]);
$aaaamk = get_phrase($Gift["gift_type"]);
$Phrase = get_phrase("gift_sent", $aaaamj, $aaaamk, implode("-", array_map("html_clean", $aaaamh)));
if( $Gift["send_pm"] )
{
$count = 0;
foreach( $Members as $Memberid )
{
$Membername = $aaaamh[$count];
$reply = get_phrase("gift_message", $Membername, $aaaamj, $aaaamk, getmembername($TSUE["TSUE_Member"]["membername"], $TSUE["TSUE_Member"]["groupstyle"]));
sendpm(get_phrase("gift"), $TSUE["TSUE_Member"]["memberid"], $Memberid, nl2br($reply));
$count++;
}
}
logadminaction($Phrase);
return successmessage($Phrase);
}
}
$inputBox = inputbox("Gift[membernames]", $Gift["membernames"], "text", get_phrase("gift_membernames_hint"));
$tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_membernames") ), array( "width" => "80%", "text" => $inputBox ) ));
$inputBox = aaaaaw("Gift[membergroups][]", $Gift["membergroups"], 2);
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("member_manager_membergroups"), "extra" => " style=\"vertical-align: top;\"" ), array( "width" => "80%", "text" => $inputBox ) ));
$inputBox = inputbox("Gift[gift_amount]", $Gift["gift_amount"], "text texttiny", "", false, false, getimage("buttons/calculator.png", get_phrase("calculator"), "calculator"));
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_amount") ), array( "width" => "80%", "text" => $inputBox ) ));
$aaaaao = array( "gift_upload" => get_phrase("gift_upload"), "gift_invite" => get_phrase("gift_invite"), "gift_point" => get_phrase("gift_point") );
$selectBox = selectbox("Gift[gift_type]", $Gift["gift_type"], $aaaaao, "select smallSelect");
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_type") ), array( "width" => "80%", "text" => $selectBox ) ));
$aaaaao = array( get_phrase("option_no"), get_phrase("option_yes") );
$selectBox = selectbox("Gift[send_pm]", $Gift["send_pm"], $aaaaao, "select smallSelect");
$tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_send_message") ), array( "width" => "80%", "text" => $selectBox . " <span class=\"smallPassiveText\">" . get_phrase("send_message_alt") . "</span>" ) ));
$inputBox = aaaabm(get_phrase("gift_alt"), get_phrase("button_reset"));
$tableContents .= aaaaag(array( array( "width" => "20%" ), array( "width" => "80%", "text" => $inputBox ) ));
return $formErrors . aaaabn(createtable(get_phrase("gift_alt"), $tableContents, 2));
}
function managemassinvite()
{
global $TSUE;
$formErrors = "";
$Amount = 5;
if( ispost() )
{
$Amount = intval(getvar("Amount"));
if( !$Amount )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
else
{
$aaaaml = array( );
for( $i = 0; $i < $Amount; $i++ )
{
$aaaaml[$i] = generate_random_string(32);
$BuildQuery = array( "hash" => $aaaaml[$i], "sender_memberid" => $TSUE["TSUE_Member"]["memberid"], "send_date" => TIMENOW, "email" => "", "name" => "", "status" => "pending" );
$TSUE["TSUE_Database"]->insert("tsue_invites", $BuildQuery);
if( !$TSUE["TSUE_Database"]->affected_rows() )
{
unset($aaaaml[$i]);
$i -= 1;
}
}
$Phrase = get_phrase("total_x_invites_has_been_generated", count($aaaaml));
logadminaction($Phrase);
$HTML = $Phrase . "<hr />";
foreach( $aaaaml as $count => $hash )
{
$HTML .= "<div style=\"padding: 5px 0;\">" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/?p=signup&pid=16&hash=" . $hash . "</div>";
}
return $HTML;
}
}
if( $formErrors )
{
$formErrors = errormessage(implode("<br />", $formErrors));
}
$inputBox = inputbox("Amount", $Amount, "text texttiny");
$tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("market_item_amount") ), array( "width" => "80%", "text" => $inputBox ) ));
$inputBox = aaaabm(get_phrase("mass_invite_alt"), get_phrase("button_reset"));
$tableContents .= aaaaag(array( array( "width" => "20%" ), array( "width" => "80%", "text" => $inputBox ) ));
return $formErrors . aaaabn(createtable(get_phrase("mass_invite"), $tableContents, 2));
}
function manageawards()
{
global $TSUE;
$defaultTheme = aaaaff();
$aaaamm = ROOTPATH . "styles/" . $defaultTheme . "/awards/";
$HTML = "";
$aaaamn = aaaaae(array( "new=1" => array( "phrase" => get_phrase("awards_create_new") ) ));
$aaaamo = aaaaae(array( "awarded_members=1" => array( "phrase" => get_phrase("awards_awarded_members") ) ));
$aaaamp = aaaaae(array( "award_member=1" => array( "phrase" => get_phrase("awards_award_member") ) ));
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
$awarded_members = intval(getvar("awarded_members"));
$delete_member_award = intval(getvar("delete_member_award"));
$award_member = intval(getvar("award_member"));
if( $delete_member_award )
{
$Award = $TSUE["TSUE_Database"]->query_result("SELECT a.id, a.reason, a.date, aw.award_title, aw.award_image, m.memberid as awardedMemberid, m.membername as awardedMembername, g.groupstyle as awardedGroupstyle, mm.memberid as givenbyMemberid, mm.membername as givenbyMembername, gg.groupstyle as givenbyGroupstyle FROM tsue_awards_members a LEFT JOIN tsue_awards aw USING(award_id) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_members mm ON(a.givenby=mm.memberid) LEFT JOIN tsue_membergroups gg ON(mm.membergroupid=gg.membergroupid) WHERE a.id = " . $TSUE["TSUE_Database"]->escape($delete_member_award));
if( $Award )
{
$awardedMembername = getmembername($Award["awardedMembername"], $Award["awardedGroupstyle"]);
$aaaamq = getmembername($Award["givenbyMembername"], $Award["givenbyGroupstyle"]);
$TSUE["TSUE_Database"]->delete("tsue_awards_members", "id = " . $TSUE["TSUE_Database"]->escape($delete_member_award));
logadminaction(get_phrase("member_award_x_has_been_deleted", $awardedMembername, $Award["award_title"] . " (" . $delete_member_award . ")", $aaaamq));
handlerebuildcaches(false);
}
}
if( $awarded_members )
{
addbreadcrumb(array( get_phrase("awards_awarded_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&awarded_members=1" ));
$Count = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as Count FROM tsue_awards_members");
if( $Count && $Count["Count"] )
{
$Pagination = pagination($Count["Count"], "awarded_members=1");
$tableContents = "";
$Members = $TSUE["TSUE_Database"]->query("SELECT a.id, a.reason, a.date, aw.award_title, aw.award_image, m.memberid as awardedMemberid, m.membername as awardedMembername, g.groupstyle as awardedGroupstyle, mm.memberid as givenbyMemberid, mm.membername as givenbyMembername, gg.groupstyle as givenbyGroupstyle FROM tsue_awards_members a LEFT JOIN tsue_awards aw USING(award_id) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_members mm ON(a.givenby=mm.memberid) LEFT JOIN tsue_membergroups gg ON(mm.membergroupid=gg.membergroupid) ORDER BY a.date DESC " . $Pagination["0"]);
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$deleteLink = aaaaae(array( "awarded_members=1&delete_member_award=" . $Member["id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$awardedMembername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["awardedMemberid"] => array( "phrase" => getmembername($Member["awardedMembername"], $Member["awardedGroupstyle"]) ) ));
$aaaamq = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["givenbyMemberid"] => array( "phrase" => getmembername($Member["givenbyMembername"], $Member["givenbyGroupstyle"]) ) ));
$award_details = get_phrase("award_details", $aaaamq, strip_tags($Member["reason"]), convert_relative_time($Member["date"]));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Member["award_image"] . "\" alt=\"" . $Member["award_title"] . "\" title=\"" . $Member["award_title"] . "\" /> " . $awardedMembername . " - " . $Member["award_title"] . "<span class=\"smallPassiveText\">" . $award_details . "</span>" ), array( "width" => "15%", "text" => $deleteLink ) ));
}
return createtable(get_phrase("awards_awarded_members") . " (" . number_format($Count["Count"]) . ")", $tableContents, 2, $Pagination["1"]);
}
return errormessage(get_phrase("message_nothing_found"));
}
if( $edit || $new )
{
$Award = array( "award_title" => "", "award_image" => "" );
$aaaaam = "";
if( $edit )
{
$Award = $TSUE["TSUE_Database"]->query_result("SELECT award_title, award_image FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Award )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
addbreadcrumb(array( get_phrase("button_edit") . ": " . $Award["award_title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("awards_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["Award"]) )
{
$Award = $_POST["Award"];
if( !isset($Award["award_image"]) )
{
$Award["award_image"] = "";
}
if( !$Award["award_title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$Award["award_image"] || !file_exists($aaaamm . $Award["award_image"]) )
{
$formErrors[] = get_phrase("please_select_a_valid_image");
}
if( !isset($formErrors) )
{
$buildQuery = array( "award_title" => $Award["award_title"], "award_image" => $Award["award_image"] );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_awards", $buildQuery, "award_id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_awards", $buildQuery);
}
logadminaction(get_phrase("award_x_has_been_updated", $Award["award_title"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Award[award_title]", $Award["award_title"]);
$formContents = aaaaan(get_phrase("award_title"), $inputbox);
$options = "\r\n\t\t\t<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
$Count = 0;
$aaaamr = scandir($aaaamm);
foreach( $aaaamr as $Image )
{
if( in_array(file_extension($Image), array( "png", "jpg", "gif", "jpeg" )) )
{
if( $Count % 20 == 0 )
{
$options .= "</tr><tr>";
}
$options .= "\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<label style=\"margin: 5px;\">\r\n\t\t\t\t\t\t\t<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Image . "\" alt=\"\" title=\"\" /> <input type=\"radio\" name=\"Award[award_image]\" value=\"" . $Image . "\"" . (($Award["award_image"] == $Image ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t\t\t</label>\r\n\t\t\t\t\t</td>";
$Count++;
}
}
$options .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$formContents .= aaaaan(get_phrase("award_image"), $options, get_phrase("awards_image_path"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
if( $delete )
{
$Award = $TSUE["TSUE_Database"]->query_result("SELECT award_title FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Award )
{
$TSUE["TSUE_Database"]->delete("tsue_awards", "award_id = " . $TSUE["TSUE_Database"]->escape($delete));
$TSUE["TSUE_Database"]->delete("tsue_awards_members", "award_id = " . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("award_x_has_been_deleted", $Award["award_title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
}
}
if( $award_member )
{
addbreadcrumb(array( get_phrase("awards_award_member") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&award_member=1" ));
$awardMember = array( "award_id" => "", "memberid" => "", "reason" => "", "givenby" => $TSUE["TSUE_Member"]["memberid"], "date" => TIMENOW );
$aaaams = "";
if( isset($_POST["awardMember"]) )
{
$awardMember = array_merge($awardMember, $_POST["awardMember"]);
if( !$awardMember["award_id"] )
{
$formErrors[] = get_phrase("awards_please_select_a_valid_award_type");
}
else
{
$checkAward = $TSUE["TSUE_Database"]->query_result("SELECT award_title, award_image FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($awardMember["award_id"]));
if( !$checkAward )
{
$formErrors[] = get_phrase("awards_please_select_a_valid_award_type");
}
}
if( !$awardMember["membername"] )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($awardMember["membername"]));
if( !$checkMember )
{
$formErrors[] = get_phrase("member_not_found");
}
else
{
$awardMember["memberid"] = $checkMember["memberid"];
$aaaams = $awardMember["membername"];
unset($awardMember["membername"]);
}
}
if( !$awardMember["reason"] )
{
$formErrors[] = get_phrase("awards_please_enter_a_valid_award_reason");
}
if( !isset($formErrors) )
{
$TSUE["TSUE_Database"]->insert("tsue_awards_members", $awardMember);
$subject = get_phrase("you_got_a_new_award_subject");
$reply = get_phrase("you_got_a_new_award_message", $aaaams, getmembername($TSUE["TSUE_Member"]["membername"], $TSUE["TSUE_Member"]["groupstyle"]), "[img]" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $checkAward["award_image"] . "[/img] " . $checkAward["award_title"], strip_tags($awardMember["reason"]));
sendpm($subject, $TSUE["TSUE_Member"]["memberid"], $awardMember["memberid"], nl2br($reply));
logadminaction(get_phrase("awards_member_got_an_alert", $aaaams, $checkAward["award_title"], $TSUE["TSUE_Member"]["membername"], strip_tags($awardMember["reason"])));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$options = "\r\n\t\t\t<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
$Count = 0;
for( $Awards = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_awards ORDER BY award_title ASC"); $Award = $TSUE["TSUE_Database"]->fetch_assoc($Awards); $Count++ )
{
if( $Count % 20 == 0 )
{
$options .= "</tr><tr>";
}
$options .= "\r\n\t\t\t\t<td>\r\n\t\t\t\t\t<label style=\"margin: 5px;\">\r\n\t\t\t\t\t\t<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Award["award_image"] . "\" alt=\"" . $Award["award_title"] . "\" title=\"" . $Award["award_title"] . "\" /> <input type=\"radio\" name=\"awardMember[award_id]\" value=\"" . $Award["award_id"] . "\"" . (($awardMember["award_id"] == $Award["award_id"] ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</td>";
}
$options .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
$formContents = aaaaan(get_phrase("awards_award_type"), $options);
$inputbox = inputbox("awardMember[membername]", (isset($awardMember["membername"]) ? $awardMember["membername"] : $aaaams), "text", NULL, false, true);
$formContents .= aaaaan(get_phrase("your_name"), $inputbox);
$inputbox = inputbox("awardMember[reason]", $awardMember["reason"]);
$formContents .= aaaaan(get_phrase("awards_award_reason"), $inputbox);
$HTML .= aaaabg($formContents);
return $HTML;
}
}
$Awards = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_awards ORDER BY award_title ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Awards) )
{
$tableContents = errormessage(get_phrase("message_nothing_found"));
}
else
{
$tableContents = "";
while( $Award = $TSUE["TSUE_Database"]->fetch_assoc($Awards) )
{
$EditLink = aaaaae(array( "edit=" . $Award["award_id"] => array( "phrase" => $Award["award_title"] ) ));
$DeleteLink = aaaaae(array( "delete=" . $Award["award_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Award["award_image"] . "\" alt=\"" . $Award["award_title"] . "\" title=\"" . $Award["award_title"] . "\" /> " . $EditLink . "<span class=\"smallPassiveText\"></span>" ), array( "width" => "15%", "align" => "right", "text" => $DeleteLink ) ));
}
}
$HTML .= createtable(get_phrase("awards_alt"), $tableContents, 2, $aaaamn . " - " . $aaaamo . " - " . $aaaamp);
return $HTML;
}
function manageautowarnedmembers()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$lift = intval(getvar("lift"));
if( $lift )
{
$warnedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername FROM tsue_auto_warning w LEFT JOIN tsue_members m USING(memberid) WHERE w.memberid=" . $TSUE["TSUE_Database"]->escape($lift));
if( !$warnedMember )
{
return errormessage(get_phrase("member_not_found"));
}
$TSUE["TSUE_Database"]->delete("tsue_auto_warning", "memberid=" . $TSUE["TSUE_Database"]->escape($lift));
logadminaction(get_phrase("warned_auto_warn_has_been_lifted", $warnedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
}
$warnedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as warnedMembersCount FROM tsue_auto_warning");
if( !$warnedMembersCount["warnedMembersCount"] )
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("warned_no_warned_members") ) ));
return createtable(get_phrase("member_manager_auto_warned_members_alt"), $tableContents);
}
$Pagination = pagination($warnedMembersCount["warnedMembersCount"]);
$warnedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, p.downloaded, p.uploaded FROM tsue_auto_warning b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_member_profile p USING(memberid) " . $Pagination["0"]);
while( $warnedMember = $TSUE["TSUE_Database"]->fetch_assoc($warnedMembers) )
{
$aaaakj = aaaaae(array( "lift=" . $warnedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("warned_lift_warn")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$ratioFixDate = get_phrase("will_be_banned_on", convert_time($warnedMember["warned"] + $TSUE["TSUE_Settings"]->settings["auto_warning"]["warn_length"] * 24 * 60 * 60));
$warn_date = get_phrase("warned_warn_started", convert_relative_time($warnedMember["warned"]));
$aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $warnedMember["memberid"] => array( "phrase" => $warnedMember["membername"] ) ));
$ratio = get_phrase("stats_ratio") . ": " . member_ratio($warnedMember["uploaded"], $warnedMember["downloaded"]);
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $warn_date . " -- " . $ratio . " -- " . $ratioFixDate . "</span>" ), array( "width" => "10%", "text" => $aaaakj ) ));
}
$HTML .= createtable(get_phrase("member_manager_auto_warned_members_alt"), $tableContents, 2, $Pagination["1"]);
return $HTML;
}
function manageuploaderactivity()
{
global $TSUE;
$uGroups = getvar("membergroups", array( ), false);
if( $uGroups )
{
$aaaamt = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $uGroups));
$Uploaders = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.joindate, m.lastactivity, m.gender, p.uploaded, p.downloaded, p.points, g.groupname, g.groupstyle, COUNT(t.tid) as totalTorrents, SUM(t.leechers) AS totalLeechers, SUM(t.seeders) AS totalSeeders, MAX(t.added) as lastUpload, COUNT(peer.active) as activeSeeds FROM tsue_members m LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_torrents t ON(m.memberid=t.owner) LEFT JOIN " . ((getsetting("xbt", "active") ? "xbt_files_users peer ON (peer.uid=m.memberid && peer.active=1 && peer.left = 0)" : "tsue_torrents_peers peer ON (peer.memberid=m.memberid && peer.active=0 && peer.left=0)")) . " WHERE g.membergroupid IN (0," . $aaaamt . ") GROUP BY m.memberid ORDER BY lastUpload ASC");
if( !($aaaamu = $TSUE["TSUE_Database"]->num_rows($Uploaders)) )
{
return errormessage(get_phrase("message_nothing_found"));
}
$List = "\r\n\t\t\t<div class=\"success\">" . get_phrase("total_x_ul_found", number_format($aaaamu)) . "</div>";
while( $Uploader = $TSUE["TSUE_Database"]->fetch_assoc($Uploaders) )
{
$lastUpload = get_phrase("last_upload", ($Uploader["lastUpload"] ? convert_relative_time($Uploader["lastUpload"]) : "--"));
if( !$Uploader["lastUpload"] || $Uploader["lastUpload"] < TIMENOW - 15 * 24 * 60 * 60 )
{
$lastUpload = "<span style=\"color: red;\">" . $lastUpload . "</span>";
}
$Avatar = get_member_avatar($Uploader["memberid"], $Uploader["gender"]);
$Membername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Uploader["memberid"] => array( "phrase" => $Uploader["membername"], "class" => "standartAClass" ) ));
$List .= "\r\n\t\t\t\t<div style=\"float: left; margin: 5px; padding: 5px; position: relative; width: 390px; border: 1px solid #ddd;\">\r\n\t\t\t\t\t<div style=\"float: left;\">\r\n\t\t\t\t\t\t<img src=\"" . $Avatar . "\" alt=\"\" />\r\n\t\t\t\t\t\t<div style=\"padding-top: 5px; text-align: center;\">" . aaaaaf("?p=profile&pid=18&memberid=" . $Uploader["memberid"], getimage("buttons/examine.png", get_phrase("memberinfo_title", $Uploader["membername"]))) . "</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div style=\"float: left; margin-left: 5px; font-size: 11px; font-family:Tahoma, Geneva, sans-serif;\">\r\n\t\t\t\t\t\t" . $Membername . " (" . getmembername($Uploader["groupname"], $Uploader["groupstyle"]) . ")<br />\r\n\t\t\t\t\t\t" . get_phrase("memberinfo_membersince", convert_relative_time($Uploader["joindate"])) . "<br />\r\n\t\t\t\t\t\t" . get_phrase("memberinfo_lastactivity", convert_relative_time($Uploader["lastactivity"])) . "<br />\r\n\t\t\t\t\t\t" . $lastUpload . "<br />\r\n\t\t\t\t\t\t<b>" . get_phrase("stats_uploaded") . ":</b> " . friendly_size($Uploader["uploaded"]) . "<br />\r\n\t\t\t\t\t\t<b>" . get_phrase("stats_downloaded") . ":</b> " . friendly_size($Uploader["downloaded"]) . "<br />\r\n\t\t\t\t\t\t" . get_phrase("uploaded_torrents", number_format($Uploader["totalTorrents"])) . "<br />\r\n\t\t\t\t\t\t" . get_phrase("active_seeds", number_format($Uploader["activeSeeds"])) . "<br />\r\n\t\t\t\t\t\t" . get_phrase("total_peers_on_up_torrents", number_format($Uploader["totalLeechers"] + $Uploader["totalSeeders"]), number_format($Uploader["totalSeeders"]), number_format($Uploader["totalLeechers"])) . "\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>";
}
$List .= "\r\n\t\t\t<div style=\"clear: both;\"></div>";
return $List;
}
$Membergroups = aaaaaw("membergroups[]", $uGroups);
$formContents = aaaaan(get_phrase("select_mg_to_view_ua"), $Membergroups);
return aaaabg($formContents);
}
function managefirstlinesupport()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$new = intval(getvar("new"));
$edit = intval(getvar("edit"));
$delete = intval(getvar("delete"));
$enable_disable = intval(getvar("enable_disable"));
if( $enable_disable )
{
$BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
$FLS = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
if( $FLS )
{
$TSUE["TSUE_Database"]->update("tsue_first_line_support", $BuildQuery, "sid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
$Phrase = get_phrase("fls_x_has_been_updated", $FLS["title"] . " (" . $enable_disable . ")");
logadminaction($Phrase);
$HTML .= successmessage($Phrase);
handlerebuildcaches(false);
}
}
if( $delete )
{
$FLS = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $FLS )
{
$TSUE["TSUE_Database"]->delete("tsue_first_line_support", "sid = " . $TSUE["TSUE_Database"]->escape($delete));
$Phrase = get_phrase("fls_x_has_been_deleted", $FLS["title"] . " (" . $delete . ")");
logadminaction($Phrase);
$HTML .= successmessage($Phrase);
handlerebuildcaches(false);
}
}
if( $edit || $new )
{
$FLS = array( "title" => "", "description" => "", "members" => "", "active" => 1 );
$aaaaam = "";
if( $edit )
{
$FLS = $TSUE["TSUE_Database"]->query_result("SELECT title,description,members,active FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$FLS )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
if( $FLS["members"] && substr($FLS["members"], -2) != ", " )
{
$FLS["members"] = $FLS["members"] . ", ";
}
addbreadcrumb(array( get_phrase("button_edit") . ": " . $FLS["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
addbreadcrumb(array( get_phrase("create_fls_team") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" ));
}
if( isset($_POST["FLS"]) )
{
$FLS = $_POST["FLS"];
if( !$FLS["title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$FLS["description"] )
{
$formErrors[] = get_phrase("valid_description_required");
}
if( !$FLS["members"] )
{
$formErrors[] = get_phrase("fls_invalid_members");
}
else
{
$aaaamv = array( );
$aaaamw = tsue_explode(",", trim(preg_replace("/\\s+/", "", $FLS["members"])));
if( $aaaamw )
{
foreach( $aaaamw as $member )
{
$member = trim($member);
if( !in_array($member, $aaaamv) && $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($member)) )
{
$aaaamv[] = $member;
}
}
}
if( !$aaaamv )
{
$formErrors[] = get_phrase("fls_invalid_members");
}
else
{
$FLS["members"] = implode(", ", $aaaamv);
}
}
if( !isset($formErrors) )
{
$buildQuery = array( "title" => $FLS["title"], "description" => $FLS["description"], "members" => $FLS["members"], "active" => $FLS["active"] );
if( $edit )
{
$Phrase = get_phrase("fls_x_has_been_updated", $FLS["title"] . " (" . $edit . ")");
$TSUE["TSUE_Database"]->update("tsue_first_line_support", $buildQuery, "sid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$Phrase = get_phrase("fls_x_has_been_created", $FLS["title"]);
$TSUE["TSUE_Database"]->insert("tsue_first_line_support", $buildQuery);
}
logadminaction($Phrase);
$HTML .= successmessage($Phrase);
$updateDone = true;
handlerebuildcaches(false);
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$radioButtons = radioyesno("FLS[active]", $FLS["active"]);
$formContents = aaaaan(get_phrase("fls_active"), $radioButtons);
$inputbox = inputbox("FLS[title]", $FLS["title"]);
$formContents .= aaaaan(get_phrase("fls_title"), $inputbox);
$textarea = textarea("FLS[description]", $FLS["description"], true);
$formContents .= aaaaan(get_phrase("fls_description"), $textarea);
$inputbox = inputbox("FLS[members]", $FLS["members"], "text", "", false, true, "", "autoCompleteMultiple");
$formContents .= aaaaan(get_phrase("fls_members"), $inputbox, get_phrase("fls_members_alt"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$FLS = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_first_line_support ORDER BY active DESC, title ASC");
if( $TSUE["TSUE_Database"]->num_rows($FLS) )
{
while( $Team = $TSUE["TSUE_Database"]->fetch_assoc($FLS) )
{
$linkClass = (!$Team["active"] ? "linkDisabled" : "");
$aaaamx = aaaaae(array( "delete=" . $Team["sid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaamy = aaaaae(array( "edit=" . $Team["sid"] => array( "phrase" => $Team["title"], "class" => $linkClass ) ));
if( $Team["active"] )
{
$aaaamz = aaaaae(array( "enable_disable=" . $Team["sid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
}
else
{
$aaaamz = aaaaae(array( "enable_disable=" . $Team["sid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
}
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaamy . "<span class=\"smallPassiveText\">" . strip_tags($Team["description"]) . "</span>" ), array( "width" => "20%", "text" => $aaaamz . $aaaamx, "align" => "right" ) ));
}
}
else
{
$tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_fls_team_yet"), "colspan" => "2" ) ));
}
$aaaana = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" => array( "phrase" => get_phrase("create_fls_team") ) ));
$HTML .= aaaabn(createtable(get_phrase("first_line_support_alt"), $tableContents, 2, $aaaana));
return $HTML;
}
function managespamcleaner()
{
global $TSUE;
$HTML = "";
$spam_membername = trim(getvar("spam_membername"));
if( $spam_membername && ispost() )
{
$aaaamv = array( );
$aaaamw = tsue_explode(",", trim(preg_replace("/\\s+/", "", $spam_membername)));
if( $aaaamw )
{
foreach( $aaaamw as $member )
{
$member = trim($member);
if( !isset($aaaamv[$member]) && ($checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($member))) )
{
$aaaamv[$member] = 0 + $checkMember["memberid"];
}
}
}
if( !$aaaamv )
{
return errormessage(get_phrase("please_enter_at_least_one_valid_member"));
}
$membernames = array( );
$memberids = array( );
foreach( $aaaamv as $membername => $memberid )
{
$membernames[] = $membername;
$memberids[] = $memberid;
}
$memberids = implode(", ", $memberids);
$affectedRows = 0;
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_announcements", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_comments", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_messages_master", "owner_memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_messages_replies", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_reports", "reported_by_memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_reports_comments", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_requests", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_shoutbox", "memberid IN (" . $memberids . ")");
$affectedRows += $TSUE["TSUE_Database"]->delete("tsue_staff_messages", "memberid IN (" . $memberids . ")");
$Posts = $TSUE["TSUE_Database"]->query("SELECT p.postid,p.threadid,p.memberid, t.memberid as threadOwner, f.forumid FROM tsue_forums_posts p LEFT JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_forums f ON (t.forumid=f.forumid) WHERE p.memberid IN (" . $memberids . ")");
if( $TSUE["TSUE_Database"]->num_rows($Posts) )
{
while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) )
{
deletepost($Post["postid"], $Post["memberid"]);
$threadHasStillPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE p.threadid = " . $TSUE["TSUE_Database"]->escape($Post["threadid"]) . " ORDER BY p.post_date DESC");
if( !$threadHasStillPosts )
{
deletethread($Post["threadid"], $Post["forumid"], $Post["threadOwner"]);
}
else
{
$findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($Post["forumid"]) . " ORDER BY p.post_date DESC");
$last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] ));
$BuildQuery = array( "replycount" => array( "escape" => 0, "value" => "IF(replycount > 0, replycount - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_threadid" => ($findLastPosts["threadid"] ? $findLastPosts["threadid"] : 0) );
$TSUE["TSUE_Database"]->update("tsue_forums", $BuildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($Post["forumid"]));
$BuildQuery = array( "reply_count" => array( "escape" => 0, "value" => "IF(reply_count > 0, reply_count - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_date" => $findLastPosts["post_date"] );
$TSUE["TSUE_Database"]->update("tsue_forums_threads", $BuildQuery, "threadid = " . $TSUE["TSUE_Database"]->escape($Post["threadid"]));
}
}
}
$Threads = $TSUE["TSUE_Database"]->query("SELECT threadid,forumid,memberid FROM tsue_forums_threads WHERE memberid IN (" . $memberids . ")");
if( $TSUE["TSUE_Database"]->num_rows($Threads) )
{
while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
{
$posts = $TSUE["TSUE_Database"]->query("SELECT postid, memberid FROM tsue_forums_posts WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
if( $TSUE["TSUE_Database"]->num_rows($posts) )
{
while( $post = $TSUE["TSUE_Database"]->fetch_assoc($posts) )
{
deletepost($post["postid"], $post["memberid"]);
}
}
deletethread($Thread["threadid"], $Thread["forumid"], $Thread["memberid"]);
}
}
$Phrase = get_phrase("spam_content_cleaned_for_x", implode(", ", $membernames));
logadminaction($Phrase);
$HTML .= successmessage($Phrase . " | <a href=\"?action=Forum Manager&do=Rebuild Counters\">" . get_phrase("rebuild_counters_alt") . "</a>");
handleprune(false);
handlerebuildcaches(false);
}
$inputbox = inputbox("spam_membername", $spam_membername, "text", "", false, true, "", "autoCompleteMultiple");
$formContents = aaaaan(get_phrase("spam_membername"), $inputbox, get_phrase("spam_membername_alt"));
$HTML .= aaaabg($formContents, "", "", "spam_cleaner_alt");
return $HTML;
}
function deletepost($postid, $memberid)
{
global $TSUE;
if( !$TSUE["TSUE_Database"]->delete("tsue_forums_posts", "postid = " . $TSUE["TSUE_Database"]->escape($postid)) )
{
return NULL;
}
updatememberpoints($TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_replies"], $memberid, false);
profileupdate($memberid, array( "total_posts" => array( "escape" => 0, "value" => "IF(total_posts > 0, total_posts-1, 0)" ) ));
$Attachments = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = 'posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid));
if( $TSUE["TSUE_Database"]->num_rows($Attachments) )
{
while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) )
{
$filename = DATAPATH . "posts/" . $Attachment["filename"];
if( is_file($filename) )
{
@unlink($filename);
}
}
$TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type = 'posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid));
}
$TSUE["TSUE_Database"]->delete("tsue_liked_content", "content_type = 'thread_posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid));
}
function deletethread($threadid, $forumid, $threadOwner = 0)
{
global $TSUE;
$TSUE["TSUE_Database"]->delete("tsue_forums_threads", "threadid = " . $TSUE["TSUE_Database"]->escape($threadid));
$TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "threadid = " . $TSUE["TSUE_Database"]->escape($threadid));
$TSUE["TSUE_Database"]->delete("tsue_poll", "threadid=" . $TSUE["TSUE_Database"]->escape($threadid) . " AND createdinThread = 1");
$TSUE["TSUE_Database"]->update("tsue_poll", array( "threadid" => 0 ), "threadid=" . $TSUE["TSUE_Database"]->escape($threadid));
updatememberpoints($TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_thread"], $threadOwner, false);
$last_post_info = "";
$findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($forumid) . " ORDER BY p.post_date DESC");
if( $findLastPosts )
{
$last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] ));
}
$BuildQuery = array( "replycount" => array( "escape" => 0, "value" => "IF(replycount > 0, replycount - 1, 0)" ), "threadcount" => array( "escape" => 0, "value" => "IF(threadcount > 0, threadcount - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_threadid" => ($findLastPosts["threadid"] ? $findLastPosts["threadid"] : 0) );
$TSUE["TSUE_Database"]->update("tsue_forums", $BuildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
}
function handleprune($return = true)
{
global $TSUE;
checkdemomode();
$TSUE["TSUE_Database"]->truncate("tsue_file_caches");
$cacheFolder = DATAPATH . "cache/";
if( !is_dir($cacheFolder) || !is_writable($cacheFolder) )
{
return errormessage(get_phrase("file_manager_prune_no_cache_folder"));
}
$cacheFiles = scandir($cacheFolder);
if( count($cacheFiles) <= 2 )
{
return false;
}
foreach( $cacheFiles as $cacheFile )
{
$_ext = file_extension($cacheFile);
if( in_array($_ext, array( "tsue", "gz", "js", "gif", "jpg", "png", "jpeg", "zip", "srv" )) )
{
@unlink($cacheFolder . $cacheFile);
}
}
if( $return )
{
$HTML = get_phrase("file_manager_prune_cache_pruned");
logadminaction($HTML);
return successmessage($HTML);
}
}
function handlesmilies()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaanb = DATAPATH . "smilies/";
$aaaanc = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/smilies/";
$allowedFiles = array( "gif", "jpg", "png" );
if( !is_dir($aaaanb) || !is_writable($aaaanb) )
{
return errormessage(get_phrase("file_manager_smilies_no_smilies_folder"));
}
$cacheFiles = array( );
foreach( $TSUE["TSUE_Settings"]->settings["dialog_smilies_cache"] as $Smilie )
{
$cacheFiles[] = $Smilie["smilie_file"];
}
$aaaand = array( );
$scanFiles = scandir($aaaanb);
foreach( $scanFiles as $sFile )
{
$fEXT = file_extension($sFile);
if( in_array($fEXT, $allowedFiles) && !in_array($sFile, $cacheFiles) )
{
$title = $text = str_replace("." . $fEXT, "", $sFile);
$text = ":" . $text . ":";
$aaaand[] = $sFile;
$buildQuery = array( "smilie_title" => $title, "smilie_text" => $text, "smilie_file" => $sFile );
$TSUE["TSUE_Database"]->insert("tsue_smilies", $buildQuery);
}
}
if( $aaaand )
{
handlerebuildcaches(false);
handleprune(false);
}
$upload = intval(getvar("upload"));
$edit = intval(getvar("edit"));
if( $upload || $edit )
{
checkdemomode();
$Smilie = array( "smilie_title" => "", "smilie_text" => "" );
if( $edit )
{
$Smilie = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_smilies WHERE smilie_id = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Smilie )
{
return errormessage(get_phrase("message_not_found"));
}
$aaaane = $Smilie["smilie_text"];
$aaaanf = $Smilie["smilie_file"];
}
if( ispost() )
{
$Smilie = $_POST["Smilie"];
$aaaang = $_FILES["smilie_file"];
$aaaang["name"] = safe_names($aaaang["name"]);
if( $aaaang["name"] || !$edit )
{
if( !$aaaang["size"] || $aaaang["error"] )
{
$formErrors[] = get_phrase("upload_error3");
}
else
{
if( !in_array(file_extension($aaaang["name"]), $allowedFiles) )
{
$formErrors[] = get_phrase("upload_error6", implode(",", $allowedFiles));
}
else
{
if( is_file($aaaanb . $aaaang["name"]) )
{
$formErrors[] = get_phrase("upload_error7");
}
else
{
if( !move_uploaded_file($aaaang["tmp_name"], $aaaanb . $aaaang["name"]) )
{
$formErrors[] = get_phrase("upload_error8");
}
else
{
$aaaanh = true;
}
}
}
}
}
if( $edit && !isset($aaaanh) )
{
$aaaang["name"] = $aaaanf;
}
if( !$Smilie["smilie_title"] )
{
$formErrors[] = get_phrase("please_enter_a_valid_title");
}
if( !$Smilie["smilie_text"] )
{
$formErrors[] = get_phrase("please_enter_valid_smilie_text");
}
else
{
$checkText = $TSUE["TSUE_Database"]->query_result("SELECT smilie_title FROM tsue_smilies WHERE smilie_text = " . $TSUE["TSUE_Database"]->escape($Smilie["smilie_text"]));
if( $checkText && ($edit && $aaaane != $Smilie["smilie_text"] || !$edit) )
{
$formErrors[] = get_phrase("smilie_text_to_replace_must_be_unique", html_clean($Smilie["smilie_text"]));
}
}
if( isset($formErrors) )
{
if( is_file($aaaanb . $aaaang["name"]) )
{
unlink($aaaanb . $aaaang["name"]);
}
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$buildQuery = array( "smilie_title" => $Smilie["smilie_title"], "smilie_text" => $Smilie["smilie_text"], "smilie_file" => $aaaang["name"] );
if( $edit )
{
if( isset($aaaanh) )
{
unlink($aaaanb . $aaaanf);
}
$TSUE["TSUE_Database"]->update("tsue_smilies", $buildQuery, "smilie_id=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_smilies", $buildQuery);
}
$HTML .= successmessage(get_phrase("file_manager_smilies_uploaded", $aaaang["name"]));
logadminaction(get_phrase("file_manager_smilies_uploaded", $aaaang["name"]));
handlerebuildcaches(false);
$uploadDone = true;
}
}
if( !isset($uploadDone) )
{
if( $edit && is_file($aaaanb . $Smilie["smilie_file"]) )
{
addbreadcrumb(array( get_phrase("button_edit") . " <img src=\"" . $aaaanc . $Smilie["smilie_file"] . "\" alt=\"\" title=\"\" border=\"0\" style=\"vertical-align: middle; border: 0;\" />" => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&edit=" . $edit ));
}
else
{
if( $upload )
{
addbreadcrumb(array( get_phrase("file_manager_smilies_upload") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&upload=1" ));
}
}
$inputbox = inputbox("Smilie[smilie_title]", $Smilie["smilie_title"]);
$formContents = aaaaan(get_phrase("smilie_title"), $inputbox);
$inputbox = inputbox("Smilie[smilie_text]", $Smilie["smilie_text"]);
$formContents .= aaaaan(get_phrase("smilie_text_to_replace"), $inputbox, get_phrase("smilie_text_to_replace_hint"));
$aaaacr = aaaacs("smilie_file");
$formContents .= aaaaan(get_phrase("file_manager_smilies_select_smilie_to_upload"), $aaaacr);
$HTML .= aaaabg($formContents);
return $HTML;
}
}
if( !$tableContents )
{
$delete = intval(getvar("delete"));
if( $delete )
{
checkdemomode();
$Smilie = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_smilies WHERE smilie_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Smilie )
{
if( is_file($aaaanb . $Smilie["smilie_file"]) )
{
@unlink($aaaanb . $Smilie["smilie_file"]);
}
$TSUE["TSUE_Database"]->delete("tsue_smilies", "smilie_id = " . $TSUE["TSUE_Database"]->escape($delete));
$HTML = successmessage(get_phrase("file_manager_smilies_deleted", $Smilie["smilie_title"] . " (" . $delete . ")"));
handlerebuildcaches(false);
logadminaction(get_phrase("file_manager_smilies_deleted", $Smilie["smilie_title"] . " (" . $delete . ")"));
}
else
{
$HTML .= errormessage(get_phrase("message_content_error"));
}
}
$Smilies = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_smilies ORDER BY smilie_title");
if( !$TSUE["TSUE_Database"]->num_rows($Smilies) )
{
return errormessage(get_phrase("message_nothing_found"));
}
while( $Smilie = $TSUE["TSUE_Database"]->fetch_assoc($Smilies) )
{
if( in_array(file_extension($Smilie["smilie_file"]), $allowedFiles) )
{
$aaaani = aaaaae(array( "delete=" . $Smilie["smilie_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$aaaanj = aaaaae(array( "edit=" . $Smilie["smilie_id"] => array( "phrase" => getimage("buttons/options.png", get_phrase("button_edit")) ) ));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $aaaanc . $Smilie["smilie_file"] . "\" alt=\"\" title=\"\" border=\"0\" /> <span class=\"smallPassiveText\">" . $Smilie["smilie_title"] . " <b>" . $Smilie["smilie_text"] . "</b> " . $Smilie["smilie_file"] . "</span>" ), array( "width" => "15%", "align" => "center", "text" => $aaaanj . " " . $aaaani ) ));
}
}
}
$aaaank = aaaaae(array( "upload=1" => array( "phrase" => get_phrase("file_manager_smilies_upload") ) ));
$HTML .= createtable(get_phrase("file_manager_smilies_alt"), $tableContents, 2, $aaaank);
return $HTML;
}
function handlecountryflags()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$aaaanl = DATAPATH . "countryFlags/";
$aaaanm = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/countryFlags/";
if( !is_dir($aaaanl) || !is_writable($aaaanl) )
{
return errormessage(get_phrase("file_manager_country_flags_no_flag_folder"));
}
$upload = intval(getvar("upload"));
if( $upload )
{
checkdemomode();
if( isset($_FILES["flag"]) )
{
$flag = $_FILES["flag"];
if( !$flag["size"] || $flag["error"] )
{
$formErrors[] = get_phrase("upload_error3");
}
if( !in_array(file_extension($flag["name"]), array( "gif", "jpg", "png", "jpeg" )) )
{
$formErrors[] = get_phrase("upload_error6", "gif, jpg, png");
}
if( is_file($aaaanl . $flag["name"]) )
{
$formErrors[] = get_phrase("upload_error7");
}
if( !isset($formErrors) && !move_uploaded_file($flag["tmp_name"], $aaaanl . $flag["name"]) )
{
$formErrors[] = get_phrase("upload_error8");
}
if( isset($formErrors) )
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
else
{
$HTML .= successmessage(get_phrase("file_manager_country_flags_uploaded", $flag["name"]));
logadminaction(get_phrase("file_manager_country_flags_uploaded", $flag["name"]));
handlerebuildcaches(false);
handleprune(false);
$uploadDone = true;
}
}
if( !isset($uploadDone) )
{
$uploadForm = aaaabn(get_phrase("file_manager_country_flagss_select_flag_to_upload") . ": " . ((DEMO_MODE ? "--File upload is disabled in demo mode--" : "<input type=\"file\" name=\"flag\" />")) . " " . aaaabm(get_phrase("button_upload"), get_phrase("button_reset")));
$tableContents = aaaaag(array( array( "width" => "99%", "text" => $uploadForm ), array( "width" => "1%", "text" => NULL ) ));
}
}
if( !$tableContents )
{
$delete = trim(base64_decode(getvar("delete")));
if( $delete )
{
checkdemomode();
if( in_array(file_extension($delete), array( "gif", "jpg", "png", "jpeg" )) && is_file($aaaanl . $delete) )
{
@unlink($aaaanl . $delete);
$HTML = successmessage(get_phrase("file_manager_country_flags_deleted", $delete));
handlerebuildcaches(false);
handleprune(false);
logadminaction(get_phrase("file_manager_country_flags_deleted", $delete));
}
else
{
$HTML .= errormessage(get_phrase("message_content_error"));
}
}
$aaaann = array( );
$flags = scandir($aaaanl);
foreach( $flags as $flag )
{
if( in_array(file_extension($flag), array( "gif", "jpg", "png", "jpeg" )) )
{
$aaaano = aaaaae(array( "delete=" . base64_encode($flag) => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "90%", "text" => "<img src=\"" . $aaaanm . $flag . "\" alt=\"\" title=\"\" border=\"0\" /> <span class=\"smallPassiveText\">" . $flag . " -- " . friendly_size(filesize($aaaanl . $flag)) . "</span>" ), array( "width" => "10%", "text" => $aaaano ) ));
}
}
}
$aaaanp = aaaaae(array( "upload=1" => array( "phrase" => get_phrase("file_manager_country_flags_upload") ) ));
$HTML .= createtable(get_phrase("file_manager_country_flags_alt"), $tableContents, 2, $aaaanp);
return $HTML;
}
function handleattachments()
{
global $TSUE;
$HTML = "";
$tableContents = "";
$delete = intval(getvar("delete"));
$keywords = trim(getvar("keywords"));
$WHERE = "";
if( $delete )
{
$Attachment = $TSUE["TSUE_Database"]->query_result("SELECT filename FROM tsue_attachments WHERE content_type = 'posts' AND associated = 1 AND attachment_id = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Attachment )
{
checkdemomode();
$filename = DATAPATH . "posts/" . $Attachment["filename"];
if( is_file($filename) )
{
@unlink($filename);
}
$TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type = 'posts' AND associated = 1 AND attachment_id = " . $TSUE["TSUE_Database"]->escape($delete));
$phrase = get_phrase("attachment_has_been_deleted", $Attachment["filename"]);
$HTML .= successmessage($phrase);
handlerebuildcaches(false);
logadminaction($phrase);
}
}
$searchType = trim(getvar("searchType"));
if( !in_array($searchType, array( "membername", "filename" )) )
{
$searchType = "filename";
}
if( $keywords && $searchType )
{
switch( $searchType )
{
case "membername":
$WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords);
break;
case "filename":
$WHERE = " AND a.filename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
break;
}
}
$orderBy["fieldname"] = "a.upload_date";
$orderBy["type"] = "DESC";
if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
{
$allowedFieldNames = array( "m.membername", "a.filename", "a.upload_date", "a.view_count", "a.filesize" );
$allowedTypes = array( "DESC", "ASC" );
if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
{
$orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
$orderBy["type"] = $_REQUEST["orderBy"]["type"];
}
}
$Attachments = $TSUE["TSUE_Database"]->query("SELECT a.attachment_id, p.threadid, t.forumid, m.membername, g.groupstyle FROM tsue_attachments a LEFT JOIN tsue_forums_posts p ON(a.content_id=p.postid) LEFT JOIN tsue_forums_threads t ON(p.threadid=t.threadid) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE a.content_type = 'posts' AND a.associated = 1" . $WHERE);
$attachmentCount = $TSUE["TSUE_Database"]->num_rows($Attachments);
if( !$attachmentCount )
{
return errormessage(get_phrase("message_nothing_found"));
}
$Pagination = pagination($attachmentCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&orderBy[type]=" . $orderBy["type"] . (($keywords ? "&keywords=" . urlencode($keywords) . "&searchType=" . $searchType : "")));
$Attachments = $TSUE["TSUE_Database"]->query("SELECT a.*, p.threadid, t.forumid, m.membername, g.groupstyle FROM tsue_attachments a LEFT JOIN tsue_forums_posts p ON(a.content_id=p.postid) LEFT JOIN tsue_forums_threads t ON(p.threadid=t.threadid) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE a.content_type = 'posts' AND a.associated = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) )
{
$Attachment["filename"] = strip_tags($Attachment["filename"]);
$pageNumber = findpagenumber("SELECT 1 FROM tsue_forums_posts WHERE postid <= " . $TSUE["TSUE_Database"]->escape($Attachment["content_id"]) . " AND threadid = " . $TSUE["TSUE_Database"]->escape($Attachment["threadid"]), $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_posts_perpage"]);
$aaaanq = aaaaaf("?p=forums&pid=11&fid=" . $Attachment["forumid"] . "&tid=" . $Attachment["threadid"] . "&page=" . $pageNumber . "#show_post_" . $Attachment["content_id"], $Attachment["filename"]);
$membername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Attachment["memberid"] => array( "phrase" => getmembername($Attachment["membername"], $Attachment["groupstyle"]) ) ));
$upload_date = convert_relative_time($Attachment["upload_date"]);
$view_count = number_format($Attachment["view_count"]);
$filesize = friendly_size($Attachment["filesize"]);
$aaaanr = aaaaae(array( "delete=" . $Attachment["attachment_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents .= aaaaag(array( array( "width" => "85%", "text" => "\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"floatLeft\">" . file_icon($Attachment["filename"]) . "</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"floatLeft\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t" . $aaaanq . "<br />\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"smallPassiveTextBlock\">" . $membername . ", " . $upload_date . " | " . $filesize . " | " . $view_count . " " . get_phrase("forums_attached_files_views") . "</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>" ), array( "width" => "15%", "text" => $aaaanr, "align" => "right" ) ));
}
$selectBox = "\r\n\t<select name=\"searchType\" class=\"selectNoWidth\">\r\n\t\t<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t<option value=\"filename\"" . (($searchType == "filename" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filename") . "</option>\r\n\t</select>";
$searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
$HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array( ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
$HTML .= createtable(get_phrase("attachments"), $tableContents, 2, $Pagination["1"]);
$HTML .= "\r\n\t<div style=\"float: right; margin-top: 10px;\">\r\n\t\t" . aaaabn("\r\n\t\t" . get_phrase("torrents_sort_by") . "\r\n\t\t<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t\t<option value=\"a.filename\"" . (($orderBy["fieldname"] == "a.filename" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filename") . "</option>\r\n\t\t\t<option value=\"a.upload_date\"" . (($orderBy["fieldname"] == "a.upload_date" ? " selected=\"selected\"" : "")) . ">" . get_phrase("table_list_date") . "</option>\r\n\t\t\t<option value=\"a.view_count\"" . (($orderBy["fieldname"] == "a.view_count" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_views") . "</option>\r\n\t\t\t<option value=\"a.filesize\"" . (($orderBy["fieldname"] == "a.filesize" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filesize") . "</option>\r\n\t\t</select>\r\n\t\t<select name=\"orderBy[type]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>\r\n\t\t\t<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>\r\n\t\t</select>\r\n\t\t<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "\r\n\t</div>";
return $HTML;
}
function handledownloads()
{
global $TSUE;
$HTML = "";
$aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("torrent_categories_new_category") ) ));
$tableContents = "";
$delete = intval(getvar("delete"));
$edit = intval(getvar("edit"));
$new = intval(getvar("new"));
if( isset($_POST["sort"]) )
{
foreach( $_POST["sort"] as $Cid => $Sort )
{
$Cid = intval($Cid);
$Sort = intval($Sort);
$TSUE["TSUE_Database"]->update("tsue_downloads_categories", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid));
}
handleprune(false);
header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
exit();
}
else
{
if( $delete )
{
$Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_downloads_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $Category )
{
$TSUE["TSUE_Database"]->delete("tsue_downloads_categories", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
$Files = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_downloads WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
if( $TSUE["TSUE_Database"]->num_rows($Files) )
{
while( $File = $TSUE["TSUE_Database"]->fetch_assoc($Files) )
{
deletefile($File["filename"]);
}
}
$TSUE["TSUE_Database"]->delete("tsue_downloads", "cid=" . $TSUE["TSUE_Database"]->escape($delete));
logadminaction(get_phrase("download_category_x_has_been_deleted", $Category["cname"] . " (" . $delete . ")"));
handlerebuildcaches(false);
handleprune(false);
}
}
if( $edit || $new )
{
$Category = array( "cname" => "", "cdescription" => "", "sort" => 0, "cviewpermissions" => array( ), "cdownloadpermissions" => array( ) );
$aaaaam = "";
if( $edit )
{
$Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_downloads_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
if( !$Category )
{
return errormessage(get_phrase("message_content_error"));
}
$aaaaam = array( "edit" => $edit );
$Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]);
$Category["cdownloadpermissions"] = tsue_explode(",", $Category["cdownloadpermissions"]);
}
if( isset($_POST["Category"]) )
{
$Category = $_POST["Category"];
if( !isset($Category["cviewpermissions"]) )
{
$Category["cviewpermissions"] = array( );
}
if( !isset($Category["cdownloadpermissions"]) )
{
$Category["cdownloadpermissions"] = array( );
}
if( !$Category["cname"] )
{
$formErrors[] = get_phrase("message_required_fields_error");
}
if( !isset($formErrors) )
{
$buildQuery = array( "cname" => $Category["cname"], "cdescription" => $Category["cdescription"], "sort" => intval($Category["sort"]), "cviewpermissions" => implode(",", $Category["cviewpermissions"]), "cdownloadpermissions" => implode(",", $Category["cdownloadpermissions"]) );
if( $edit )
{
$TSUE["TSUE_Database"]->update("tsue_downloads_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
}
else
{
$TSUE["TSUE_Database"]->insert("tsue_downloads_categories", $buildQuery);
$edit = $TSUE["TSUE_Database"]->insert_id();
}
logadminaction(get_phrase("download_category_x_has_been_updated", $Category["cname"] . " (" . $edit . ")"));
$HTML .= successmessage(get_phrase("message_saved"));
handlerebuildcaches(false);
handleprune(false);
$updateDone = true;
}
else
{
$HTML .= errormessage(implode("<br />", $formErrors));
}
}
if( !isset($updateDone) )
{
$inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf");
$formContents = aaaaan(get_phrase("torrent_categories_category_name"), $inputbox);
$inputbox = inputbox("Category[cdescription]", $Category["cdescription"], "text");
$formContents .= aaaaan(get_phrase("category_description"), $inputbox);
$inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny");
$formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
$aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]);
$formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe, "", "optionsInOverlay", "", checkallcheckbox("Category[cviewpermissions][]"));
$aaaabe = aaaaaw("Category[cdownloadpermissions][]", $Category["cdownloadpermissions"]);
$formContents .= aaaaan(get_phrase("global_download_permissions"), $aaaabe, "", "optionsInOverlay", "", checkallcheckbox("Category[cdownloadpermissions][]"));
$HTML .= aaaabg($formContents, $aaaaam);
return $HTML;
}
}
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_downloads_categories ORDER BY `sort` ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Categories) )
{
$tableContents = errormessage(get_phrase("no_results_found"));
}
else
{
$tableContents = "";
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$tableContents .= aaaans($Category);
}
$tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
}
$HTML .= aaaabn(createtable(get_phrase("dm_title"), $tableContents, 3, $aaaacl));
return $HTML;
}
}
function deletefile($filename = "")
{
checkdemomode();
if( !$filename )
{
return false;
}
$filePath = DATAPATH . "downloads/files/" . $filename;
if( file_exists($filePath) )
{
@unlink($filePath);
}
}
function aaaans($Category)
{
global $TSUE;
$aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) ));
$aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
$tableContents = aaaaag(array( array( "width" => "65%", "text" => $aaaacv . " <span class=\"smallPassiveText\">" . $Category["cdescription"] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) ));
return $tableContents;
}
function handlepermissions()
{
global $TSUE;
checkdemomode();
$HTML = "";
$tableContents = "";
clearstatcache();
foreach( aaaant() as $Directory )
{
if( $Directory != "." && $Directory != ".." && is_dir(DATAPATH . $Directory) )
{
$color = (is_writable(DATAPATH . $Directory) ? "green" : "red");
$tableContents .= aaaaag(array( array( "width" => "80%", "text" => DATAPATH . $Directory ), array( "width" => "20%", "align" => "right", "text" => "<span style=\"color: " . $color . "\">" . substr(sprintf("%o", fileperms(DATAPATH . $Directory)), -4) . "</span>" ) ));
}
}
$HTML .= createtable(get_phrase("permissions_alt"), $tableContents, 2);
return $HTML;
}
function handlecleanup()
{
global $TSUE;
return "\r\n\t\r\n\t<div class=\"ajaxLoaderDiv\">\r\n\t\t<div style=\"font-size: 11px; margin-bottom: 10px;\">\r\n\t\t\t" . get_phrase("before_cleanup") . ": <span id=\"currentDirSize\">" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . "</span> | " . get_phrase("after_cleanup") . ": <span id=\"afterDirSize\">" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . "</span>\r\n\t\t</div>\r\n\t\t<div id=\"cleanupRunning\">\r\n\t\t\t" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "\r\n\t\t\t" . get_phrase("loading") . "\r\n\t\t</div>\r\n\t</div>\r\n\t\r\n\t<script type=\"text/javascript\">\r\n\t\tvar directories = [\"avatars\", \"countryFlags\", \"downloads\", \"gallery\", \"languageFlags\", \"posts\", \"smilies\", \"subTitles\", \"torrents\"];\r\n\t\tvar current = 0;\r\n\t\tvar total = directories.length;\r\n\r\n\t\t\$.ajax\r\n\t\t({\r\n\t\t\ttype: \"POST\",\r\n\t\t\tdata: \"isAjax=1&action=getDirectorySize\",\r\n\t\t\tsuccess: function(response)\r\n\t\t\t{\r\n\t\t\t\t\$(\"#currentDirSize\").html(response);\r\n\t\t\t\tstartCleanup();\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\tfunction startCleanup()\r\n\t\t{\r\n\t\t\t\$(\"#cleanupRunning\").html('" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . " " . get_phrase("cleaning") . " <b>'+directories[current]);\r\n\r\n\t\t\t\$.ajax\r\n\t\t\t({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\tdata: \"isAjax=1&action=doCleanup&dir=\"+directories[current],\r\n\t\t\t\tsuccess: function(response)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(response)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\"#cleanupRunning\").html(response);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcurrent++;\r\n\t\t\t\t\t\tif(directories[current])\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tstartCleanup();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=getDirectorySize\",\r\n\t\t\t\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$(\"#afterDirSize\").html(response);\r\n\t\t\t\t\t\t\t\t\t\$(\"#cleanupRunning\").html('<div class=\"success\">" . get_phrase("operation_completed") . "</div>');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t</script>";
}
function file_icon($Filename)
{
global $TSUE;
$Extension = file_extension($Filename);
$iconPath = "styles/" . aaaaff() . "/extensions/";
if( file_exists(ROOTPATH . $iconPath . $Extension . ".png") )
{
return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $iconPath . $Extension . ".png\" class=\"middle\" border=\"0\" title=\"" . $Extension . "\" />";
}
return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $iconPath . "default.png\" class=\"middle\" border=\"0\" title=\"" . $Extension . "\" />";
}
function findpagenumber($Query = "", $perPage = 0)
{
global $TSUE;
if( !$Query || !$perPage )
{
return 0;
}
$totalRows = $TSUE["TSUE_Database"]->row_count($Query);
if( $totalRows <= $perPage )
{
return 0;
}
return ceil($totalRows / $perPage);
}
function aaaakq($array, $remove)
{
$rebuild = array( );
foreach( $array as $a )
{
if( $a != $remove )
{
$rebuild[] = $a;
}
}
return $rebuild;
}
function aaaahb()
{
$Permissions = array( "defaultForumPermissions" => array( "canview_forum" => 1, "canupload" => 0, "candownload" => 1, "canview_thread_list" => 1, "canview_thread_posts" => 1, "canreply_threads" => 1, "canpost_new_thread" => 1, "candelete_posts" => 0, "candelete_own_posts" => 0, "canedit_posts" => 0, "canedit_own_posts" => 1, "canmanage_locked_threads" => 0, "candelete_threads" => 0, "canmove_threads" => 0, "canedit_threads" => 0, "canedit_own_threads" => 1, "cansubscribe_to_threads" => 1, "canpost_polls" => 1, "candelete_own_polls" => 0, "canedit_own_polls" => 1, "canlock_threads" => 0, "cansticky_threads" => 0, "candelete_polls" => 0, "canedit_polls" => 0 ), "adminForumPermissions" => array( "canview_forum" => 1, "canupload" => 1, "candownload" => 1, "canview_thread_list" => 1, "canview_thread_posts" => 1, "canreply_threads" => 1, "canpost_new_thread" => 1, "candelete_posts" => 1, "candelete_own_posts" => 1, "canedit_posts" => 1, "canedit_own_posts" => 1, "canmanage_locked_threads" => 1, "candelete_threads" => 1, "canmove_threads" => 1, "canedit_threads" => 1, "canedit_own_threads" => 1, "cansubscribe_to_threads" => 1, "canpost_polls" => 1, "candelete_own_polls" => 1, "canedit_own_polls" => 1, "canlock_threads" => 1, "cansticky_threads" => 1, "candelete_polls" => 1, "canedit_polls" => 1 ) );
return $Permissions;
}
function aaaaaa()
{
@date_default_timezone_set("GMT");
define("TIMESTART", microtime(true));
define("TIMENOW", time());
define("REALPATH", str_replace("\\", "/", realpath(".")) . "/");
define("ROOTPATH", str_replace("\\", "/", realpath("./../")) . "/");
define("DATAPATH", ROOTPATH . "data/");
define("JSPATH", ROOTPATH . "js/");
define("LIBRARYPATH", ROOTPATH . "library/");
define("STYLEPATH", ROOTPATH . "styles/");
define("CLIPATH", (DEMO_MODE ? "cli/" : ROOTPATH . "cli/"));
@error_reporting(30719);
@ini_set("display_errors", "On");
@set_error_handler("TSUEAdmin_ErrorHandler");
if( function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc() )
{
undomagicquotes($_GET);
undomagicquotes($_POST);
undomagicquotes($_COOKIE);
undomagicquotes($_REQUEST);
}
if( function_exists("get_magic_quotes_runtime") && get_magic_quotes_runtime() )
{
@set_magic_quotes_runtime(false);
}
@ini_set("memory_limit", "256M");
@set_time_limit(0);
@ignore_user_abort(true);
@ini_set("pcre.backtrack_limit", -1);
@ini_set("output_buffering", false);
while( ob_get_level() )
{
@ob_end_clean();
}
define("SAFEMODE", (@ini_get("safe_mode") == 1 || strtolower(@ini_get("safe_mode")) == "on" ? true : false));
define("IN_ADMIN_PANEL", true);
define("MEMBER_IP", getclientip());
define("IS_AJAX", (isset($_POST["isAjax"]) && $_POST["isAjax"] == 1 ? true : false));
define("TSUE_ADMINCP_URL", aaaaac());
define("TSUE_URL", "T29wcw==");
define("TSUE_URL2", "T29wcw==");
define("TSUE_URL3", "T29wcw==");
define("U", (!empty($_SERVER["SERVER_NAME"]) ? fixurl($_SERVER["SERVER_NAME"]) : (!empty($_SERVER["HTTP_HOST"]) ? fixurl($_SERVER["HTTP_HOST"]) : "")));
define("I", getserverip());
define("V", "2.2");
}
function TSUEAdmin_ErrorHandler($errno, $errstr, $errfile, $errline)
{
$Message = "\r\n------------------------------------------\r\n" . date("d-m-Y H:i:s") . "\r\n[" . $errno . "] " . $errstr . "\r\nPHP Error on line " . number_format($errline) . " in file " . $errfile . "\r\n" . PHP_VERSION . " " . PHP_OS . "\r\n------------------------------------------";
@file_put_contents(DATAPATH . "errors/admincp.php.log", $Message, FILE_APPEND);
}
function getserverip()
{
$ipFile = DATAPATH . "cache/ip.srv";
if( isset($_SERVER["SERVER_ADDR"]) && !empty($_SERVER["SERVER_ADDR"]) && is_valid_ip($_SERVER["SERVER_ADDR"]) )
{
$ip = $_SERVER["SERVER_ADDR"];
}
else
{
if( isset($_SERVER["LOCAL_ADDR"]) && !empty($_SERVER["LOCAL_ADDR"]) && is_valid_ip($_SERVER["LOCAL_ADDR"]) )
{
$ip = $_SERVER["LOCAL_ADDR"];
}
else
{
if( file_exists($ipFile) && TIMENOW < filemtime($ipFile) + 1800 )
{
$ip = file_get_contents($ipFile);
}
else
{
if( function_exists("curl_init") && ($ch = curl_init()) )
{
curl_setopt($ch, CURLOPT_URL, base64_decode(TSUE_URL3));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0");
$ip = curl_exec($ch);
curl_close($ch);
if( is_writable(DATAPATH . "cache/") )
{
@file_put_contents($ipFile, $ip);
}
}
}
}
}
if( is_valid_ip($ip) )
{
return $ip;
}
if( file_exists($ipFile) )
{
@unlink($ipFile);
}
}
function is_valid_ip($ip)
{
return $ip != "127.0.0.1" && $ip != "::1" && filter_var($ip, FILTER_VALIDATE_IP);
}
function aaaanu($error)
{
_sendheaders(errormessage($error));
}
function fixurl($url = "")
{
return strtolower(str_replace(array( "http://", "https://", "www.", "http://www.", "https://www." ), "", $url));
}
function checkallcheckbox($checkboxName)
{
return "<input type=\"checkbox\" name=\"checkAllCheckbox\" id=\"checkAllCheckbox\" data=\"" . $checkboxName . "\" />";
}
function encodestring($String = "", $AnahtarKelime = "T29wcw==")
{
$AnahtarKelime = base64_decode($AnahtarKelime);
$result = "";
for( $i = 0; $i < strlen($String); $i++ )
{
$char = substr($String, $i, 1);
$keychar = substr($AnahtarKelime, $i % strlen($AnahtarKelime) - 1, 1);
$char = chr(ord($char) + ord($keychar));
$result .= $char;
}
return urlencode(base64_encode($result));
}
function decodestring($String = "", $AnahtarKelime = "T29wcw==")
{
$AnahtarKelime = base64_decode($AnahtarKelime);
$String = urldecode($String);
$result = "";
$String = urldecode(base64_decode($String));
for( $i = 0; $i < strlen($String); $i++ )
{
$char = substr($String, $i, 1);
$keychar = substr($AnahtarKelime, $i % strlen($AnahtarKelime) - 1, 1);
$char = chr(ord($char) - ord($keychar));
$result .= $char;
}
return $result;
}
function compare_key($installkey = "")
{
return strlen($installkey) === 36 && preg_match(str_replace("#", "[0-9,A-F]", "{########-####-####-####-############}"), $installkey);
}
function is_valid_url($url = "")
{
return (!empty($url) && !preg_match("#^[a-z0-9-\\.]+\$#", $url) ? false : true);
}
function getrealpath($Path = ".")
{
$Path = realpath($Path);
if( substr($Path, -1) != DIRECTORY_SEPARATOR )
{
$Path .= DIRECTORY_SEPARATOR;
}
$_SERVER["SCRIPT_NAME"] = realpath(trim($_SERVER["SCRIPT_NAME"]));
return realpath(trim($Path . $_SERVER["SCRIPT_NAME"]));
}
function aaaanv($type = 0, $tryAgain = false)
{
$serverResponse = "";
if( function_exists("curl_init") && ($ch = curl_init()) )
{
curl_setopt($ch, CURLOPT_URL, ($tryAgain ? decodestring(TSUE_URL2) : decodestring(TSUE_URL)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0");
curl_setopt($ch, CURLOPT_REFERER, U);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "t=" . $type . "&u=" . encodestring(U) . "&i=" . encodestring(I) . "&v=" . V . "&dr=" . encodestring(getrealpath()));
$serverResponse = curl_exec($ch);
curl_close($ch);
if( $serverResponse )
{
$serverResponse = decodestring($serverResponse);
}
else
{
if( !$tryAgain )
{
return aaaanv($type, true);
}
}
}
return $serverResponse;
}
function aaaanw()
{
echo str_repeat(" ", 256);
if( ob_get_length() )
{
@ob_flush();
@flush();
@ob_end_flush();
}
@ob_start();
}
function fetchurl($URL = "")
{
$serverResponse = "";
if( $URL && function_exists("curl_init") && ($ch = curl_init()) )
{
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$serverResponse = curl_exec($ch);
curl_close($ch);
}
return $serverResponse;
}
function aaaaab()
{
global $TSUE;
@ini_set("session.gc_maxlifetime", 900);
@session_name("tsueadmincp");
@session_cache_expire(900);
@session_start();
if( @file_exists($_SERVER["DOCUMENT_ROOT"] . "/tsue/l.php") )
{
aaaanu("Critical Security Error.");
}
if( !(isset($_GET["forceLicenseCheck"]) && $_GET["forceLicenseCheck"] == "true") )
{
$aaaanx = getsetting("data", "cache");
if( $aaaanx )
{
$aaaanx = @unserialize(@decodestring($aaaanx));
if( $aaaanx && is_array($aaaanx) && count($aaaanx) === 4 && is_valid_url($aaaanx["domain"]) && is_valid_url(U) && $aaaanx["domain"] === U && $aaaanx["ip"] === I && $aaaanx["version"] === V )
{
$days = 259200;
if( $aaaanx["time"] && TIMENOW < $aaaanx["time"] + $days )
{
if( isset($_GET["licenseDebug"]) && $_GET["licenseDebug"] == "true" )
{
echo "\r\n\t\t\t\t\t\t<table style=\"padding: 5px; margin: 5px auto; border: 1px solid #ccc;\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Domain:</td>\r\n\t\t\t\t\t\t\t\t<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["domain"] . " (" . U . ")</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">IP:</td>\r\n\t\t\t\t\t\t\t\t<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["ip"] . " (" . I . ")</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Version:</td>\r\n\t\t\t\t\t\t\t\t<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["version"] . " (" . V . ")</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Last Check:</td>\r\n\t\t\t\t\t\t\t\t<td style=\"border-bottom: 1px solid #ccc;\">" . date("d-m-Y h:i:s", $aaaanx["time"]) . "</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Next Check:</td>\r\n\t\t\t\t\t\t\t\t<td style=\"border-bottom: 1px solid #ccc;\">" . date("d-m-Y h:i:s", $aaaanx["time"] + $days) . "</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t</table>";
exit();
}
return true;
}
}
}
}
$TSUE["TSUE_Database"]->delete("tsue_settings", "settingname = 'data'");
$serverResponse = aaaanv(3);
if( !$serverResponse )
{
aaaanu("Could not connect to server.");
}
if( !preg_match("#\\[domain\\](.*)\\[\\/domain\\]#", $serverResponse, $domain) )
{
aaaanu($serverResponse);
}
$domain = (isset($domain["1"]) ? $domain["1"] : "");
if( !is_valid_url($domain) || !is_valid_url(U) || $domain != U )
{
aaaanu("Invalid Domain.");
}
aaaany($domain);
}
function aaaany($domain)
{
$serverResponse = array( "domain" => $domain, "ip" => I, "time" => TIMENOW, "version" => V );
updatesettings("data", array( "cache" => encodestring(serialize($serverResponse)) ));
}
function getbanreason($memberid)
{
global $TSUE;
$bannedUser = $TSUE["TSUE_Database"]->query_result("SELECT end_date, reason FROM tsue_member_bans WHERE memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
if( !$bannedUser )
{
return get_phrase("permission_denied_banned");
}
if( $bannedUser["reason"] )
{
$message = get_phrase("permission_denied_banned_reason", $bannedUser["reason"]);
}
else
{
$message = get_phrase("permission_denied_banned");
}
if( TIMENOW < $bannedUser["end_date"] )
{
$message .= " " . get_phrase("permission_denied_banned_until", convert_time($bannedUser["end_date"]));
}
return $message;
}
function checkadmin()
{
global $TSUE;
$isLogged = false;
if( $TSUE["action"] == "logout" )
{
$_SESSION["skipGlobalWarnings"] = "";
$_SESSION["load-addon"] = $_SESSION["skipGlobalWarnings"];
$_SESSION["U"] = $_SESSION["load-addon"];
setcookie("TSUEAdmin", "", TIMENOW - 3600);
header("Location: ?action=Dashboard");
exit();
}
$isPost = ispost();
if( $isPost && isset($_POST["adminLogin"]) )
{
$membername = (isset($_POST["membername"]) ? trim($_POST["membername"]) : "");
$password = (isset($_POST["password"]) ? md5($_POST["password"]) : "");
$languageid = (isset($_POST["languageid"]) ? intval($_POST["languageid"]) : 1);
$time = TIMENOW;
}
else
{
if( isset($_COOKIE["TSUEAdmin"]) )
{
list($membername, $password, $languageid, $time) = @tsue_explode("-", @base64_decode($_COOKIE["TSUEAdmin"]));
}
}
if( isset($membername) && $membername && isset($password) && $password && strlen($password) == 32 && isset($languageid) && $languageid && isset($time) && $time )
{
if( TIMENOW < $time + getsetting("global_settings", "admincp_session_timeout", 5) * 60 )
{
$adminQuery = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membergroupid, m.membername, m.password, m.lastactivity, m.timezone, m.dst, g.groupstyle, g.permissions, b.memberid as isBanned FROM tsue_members m INNER JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_bans b ON(m.memberid=b.memberid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($membername));
if( $adminQuery )
{
if( $password === $adminQuery["password"] )
{
$TSUE["TSUE_Member"] = $adminQuery;
$TSUE["TSUE_Member"]["adminCPLastLogin"] = $time;
unset($TSUE["TSUE_Member"]["password"]);
$TSUE["TSUE_Member"]["permissions"] = unserialize($adminQuery["permissions"]);
$Language = $TSUE["TSUE_Database"]->query_result("SELECT charset, date_format, time_format, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid) . " AND active = 1");
if( $Language )
{
$TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]);
$TSUE["TSUE_Language"]["date_format"] = $Language["date_format"];
$TSUE["TSUE_Language"]["time_format"] = $Language["time_format"];
$TSUE["TSUE_Language"]["phrase"] = unserialize($Language["phrase_global"]);
}
if( $adminQuery["isBanned"] )
{
exit( getbanreason($adminQuery["memberid"]) );
}
if( $TSUE["TSUE_Member"]["timezone"] === "" )
{
$TSUE["TSUE_Member"]["timezone"] = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_timezone"];
}
$aPermissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_staffcp_permissions WHERE memberid = " . $TSUE["TSUE_Member"]["memberid"]);
if( !$aPermissions )
{
printoutput(errormessage(get_phrase("permission_denied")));
}
$aaaanz = false;
$aPermissions = unserialize($aPermissions["permissions"]);
if( $aPermissions )
{
foreach( $aPermissions as $permName => $aaaaoa )
{
if( $aaaaoa )
{
$aaaanz = true;
break;
}
}
}
if( !$aaaanz )
{
printoutput(errormessage(get_phrase("permission_denied")));
}
$TSUE["TSUE_Member"]["aPermissions"] = $aPermissions;
if( has_permission("canlogin_admincp", $TSUE["TSUE_Member"]["permissions"]) )
{
$isLogged = true;
$cookieValue = $adminQuery["membername"] . "-" . $password . "-" . $languageid . "-" . TIMENOW;
setcookie("TSUEAdmin", base64_encode($cookieValue));
if( !DEMO_MODE )
{
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["website_timeout"] * 60 < TIMENOW - $TSUE["TSUE_Member"]["lastactivity"] )
{
$updateAccount = "lastvisit = lastactivity, lastactivity = " . TIMENOW;
}
else
{
$updateAccount = "lastactivity = " . TIMENOW;
}
$TSUE["TSUE_Database"]->query("UPDATE tsue_members SET " . $updateAccount . " WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Member"]["memberid"]));
$Build_Query = array( "memberid" => $TSUE["TSUE_Member"]["memberid"], "ipaddress" => MEMBER_IP, "location" => "admincp", "browser" => strip_tags($_SERVER["HTTP_USER_AGENT"]), "date" => TIMENOW );
$TSUE["TSUE_Database"]->replace("tsue_session", $Build_Query);
}
}
}
else
{
if( !DEMO_MODE )
{
logadminaction("Failed Login Attempt to Admin CP! #--# IP: " . MEMBER_IP . " / Membername: " . $membername . " #--#");
}
}
}
}
else
{
$sessionExpired = true;
}
}
if( !$isLogged && IS_AJAX == true )
{
$errorPhrase = errormessage("You must be logged-in to do that.");
if( $TSUE["action"] == "autoComplete" )
{
_sendheaders(json_encode(array( $errorPhrase )), "application/json");
}
else
{
_sendheaders($errorPhrase);
}
}
if( !$isLogged )
{
setcookie("TSUEAdmin", "", TIMENOW - 3600);
$content = "\r\n\t\t<span class=\"loginIPlogged\">IP Logged: <b>" . MEMBER_IP . "</b></span>\r\n\r\n\t\t" . ((isset($sessionExpired) ? "\r\n\t\t<span class=\"loginFailed\">\r\n\t\t\t<span>Your login session has been expired.</span>\r\n\t\t\tPlease re-login.\r\n\t\t</span>" : ($isPost ? "\r\n\t\t<span class=\"loginFailed\">\r\n\t\t\t<span>Login Failed. Please Try Again.</span>\r\n\t\t\tYour IP has been logged and admins notified of this failed login attempt.\r\n\t\t</span>" : "\r\n\t\t<span class=\"loginWelcome\">\r\n\t\t\t<span>Welcome Back</span>\r\n\t\t\tPlease enter your login details below to authenticate.\r\n\t\t</span>"))) . "\r\n\r\n\t\t" . aaaabn("\r\n\t\t<table id=\"adminlogin\" cellpadding=\"2\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td>Membername:</td>\r\n\t\t\t\t<td>Password:</td>\r\n\t\t\t\t<td>Language:</td>\r\n\t\t\t\t<td> </td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><input type=\"text\" class=\"atext\" name=\"membername\" value=\"\" /></td>\r\n\t\t\t\t<td><input type=\"password\" class=\"atext\" name=\"password\" value=\"\" /></td>\r\n\t\t\t\t<td>" . get_languages() . "</td>\r\n\t\t\t\t<td><input type=\"submit\" class=\"button submit\" value=\"Log in\" name=\"adminLogin\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table>");
printoutput($content, true);
}
}
function printoutput($content, $isLogin = false)
{
global $TSUE;
global $Warnings;
if( !isset($TSUE["TSUE_Member"]["memberid"]) || !$TSUE["TSUE_Member"]["memberid"] )
{
$isLogin = true;
}
if( IS_AJAX == true )
{
_sendheaders($content);
}
$globalTitle = ($isLogin ? "TSUE - Admin Control Panel Login" : "TSUE Admin Control Panel" . ((!empty($TSUE["breadcrumb"]) && count($TSUE["breadcrumb"]) ? " - " . @strip_tags($TSUE["breadcrumb"][@count($TSUE["breadcrumb"]) - 1]) : "")));
$aaaaob = "";
if( DEMO_MODE )
{
$aaaaob = "\r\n\t\t<div id=\"demoMode\">Warning! Demo Mode is activated. Same features are disabled within Demo Mode.</div>";
}
$aaaaoc = "";
if( !empty($Warnings) && !isset($_SESSION["skipGlobalWarnings"]) )
{
$aaaaoc = "\r\n\t\t<div id=\"globalWarnings\">\r\n\t\t\t<div class=\"closeWarning\"></div>\r\n\t\t\t" . implode("<hr />", $Warnings) . "\r\n\t\t</div>";
unset($Warnings);
}
_sendheaders("\r\n\t<!DOCTYPE html>\r\n\t<html id=\"TSUE\" lang=\"en-us\">\r\n\t\t<head>\r\n\t\t\t<noscript><meta http-equiv=refresh content=\"0; URL=" . TSUE_ADMINCP_URL . "?noscript=1\" /></noscript>\r\n\t\t\t<title>" . $globalTitle . "</title>\r\n\t\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=" . ((isset($TSUE["TSUE_Language"]["charset"]) ? $TSUE["TSUE_Language"]["charset"] : "UTF-8")) . "\" />\r\n\t\t\t\r\n\t\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/style.php?load=members\" />\r\n\t\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/jquery-ui.css\" />\r\n\t\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/jquery-linedtextarea.css\" />\r\n\t\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/fancybox.css\" />\r\n\r\n\t\t\t" . loadstyle("members.css") . "\r\n\t\t\t\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\tvar TSUEPhrases =\r\n\t\t\t\t{\r\n\t\t\t\t\t" . (($isLogin ? "" : "\r\n\t\t\t\t\tmonths: \"" . get_phrase("dateinput_months") . "\",\r\n\t\t\t\t\tshortMonths: \"" . get_phrase("dateinput_shortMonths") . "\",\r\n\t\t\t\t\tdays: \"" . get_phrase("dateinput_days") . "\",\r\n\t\t\t\t\tshortDays: \"" . get_phrase("dateinput_shortDays") . "\"")) . "\r\n\t\t\t\t};\r\n\t\t\t</script>\r\n\t\t\t\r\n\t\t\t<script type=\"text/javascript\" src=\"./../js/tsue/jquery.js\"></script>\r\n \r\n\t\t\t" . (($isLogin ? "" : "\r\n\t\t\t<script type=\"text/javascript\" src=\"./js/jquery-ui.min.js\"></script>\r\n\t\t\t<script type=\"text/javascript\" src=\"./js/jquery-linedtextarea.js\"></script>\r\n\t\t\t<script type=\"text/javascript\" src=\"./../js/tiny_mce/tiny_mce.js\"></script>")) . "\r\n\t\t</head>\r\n\r\n\t\t<body" . (($isLogin ? "" : " onbeforeunload=\"TSUEAdmin.showLoader();\"")) . ">\r\n\t\t\t<div id=\"loading\">" . getimage("overlay/loading.gif") . " " . (($isLogin ? "Please wait, loading..." : get_phrase("loading"))) . "</div>\r\n\r\n\t\t\t" . $aaaaoc . "\r\n\t\t\t" . $aaaaob . "\r\n\r\n\t\t\t<div id=\"header\">\r\n\t\t\t" . (($isLogin ? "" : "\r\n\t\t\t\t<div id=\"searchBox\">\r\n\t\t\t\t\t<input type=\"text\" id=\"autoCompleteSearchInAdminCP\" value=\"" . get_phrase("keywords") . "\" />\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"last_login\">" . get_phrase("logged_your_last_login_was", convert_relative_time($TSUE["TSUE_Member"]["adminCPLastLogin"])) . " --</div>\r\n\r\n\t\t\t\t<div rel=\"dropDownMenu\" class=\"dropDownMenu help\">\r\n\t\t\t\t\t<span>" . get_phrase("help") . "</span>\r\n\t\t\t\t\t<div id=\"dropDownMenu\">\r\n\t\t\t\t\t\t<a href=\"\" id=\"checkUpdates\">" . get_phrase("check_for_updates") . "</a>\r\n\t\t\t\t\t\t<a href=\"\" id=\"about\">" . get_phrase("about") . "</a>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"menu\">\r\n\t\t\t\t\t" . aaaaae(array( "?action=Dashboard" => array( "phrase" => getimage("menu_icons/home.png") . " " . get_phrase("menu_dashboard"), "class" => ($TSUE["action"] == "Dashboard" ? "active" : "") ), "?action=Plugin Manager" => array( "phrase" => getimage("menu_icons/plugin.png") . " " . get_phrase("menu_plugin_manager"), "class" => ($TSUE["action"] == "Plugin Manager" ? "active" : "") ), "?action=Forum Manager" => array( "phrase" => getimage("menu_icons/forums.png") . " " . get_phrase("menu_forum_manager"), "class" => ($TSUE["action"] == "Forum Manager" ? "active" : "") ), "?action=Appearance" => array( "phrase" => getimage("menu_icons/theme.png") . " " . get_phrase("dashboard_options_appearance"), "class" => ($TSUE["action"] == "Appearance" ? "active" : "") ), "?action=Member Manager" => array( "phrase" => getimage("menu_icons/member_manager.png") . " " . get_phrase("menu_member_manager"), "class" => ($TSUE["action"] == "Member Manager" ? "active" : "") ), "?action=File Manager" => array( "phrase" => getimage("menu_icons/file.png") . " " . get_phrase("menu_file_manager"), "class" => ($TSUE["action"] == "File Manager" ? "active" : "") ) )) . "\r\n\t\t\t\t</div>")) . "\r\n\t\t\t</div>\r\n\r\n\t\t\t<div id=\"container\">\r\n\t\t\t\t<div class=\"content\">\r\n\t\t\t\t\t" . (($isLogin ? "" : "\r\n\t\t\t\t\t<span class=\"logout\">\r\n\t\t\t\t\t\t<a href=\"../\" target=\"_blank\">" . get_phrase("view_website") . "</a> | \r\n\t\t\t\t\t\t<a href=\"?action=logout\">" . get_phrase("logged_logout") . "</a>\r\n\t\t\t\t\t</span>")) . "\r\n\t\t\t\t\t" . createbreadcrumb() . "\r\n\t\t\t\t\t<div id=\"mainText\">" . $content . "</div>\r\n\t\t\t\t\t<div style=\"clear: both;\"></div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div id=\"footer\"> </div>\r\n\t\t\t<div id=\"copyright\">\r\n /*" . ((!$isLogin ? "<div class=\"debug dotted-bottom-gray\">Memory Usage: " . friendly_size(memory_get_usage()) . " -- Query Count: " . $TSUE["TSUE_Database"]->querycount . " -- Page Loaded in " . round(microtime(true) - TIMESTART, 4) . " seconds.</div>" : "")) . "\r\n \t\t\t\t\r\n </div>\r\n\r\n\t\t\t" . (($isLogin ? "\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t\$(document).ready(function(){\$('input[name=\"membername\"]').focus()});\r\n\t\t\t</script>" : "\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\tvar \$openedDropDownMenu, \$noLoader = false, Overlay = \"\";\r\n\r\n\t\t\t\t\$(document).click(function()\r\n\t\t\t\t{\r\n\t\t\t\t\tif(\$openedDropDownMenu)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$('.dropDownClose').remove();\r\n\t\t\t\t\t\t\$openedDropDownMenu.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\tvar TSUEAdmin =\r\n\t\t\t\t{\r\n\t\t\t\t\tinit: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t" . (($TSUE["action"] == "Dashboard" && $TSUE["do"] == "Options" ? "TSUEAdmin.optionGroups();" : "")) . "\r\n\t\t\t\t\t\tTSUEAdmin.clickableOptionBoxes();\r\n\t\t\t\t\t\tTSUEAdmin.initTipsy();\r\n\t\t\t\t\t\tTSUEAdmin.checkAll();\r\n\t\t\t\t\t\tTSUEAdmin.initDateInputBoxes();\r\n TSUEAdmin.initAutoComplete();\r\n\t\t\t\t\t\tTSUEAdmin.calculator();\r\n\t\t\t\t\t\tTSUEAdmin.initTinyMCE(\"tinyMCE\");\r\n\t\t\t\t\t\tTSUEAdmin.initDropDownMenu();\r\n\t\t\t\t\t\tTSUEAdmin.initHelp();\r\n\t\t\t\t\t\tTSUEAdmin.initTextareaLines();\r\n\t\t\t\t\t\tTSUEAdmin.disableSpellChecks();\r\n\t\t\t\t\t\tTSUEAdmin.initializeFancyBOX();\r\n\t\t\t\t\t\tTSUEAdmin.scrollInfoBoxes();\r\n\r\n\t\t\t\t\t\t\$(document).ajaxStart(function()\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tTSUEAdmin.showLoader();\r\n\t\t\t\t\t\t\t\$(\"input,textarea,select\").attr(\"disabled\", true);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.ajaxComplete(function()\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tTSUEAdmin.hideLoader();\r\n\t\t\t\t\t\t\t\$(\"input,textarea,select\").attr(\"disabled\", false);\r\n\t\t\t\t\t\t\tTSUEAdmin.checkAll();\r\n\t\t\t\t\t\t\tTSUEAdmin.initDateInputBoxes();\r\n TSUEAdmin.initAutoComplete();\r\n\t\t\t\t\t\t\tTSUEAdmin.initializeFancyBOX();\r\n\t\t\t\t\t\t\tsetTimeout(function(){TSUEAdmin.initTinyMCE(\"tinyMCEAjax\")}, 1000);\r\n\t\t\t\t\t\t\t//setTimeout(function(){\$(\".success,.error,.info\").fadeOut(\"slow\")}, 3000);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif(\$(\"#globalWarnings\").length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(\"#globalWarnings .closeWarning\").click(function(e)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=closeGlobalWarning\",\r\n\t\t\t\t\t\t\t\t\tsuccess: function()\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\$(\"#globalWarnings\").fadeOut(\"slow\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tscrollInfoBoxes: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(window).scroll(function()\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(\"#scrolling\").remove();\r\n\t\t\t\t\t\t\tif(\$(window).scrollTop() > 1)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$('<div id=\"scrolling\" style=\"position: fixed; right: 15px; bottom: 25px; padding: 0; cursor: pointer; z-index: 1000; display: none;\"><img src=\"./images/buttons/up.png\" alt=\"\" title=\"\" /></div>').prependTo(\"body\").click(function(e)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\$(\"html, body\").animate({ scrollTop: 0 }, \"slow\", \"easeOutBounce\");\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}).fadeIn(\"slow\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tsetCookie: function(c_name,value,exdays)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar exdate=new Date();\r\n\t\t\t\t\t\texdate.setDate(exdate.getDate() + exdays);\r\n\t\t\t\t\t\tvar c_value=escape(value) + ((exdays==null) ? \"\" : \"; expires=\"+exdate.toUTCString());\r\n\t\t\t\t\t\tdocument.cookie=c_name + \"=\" + c_value;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tinitializeFancyBOX: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$('[rel=\"fancybox\"],#fancybox').fancybox({\"type\":\"image\",\"openEffect\":\"elastic\",\"closeEffect\":\"elastic\"});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tdisableSpellChecks: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\".templateTextarea\").attr(\"spellcheck\", false);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tinitTextareaLines: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\".templateTextarea\").linedtextarea();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tinitHelp: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\"#about\").click(function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\t\$noLoader = true;\r\n\r\n\t\t\t\t\t\t\tTSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "', false, false);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=about\",\r\n\t\t\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$noLoader = false;\r\n\t\t\t\t\t\t\t\t\t\$(\".overlay_text\").html(result);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\$(\"#checkUpdates\").click(function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\t\$noLoader = true;\r\n\r\n\t\t\t\t\t\t\tTSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "', false, false);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=checkUpdates\",\r\n\t\t\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$noLoader = false;\r\n\t\t\t\t\t\t\t\t\t\$(\".overlay_text\").html(result);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tinitTinyMCE: function(elementName)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttinyMCE.init\r\n\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\tmode: \"exact\",\r\n\t\t\t\t\t\t\telements: elementName,\r\n\t\t\t\t\t\t\ttheme: \"advanced\",\r\n\t\t\t\t\t\t\tskin : \"default\",\r\n\t\t\t\t\t\t\tplugins : \"advhr,advimage,advlink,advlist,autolink,autoresize,contextmenu,fullscreen,inlinepopups,insertdatetime,layer,lists,media,nonbreaking,noneditable,paste,preview,print,save,searchreplace,style,tabfocus,table,visualchars\",\r\n\t\t\t\t\t\t\t theme_advanced_buttons1 : \"newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect,|,forecolor,backcolor\",\r\n\t\t\t\t\t\t\ttheme_advanced_buttons2 : \"cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,code,|,insertdate,inserttime,preview\",\r\n\t\t\t\t\t\t\ttheme_advanced_buttons3 : \"tablecontrols,|,hr,removeformat,visualaid,|,charmap,emotions,iespell,media,advhr,|,print,|,fullscreen\",\r\n\t\t\t\t\t\t\ttheme_advanced_toolbar_location : \"top\",\r\n\t\t\t\t\t\t\ttheme_advanced_toolbar_align : \"left\",\r\n\t\t\t\t\t\t\ttheme_advanced_statusbar_location : \"bottom\",\r\n\t\t\t\t\t\t\ttheme_advanced_resizing : true,\r\n\r\n\t\t\t\t\t\t\tconvert_urls:true,\r\n\t\t\t\t\t\t\trelative_urls:false,\r\n\t\t\t\t\t\t\tremove_script_host:false,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tinitDropDownMenu: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$('[rel=\"dropDownMenu\"]').click('click', function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\tif(\$openedDropDownMenu)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$('.dropDownClose').remove();\r\n\t\t\t\t\t\t\t\t\$openedDropDownMenu.hide();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar \$findMenu = \$(this).children('#dropDownMenu');\r\n\t\t\t\t\t\t\t\$openedDropDownMenu = \$findMenu;\r\n\r\n\t\t\t\t\t\t\t\$findMenu.find(\"a\").click(function()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar \$location = \$(this).attr(\"href\");\r\n\t\t\t\t\t\t\t\tif(\$location)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\twindow.location = \$location;\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif(\$findMenu.is(':visible'))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$findMenu.fadeOut(\"slow\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$findMenu.fadeIn(\"slow\");\r\n\t\t\t\t\t\t\t\t\$('<div class=\"dropDownClose\"><a class=\"clickable small staffLink\" href=\"javascript:void(0);\">" . get_phrase("button_cancel") . "</a></div>').appendTo(\$findMenu).click(function(e)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\$('.dropDownClose').remove();\r\n\t\t\t\t\t\t\t\t\t\$findMenu.fadeOut(\"slow\");\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tclickableOptionBoxes: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(document).on(\"click\", \".option_box\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\twindow.location=\"?action=" . $TSUE["action"] . "&do=\"+\$(this).attr(\"rel\");\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Use Ajax for Dashboard > Options -> Options Groups.. Such as Website Active, IP Ban etc..\r\n\t\t\t\t\toptionGroups: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t//Clicked on Options Group such as Options -> Website Active\r\n\t\t\t\t\t\t\$(document).on(\"click\", \".optionGroup\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\tvar optionsREL = \$(this).attr(\"rel\"),\r\n\t\t\t\t\t\t\tbuildQuery = \"isAjax=1&\"+optionsREL,\r\n\t\t\t\t\t\t\toptionGroup = \$(this);\r\n\r\n\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\tdata: buildQuery,\r\n\t\t\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tTSUEAdmin.dialog(result, false, true);\r\n\t\t\t\t\t\t\t\t\tTSUEAdmin.initTipsy();\r\n\t\t\t\t\t\t\t\t\t\$(\"#overlay_form\").submit(function(e)//Does this have a form which was submitted?\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar \$thisForm = \$(this);\r\n\r\n\t\t\t\t\t\t\t\t\t\t//Ajax Response has form which has been submitted. Lets handle it.\r\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\tvar \$form = \$(this),\r\n\t\t\t\t\t\t\t\t\t\tbuildQuery = \"isAjax=1&\"+optionsREL+\"&\"+\$form.serialize();\r\n\r\n\t\t\t\t\t\t\t\t\t\tif(\$(\"#tinyMCEAjax\").length)\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\ttinyMCE.triggerSave();\r\n\t\t\t\t\t\t\t\t\t\t\tbuildQuery += \"&\"+\$(\"#tinyMCEAjax\").attr(\"name\")+\"=\"+encodeURIComponent(tinyMCE.activeEditor.getContent());\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\t\tdata: buildQuery,\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t//Results Contains New Data, Lets show it in overlay.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(result.match(/-UPDATE_HTML-/))\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult = result.split(\"~\");//0:-UPDATE_HTML- , 1: divID, 2: HTML\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\$(result[1]).html(result[2]);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\$(\".overlay_text .success, .overlay_text .error\").remove();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\$(result).prependTo(\".overlay_text\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar \$submitButton = \$thisForm.find('input[type=\"submit\"]');\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\$(result).insertBefore(\$submitButton);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\$(\".overlay_text\").animate({scrollTop: 0}, \"slow\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\$(document).on(\"click\",\"#checkHitRunOptions\",function(e)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tvar \$div = \$(\".checkHitRunOptions\");\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar \$options = \$(\"#overlay_form\").serialize();\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\$div.html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "');\r\n\t\t\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=checkHitRunOptions&\"+\$options,\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$div.html(result);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Use Tipsy for rel:initTipsy and Images.\r\n\t\t\t\t\tinitTipsy: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$('[rel=\"initTipsy\"],img[title!=\"\"]').tipsy({trigger: \"hover\", gravity: \"s\", html: true});// nw | n | ne | w | e | sw | s | se\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Calendar for input:date\r\n\t\t\t\t\tinitDateInputBoxes: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$.tools.dateinput.localize(\"tsue\", {months: TSUEPhrases[\"months\"], shortMonths: TSUEPhrases[\"shortMonths\"], days: TSUEPhrases[\"days\"], shortDays: TSUEPhrases[\"shortDays\"]});\r\n\t\t\t\t\t\t\$('input[type=\"date\"]').dateinput({lang: \"tsue\", format: \"dd/mm/yyyy\", selectors: true, yearRange: [-80, 5]}).attr(\"autocomplete\", \"off\");\r\n\t\t\t\t\t},\r\n\r\n //Autocomplete\r\n initAutoComplete: function()\r\n {\r\n\t\t\t\t\t\t\$(function()\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfunction split( val )\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn val.split( /,\\s*/ );\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction extractLast( term )\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn split( term ).pop();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar cache = {}, lastXhr;\r\n\r\n\t\t\t\t\t\t\tif(\$(\"#autoCompleteMultiple\").length)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(\"#autoCompleteMultiple\").\r\n\t\t\t\t\t\t\t\t// don't navigate away from the field on tab when selecting an item\r\n\t\t\t\t\t\t\t\tbind( \"keydown\", function( event )\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tif ( event.keyCode === \$.ui.keyCode.TAB && \$( this ).data( \"ui-Autocomplete\" ).menu.active )\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.autocomplete\r\n\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\tsource: function( request, response )\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\t\turl: \"index.php\",\r\n\t\t\t\t\t\t\t\t\t\t\tdataType: \"json\",\r\n\t\t\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=autoComplete&do=searchMember&keyword=\"+extractLast(request.term),\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess: function(serverResponse, status, xhr)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tresponse( serverResponse );\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tsearch: function()\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t// custom minLength\r\n\t\t\t\t\t\t\t\t\t\tvar term = extractLast( this.value );\r\n\t\t\t\t\t\t\t\t\t\tif ( term.length < 2 )\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tfocus: function()\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t// prevent value inserted on focus\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tselect: function( event, ui )\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar terms = split( this.value );\r\n\t\t\t\t\t\t\t\t\t\t// remove the current input\r\n\t\t\t\t\t\t\t\t\t\tterms.pop();\r\n\t\t\t\t\t\t\t\t\t\t// add the selected item\r\n\t\t\t\t\t\t\t\t\t\tterms.push( ui.item.value );\r\n\t\t\t\t\t\t\t\t\t\t// add placeholder to get the comma-and-space at the end\r\n\t\t\t\t\t\t\t\t\t\tterms.push( \"\" );\r\n\t\t\t\t\t\t\t\t\t\tthis.value = terms.join( \", \" );\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(\$(\"#autoComplete\").length)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(\"#autoComplete\").autocomplete//For Member Search\r\n\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\tminLength: 2,\r\n\t\t\t\t\t\t\t\t\tsource: function( request, response )\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar term = request.term;\r\n\t\t\t\t\t\t\t\t\t\tif( term in cache )\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tresponse( cache[ term ] );\r\n\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tlastXhr = \$.ajax\r\n\t\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\t\turl: \"index.php\",\r\n\t\t\t\t\t\t\t\t\t\t\tdataType: \"json\",\r\n\t\t\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=autoComplete&do=searchMember&keyword=\"+term,\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess: function(serverResponse, status, xhr)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tcache[ term ] = serverResponse;\r\n\t\t\t\t\t\t\t\t\t\t\t\tif( xhr === lastXhr )\r\n\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresponse( serverResponse );\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(\$(\"#autoCompleteSearchInAdminCP\").length)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(\"#autoCompleteSearchInAdminCP\").autocomplete//For Search in Admin CP\r\n\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\tdelay: 500,\r\n\t\t\t\t\t\t\t\t\tminLength: 2,\r\n\t\t\t\t\t\t\t\t\tsource: function( request, response )\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\t\turl: \"index.php\",\r\n\t\t\t\t\t\t\t\t\t\t\tdataType: \"json\",\r\n\t\t\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=autoComplete&do=searchINAdminCP&keyword=\"+request.term,\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess: function(serverResponse, status, xhr)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tresponse( serverResponse );\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tselect: function( event, ui)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tif(ui.item.url)\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\twindow.open(ui.item.url, \"_blank\");\r\n\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}).click(function()\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tvar \$this = \$(this);\r\n\t\t\t\t\t\t\t\t\tif(\$this.val() == \"" . get_phrase("keywords") . "\")\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\$this.val(\"\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}).data(\"ui-Autocomplete\")._renderItem = function (ul, item)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn \$(\"<li></li>\")\r\n\t\t\t\t\t\t\t\t\t.data(\"item.autocomplete\", item)\r\n\t\t\t\t\t\t\t\t\t.append(\$(\"<a></a>\").html(item.label))\r\n\t\t\t\t\t\t\t\t\t.appendTo(ul);\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n },\r\n\r\n\t\t\t\t\t//Set YES-NO and Check ALL\r\n\t\t\t\t\tcheckAll: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(document).on(\"click\", \"#checkAllCheckbox\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar \$this = \$(this), \$cName = \$this.attr(\"data\"), \$isChecked = \$this.is(\":checked\");\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\$('input[name=\"'+\$cName+'\"]').attr(\"checked\", \$isChecked);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\$(document).on(\"click\", \"#setALLYes\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\$(\"input:radio[rel='\"+\$(this).attr(\"rel\")+\"']\").filter(\"[value='1']\").attr(\"checked\", true);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\$(document).on(\"click\", \"#setALLNo\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\$(\"input:radio[rel='\"+\$(this).attr(\"rel\")+\"']\").filter(\"[value='0']\").attr(\"checked\", true);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\$(document).on(\"click\", 'input[name=\"checkALL\"]', function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar \$inputNames = \$(this).attr(\"value\");\r\n\t\t\t\t\t\t\tvar \$checked_status = \$(this).attr(\"checked\");\r\n\t\t\t\t\t\t\t\$('input[name=\"'+\$inputNames+'\"]').attr(\"checked\", (\$checked_status ? \$checked_status : false));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Auto Resize Dialog Height.\r\n\t\t\t\t\tinitMainContentHeight: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar containerContent = \$(\".content\"),\r\n\t\t\t\t\t\tcontainerContentHeight = \$(containerContent).height(),\r\n\t\t\t\t\t\twindowHeight = \$(window).height()-180,\r\n\t\t\t\t\t\tbuttonExpand = \"" . (($isLogin ? "" : get_phrase("button_expand"))) . "\";\r\n\t\t\t\t\t\tif(containerContentHeight > windowHeight)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(containerContent).animate({maxHeight: windowHeight+\"px\"}).css({overflow: \"hidden\"});\r\n\t\t\t\t\t\t\t\$('<div id=\"toggleText\">'+buttonExpand+'</div>').appendTo(\$(containerContent)).click(function()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(containerContent).animate({maxHeight: containerContentHeight+\"px\"});\r\n\t\t\t\t\t\t\t\t\$(this).remove();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Show Loader While Ajax loading.\r\n\t\t\t\t\tshowLoader: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!\$noLoader)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(\"#loading\").show();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Hide Loader After Ajax completed.\r\n\t\t\t\t\thideLoader: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\"#loading\").hide();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Confirmation.\r\n\t\t\t\t\tconfirmAction: function(cMessage)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn confirm(cMessage);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tcalculator: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(document).on(\"click\", \".calculator\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\turl: \"calculator.html\",\r\n\t\t\t\t\t\t\t\tsuccess: function(calculatorHTML)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tTSUEAdmin.dialog(calculatorHTML);\r\n\t\t\t\t\t\t\t\t\t\$(\"#calculator\").submit(function(e)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar \$amount = parseInt(\$('input[name=\"amount\"]', this).val());\r\n\t\t\t\t\t\t\t\t\t\tvar \$amount_type = \$('select[name=\"amount_type\"]', this).val();\r\n\r\n\t\t\t\t\t\t\t\t\t\tif(\$amount && \$amount_type)\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tvar \$convertedAmount = 0;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tswitch(\$amount_type)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase \"MB\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\$convertedAmount = \$amount * 1024 * 1024;\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase \"GB\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\$convertedAmount = \$amount * 1024 * 1024 * 1024;\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\$(\"#convertedAmount\").html(\$amount+\" \"+\$amount_type+\" equal to \"+\$convertedAmount+\" Bytes\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Dialog Function\r\n\t\t\t\t\tdialog: function(result, _closeOnClick, _closeOnEsc)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(\$(\".apple_overlay\").length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(\".apple_overlay\").empty().remove();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tOverlay = \$('<div class=\"apple_overlay\"><div class=\"overlay_text\">'+result+'</div></div>').prependTo(\"body\").overlay\r\n\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\tload: true, closeOnClick: (_closeOnClick ? true : false), closeOnEsc: (_closeOnEsc ? true : false), top: 20,\r\n\t\t\t\t\t\t\tmask:{color: \"#ccc\", loadSpeed: 200, opacity: 0.8},\r\n\t\t\t\t\t\t\tonClose: function()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tTSUEAdmin.closeDialog();\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tonLoad: function()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar \$overlayHeight = \$(\".overlay_text\").outerHeight(), \$overlayWidth = \$(\".apple_overlay\").outerWidth(), \$windowHeight = \$(window).height(), \$windowWidth = \$(window).width();\r\n\t\t\t\t\t\t\t\tif(\$overlayHeight+100 > \$windowHeight)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$(\".overlay_text\").css({height: \$windowHeight-100});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(\$overlayWidth+35 > \$windowWidth)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$(\".apple_overlay\").css({width: \$windowWidth-35});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tTSUEAdmin.resizeOverlay();\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tapi:true\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tresizeOverlay: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t//var top = (\$(window).height() / 2) - (\$(\".apple_overlay\").outerHeight() / 2);\r\n\t\t\t\t\t\tvar left = (\$(window).width() / 2) - (\$(\".apple_overlay\").outerWidth() / 2);\r\n\t\t\t\t\t\t//\$(\".apple_overlay\").css(\"top\", top);\r\n\t\t\t\t\t\t\$(\".apple_overlay\").css(\"left\", left);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tcloseDialog: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t//Remove Tinymce\r\n\t\t\t\t\t\t\$inline_editor = \$(\"body\").find('textarea[id=\"tinyMCEAjax\"]');\r\n\t\t\t\t\t\tif(\$inline_editor.length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttinyMCE.execCommand(\"mceFocus\", false, \"tinyMCEAjax\");\r\n\t\t\t\t\t\t\ttinyMCE.execCommand(\"mceRemoveControl\", false, \"tinyMCEAjax\");\r\n\t\t\t\t\t\t\t\$inline_editor.html(\"\").remove();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//Remove Overlay Div\r\n\t\t\t\t\t\t\$(document).find(\".apple_overlay\").each(function()\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(this).empty().remove();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t//Close Overlay\r\n\t\t\t\t\t\tOverlay.close();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\t\$(document).ready(function(){TSUEAdmin.init();});\r\n\t\t\t\t\$(window).resize(function(){TSUEAdmin.resizeOverlay();});\r\n\t\t\t</script>")) . "\r\n\r\n\t\t</body>\r\n\t</html>");
}
function _sendheaders($Content, $ContentType = "text/html", $UseCharset = true)
{
global $TSUE;
ob_start();
$Content = gzipcontentifsupported($Content);
if( $UseCharset )
{
$UseCharset = "; charset=" . ((isset($TSUE["TSUE_Language"]["charset"]) ? $TSUE["TSUE_Language"]["charset"] : "UTF-8"));
}
else
{
$UseCharset = "";
}
header("X-Powered-By: TSUE " . V);
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Content-Length: " . strlen($Content));
header("Content-Type: " . $ContentType . $UseCharset);
exit( $Content );
}
function gzipcontentifsupported($Content)
{
if( @ini_get("zlib.output_compression") )
{
return $Content;
}
if( !function_exists("gzencode") || empty($_SERVER["HTTP_ACCEPT_ENCODING"]) )
{
return $Content;
}
if( !is_string($Content) )
{
return $Content;
}
if( strpos($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip") !== false )
{
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
$Content = gzencode($Content, 9, FORCE_GZIP);
}
return $Content;
}
function aaaaac()
{
$port = (isset($_SERVER["SERVER_PORT"]) && $_SERVER["SERVER_PORT"] ? intval($_SERVER["SERVER_PORT"]) : 0);
$port = (in_array($port, array( 80, 443 )) ? "" : ":" . $port);
$scheme = (":443" == $port || isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] && $_SERVER["HTTPS"] != "off" ? "https://" : "http://");
$host = fetch_server_value("HTTP_HOST");
$name = fetch_server_value("SERVER_NAME");
$host = (substr_count($name, ".") < substr_count($host, ".") ? $host : $name);
if( !($scriptpath = fetch_server_value("PATH_INFO")) && !($scriptpath = fetch_server_value("REDIRECT_URL")) && !($scriptpath = fetch_server_value("URL")) && !($scriptpath = fetch_server_value("PHP_SELF")) )
{
$scriptpath = fetch_server_value("SCRIPT_NAME");
}
$url = $scheme . $host . "/" . str_replace("index.php", "", ltrim($scriptpath, "/\\"));
return $url;
}
function fetch_server_value($name)
{
if( isset($_SERVER[$name]) && $_SERVER[$name] )
{
return $_SERVER[$name];
}
if( isset($_ENV[$name]) && $_ENV[$name] )
{
return $_ENV[$name];
}
return false;
}
function addbreadcrumb($breadcrumbs)
{
global $TSUE;
foreach( $breadcrumbs as $_title => $_link )
{
$TSUE["breadcrumb"][] = "\r\n\t\t<span class=\"crust\" itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">\r\n\t\t\t<a href=\"" . $_link . "\" class=\"crumb\" rel=\"up\" itemprop=\"url\"><span itemprop=\"title\">" . $_title . "</span></a>\r\n\t\t\t<span class=\"arrow\"><span></span></span>\r\n\t\t</span>";
}
}
function createbreadcrumb()
{
global $TSUE;
$breadcrumbs = implode("\n", $TSUE["breadcrumb"]);
if( !$breadcrumbs )
{
return "";
}
$breadcrumb = "\r\n\t<div class=\"breadBoxTop\">\r\n\t\t<nav>\r\n\t\t\t<fieldset class=\"breadcrumb\">\r\n\t\t\t\t<span class=\"crumbs\">\r\n\t\t\t\t\t" . $breadcrumbs . "\r\n\t\t\t\t</span>\r\n\t\t\t</fieldset>\r\n\t\t</nav>\r\n\t</div>";
return $breadcrumb;
}
function errormessage($msg)
{
return "<div class=\"error\">" . $msg . "</div>";
}
function successmessage($msg)
{
return "<div class=\"success\">" . $msg . "</div>";
}
function has_permission($What, $Permissions = "")
{
return (isset($Permissions[$What]) ? $Permissions[$What] : false);
}
function aaaaad($checkFor)
{
global $TSUE;
$tsue_staffcp_permissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_staffcp_permissions WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Member"]["memberid"]));
if( !$tsue_staffcp_permissions )
{
$error = true;
}
else
{
if( !($tsue_staffcp_permissions = unserialize($tsue_staffcp_permissions["permissions"])) )
{
$error = true;
}
else
{
if( !isset($tsue_staffcp_permissions[$checkFor]) || isset($tsue_staffcp_permissions[$checkFor]) && !$tsue_staffcp_permissions[$checkFor] )
{
$error = true;
}
}
}
if( isset($error) && $error )
{
printoutput(errormessage(get_phrase("permission_denied")));
}
}
function checkdemomode()
{
if( DEMO_MODE )
{
printoutput(errormessage("This function is disabled within demo mode."));
}
}
function undomagicquotes(&$array, $depth = 0)
{
if( 10 < $depth || !is_array($array) )
{
return NULL;
}
foreach( $array as $key => $value )
{
if( is_array($value) )
{
undomagicquotes($array[$key], $depth + 1);
}
else
{
$array[$key] = stripslashes($value);
}
if( is_string($key) )
{
$new_key = stripslashes($key);
if( $new_key != $key )
{
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
}
function profileupdate($memberid, $buildQuery)
{
global $TSUE;
return $TSUE["TSUE_Database"]->update("tsue_member_profile", $buildQuery, "memberid=" . $TSUE["TSUE_Database"]->escape($memberid), false);
}
function updatememberpoints($addPoint, $memberid, $Increase = true)
{
if( $addPoint )
{
if( $Increase )
{
$points = array( "escape" => 0, "value" => "points + " . $addPoint );
}
else
{
$points = array( "escape" => 0, "value" => "IF(points > " . $addPoint . ", points-" . $addPoint . ", 0)" );
}
return profileupdate($memberid, array( "points" => $points ));
}
}
function ispost()
{
return strtoupper($_SERVER["REQUEST_METHOD"]) == "POST";
}
function getvar($valueName, $defaultValue = "", $cleanValue = true)
{
$searchValue = (isset($_POST[$valueName]) && !empty($_POST[$valueName]) ? $_POST[$valueName] : (isset($_GET[$valueName]) && !empty($_GET[$valueName]) ? $_GET[$valueName] : $defaultValue));
return ($cleanValue ? html_clean($searchValue) : $searchValue);
}
function file_extension($filename)
{
return substr(strrchr($filename, "."), 1);
}
function getsetting($setting = "", $value = "", $defaultValue = "")
{
global $TSUE;
return (isset($TSUE["TSUE_Settings"]->settings[$setting][$value]) ? $TSUE["TSUE_Settings"]->settings[$setting][$value] : $defaultValue);
}
function get_phrase()
{
global $TSUE;
$args = func_get_args();
$args[0] = preg_replace("#\\{([0-9]+)\\}#sU", "%\\1\$s", $TSUE["TSUE_Language"]["phrase"][$args[0]]);
$numargs = sizeof($args);
if( $numargs == 1 && is_array($args[0]) )
{
return construct_phrase_from_array($args[0]);
}
if( $numargs == 2 && is_string($args[0]) && is_array($args[1]) )
{
array_unshift($args[1], $args[0]);
return construct_phrase_from_array($args[1]);
}
return construct_phrase_from_array($args);
}
function construct_phrase_from_array($phrase_array)
{
$numargs = sizeof($phrase_array);
if( $numargs < 2 )
{
return $phrase_array[0];
}
$phrase = @call_user_func_array("sprintf", $phrase_array);
if( $phrase !== false )
{
return $phrase;
}
for( $i = $numargs; $i < 10; $i++ )
{
$phrase_array[(string) $i] = "[ARG:" . $i . " UNDEFINED]";
}
if( $phrase = @call_user_func_array("sprintf", $phrase_array) )
{
return $phrase;
}
return $phrase_array[0];
}
function convert_time($timestamp, $format = "")
{
global $TSUE;
if( !$format )
{
$format = $TSUE["TSUE_Language"]["date_format"] . " " . $TSUE["TSUE_Language"]["time_format"];
}
return gmdate($format, $timestamp + 3600 * ($TSUE["TSUE_Member"]["timezone"] + $TSUE["TSUE_Member"]["dst"]));
}
function convert_relative_time($timestamp = 0)
{
global $TSUE;
$interval = TIMENOW - $timestamp;
if( $interval < 0 )
{
return convert_time($timestamp);
}
$aaaaod = array( "today" => convert_time(TIMENOW, "n-j-Y"), "yesterday" => convert_time(TIMENOW - 86400, "n-j-Y"), "week" => convert_time(TIMENOW - 86400 * 6, "n-j-Y") );
$MTimeStamp = convert_time($timestamp, "n-j-Y");
if( $MTimeStamp == $aaaaod["today"] )
{
return get_phrase("relative_today_at_x", convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"]));
}
if( $MTimeStamp == $aaaaod["yesterday"] )
{
return get_phrase("relative_yesterday_at_x", convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"]));
}
if( $aaaaod["week"] <= $MTimeStamp )
{
$dayName = get_phrase("day_" . convert_time($timestamp, "N"));
$Time = convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"]);
return get_phrase("relative_day_x_at_time_y", $dayName, $Time);
}
return convert_time($timestamp);
}
function secondstohours($seconds)
{
$lang = tsue_explode(",", get_phrase("all_in_one_pretty_time"));
$hours = floor($seconds / 3600);
$minutes = floor(($seconds / 60) % 60);
$hoursPhrase = (1 < $hours ? $lang["9"] : $lang["8"]);
$minutesPhrase = (1 < $minutes ? $lang["11"] : $lang["10"]);
return (string) $hours . " " . $hoursPhrase . " " . $minutes . " " . $minutesPhrase;
}
function aaaadj($stamp = 0)
{
$ysecs = 365 * 24 * 60 * 60;
$mosecs = 31 * 24 * 60 * 60;
$wsecs = 7 * 24 * 60 * 60;
$dsecs = 24 * 60 * 60;
$hsecs = 60 * 60;
$msecs = 60;
$years = floor($stamp / $ysecs);
$stamp %= $ysecs;
$months = floor($stamp / $mosecs);
$stamp %= $mosecs;
$weeks = floor($stamp / $wsecs);
$stamp %= $wsecs;
$days = floor($stamp / $dsecs);
$stamp %= $dsecs;
$hours = floor($stamp / $hsecs);
$stamp %= $hsecs;
$minutes = floor($stamp / $msecs);
$stamp %= $msecs;
$seconds = $stamp;
return array( "years" => $years, "months" => $months, "weeks" => $weeks, "days" => $days, "hours" => $hours, "minutes" => $minutes );
}
function getmembername($membername = "", $groupstyle = "")
{
return str_replace("{membername}", $membername, $groupstyle);
}
function explodesearchkeywords($Match = "", $Against = "", $fullTextSearch = true)
{
global $TSUE;
if( $fullTextSearch )
{
return "MATCH (" . $Match . ") AGAINST ('" . $TSUE["TSUE_Database"]->escape_no_quotes($Against) . "' IN BOOLEAN MODE)";
}
return (string) $Match . " LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Against) . "%'";
}
function deletetorrent($tid = 0)
{
global $TSUE;
checkdemomode();
if( !$tid )
{
return false;
}
$attachments = $TSUE["TSUE_Database"]->query("SELECT content_type, filename FROM tsue_attachments WHERE content_type IN ('torrent_images', 'torrent_files', 'torrent_screenshots') AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
if( $TSUE["TSUE_Database"]->num_rows($attachments) )
{
while( $attachment = $TSUE["TSUE_Database"]->fetch_assoc($attachments) )
{
if( $attachment["content_type"] == "torrent_files" || $attachment["content_type"] == "nfo" )
{
$file = DATAPATH . "torrents/" . $attachment["content_type"] . "/" . $attachment["filename"];
if( is_file($file) )
{
@unlink($file);
}
}
else
{
deleteimages($attachment["filename"]);
}
}
$TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type IN ('torrent_images', 'torrent_files','torrent_screenshots') AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
}
aaaaex($tid);
$TSUE["TSUE_Database"]->delete("tsue_bookmarks", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
$TSUE["TSUE_Database"]->delete("tsue_comments", "content_type = 'torrent_comments' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
$TSUE["TSUE_Database"]->delete("tsue_comments_replies", "content_type = 'torrent_comments' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
$TSUE["TSUE_Database"]->delete("tsue_liked_content", "content_type = 'torrent' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
$TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
$TSUE["TSUE_Database"]->delete("xbt_files_users", "fid = " . $TSUE["TSUE_Database"]->escape($tid));
if( getsetting("xbt", "active") )
{
$TSUE["TSUE_Database"]->update("tsue_torrents", array( "flags" => "1" ), "tid = " . $TSUE["TSUE_Database"]->escape($tid));
}
else
{
$TSUE["TSUE_Database"]->delete("tsue_torrents", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
}
handleprune(false);
return true;
}
function aaaaex($tid)
{
global $TSUE;
checkdemomode();
if( is_array($tid) )
{
foreach( $tid as $t )
{
aaaaex($t);
}
return NULL;
}
else
{
$IMDB = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_imdb WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
if( $IMDB )
{
$IMDBContent = unserialize($IMDB["content"]);
if( $IMDBContent["title_id"] && is_file(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg") )
{
@unlink(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg");
}
}
$TSUE["TSUE_Database"]->delete("tsue_imdb", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
}
}
function deleteimages($filename)
{
checkdemomode();
foreach( array( "l", "m", "s" ) as $torrentImageFolder )
{
$_filePath = DATAPATH . "torrents/torrent_images/" . $torrentImageFolder . "/" . $filename;
if( is_file($_filePath) )
{
@unlink($_filePath);
}
}
}
function deletemember($memberid = 0)
{
global $TSUE;
checkdemomode();
if( !$memberid )
{
return NULL;
}
$TSUE["TSUE_Database"]->delete("tsue_comments", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_comments_replies", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_invites", "sender_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR receiver_memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_liked_content", "like_memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_members", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_alerts", "alerted_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_bans", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_confirmation", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_follow", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR follow_memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_mutes", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_privacy", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_profile", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_profile_visitors", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR visitorid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_promotions", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_upgrades_promotions", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_upgrades_purchases", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_member_warns", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_messages_master", "owner_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR receiver_memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_messages_replies", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_requests", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_shoutbox", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("tsue_uploader_applications", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
$TSUE["TSUE_Database"]->delete("xbt_files_users", "uid=" . $TSUE["TSUE_Database"]->escape($memberid));
}
function is_member_of($groupname)
{
switch( strtolower($groupname) )
{
case "banned":
$GroupID = 8;
break;
case "awaitingmoderation":
$GroupID = 4;
break;
case "awaitingemailconfirmation":
$GroupID = 3;
break;
case "registeredusers":
$GroupID = 2;
break;
case "unregistered":
$GroupID = 1;
}
return (isset($GroupID) ? $GroupID : 0);
}
function optionbox($rel, $optionTitle, $span, $checkMainPerm = "")
{
global $TSUE;
$oClass = "";
$checkPerm = ($checkMainPerm ? $checkMainPerm : $rel);
if( !isset($TSUE["TSUE_Member"]["aPermissions"][$checkPerm]) || !$TSUE["TSUE_Member"]["aPermissions"][$checkPerm] )
{
return "";
}
$do = $rel;
if( strstr($rel, "/") !== false )
{
list($do, $rel) = tsue_explode("/", $rel);
$do = $do . "&" . $rel . "=1";
}
return "\r\n\t<div class=\"option_box" . $oClass . "\" rel=\"" . $do . "\">\r\n\t\t" . getimage("options/" . str_replace(" ", "", strtolower($rel)) . ".png", $optionTitle) . " " . $optionTitle . "\r\n\t\t<span>" . $span . "</span>\r\n\t</div>";
}
function foldersize($path)
{
$total_size = 0;
$files = scandir($path);
$cleanPath = rtrim($path, "/") . "/";
foreach( $files as $t )
{
if( $t != "." && $t != ".." )
{
$currentFile = $cleanPath . $t;
if( is_dir($currentFile) )
{
$size = foldersize($currentFile);
$total_size += $size;
}
else
{
$size = filesize($currentFile);
$total_size += $size;
}
}
}
return $total_size;
}
function friendly_size($bytes = 0, $useName = true, $precision = 2)
{
global $TSUE;
if( !$bytes )
{
return 0;
}
$kilobyte = 1024;
$megabyte = $kilobyte * 1024;
$gigabyte = $megabyte * 1024;
$terabyte = $gigabyte * 1024;
$filesizename = @tsue_explode(",", "Bytes,KB,MB,GB,TB,PB,EB,ZB,YB");
if( 0 < $bytes && $bytes < $kilobyte )
{
return $bytes . (($useName ? " " . $filesizename["0"] : ""));
}
if( $kilobyte <= $bytes && $bytes < $megabyte )
{
return round($bytes / $kilobyte, $precision) . (($useName ? " " . $filesizename["1"] : ""));
}
if( $megabyte <= $bytes && $bytes < $gigabyte )
{
return round($bytes / $megabyte, $precision) . (($useName ? " " . $filesizename["2"] : ""));
}
if( $gigabyte <= $bytes && $bytes < $terabyte )
{
return round($bytes / $gigabyte, $precision) . (($useName ? " " . $filesizename["3"] : ""));
}
if( $terabyte <= $bytes )
{
return round($bytes / $terabyte, $precision) . (($useName ? " " . $filesizename["4"] : ""));
}
return html_clean($bytes);
}
function logadminaction($log, $type = 2)
{
global $TSUE;
if( DEMO_MODE )
{
return NULL;
}
$buildQuery = array( "memberid" => (isset($TSUE["TSUE_Member"]["memberid"]) ? $TSUE["TSUE_Member"]["memberid"] : 0), "membername" => (isset($TSUE["TSUE_Member"]["membername"]) ? $TSUE["TSUE_Member"]["membername"] : ""), "date" => TIMENOW, "type" => $type, "log" => $log );
$TSUE["TSUE_Database"]->insert("tsue_logs", $buildQuery);
}
function aaaaal()
{
if( isset($_POST["option_name"]) && !empty($_POST["option_name"]) )
{
logadminaction(get_phrase("log_x_has_been_saved", trim($_POST["option_name"])));
}
}
function html_clean($text = "")
{
return (trim($text) != "" ? htmlspecialchars($text, ENT_QUOTES) : "");
}
function html_declean($text)
{
return str_replace(array( "<", ">", """, "&" ), array( "<", ">", "\"", "&" ), $text);
}
function safe_names($string = "", $delimer = "-")
{
if( ctype_digit($string) || !$string )
{
return $string;
}
$string = preg_replace("#[^a-zA-Z0-9\\.\\" . $delimer . "]#", $delimer, $string);
$string = preg_replace("#\\" . $delimer . "\\" . $delimer . "+#", $delimer, $string);
return trim($string);
}
function is_valid_string($string)
{
return (!preg_match("#^[a-zA-Z0-9]+\$#", $string) ? false : true);
}
function removewhitespaces($text)
{
return trim(preg_replace("/\\s+/", " ", $text));
}
function aaaaio($phrase)
{
return (!preg_match("#^[a-zA-Z0-9_]+\$#", $phrase) ? false : true);
}
function is_valid_email($email)
{
return !isemailbanned($email) && filter_var($email, FILTER_VALIDATE_EMAIL);
}
function isemailbanned($email)
{
global $TSUE;
if( !empty($TSUE["TSUE_Settings"]->settings["banned_emails_cache"]) )
{
foreach( $TSUE["TSUE_Settings"]->settings["banned_emails_cache"] as $bannedEmail )
{
$bannedEmail = str_replace("\\*", "(.*)", preg_quote($bannedEmail, "/"));
if( preg_match("/^" . $bannedEmail . "\$/", $email) )
{
return true;
}
}
}
return false;
}
function fetch_timezones($offset = "all")
{
$timezones = array( "-12" => get_phrase("timezone_gmt_minus_1200"), "-11" => get_phrase("timezone_gmt_minus_1100"), "-10" => get_phrase("timezone_gmt_minus_1000"), "-9" => get_phrase("timezone_gmt_minus_0900"), "-8" => get_phrase("timezone_gmt_minus_0800"), "-7" => get_phrase("timezone_gmt_minus_0700"), "-6" => get_phrase("timezone_gmt_minus_0600"), "-5" => get_phrase("timezone_gmt_minus_0500"), "-4.5" => get_phrase("timezone_gmt_minus_0430"), "-4" => get_phrase("timezone_gmt_minus_0400"), "-3.5" => get_phrase("timezone_gmt_minus_0330"), "-3" => get_phrase("timezone_gmt_minus_0300"), "-2" => get_phrase("timezone_gmt_minus_0200"), "-1" => get_phrase("timezone_gmt_minus_0100"), "0" => get_phrase("timezone_gmt_plus_0000"), "1" => get_phrase("timezone_gmt_plus_0100"), "2" => get_phrase("timezone_gmt_plus_0200"), "3" => get_phrase("timezone_gmt_plus_0300"), "3.5" => get_phrase("timezone_gmt_plus_0330"), "4" => get_phrase("timezone_gmt_plus_0400"), "4.5" => get_phrase("timezone_gmt_plus_0430"), "5" => get_phrase("timezone_gmt_plus_0500"), "5.5" => get_phrase("timezone_gmt_plus_0530"), "5.75" => get_phrase("timezone_gmt_plus_0545"), "6" => get_phrase("timezone_gmt_plus_0600"), "6.5" => get_phrase("timezone_gmt_plus_0630"), "7" => get_phrase("timezone_gmt_plus_0700"), "8" => get_phrase("timezone_gmt_plus_0800"), "9" => get_phrase("timezone_gmt_plus_0900"), "9.5" => get_phrase("timezone_gmt_plus_0930"), "10" => get_phrase("timezone_gmt_plus_1000"), "11" => get_phrase("timezone_gmt_plus_1100"), "12" => get_phrase("timezone_gmt_plus_1200") );
if( $offset === "all" )
{
return $timezones;
}
return $timezones[(string) $offset];
}
function createtabs($tabs = array( ), $EXTRA = "")
{
$DIV = "";
$LI = "";
$tabCount = 1;
foreach( $tabs as $phrase => $content )
{
$tabName = "tabs-" . $tabCount;
$LI .= "<li><a href=\"#" . $tabName . "\">" . $phrase . "</a></li>";
$DIV .= "<div id=\"" . $tabName . "\"><p>" . $content . "</p></div>";
$tabCount++;
}
return "\r\n\t<div id=\"tabs\">\r\n\t\t<ul>\r\n\t\t\t" . $LI . "\r\n\t\t</ul>\r\n\t\t" . $DIV . "\r\n\t</div>\r\n\t<script type=\"text/javascript\">\r\n\t\t\$( \"#tabs\" ).tabs({ history: true });\r\n\t</script>\r\n\t";
}
function aaaaoe($id, $items)
{
return "\r\n <script type=\"text/javascript\">\r\n \$(\"#" . $id . "\").sortable({items: \"" . $items . "\", cursor: \"move\", revert: true, forcePlaceholderSize: true, placeholder: \"ui-state-highlight\"});\r\n </script>";
}
function generatepasskey($length = 30)
{
$passkey = "";
for( $i = 0; $i < $length; $i++ )
{
$passkey .= chr(rand(33, 126));
}
return sha1($passkey);
}
function getserver($key = NULL, $default = NULL)
{
if( NULL === $key )
{
return $_SERVER;
}
return (isset($_SERVER[$key]) ? $_SERVER[$key] : $default);
}
function getclientip($checkProxy = true)
{
if( $checkProxy && getserver("HTTP_CLIENT_IP") != NULL )
{
$ip = getserver("HTTP_CLIENT_IP");
}
else
{
if( $checkProxy && getserver("HTTP_X_FORWARDED_FOR") != NULL )
{
$ip = getserver("HTTP_X_FORWARDED_FOR");
}
else
{
$ip = getserver("REMOTE_ADDR");
}
}
return strip_tags($ip);
}
function banip($ip)
{
$ip = preg_replace("/\\.+\$/", "", $ip);
if( !preg_match("/^\\d+(\\.\\d+){0,2}(\\.\\d+|\\.\\*)?\$/", $ip) )
{
return false;
}
if( substr($ip, -2) == ".*" )
{
$ip = substr($ip, 0, -2);
}
$aaaaof = array( );
$aaaaog = array( );
$ipParts = tsue_explode(".", $ip);
foreach( $ipParts as $part )
{
if( $part < 0 || 255 < $part )
{
return false;
}
$aaaaof[] = $part;
$aaaaog[] = $part;
}
while( count($aaaaof) < 4 )
{
$aaaaof[] = 0;
$aaaaog[] = 255;
}
$aaaaoh = $ipParts[0];
$startLong = sprintf("%u", ip2long(implode(".", $aaaaof)));
$aaaaoi = sprintf("%u", ip2long(implode(".", $aaaaog)));
if( count($ipParts) < 4 )
{
$aaaaoj = implode(".", $ipParts) . ".*";
}
else
{
$aaaaoj = $ip;
}
return array( $aaaaoj, $aaaaoh, $startLong, $aaaaoi );
}
function getbannedips($submitButtons = true)
{
global $TSUE;
$DIV = "<div id=\"bannedIPaddresses\">";
$bannedIPs = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ip_match WHERE match_type = 'banned'");
if( $TSUE["TSUE_Database"]->num_rows($bannedIPs) )
{
while( $bannedIP = $TSUE["TSUE_Database"]->fetch_assoc($bannedIPs) )
{
$DIV .= "<label id=\"" . md5($bannedIP["ip"]) . "\"><input type=\"checkbox\" name=\"removeip[]\" value=\"" . $bannedIP["ip"] . "\" /> " . $bannedIP["ip"] . "</label>";
}
if( $submitButtons )
{
$DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("dashboard_options_ipban_delete") . "\" /> </div>";
}
}
else
{
$DIV .= get_phrase("dashboard_options_ipban_no_ip");
}
$DIV .= "</div>";
return $DIV;
}
function banemail($email)
{
if( $email == "*" || $email === "" )
{
return get_phrase("dashboard_options_emailban_invalid_email");
}
if( strpos($email, "*") === false )
{
if( strpos($email, "@") === false )
{
$email = "*" . $email;
}
if( strpos($email, ".") === false )
{
$email .= "*";
}
}
if( $email[0] == "@" )
{
$email = "*" . $email;
}
$lastChar = substr($email, -1);
if( $lastChar == "." || $lastChar == "@" )
{
$email .= "*";
}
$atPos = strpos($email, "@");
if( $atPos !== false && strpos($email, ".", $atPos) === false && strpos($email, "*", $atPos) === false )
{
$email .= "*";
}
if( $email == "*@*" || $email == "*.*" )
{
return get_phrase("dashboard_options_emailban_invalid_email2");
}
$email = preg_replace("/\\*{2,}/", "*", $email);
return array( $email );
}
function aaaaar($submitButtons = true)
{
global $TSUE;
$DIV = "<div id=\"bannedEmailaddresses\">";
$aaaadq = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_email ORDER BY 'banned_email'");
if( $TSUE["TSUE_Database"]->num_rows($aaaadq) )
{
while( $bannedEmail = $TSUE["TSUE_Database"]->fetch_assoc($aaaadq) )
{
$DIV .= "<label id=\"" . md5($bannedEmail["banned_email"]) . "\"><input type=\"checkbox\" name=\"removeemail[]\" value=\"" . $bannedEmail["banned_email"] . "\" /> " . $bannedEmail["banned_email"] . "</label>";
}
if( $submitButtons )
{
$DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("dashboard_options_emailban_delete") . "\" /> </div>";
}
}
else
{
$DIV .= get_phrase("dashboard_options_emailban_no_email");
}
$DIV .= "</div>";
return $DIV;
}
function getbannedcountries($submitButtons = true)
{
global $TSUE;
$DIV = "<div id=\"bannedCountries\">";
$aaaadp = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_country ORDER BY 'country'");
if( $TSUE["TSUE_Database"]->num_rows($aaaadp) )
{
while( $aaaaok = $TSUE["TSUE_Database"]->fetch_assoc($aaaadp) )
{
$DIV .= "<label id=\"" . md5($aaaaok["country"]) . "\"><input type=\"checkbox\" name=\"removecountry[]\" value=\"" . $aaaaok["country"] . "\" /> " . $aaaaok["country"] . "</label>";
}
if( $submitButtons )
{
$DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("delete_selected_countries") . "\" /> </div>";
}
}
else
{
$DIV .= get_phrase("no_countries_banned");
}
$DIV .= "</div>";
return $DIV;
}
function aaaaau()
{
global $TSUE;
$formContents = "<div id=\"buildCensoringHTML\">";
$inputbox = inputbox("censoring_censor_character", getsetting("censor_cache", "censoring_censor_character"), "text texttiny");
$formContents .= aaaaan(get_phrase("dashboard_options_censoring_censor_character"), $inputbox, get_phrase("dashboard_options_censoring_censor_character_alt"));
$formContents .= aaaaan(get_phrase("dashboard_options_censoring_words_to_censor"), aaaaol(), get_phrase("dashboard_options_censoring_words_to_censor_alt"));
$formContents .= "</div>";
return $formContents;
}
function aaaaom($censorWords = array( ))
{
global $TSUE;
static $censorCount = 0;
$inputBox = "\r\n\t<div class=\"comboBox\">\r\n\t\t<label>" . get_phrase("dashboard_options_censoring_word_or_phrase") . " <input name=\"options[censorWords][" . $censorCount . "][word]\" value=\"" . ((isset($censorWords["word"]) ? $censorWords["word"] : "")) . "\" type=\"text\" class=\"text texttiny\" /></label>\r\n\t</div>\r\n\t<div class=\"comboBox\">\r\n\t\t<label>" . get_phrase("dashboard_options_censoring_replacement") . " <input name=\"options[censorWords][" . $censorCount . "][replace]\" value=\"" . ((isset($censorWords["replace"]) ? $censorWords["replace"] : "")) . "\" type=\"text\" class=\"text texttiny\" /></label>\r\n\t</div>\r\n\t<div class=\"comboBox\">\r\n\t\t<label>" . get_phrase("dashboard_options_censoring_match_exact_word") . " <input name=\"options[censorWords][" . $censorCount . "][exact]\" value=\"1\"" . ((isset($censorWords["exact"]) && $censorWords["exact"] == 1 ? " checked=\"checked\"" : "")) . " type=\"checkbox\" /></label>\r\n\t</div>\r\n\t<div class=\"clear\"></div>";
$censorCount++;
return $inputBox;
}
function aaaaol()
{
global $TSUE;
$censorCache = array( );
$DIV = "<div id=\"censoredWords\">";
if( $TSUE["TSUE_Settings"]->settings["censor_cache"] )
{
if( !empty($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["exact"]) )
{
foreach( $TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["exact"] as $word => $replace )
{
$DIV .= aaaaom(array( "word" => $word, "replace" => (is_string($replace) ? $replace : ""), "exact" => 1 ));
}
}
if( !empty($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["any"]) )
{
foreach( $TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["any"] as $word => $replace )
{
$DIV .= aaaaom(array( "word" => $word, "replace" => (is_string($replace) ? $replace : "") ));
}
}
}
$DIV .= aaaaom();
$DIV .= "</div>";
return $DIV;
}
function aaaaat(array &$words)
{
$output = array( "exact" => array( ), "any" => array( ) );
foreach( $words as $word )
{
if( !isset($word["word"]) || strval($word["word"]) === "" )
{
continue;
}
$writePosition = (!empty($word["exact"]) ? "exact" : "any");
if( isset($word["replace"]) && strval($word["replace"]) !== "" )
{
$output[$writePosition][strval($word["word"])] = strval($word["replace"]);
}
else
{
$output[$writePosition][strval($word["word"])] = strlen($word["word"]);
}
}
if( !$output["exact"] )
{
unset($output["exact"]);
}
if( !$output["any"] )
{
unset($output["any"]);
}
$words = $output;
return true;
}
function aaaabn($formContents = "", $hiddenInputBoxes = array( ), $action = "", $script = "", $id = "simpleForm")
{
$aaaaam = "";
if( !empty($hiddenInputBoxes) )
{
foreach( $hiddenInputBoxes as $name => $value )
{
$aaaaam .= "<input type=\"hidden\" name=\"" . $name . "\" value=\"" . $value . "\" />";
}
}
$HTML = "\r\n\t<form method=\"post\" action=\"" . $action . "\" id=\"" . $id . "\" enctype=\"multipart/form-data\">\r\n\t\t" . $aaaaam . "\r\n\t\t" . $formContents . "\r\n\t</form>" . $script;
return $HTML;
}
function aaaabg($formContents = "", $hiddenInputBoxes = array( ), $extra = "", $buttonPhrase = "button_save", $Scirpt = "")
{
$aaaaam = "";
if( !empty($hiddenInputBoxes) )
{
foreach( $hiddenInputBoxes as $name => $value )
{
$aaaaam .= "<input type=\"hidden\" name=\"" . $name . "\" value=\"" . $value . "\" />";
}
}
$HTML = "\r\n\t<form method=\"post\" action=\"\" id=\"overlay_form\" enctype=\"multipart/form-data\">\r\n\t\t<input type=\"hidden\" name=\"save_options\" value=\"yes\" />\r\n\t\t" . $aaaaam . "\r\n\t\t" . $formContents . "\r\n\t\t<div>\r\n " . aaaabm(get_phrase($buttonPhrase), get_phrase("button_reset")) . "\r\n\t\t\t" . $extra . "\r\n\t\t</div>\r\n\t</form>" . $Scirpt;
return $HTML;
}
function aaaaan($optionTitle, $formOptions, $spanContent = "", $divID = "optionsInOverlay", $class = "", $spanRight = "", $rel = "", $nextToFormOptions = "", $Scirpt = "")
{
$aaaaon = preg_replace("#[^a-z]#", "", strtolower($optionTitle));
$HTML = "\r\n\t<div id=\"" . $divID . "\"" . (($class ? " class=\"" . $class . "\"" : "")) . (($rel ? " rel=\"" . $rel . "\"" : "")) . ">\r\n\t\t<div class=\"optionTitle\" id=\"" . $aaaaon . "\">" . (($spanRight ? "\r\n\t\t\t<div class=\"floatRight\">" . $spanRight . "</div>" : "")) . "\r\n\t\t\t" . $optionTitle . "\r\n\t\t\t<div class=\"clear\"></div>\r\n\t\t</div>\r\n\t\t" . $formOptions . $nextToFormOptions . "\r\n\t\t<div class=\"spanContent\">" . $spanContent . "</div>\r\n\t</div>" . $Scirpt;
return $HTML;
}
function aaaabm($submitValue, $resetValue = "")
{
return "\r\n <input type=\"submit\" class=\"submit\" value=\"" . $submitValue . "\" />\r\n " . (($resetValue ? "<input type=\"reset\" class=\"submit\" value=\"" . $resetValue . "\" />" : ""));
}
function aaaaap()
{
global $TSUE;
$Themes = $TSUE["TSUE_Database"]->query("SELECT themeid, themename FROM tsue_themes WHERE active = 1");
$aaaadr = array( );
while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) )
{
$aaaadr += array( $Theme["themeid"] => ucfirst($Theme["themename"]) );
}
return $aaaadr;
}
function aaaaaq()
{
global $TSUE;
$Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title FROM tsue_languages WHERE active = 1");
$languageCache = array( );
while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
{
$languageCache += array( $Language["languageid"] => ucfirst($Language["title"]) );
}
return $languageCache;
}
function getcountryflag($flag)
{
global $TSUE;
$aaaaoo = DATAPATH . "countryFlags/";
foreach( array( "png", "jpg", "gif", "jpeg" ) as $ext )
{
if( is_file($aaaaoo . $flag . "." . $ext) )
{
return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/countryFlags/" . $flag . "." . $ext . "\" alt=\"" . $flag . "\" title=\"" . $flag . "\" border=\"0\" />";
}
}
}
function zip($source, $destination)
{
if( !extension_loaded("zip") || !file_exists($source) )
{
return false;
}
$zip = new ZipArchive();
if( !$zip->open($destination, ZIPARCHIVE::CREATE) )
{
return false;
}
$source = str_replace("\\", "/", realpath($source));
if( is_dir($source) === true )
{
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
foreach( $files as $file )
{
$file = str_replace("\\", "/", $file);
if( in_array(substr($file, strrpos($file, "/") + 1), array( ".", ".." )) )
{
continue;
}
if( is_dir($file) === true )
{
$zip->addEmptyDir(str_replace($source . "/", "", $file . "/"));
}
else
{
if( is_file($file) === true )
{
$zip->addFromString(str_replace($source . "/", "", $file), file_get_contents($file));
}
}
}
}
else
{
if( is_file($source) === true )
{
$zip->addFromString(basename($source), file_get_contents($source));
}
}
return $zip->close();
}
function aaaabd($filename = "", $runALL = false)
{
global $TSUE;
$TSUE["TSUE_Database"]->update("tsue_cron", array( "nextrun" => TIMENOW ), ($runALL ? "" : "filename = " . $TSUE["TSUE_Database"]->escape($filename)));
}
function copy_directory($source, $destination)
{
if( is_dir($source) )
{
if( !is_dir($destination) )
{
mkdir($destination);
}
$directory = dir($source);
while( false !== ($readdirectory = $directory->read()) )
{
if( $readdirectory == "." || $readdirectory == ".." )
{
continue;
}
$PathDir = $source . "/" . $readdirectory;
if( is_dir($PathDir) )
{
copy_directory($PathDir, $destination . "/" . $readdirectory);
continue;
}
copy($PathDir, $destination . "/" . $readdirectory);
}
$directory->close();
}
else
{
copy($source, $destination);
}
return true;
}
function rrmdir($dir)
{
foreach( glob($dir . "/*") as $file )
{
if( is_dir($file) )
{
rrmdir($file);
}
else
{
unlink($file);
}
}
rmdir($dir);
}
function aaaahq($string = "")
{
return str_replace(array( ">", "<" ), array( ">", "<" ), $string);
}
function aaaaho($string = "")
{
return str_replace(array( ">", "<" ), array( ">", "<" ), $string);
}
function listmutes($muted)
{
$mutes = array( );
if( strstr($muted, "1") !== false )
{
$mutes[] = get_phrase("muted_in_comments");
}
if( strstr($muted, "2") !== false )
{
$mutes[] = get_phrase("muted_in_forums");
}
if( strstr($muted, "3") !== false )
{
$mutes[] = get_phrase("muted_in_shoutbox");
}
if( strstr($muted, "4") !== false )
{
$mutes[] = get_phrase("muted_in_pm");
}
return implode(" - ", $mutes);
}
function get_member_avatar($memberid = 0, $gender = "", $size = "s")
{
global $TSUE;
$ValidAvatarExtensions = array( "jpg", "gif", "png", "jpeg" );
foreach( $ValidAvatarExtensions as $AvatarExtension )
{
if( is_file(DATAPATH . "avatars/" . $size . "/" . $memberid . "." . $AvatarExtension) )
{
return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/avatars/" . $size . "/" . $memberid . "." . $AvatarExtension . "?" . TIMENOW;
}
}
$themeName = aaaaff();
if( $gender && file_exists(ROOTPATH . "styles/" . $themeName . "/avatars/avatar_" . $gender . "_" . $size . ".png") )
{
return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $themeName . "/avatars/avatar_" . $gender . "_" . $size . ".png?" . TIMENOW;
}
return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $themeName . "/avatars/avatar_" . $size . ".png?" . TIMENOW;
}
function get_languages()
{
global $TSUE;
$Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title FROM tsue_languages WHERE active = 1");
$Selectbox = "<select name=\"languageid\" class=\"selectbox\">";
while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
{
$Selectbox .= "<option value=\"" . $Language["languageid"] . "\">" . ucfirst($Language["title"]) . "</option>";
}
$Selectbox .= "</select>";
return $Selectbox;
}
function aaaabk($name, $checkedArray = array( ))
{
global $TSUE;
static $id = 1;
$List = "\r\n\t<ul id=\"sortable_" . $id . "\" class=\"ui-sorttable\">";
$count = 0;
if( !empty($checkedArray) && $checkedArray["0"] != "" )
{
$aaaamt = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $checkedArray));
$Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins WHERE pluginid IN (" . $aaaamt . ") ORDER BY FIELD(pluginid," . $aaaamt . ")");
$List .= createpluginlist($Plugins, $name, $checkedArray);
$aaaaop = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins WHERE pluginid NOT IN (" . $aaaamt . ")");
$List .= createpluginlist($aaaaop, $name, $checkedArray);
}
else
{
$Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins");
$List .= createpluginlist($Plugins, $name, $checkedArray);
}
$List .= "</ul>\r\n\t<div style=\"clear: both;\"></div>\r\n " . aaaaoe("sortable_" . $id, "li");
$id++;
return $List;
}
function createpluginlist($Plugins, $name, $checkedArray)
{
global $TSUE;
$List = "";
while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
{
$List .= "\r\n <li class=\"ui-state-default\">\r\n <label><input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Plugin["pluginid"] . "\"" . ((in_array($Plugin["pluginid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $Plugin["name"] . "</label>\r\n </li>";
}
return $List;
}
function aaaabi($name, $checked = 0, $pageID = 0)
{
global $TSUE;
$List = "\r\n <select name=\"" . $name . "\" class=\"select\">\r\n <option value=\"0\"></option>";
$Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, name FROM tsue_pages WHERE pageid != " . $pageID . " AND parentid=0 ORDER BY sort ASC");
while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
{
$List .= "\r\n <option value=\"" . $Page["pageid"] . "\"" . (($checked == $Page["pageid"] ? " selected=\"selected\"" : "")) . ">" . $Page["name"] . "</option>";
}
$List .= "\r\n </select>";
return $List;
}
function torrentcategoriesinbutboxes($name, $type = "radio", $selectedCategories = array( ))
{
global $TSUE;
$aaaact = array( );
$aaaafx = array( );
$Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
if( $Category["pid"] )
{
$aaaact[$Category["pid"]][] = $Category;
}
else
{
$aaaafx[] = $Category;
}
}
$torrentCategories = "\r\n\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t<tr>";
$Count = 0;
$maxPerRow = 4;
foreach( $aaaafx as $Category )
{
if( $Count % $maxPerRow == 0 )
{
$torrentCategories .= "\r\n\t\t\t</tr><tr>";
}
$Count++;
$subCategoryList = "";
if( isset($aaaact[$Category["cid"]]) )
{
foreach( $aaaact[$Category["cid"]] as $subCategory )
{
$checked = "";
if( isset($_POST[$name][$subCategory["cid"]]) || in_array($subCategory["cid"], $selectedCategories) )
{
$checked = " checked=\"checked\"";
}
$subCategoryList .= "\r\n\t\t\t\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t\t\t\t<label><input type=\"" . $type . "\" name=\"" . $name . "\" value=\"" . $subCategory["cid"] . "\"" . $checked . " /> " . $subCategory["cname"] . "</label>\r\n\t\t\t\t</div>";
}
}
$checked = "";
if( isset($_POST[$name][$Category["cid"]]) || in_array($Category["cid"], $selectedCategories) )
{
$checked = " checked=\"checked\"";
}
$torrentCategories .= "\r\n\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t<label><input type=\"" . $type . "\" name=\"" . $name . "\" value=\"" . $Category["cid"] . "\"" . $checked . " /> " . $Category["cname"] . "</label>\r\n\t\t\t\t" . $subCategoryList . "\r\n\t\t\t</td>";
}
$torrentCategories .= "\r\n\t\t</tr>\r\n\t</table>";
return $torrentCategories;
}
function aaaacq($name, $checked = 0, $cid = 0)
{
global $TSUE;
$List = "\r\n <select name=\"" . $name . "\" class=\"select\">\r\n <option value=\"0\"></option>";
$Categories = $TSUE["TSUE_Database"]->query("SELECT cid, cname FROM tsue_torrents_categories WHERE cid != " . $cid . " AND pid = 0 ORDER BY sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$List .= "\r\n <option value=\"" . $Category["cid"] . "\"" . (($checked == $Category["cid"] ? " selected=\"selected\"" : "")) . ">" . $Category["cname"] . "</option>";
}
$List .= "\r\n </select>";
return $List;
}
function aaaaax($name, $checked = 0)
{
global $TSUE;
$List = "\r\n <select name=\"" . $name . "\" class=\"select\">\r\n <option value=\"0\"></option>";
$Categories = $TSUE["TSUE_Database"]->query("SELECT cid, cname FROM tsue_torrents_categories ORDER BY pid ASC, sort ASC");
while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
{
$List .= "\r\n <option value=\"" . $Category["cid"] . "\"" . (($checked == $Category["cid"] ? " selected=\"selected\"" : "")) . ">" . $Category["cname"] . "</option>";
}
$List .= "\r\n </select>";
return $List;
}
function aaaagv($name, $checked = 0, $forumID = 0)
{
global $TSUE;
$forumCategories = $subForums = array( );
$List = "\r\n <select name=\"" . $name . "\" class=\"select\">\r\n <option value=\"-1\"></option>";
$Forums = $TSUE["TSUE_Database"]->query("SELECT forumid, parentid, title FROM tsue_forums WHERE forumid != " . $forumID . " ORDER BY displayorder ASC");
if( $TSUE["TSUE_Database"]->num_rows($Forums) )
{
while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
{
if( $Forum["parentid"] == -1 )
{
$forumCategories[] = $Forum;
}
else
{
$subForums[$Forum["parentid"]][] = $Forum;
}
}
foreach( $forumCategories as $forumCategory )
{
$List .= "\r\n\t\t\t\t<option value=\"" . $forumCategory["forumid"] . "\"" . (($checked == $forumCategory["forumid"] ? " selected=\"selected\"" : "")) . ">" . $forumCategory["title"] . "</option>";
if( isset($subForums[$forumCategory["forumid"]]) )
{
foreach( $subForums[$forumCategory["forumid"]] as $forum )
{
$List .= "\r\n\t\t\t\t\t\t<option value=\"" . $forum["forumid"] . "\"" . (($checked == $forum["forumid"] ? " selected=\"selected\"" : "")) . "> |--" . $forum["title"] . "</option>";
}
}
}
}
$List .= "\r\n </select>";
return $List;
}
function aaaakp($skip = 0)
{
global $TSUE;
$cache = array( );
$membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid FROM tsue_membergroups");
while( $m = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
{
if( $m["membergroupid"] != $skip )
{
$cache[] = $m["membergroupid"];
}
}
return $cache;
}
function aaaabf($name, $selected = 0, $emptyOption = false, $emptyText = "")
{
global $TSUE;
$List = "<select name=\"" . $name . "\" class=\"select\">";
if( $emptyOption )
{
$List .= "<option value=\"\"" . (($selected == 0 ? " selected=\"selected\"" : "")) . ">" . $emptyText . "</option>";
}
$memberGroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname FROM tsue_membergroups");
while( $memberGroup = $TSUE["TSUE_Database"]->fetch_assoc($memberGroups) )
{
$List .= "\r\n <option value=\"" . $memberGroup["membergroupid"] . "\"" . (($selected == $memberGroup["membergroupid"] ? " selected=\"selected\"" : "")) . ">" . $memberGroup["groupname"] . "</option>";
}
$List .= "</select>";
return $List;
}
function aaaaaw($name, $checkedArray = array( ), $maxPerRow = 4)
{
global $TSUE;
$List = "\r\n <table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n <tr>";
$count = 0;
for( $Usergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups"); $Usergroup = $TSUE["TSUE_Database"]->fetch_assoc($Usergroups); $count++ )
{
if( $count % $maxPerRow == 0 )
{
$List .= "</tr><tr>";
}
$groupname = getmembername($Usergroup["groupname"], $Usergroup["groupstyle"]);
$List .= "\r\n <td>\r\n <label>\r\n <input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Usergroup["membergroupid"] . "\"" . ((is_array($checkedArray) && in_array($Usergroup["membergroupid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $groupname . "\r\n </label>\r\n </td>";
}
$List .= "\r\n </tr>\r\n </table>";
return $List;
}
function aaaabc($name, $checkedArray = array( ), $maxPerRow = 4)
{
global $TSUE;
$Forums = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums ORDER BY displayorder ASC");
if( !$TSUE["TSUE_Database"]->num_rows($Forums) )
{
return get_phrase("no_results_found");
}
$forumCategories = $subForums = array( );
while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
{
if( $Forum["parentid"] == -1 )
{
$forumCategories[] = $Forum;
}
else
{
$subForums[$Forum["parentid"]][] = $Forum;
}
}
$List = "\r\n\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t<tr>";
$Count = 0;
foreach( $forumCategories as $Forum )
{
if( $Count % $maxPerRow == 0 )
{
$List .= "\r\n\t\t\t\t</tr><tr>";
}
$Count++;
$aaaaoq = "";
if( isset($subForums[$Forum["forumid"]]) )
{
foreach( $subForums[$Forum["forumid"]] as $subForum )
{
$aaaaoq .= aaaaor($subForum, $name, $checkedArray);
if( isset($subForums[$subForum["forumid"]]) )
{
foreach( $subForums[$subForum["forumid"]] as $deepSubForum )
{
$aaaaoq .= aaaaos($deepSubForum, $name, $checkedArray);
}
}
}
}
$List .= "\r\n\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t<label>\r\n\t\t\t\t\t\t<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Forum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($Forum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $Forum["title"] . "\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t" . $aaaaoq . "\r\n\t\t\t\t</td>";
}
$List .= "\r\n\t\t\t</tr>\r\n\t\t</table>";
return $List;
}
function aaaaor($subForum, $name, $checkedArray = array( ))
{
$List = "\r\n\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t<label>\r\n\t\t\t<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $subForum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($subForum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $subForum["title"] . "\r\n\t\t</label>\r\n\t</div>";
return $List;
}
function aaaaos($deepSubForum, $name, $checkedArray = array( ))
{
$List = "\r\n\t<div style=\"margin-left: 40px;\" class=\"forumDeepSub\">\r\n\t\t<label>\r\n\t\t\t<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $deepSubForum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($deepSubForum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $deepSubForum["title"] . "\r\n\t\t</label>\r\n\t</div>";
return $List;
}
function currencycodes()
{
global $TSUE;
$optionArray = array( );
$Codes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_currency_codes ORDER BY code ASC");
while( $Code = $TSUE["TSUE_Database"]->fetch_assoc($Codes) )
{
$optionArray[$Code["code"]] = $Code["code"] . " - " . $Code["currency"];
}
return $optionArray;
}
function textarea($name, $value, $useTinymce = false, $class = "textarea")
{
$HTML = "\r\n\t<textarea name=\"" . $name . "\" id=\"" . (($useTinymce ? "tinyMCE" : "ta_" . $name)) . "\" class=\"" . $class . "\">" . (($useTinymce ? $value : html_clean($value))) . "</textarea>";
return $HTML;
}
function aaaaay($name, $value, $useTinymce = false, $class = "textarea")
{
$HTML = "\r\n\t<textarea name=\"" . $name . "\" id=\"" . (($useTinymce ? "tinyMCEAjax" : "ta_" . $name)) . "\" class=\"" . $class . "\">" . (($useTinymce ? $value : html_clean($value))) . "</textarea>";
return $HTML;
}
function radioyesno($name, $value, $title = array( ), $REL = "")
{
$HTML = "\r\n\t<label for=\"ynrb_" . $name . "_1\">\r\n\t\t<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_1\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"1\"" . (($value == 1 ? " checked=\"checked\"" : "")) . " /> " . ((isset($title["1"]) ? $title["1"] : get_phrase("option_yes"))) . "\r\n\t</label>\r\n\t<label for=\"ynrb_" . $name . "_0\">\r\n\t\t<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_0\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"0\"" . (($value == 0 ? " checked=\"checked\"" : "")) . " /> " . ((isset($title["0"]) ? $title["0"] : get_phrase("option_no"))) . "\r\n\t</label>";
return $HTML;
}
function aaaakz($name, $value, $Checked, $title, $REL = "")
{
$HTML = "\r\n\t<label for=\"ynrb_" . $name . "_" . $value . "\">\r\n\t\t<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_" . $value . "\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"" . $value . "\"" . (($Checked ? " checked=\"checked\"" : "")) . " /> " . $title . "\r\n\t</label>";
return $HTML;
}
function inputbox($name, $value, $class = "text", $hint = "", $isDate = false, $isAutoComplete = false, $extra = "", $autoCompleteTag = "autoComplete")
{
$HTML = "\r\n\t<input type=\"" . (($isDate ? "date" : "text")) . "\" class=\"" . $class . "\" name=\"" . $name . "\" id=\"" . (($isAutoComplete ? $autoCompleteTag : "ib_" . $name)) . "\" value=\"" . $value . "\"" . (($hint ? " rel=\"initTipsy\" title=\"" . $hint . "\"" : "")) . " /> " . $extra;
return $HTML;
}
function aaaacs($name, $hint = "")
{
return (DEMO_MODE ? "--File upload is disabled in demo mode--" : "<input type=\"file\" name=\"" . $name . "\" id=\"ib_" . $name . "\" />" . (($hint ? " <span class=\"smallPassiveText\">" . $hint . "</span>" : "")));
}
function selectbox($name, $value, $optionArray = array( ), $class = "select", $script = "", $strtolowerCheck = false)
{
$options = "";
foreach( $optionArray as $optionValue => $optionTitle )
{
$options .= "<option value=\"" . $optionValue . "\"" . (($optionValue == $value ? " selected=\"selected\"" : ($strtolowerCheck ? (strtolower($optionValue) == strtolower($value) ? " selected=\"selected\"" : "") : ""))) . ">" . $optionTitle . "</option>";
}
$HTML = "\r\n\t<select name=\"" . $name . "\" id=\"" . $name . "\" class=\"" . $class . "\">\r\n\t\t" . $options . "\r\n\t</select>" . $script;
return $HTML;
}
function createtable($headMessage, $tableContents, $TDCount = 0, $spanRight = "")
{
$TABLE = "\r\n\t<table border=\"0\" cellpadding=\"0\" width=\"100%\" cellspacing=\"0\" class=\"table\">\r\n\t\t<tbody>\r\n\t\t\t<tr>\r\n\t\t\t\t<td class=\"tableHeader\" colspan=\"" . $TDCount . "\">\r\n\t\t\t\t\t" . (($spanRight ? "<span class=\"floatRight\">" . $spanRight . "</span>" : "")) . $headMessage . "\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t" . $tableContents . "\r\n\t\t</tbody>\r\n\t</table>";
return $TABLE;
}
function aaaaag($contentArray, $trClass = "tableContentTR", $tdClass = "tableContentTD")
{
$TABLE = "\r\n\t\t\t<tr class=\"" . $trClass . "\">";
foreach( $contentArray as $Content )
{
$TABLE .= "\r\n\t\t\t\t<td class=\"" . $tdClass . "\"" . ((isset($Content["width"]) && $Content["width"] ? " width=\"" . $Content["width"] . "\"" : "")) . ((isset($Content["colspan"]) ? " colspan=\"" . $Content["colspan"] . "\"" : "")) . ((isset($Content["align"]) ? " align=\"" . $Content["align"] . "\"" : "")) . ((isset($Content["valign"]) ? " valign=\"" . $Content["valign"] . "\"" : "")) . ((isset($Content["extra"]) ? $Content["extra"] : "")) . ">" . ((isset($Content["text"]) ? $Content["text"] : "")) . "</td>";
}
$TABLE .= "\r\n\t\t\t</tr>";
return $TABLE;
}
function getimage($Image, $alt = "", $class = "", $width = "", $height = "")
{
global $TSUE;
return "<img src=\"./images/" . $Image . "\" alt=\"" . $alt . "\" title=\"" . $alt . "\" border=\"0\" class=\"" . $class . "\"" . (($width ? " width=\"" . $width . "\"" : "")) . (($height ? " height=\"" . $height . "\"" : "")) . " />";
}
function aaaaky($title)
{
return getimage("status/help.png", $title, "helpImage");
}
function aaaaaf($Query, $Text, $Title = "")
{
global $TSUE;
return "<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $Query . "\" target=\"_blank\"" . (($Title ? " title=\"" . $Title . "\"" : "")) . ">" . $Text . "</a>";
}
function aaaaae($Queries)
{
global $TSUE;
$Links = "";
$Page = intval(getvar("page"));
foreach( $Queries as $Query => $Text )
{
$aaaaot = (isset($Text["confirmation"]) && $Text["confirmation"] ? " onclick=\"return TSUEAdmin.confirmAction('" . str_replace("'", "\\'", $Text["confirmation"]) . "');\"" : "");
$linkClass = (isset($Text["class"]) ? " class=\"" . $Text["class"] . "\"" : "");
$REL = (isset($Text["rel"]) ? " rel=\"" . $Text["rel"] . "\"" : "");
$Links .= "<a href=\"" . ((strstr($Query, "?action") !== false ? $Query : "?action=" . $TSUE["action"] . (($TSUE["do"] ? "&do=" . $TSUE["do"] : "")) . "&" . $Query . (($Page ? "&page=" . $Page : "")))) . "\" target=\"" . ((isset($Text["target"]) ? $Text["target"] : "_self")) . "\"" . $aaaaot . $linkClass . $REL . ">" . $Text["phrase"] . "</a>";
}
return $Links;
}
function loadstyle($style)
{
global $TSUE;
$find = array( "{website_url}", "{themename}" );
$replace = array( $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"], aaaaff() );
$Row = $TSUE["TSUE_Database"]->query_result("SELECT css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"]) . " AND stylename = " . $TSUE["TSUE_Database"]->escape($style));
if( $Row )
{
return "\r\n\t\t<style type=\"text/css\">\r\n\t\t\t" . str_replace($find, $replace, $Row["css"]) . "\r\n\t\t</style>";
}
}
function friendlypeerid($peer_id = "")
{
$peer_id = trim($peer_id, "-");
$peer_id = preg_replace("#[^a-zA-Z0-9\\-]#", "", $peer_id);
$peer_id = explode("-", $peer_id);
return $peer_id["0"];
}
function pagination($total_rows = 0, $targetpage = "", $adjacents = 3, $forceItemsPerPage = false, $isArray = false, $deviceTag = "")
{
global $TSUE;
$perpage = ($forceItemsPerPage ? $forceItemsPerPage : $TSUE["items_perpage"]);
if( $total_rows < 1 || $perpage < 1 )
{
return array( "LIMIT 0, " . $total_rows, "" );
}
$targetpage = "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&" . (($targetpage ? $targetpage . "&" : ""));
$lastpage = ceil($total_rows / $perpage);
if( $isArray )
{
$lastpage--;
}
if( $lastpage <= 1 )
{
return array( "LIMIT 0, " . $total_rows, "" );
}
$page = intval(getvar("page"));
if( $lastpage < $page )
{
$page = $lastpage;
}
if( $page )
{
$start = ($page - 1) * $perpage;
}
else
{
$start = 0;
}
if( $page == 0 )
{
$page = 1;
}
$prev = $page - 1;
$next = $page + 1;
$lpm1 = $lastpage - 1;
$pagination = "";
if( 1 < $lastpage )
{
$pagination .= "<div class=\"pagination\"><ul>";
if( 1 < $page )
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $prev . $deviceTag . "\">«</a></li>";
}
if( $lastpage < 7 + $adjacents * 2 )
{
for( $counter = 1; $counter <= $lastpage; $counter++ )
{
if( $counter == $page )
{
$pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
}
else
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
}
}
}
else
{
if( 5 + $adjacents * 2 < $lastpage )
{
if( $page < 1 + $adjacents * 2 )
{
for( $counter = 1; $counter < 4 + $adjacents * 2; $counter++ )
{
if( $counter == $page )
{
$pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
}
else
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
}
}
$pagination .= "<li>...</li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $lpm1 . $deviceTag . "\">" . $lpm1 . "</a></li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $lastpage . $deviceTag . "\">" . $lastpage . "</a></li>";
}
else
{
if( $page < $lastpage - $adjacents * 2 && $adjacents * 2 < $page )
{
$pagination .= "<li><a href=\"" . $targetpage . "page=1" . $deviceTag . "\">1</a></li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=2" . $deviceTag . "\">2</a></li>";
$pagination .= "<li>...</li>";
for( $counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++ )
{
if( $counter == $page )
{
$pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
}
else
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
}
}
$pagination .= "<li>...</li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $lpm1 . $deviceTag . "\">" . $lpm1 . "</a></li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $lastpage . $deviceTag . "\">" . $lastpage . "</a></li>";
}
else
{
$pagination .= "<li><a href=\"" . $targetpage . "page=1" . $deviceTag . "\">1</a></li>";
$pagination .= "<li><a href=\"" . $targetpage . "page=2" . $deviceTag . "\">2</a></li>";
$pagination .= "<li>...</li>";
for( $counter = $lastpage - (2 + $adjacents * 2); $counter <= $lastpage; $counter++ )
{
if( $counter == $page )
{
$pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
}
else
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
}
}
}
}
}
}
if( $page < $counter - 1 )
{
$pagination .= "<li><a href=\"" . $targetpage . "page=" . $next . $deviceTag . "\">»</a></li>";
}
$pagination .= "<li><a href=\"" . $targetpage . "\" id=\"setGlobalPerPage\"><img src=\"./images/buttons/options.png\" alt=\"" . get_phrase("set_limit_the_number_of_items_to_show") . "\" title=\"" . get_phrase("set_limit_the_number_of_items_to_show") . "\" height=\"14\" /></a></li>";
$script = "\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\t\$(\"#setGlobalPerPage\").click(function(e)\r\n\t\t\t{\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif(\$('form[name=\"setGlobalPerPageForm\"]').length)\r\n\t\t\t\t{\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar \$ppLink = \$(this), \$targetURL = \$ppLink.attr(\"href\");\r\n\t\t\t\tif(\$targetURL)\r\n\t\t\t\t{\r\n\t\t\t\t\tTSUEAdmin.dialog('<form method=\"post\" name=\"setGlobalPerPageForm\">" . get_phrase("the_global_perpage_pagination_limit", $TSUE["items_perpage"]) . " <input type=\"text\" class=\"text textVeryTiny\" name=\"newperpage\" /> <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_save") . "\" /></form>');\r\n\t\t\t\t\t\$('form[name=\"setGlobalPerPageForm\"]').submit(function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\tvar \$newperpage = parseInt(\$('input[name=\"newperpage\"]', \$(this)).val());\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(\$newperpage)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tTSUEAdmin.setCookie(\"newperpage\", \$newperpage)\r\n\t\t\t\t\t\t\twindow.location = \$targetURL+\"&newperpage=\"+\$newperpage;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t</script>";
$pagination .= "</ul></div>" . $script . "\n";
return array( "LIMIT " . $start . ", " . $perpage, $pagination );
}
return array( "LIMIT 0, " . $total_rows, "" );
}
function updatesettings($settingname, $settingvalues)
{
global $TSUE;
$BuildQuery = array( "settingname" => $settingname, "settingvalues" => serialize($settingvalues) );
$TSUE["TSUE_Database"]->delete("tsue_settings", "settingname = " . $TSUE["TSUE_Database"]->escape($settingname));
$TSUE["TSUE_Database"]->insert("tsue_settings", $BuildQuery);
$TSUE["TSUE_Settings"] = new TSUE_Settings();
}
function generate_random_string($length = 7, $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz234567890")
{
$chars_length = strlen($chars) - 1;
$string = $chars[rand(0, $chars_length)];
$i = 1;
while( $i < $length )
{
$r = $chars[rand(0, $chars_length)];
if( $r != $string[$i - 1] )
{
$string .= $r;
}
$i = strlen($string);
}
return $string;
}
function cookie_set($name = "", $value = "", $expires = 0)
{
global $TSUE;
setcookie($name, $value, $expires, $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_path"], $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_domain"]);
}
function sendpm($subject, $owner_memberid, $receiver_memberid, $reply)
{
global $TSUE;
$BuildQuery = array( "subject" => $subject, "owner_memberid" => $owner_memberid, "receiver_memberid" => $receiver_memberid, "message_date" => TIMENOW, "is_unread" => 1, "viaAdminCP" => 1 );
if( $TSUE["TSUE_Database"]->insert("tsue_messages_master", $BuildQuery) )
{
$message_id = $TSUE["TSUE_Database"]->insert_id();
if( $message_id )
{
$BuildQuery = array( "message_id" => $message_id, "memberid" => $owner_memberid, "reply_date" => TIMENOW, "reply" => $reply );
if( $TSUE["TSUE_Database"]->insert("tsue_messages_replies", $BuildQuery) )
{
$TSUE["TSUE_Database"]->update("tsue_members", array( "unread_messages" => array( "escape" => 0, "value" => "unread_messages + 1" ) ), "memberid = " . $TSUE["TSUE_Database"]->escape($receiver_memberid));
return $message_id;
}
}
}
return false;
}
function sent_mail($to, $toname = "", $subject, $message, $from = "", $fromname = "", $nl2br = 1)
{
global $TSUE;
$from = ($from ? $from : $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"]);
$fromname = ($fromname ? $fromname : $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]);
if( $nl2br )
{
$message = nl2br($message);
}
if( $TSUE["TSUE_Settings"]->settings["global_settings"]["mail_type"] == 1 )
{
$TSUEMAIL = new TSUESMTP();
$TSUEMAIL->start($to, $toname, $subject, $message, $from, $fromname);
return $TSUEMAIL->send();
}
$mid = generate_random_string(32);
$name = $_SERVER["SERVER_NAME"];
$headers = "To: " . $toname . " <" . $to . ">" . PHP_EOL;
$headers .= "From: " . $fromname . " <" . $from . ">" . PHP_EOL;
$headers .= "Reply-To: " . $fromname . " <" . $from . ">" . PHP_EOL;
$headers .= "Return-Path: " . $fromname . " <" . $from . ">" . PHP_EOL;
$headers .= "Message-ID: <" . $mid . " thesystem@" . $name . ">" . PHP_EOL;
$headers .= "X-Mailer: PHP v" . phpversion() . PHP_EOL;
$headers .= "Content-Transfer-Encoding: 8bit" . PHP_EOL;
$headers .= "X-Sender: TSUE PHP-Mailer" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/html; charset=" . $TSUE["TSUE_Language"]["charset"] . PHP_EOL;
@ini_set("sendmail_from", $from);
return @mail($to, $subject, $message, $headers, ($TSUE["TSUE_Settings"]->settings["global_settings"]["use_f_parameter"] ? "-f " . $from : ""));
}
function alert_member($alerted_memberid, $memberid, $membername, $content_type, $content_id, $action, $Extra = 0)
{
global $TSUE;
$BuildQuery = array( "alerted_memberid" => $alerted_memberid, "memberid" => $memberid, "membername" => $membername, "content_type" => $content_type, "content_id" => $content_id, "action" => $action, "event_date" => TIMENOW, "extra" => $Extra );
if( $TSUE["TSUE_Database"]->insert("tsue_member_alerts", $BuildQuery) )
{
$TSUE["TSUE_Database"]->query("UPDATE tsue_members SET unread_alerts = unread_alerts + 1 WHERE memberid = " . $TSUE["TSUE_Database"]->escape($alerted_memberid));
}
}
function aaaajk($languageID)
{
global $TSUE;
return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/languageFlags/" . $languageID . ".png?p=" . TIMENOW . "\" alt=\"\" title=\"\" border=\"0\" />";
}
function downloadfile($fullPath = "", $fileName = "", $contents = "")
{
if( headers_sent() )
{
exit( "Critical Error: Headers already sent!" );
}
if( ini_get("zlib.output_compression") )
{
ini_set("zlib.output_compression", "Off");
}
if( !$contents && !is_file($fullPath) )
{
exit( get_phrase("message_content_error") );
}
if( $fileName && $contents )
{
$filesize = strlen($contents);
$extension = file_extension($fileName);
}
else
{
if( $fullPath && $fileName && file_exists($fullPath) )
{
$filesize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$extension = strtolower($path_parts["extension"]);
}
else
{
exit( get_phrase("message_content_error") );
}
}
$imageTypes = array( "gif" => "image/gif", "jpg" => "image/jpeg", "jpeg" => "image/jpeg", "jpe" => "image/jpeg", "png" => "image/png" );
if( in_array($extension, array_keys($imageTypes)) )
{
setheader("Content-type", $imageTypes[$extension], true);
setdownloadfilename($fileName, true);
}
else
{
setheader("Content-type", "unknown/unknown", true);
setdownloadfilename($fileName);
}
setheader("ETag", TIMENOW, true);
setheader("Content-Length", $filesize, true);
if( $fullPath )
{
readfile($fullPath);
}
else
{
echo $contents;
exit();
}
}
function setdownloadfilename($fileName, $inline = false)
{
setheader("Content-Disposition", (($inline ? "inline" : "attachment")) . "; filename=\"" . str_replace("\"", "", $fileName) . "\"", true);
}
function setheader($name, $value, $replace = true)
{
$value = str_replace(array( "\r", "\n" ), array( "\\r", "\\n" ), $value);
header($name . ": " . $value, $replace);
}
function get_torrent_category_image($cid = "")
{
global $TSUE;
$ValidTorrentCategoryExtensions = array( "jpg", "gif", "png", "jpeg" );
foreach( $ValidTorrentCategoryExtensions as $TorrentCategoryExtension )
{
if( is_file(DATAPATH . "torrents/category_images/" . $cid . "." . $TorrentCategoryExtension) )
{
return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/category_images/" . $cid . "." . $TorrentCategoryExtension;
}
}
}
function aaaaff()
{
global $TSUE;
$Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"]));
return $Theme["themename"];
}
function member_ratio($up = 0, $down = 0, $noHTML = false)
{
$ratio = 0;
if( 0 < $down )
{
$ratio = number_format($up / $down, 2);
}
if( $noHTML )
{
return $ratio;
}
$aaaaou = ($ratio ? ($ratio < 1 ? "ratioBad" : "ratioGood") : "ratioNull");
return "<span class=\"" . $aaaaou . "\">" . $ratio . "</span>";
}
function tsue_explode($pattern = ",", $subject = "")
{
return preg_split("#[" . $pattern . "]+#", $subject, -1, PREG_SPLIT_NO_EMPTY);
}
function posttotwitter($message = "", $maxLength = 140)
{
$consumerKey = getsetting("global_settings", "consumerKey");
$consumerSecret = getsetting("global_settings", "consumerSecret");
$accessToken = getsetting("global_settings", "accessToken");
$accessTokenSecret = getsetting("global_settings", "accessTokenSecret");
if( !$consumerKey || !$consumerSecret || !$accessToken || !$accessTokenSecret )
{
return errormessage(get_phrase("please_setup_twitter_api_options_first"));
}
$cacert = DATAPATH . "cache/cacert.pem";
if( !file_exists($cacert) || filemtime($cacert) < TIMENOW - 86400 )
{
file_put_contents($cacert, file_get_contents("http://curl.haxx.se/ca/cacert.pem"));
}
$tmhOAuth = new tmhOAuth(array( "consumer_key" => $consumerKey, "consumer_secret" => $consumerSecret, "user_token" => $accessToken, "user_secret" => $accessTokenSecret, "curl_cainfo" => $cacert, "curl_capath" => DATAPATH . "cache/" ));
$message = strip_tags($message);
if( $maxLength < strlen($message) )
{
$message = substr($message, 0, $maxLength - 4) . " ...";
}
$params = array( "status" => $message );
$response = $tmhOAuth->user_request(array( "method" => "POST", "url" => $tmhOAuth->url("1.1/statuses/update"), "params" => $params, "multipart" => false ));
return successmessage(get_phrase("tweet_has_been_sent")) . "<div style=\"border: 1px solid #ccc; padding: 3px; overflow: auto;\"><pre>HTTP STATUS CODE: " . print_r($response, true) . "</pre></div>";
}
function _obfuscated_000D2C2C2F061A04342C40313D230A0D1B293B33250B21_($value = "")
{
return inputbox("Poll[options][]", $value);
}
function _obfuscated_000D2909313106102D1E321B0B3E3035311A221B3E3938_($offset)
{
return sprintf("%s%02d:%02d", (0 <= $offset ? "+" : "-"), abs($offset / 3600), abs($offset % 3600));
}
function aaaant()
{
return array( "announceLog/", "avatars/l/", "avatars/m/", "avatars/s/", "backups/", "cache/", "countryFlags/", "downloads/files/", "downloads/previews/", "errors/", "gallery/l/", "gallery/s/", "languageFlags/", "posts/", "smilies/", "subTitles/", "torrents/auto_uploader/", "torrents/category_images/", "torrents/imdb/", "torrents/nfo/", "torrents/torrent_files/", "torrents/torrent_genres/", "torrents/torrent_images/l/", "torrents/torrent_images/m/", "torrents/torrent_images/s/" );
}
function yearselectbox()
{
global $TSUE;
global $setYear;
global $chartType;
$nowYear = convert_time(TIMENOW, "Y");
$minYear = $nowYear - 15;
$options = "";
for( $i = $minYear; $i <= $nowYear; $i++ )
{
$options .= "<option value=\"" . $i . "\"" . (($setYear == $i ? " selected=\"selected\"" : "")) . ">" . $i . "</option>";
}
return "\r\n\t\t<div id=\"yearSelector\">\r\n\t\t\t<form method=\"get\" id=\"yearForm\">\r\n\t\t\t\t<select name=\"year\">\r\n\t\t\t\t\t<optgroup label=\"" . get_phrase("dashboard_cron_entries_years") . "\">\r\n\t\t\t\t\t\t" . $options . "\r\n\t\t\t\t\t</optgroup>\r\n\t\t\t\t</select>\r\n\t\t\t</form>\r\n\t\t</div>";
}
function primetimemembers($Year = 0)
{
global $TSUE;
$nowYear = convert_time(TIMENOW, "Y");
if( !$Year || $nowYear < $Year )
{
$Year = $nowYear;
}
$aaaadyu = array( );
$Members = $TSUE["TSUE_Database"]->query("SELECT lastactivity,lastvisit FROM tsue_members ORDER BY lastactivity ASC");
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$aaaadyu[] = array( "lastactivity" => ($Member["lastactivity"] ? $Member["lastactivity"] : $Member["lastvisit"]) );
}
$Hours = array( );
foreach( $aaaadyu as $Member )
{
$tlmhytu = convert_time($Member["lastactivity"], "Y");
if( $Year == $tlmhytu )
{
$date = convert_time($Member["lastactivity"], "H");
if( isset($Hours[$date]) )
{
$Hours[$date]++;
}
else
{
$Hours[$date] = 1;
}
}
}
unset($aaaadyu);
$buildScript = "data.addColumn(\"string\", \"Time\");\r\n\t\tdata.addRows(" . count($Hours) . ");" . PHP_EOL;
$i = 0;
foreach( $Hours as $Hour => $Count )
{
if( strlen($Hour) == 1 )
{
$Hour = "0" . $Hour;
}
$Hour = $Hour . ":00";
$buildScript .= "data.addColumn('number', '" . $Hour . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 0, '" . $Hour . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
$i++;
}
unset($Hours);
unset($i);
return array( "buildScript" => $buildScript, "title" => get_phrase("stats_most_active"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}
function primetimeregistrations($Year = 0)
{
global $TSUE;
$nowYear = convert_time(TIMENOW, "Y");
if( !$Year || $nowYear < $Year )
{
$Year = $nowYear;
}
$aaaadyu = array( );
$Members = $TSUE["TSUE_Database"]->query("SELECT joindate FROM tsue_members ORDER BY joindate ASC");
while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
{
$aaaadyu[] = array( "joindate" => $Member["joindate"] );
}
$Months = array( );
foreach( $aaaadyu as $Member )
{
$tvbhytu = convert_time($Member["joindate"], "Y");
if( $Year == $tvbhytu )
{
$date = convert_time($Member["joindate"], "F");
if( isset($Months[$date]) )
{
$Months[$date]++;
}
else
{
$Months[$date] = 1;
}
}
}
unset($aaaadyu);
$buildScript = "data.addColumn(\"string\", \"Month\");\r\n\t\tdata.addRows(" . count($Months) . ");" . PHP_EOL;
$i = 0;
foreach( $Months as $Month => $Count )
{
$buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
$i++;
}
unset($Months);
unset($i);
return array( "buildScript" => $buildScript, "title" => get_phrase("stats_registrations"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}
function primetimethreads($Year = 0)
{
global $TSUE;
$nowYear = convert_time(TIMENOW, "Y");
if( !$Year || $nowYear < $Year )
{
$Year = $nowYear;
}
$tyuhyg = array( );
$Threads = $TSUE["TSUE_Database"]->query("SELECT post_date FROM tsue_forums_threads ORDER BY post_date ASC");
while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
{
$tyuhyg[] = array( "post_date" => $Thread["post_date"] );
}
$Months = array( );
foreach( $tyuhyg as $Thread )
{
$postYear = convert_time($Thread["post_date"], "Y");
if( $Year == $postYear )
{
$date = convert_time($Thread["post_date"], "F");
if( isset($Months[$date]) )
{
$Months[$date]++;
}
else
{
$Months[$date] = 1;
}
}
}
unset($tyuhyg);
$buildScript = "data.addColumn(\"string\", \"Month\");\r\n\t\tdata.addRows(" . count($Months) . ");" . PHP_EOL;
$i = 0;
foreach( $Months as $Month => $Count )
{
$buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
$i++;
}
unset($Months);
unset($i);
return array( "buildScript" => $buildScript, "title" => get_phrase("stats_threads"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}
function primetimeposts($Year = 0)
{
global $TSUE;
$nowYear = convert_time(TIMENOW, "Y");
if( !$Year || $nowYear < $Year )
{
$Year = $nowYear;
}
$postsCache = array( );
$Posts = $TSUE["TSUE_Database"]->query("SELECT post_date FROM tsue_forums_posts ORDER BY post_date ASC");
while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) )
{
$postsCache[] = array( "post_date" => $Post["post_date"] );
}
$Months = array( );
foreach( $postsCache as $Post )
{
$postYear = convert_time($Post["post_date"], "Y");
if( $Year == $postYear )
{
$date = convert_time($Post["post_date"], "F");
if( isset($Months[$date]) )
{
$Months[$date]++;
}
else
{
$Months[$date] = 1;
}
}
}
unset($postsCache);
$buildScript = "data.addColumn(\"string\", \"Month\");\r\n\t\tdata.addRows(" . count($Months) . ");" . PHP_EOL;
$i = 0;
foreach( $Months as $Month => $Count )
{
$buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
$i++;
}
unset($Months);
unset($i);
return array( "buildScript" => $buildScript, "title" => get_phrase("stats_posts"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}
function primetimetorrents($Year = 0)
{
global $TSUE;
$nowYear = convert_time(TIMENOW, "Y");
if( !$Year || $nowYear < $Year )
{
$Year = $nowYear;
}
$tymhygr = array( );
$Torrents = $TSUE["TSUE_Database"]->query("SELECT added FROM tsue_torrents ORDER BY added ASC");
while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
{
$tymhygr[] = array( "added" => $Torrent["added"] );
}
$Months = array( );
foreach( $tymhygr as $Torrent )
{
$tlmhygr = convert_time($Torrent["added"], "Y");
if( $Year == $tlmhygr )
{
$date = convert_time($Torrent["added"], "F");
if( isset($Months[$date]) )
{
$Months[$date]++;
}
else
{
$Months[$date] = 1;
}
}
}
unset($tymhygr);
$buildScript = "data.addColumn(\"string\", \"Month\");\r\n\t\tdata.addRows(" . count($Months) . ");" . PHP_EOL;
$i = 0;
foreach( $Months as $Month => $Count )
{
$buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
$buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
$i++;
}
unset($Months);
unset($i);
return array( "buildScript" => $buildScript, "title" => get_phrase("stats_torrents"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}
Function Calls
None |
Stats
MD5 | 7bd0fe53e237dafbc09763889ad1d000 |
Eval Count | 0 |
Decode Time | 924 ms |