2011-03-28 14:21:28 +00:00
< ?
include ( SERVER_ROOT . '/classes/class_text.php' ); // Text formatting class
$Text = new TEXT ;
include ( SERVER_ROOT . '/sections/requests/functions.php' );
2012-10-11 08:00:15 +00:00
if ( empty ( $_GET [ 'id' ]) || ! is_numeric ( $_GET [ 'id' ]))
error ( 404 );
2011-03-28 14:21:28 +00:00
$UserID = $_GET [ 'id' ];
2012-10-11 08:00:15 +00:00
if ( $UserID == $LoggedUser [ 'ID' ]) {
2011-03-28 14:21:28 +00:00
$OwnProfile = true ;
2012-10-11 08:00:15 +00:00
} else {
2011-03-28 14:21:28 +00:00
$OwnProfile = false ;
}
2012-06-02 08:00:16 +00:00
2011-03-28 14:21:28 +00:00
if ( check_perms ( 'users_mod' )) { // Person viewing is a staff member
$DB -> query ( " SELECT
m . Username ,
m . Email ,
m . LastAccess ,
m . IP ,
p . Level AS Class ,
m . Uploaded ,
m . Downloaded ,
m . RequiredRatio ,
m . Title ,
m . torrent_pass ,
m . Enabled ,
m . Paranoia ,
m . Invites ,
m . can_leech ,
m . Visible ,
i . JoinDate ,
i . Info ,
i . Avatar ,
i . Country ,
i . AdminComment ,
i . Donor ,
i . Artist ,
i . Warned ,
i . SupportFor ,
i . RestrictedForums ,
2011-10-11 08:00:15 +00:00
i . PermittedForums ,
2011-03-28 14:21:28 +00:00
i . Inviter ,
inviter . Username ,
COUNT ( posts . id ) AS ForumPosts ,
i . RatioWatchEnds ,
i . RatioWatchDownload ,
i . DisableAvatar ,
i . DisableInvites ,
i . DisablePosting ,
i . DisableForums ,
i . DisableTagging ,
i . DisableUpload ,
i . DisableWiki ,
i . DisablePM ,
i . DisableIRC ,
i . DisableRequests ,
2011-10-08 08:00:14 +00:00
i . HideCountryChanges ,
2012-01-31 08:00:23 +00:00
m . FLTokens ,
SHA1 ( i . AdminComment )
2011-03-28 14:21:28 +00:00
FROM users_main AS m
JOIN users_info AS i ON i . UserID = m . ID
LEFT JOIN users_main AS inviter ON i . Inviter = inviter . ID
LEFT JOIN permissions AS p ON p . ID = m . PermissionID
LEFT JOIN forums_posts AS posts ON posts . AuthorID = m . ID
WHERE m . ID = '".$UserID."' GROUP BY AuthorID " );
if ( $DB -> record_count () == 0 ) { // If user doesn't exist
header ( " Location: log.php?search=User+ " . $UserID );
}
2012-01-31 08:00:23 +00:00
list ( $Username , $Email , $LastAccess , $IP , $Class , $Uploaded , $Downloaded , $RequiredRatio , $CustomTitle , $torrent_pass , $Enabled , $Paranoia , $Invites , $DisableLeech , $Visible , $JoinDate , $Info , $Avatar , $Country , $AdminComment , $Donor , $Artist , $Warned , $SupportFor , $RestrictedForums , $PermittedForums , $InviterID , $InviterName , $ForumPosts , $RatioWatchEnds , $RatioWatchDownload , $DisableAvatar , $DisableInvites , $DisablePosting , $DisableForums , $DisableTagging , $DisableUpload , $DisableWiki , $DisablePM , $DisableIRC , $DisableRequests , $DisableCountry , $FLTokens , $CommentHash ) = $DB -> next_record ( MYSQLI_NUM , array ( 8 , 11 ));
2011-03-28 14:21:28 +00:00
} else { // Person viewing is a normal user
$DB -> query ( " SELECT
m . Username ,
m . Email ,
m . LastAccess ,
m . IP ,
p . Level AS Class ,
m . Uploaded ,
m . Downloaded ,
m . RequiredRatio ,
m . Enabled ,
m . Paranoia ,
m . Invites ,
m . Title ,
m . torrent_pass ,
m . can_leech ,
i . JoinDate ,
i . Info ,
i . Avatar ,
2011-10-30 08:00:11 +00:00
m . FLTokens ,
2011-03-28 14:21:28 +00:00
i . Country ,
i . Donor ,
i . Warned ,
COUNT ( posts . id ) AS ForumPosts ,
i . Inviter ,
i . DisableInvites ,
inviter . username
FROM users_main AS m
JOIN users_info AS i ON i . UserID = m . ID
LEFT JOIN permissions AS p ON p . ID = m . PermissionID
LEFT JOIN users_main AS inviter ON i . Inviter = inviter . ID
LEFT JOIN forums_posts AS posts ON posts . AuthorID = m . ID
WHERE m . ID = $UserID GROUP BY AuthorID " );
if ( $DB -> record_count () == 0 ) { // If user doesn't exist
header ( " Location: log.php?search=User+ " . $UserID );
}
2011-10-30 08:00:11 +00:00
list ( $Username , $Email , $LastAccess , $IP , $Class , $Uploaded , $Downloaded , $RequiredRatio , $Enabled , $Paranoia , $Invites , $CustomTitle , $torrent_pass , $DisableLeech , $JoinDate , $Info , $Avatar , $FLTokens , $Country , $Donor , $Warned , $ForumPosts , $InviterID , $DisableInvites , $InviterName , $RatioWatchEnds , $RatioWatchDownload ) = $DB -> next_record ( MYSQLI_NUM , array ( 9 , 11 ));
2011-03-28 14:21:28 +00:00
}
2011-09-22 08:00:12 +00:00
// Image proxy CTs
$DisplayCustomTitle = $CustomTitle ;
if ( check_perms ( 'site_proxy_images' ) && ! empty ( $CustomTitle )) {
2011-09-23 08:00:11 +00:00
$DisplayCustomTitle = preg_replace_callback ( '~src=("?)(http.+?)(["\s>])~' , function ( $Matches ) {
2011-09-22 08:00:12 +00:00
return 'src=' . $Matches [ 1 ] . 'http' . ( $SSL ? 's' : '' ) . '://' . SITE_URL . '/image.php?c=1&i=' . urlencode ( $Matches [ 2 ]) . $Matches [ 3 ];
}, $CustomTitle );
}
2011-03-28 14:21:28 +00:00
$Paranoia = unserialize ( $Paranoia );
if ( ! is_array ( $Paranoia )) {
$Paranoia = array ();
}
$ParanoiaLevel = 0 ;
foreach ( $Paranoia as $P ) {
$ParanoiaLevel ++ ;
if ( strpos ( $P , '+' )) {
$ParanoiaLevel ++ ;
}
}
$JoinedDate = time_diff ( $JoinDate );
$LastAccess = time_diff ( $LastAccess );
function check_paranoia_here ( $Setting ) {
global $Paranoia , $Class , $UserID ;
return check_paranoia ( $Setting , $Paranoia , $Class , $UserID );
}
$Badges = ( $Donor ) ? '<a href="donate.php"><img src="' . STATIC_SERVER . 'common/symbols/donor.png" alt="Donor" /></a>' : '' ;
$Badges .= ( $Warned != '0000-00-00 00:00:00' ) ? '<img src="' . STATIC_SERVER . 'common/symbols/warned.png" alt="Warned" />' : '' ;
$Badges .= ( $Enabled == '1' || $Enabled == '0' || ! $Enabled ) ? '' : '<img src="' . STATIC_SERVER . 'common/symbols/disabled.png" alt="Banned" />' ;
2013-01-11 08:00:38 +00:00
View :: show_header ( $Username , 'user,bbcode,requests,jquery,lastfm' );
2013-01-01 08:00:24 +00:00
2011-03-28 14:21:28 +00:00
?>
< div class = " thin " >
< h2 >< ? = $Username ?> </h2>
< div class = " linkbox " >
< ? if ( ! $OwnProfile ) { ?>
2013-02-18 08:00:22 +00:00
< a href = " inbox.php?action=compose&to=<?= $UserID ?> " class = " brackets " > Send message </ a >
2013-02-09 08:01:01 +00:00
2012-10-27 08:00:09 +00:00
< ? if ( check_perms ( " users_mod " )) {
$DB -> query ( " SELECT PushService FROM users_push_notifications WHERE UserID = ' $UserID ' " );
if ( $DB -> record_count () > 0 ) { ?>
2013-01-26 08:00:19 +00:00
< a
href = " user.php?action=take_push&push=1&userid=<?= $UserID ?>&auth=<?= $LoggedUser['AuthKey'] ?> " class = " brackets "
2013-02-18 08:00:22 +00:00
> Push user </ a >
2012-10-27 08:00:09 +00:00
< ? }
}
$DB -> query ( " SELECT FriendID FROM friends WHERE UserID=' $LoggedUser[ID] ' AND FriendID=' $UserID ' " );
2011-03-28 14:21:28 +00:00
if ( $DB -> record_count () == 0 ) { ?>
2013-01-26 08:00:19 +00:00
< a href = " friends.php?action=add&friendid=<?= $UserID ?>&auth=<?= $LoggedUser['AuthKey'] ?> " class = " brackets " > Add to friends </ a >
2011-03-28 14:21:28 +00:00
< ? } ?>
2013-02-18 08:00:22 +00:00
< a href = " reports.php?action=report&type=user&id=<?= $UserID ?> " class = " brackets " > Report user </ a >
2011-03-28 14:21:28 +00:00
< ?
}
if ( check_perms ( 'users_edit_profiles' , $Class )) {
?>
2013-01-26 08:00:19 +00:00
< a href = " user.php?action=edit&userid=<?= $UserID ?> " class = " brackets " > Settings </ a >
2011-03-28 14:21:28 +00:00
< ? }
if ( check_perms ( 'users_view_invites' , $Class )) {
?>
2013-01-26 08:00:19 +00:00
< a href = " user.php?action=invite&userid=<?= $UserID ?> " class = " brackets " > Invites </ a >
2011-03-28 14:21:28 +00:00
< ? }
if ( check_perms ( 'admin_manage_permissions' , $Class )) {
?>
2013-01-26 08:00:19 +00:00
< a href = " user.php?action=permissions&userid=<?= $UserID ?> " class = " brackets " > Permissions </ a >
2011-03-28 14:21:28 +00:00
< ? }
if ( check_perms ( 'users_logout' , $Class ) && check_perms ( 'users_view_ips' , $Class )) {
?>
2013-01-26 08:00:19 +00:00
< a href = " user.php?action=sessions&userid=<?= $UserID ?> " class = " brackets " > Sessions </ a >
2011-03-28 14:21:28 +00:00
< ? }
if ( check_perms ( 'admin_reports' )) {
?>
2013-01-26 08:00:19 +00:00
< a href = " reportsv2.php?view=reporter&id=<?= $UserID ?> " class = " brackets " > Reports </ a >
2011-03-28 14:21:28 +00:00
< ? }
2011-10-08 08:00:14 +00:00
if ( check_perms ( 'users_mod' )) {
2011-03-28 14:21:28 +00:00
?>
2013-02-16 08:00:57 +00:00
< a href = " userhistory.php?action=token_history&userid=<?= $UserID ?> " class = " brackets " > FL tokens </ a >
2012-10-11 08:00:15 +00:00
< ? }
2012-05-03 08:00:25 +00:00
if ( check_perms ( 'admin_clear_cache' ) && check_perms ( 'users_override_paranoia' )) {
2012-03-29 08:00:19 +00:00
?>
2013-02-16 08:00:57 +00:00
< a href = " user.php?action=clearcache&id=<?= $UserID ?> " class = " brackets " > Clear cache </ a >
2011-10-08 08:00:14 +00:00
< ? } ?>
2011-03-28 14:21:28 +00:00
</ div >
< div class = " sidebar " >
2012-12-09 08:00:20 +00:00
< ?
if ( $Avatar && Users :: has_avatars_enabled ()) {
2011-03-28 14:21:28 +00:00
if ( check_perms ( 'site_proxy_images' ) && ! empty ( $Avatar )) {
2012-10-14 08:00:20 +00:00
$Avatar = 'http' . ( $SSL ? 's' : '' ) . '://' . SITE_URL . '/image.php?c=1&avatar=' . $UserID . '&i=' . urlencode ( $Avatar );
2011-03-28 14:21:28 +00:00
}
?>
2012-08-17 08:00:13 +00:00
< div class = " box box_image box_image_avatar " >
2011-03-28 14:21:28 +00:00
< div class = " head colhead_dark " > Avatar </ div >
< div align = " center " >< img src = " <?=display_str( $Avatar )?> " width = " 150 " style = " max-height:400px; " alt = " <?= $Username ?>'s avatar " /></ div >
</ div >
< ? } ?>
2012-08-17 08:00:13 +00:00
< div class = " box box_info box_userinfo_stats " >
2011-03-28 14:21:28 +00:00
< div class = " head colhead_dark " > Stats </ div >
< ul class = " stats nobullet " >
< li > Joined : < ? = $JoinedDate ?> </li>
2012-07-09 08:00:09 +00:00
< ? if (( $Override = check_paranoia_here ( 'lastseen' ))) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> >Last seen: <?=$LastAccess?></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
2012-07-09 08:00:09 +00:00
< ? if (( $Override = check_paranoia_here ( 'uploaded' ))) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> title="<?=Format::get_size($Uploaded, 5)?>">Uploaded: <?=Format::get_size($Uploaded)?></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
2012-07-09 08:00:09 +00:00
< ? if (( $Override = check_paranoia_here ( 'downloaded' ))) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> title="<?=Format::get_size($Downloaded, 5)?>">Downloaded: <?=Format::get_size($Downloaded)?></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
2012-07-09 08:00:09 +00:00
< ? if (( $Override = check_paranoia_here ( 'ratio' ))) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> >Ratio: <?=Format::get_ratio_html($Uploaded, $Downloaded)?></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
2012-07-09 08:00:09 +00:00
< ? if (( $Override = check_paranoia_here ( 'requiredratio' )) && isset ( $RequiredRatio )) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> >Required ratio: <?=number_format((double)$RequiredRatio, 2)?></li>
2011-10-27 08:00:15 +00:00
< ? } ?>
2012-07-13 08:00:19 +00:00
< ? if ( $OwnProfile || ( $Override = check_paranoia_here ( false )) || check_perms ( 'users_mod' )) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> ><a href="userhistory.php?action=token_history&userid=<?=$UserID?>">Tokens</a>: <?=number_format($FLTokens)?></li>
2013-02-09 08:01:01 +00:00
< ? }
2013-02-07 08:00:47 +00:00
if (( $OwnProfile || check_perms ( 'users_mod' )) && $Warned != '0000-00-00 00:00:00' ) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> >Warning expires: <?= date('Y-m-d h:i', strtotime($Warned)) ?></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
</ ul >
</ div >
2013-02-07 08:00:47 +00:00
2011-03-28 14:21:28 +00:00
< ?
2013-01-11 08:00:38 +00:00
//Last.fm statistics and comparability
include ( SERVER_ROOT . '/sections/user/lastfm.php' );
2011-03-28 14:21:28 +00:00
if ( check_paranoia_here ( 'requestsfilled_count' ) || check_paranoia_here ( 'requestsfilled_bounty' )) {
$DB -> query ( " SELECT COUNT(DISTINCT r.ID), SUM(rv.Bounty) FROM requests AS r LEFT JOIN requests_votes AS rv ON r.ID=rv.RequestID WHERE r.FillerID = " . $UserID );
list ( $RequestsFilled , $TotalBounty ) = $DB -> next_record ();
2012-01-24 08:00:19 +00:00
} else {
$RequestsFilled = $TotalBounty = 0 ;
}
if ( check_paranoia_here ( 'requestsvoted_count' ) || check_paranoia_here ( 'requestsvoted_bounty' )) {
2011-03-28 14:21:28 +00:00
$DB -> query ( " SELECT COUNT(rv.RequestID), SUM(rv.Bounty) FROM requests_votes AS rv WHERE rv.UserID = " . $UserID );
list ( $RequestsVoted , $TotalSpent ) = $DB -> next_record ();
} else {
2012-01-24 08:00:19 +00:00
$RequestsVoted = $TotalSpent = 0 ;
2011-03-28 14:21:28 +00:00
}
if ( check_paranoia_here ( 'uploads+' )) {
$DB -> query ( " SELECT COUNT(ID) FROM torrents WHERE UserID=' $UserID ' " );
list ( $Uploads ) = $DB -> next_record ();
} else {
$Uploads = 0 ;
}
if ( check_paranoia_here ( 'artistsadded' )) {
$DB -> query ( " SELECT COUNT(ta.ArtistID) FROM torrents_artists AS ta WHERE ta.UserID = " . $UserID );
list ( $ArtistsAdded ) = $DB -> next_record ();
} else {
$ArtistsAdded = 0 ;
}
2012-12-27 08:00:27 +00:00
include ( SERVER_ROOT . '/classes/class_user_rank.php' );
2011-03-28 14:21:28 +00:00
$Rank = new USER_RANK ;
$UploadedRank = $Rank -> get_rank ( 'uploaded' , $Uploaded );
$DownloadedRank = $Rank -> get_rank ( 'downloaded' , $Downloaded );
$UploadsRank = $Rank -> get_rank ( 'uploads' , $Uploads );
$RequestRank = $Rank -> get_rank ( 'requests' , $RequestsFilled );
$PostRank = $Rank -> get_rank ( 'posts' , $ForumPosts );
$BountyRank = $Rank -> get_rank ( 'bounty' , $TotalSpent );
2012-01-17 08:00:16 +00:00
$ArtistsRank = $Rank -> get_rank ( 'artists' , $ArtistsAdded );
2011-03-28 14:21:28 +00:00
if ( $Downloaded == 0 ) {
$Ratio = 1 ;
} elseif ( $Uploaded == 0 ) {
$Ratio = 0.5 ;
} else {
$Ratio = round ( $Uploaded / $Downloaded , 2 );
}
2012-12-27 08:00:27 +00:00
$OverallRank = $Rank -> overall_score ( $UploadedRank , $DownloadedRank , $UploadsRank , $RequestRank , $PostRank , $BountyRank , $ArtistsRank , $Ratio );
2011-03-28 14:21:28 +00:00
?>
2012-08-17 08:00:13 +00:00
< div class = " box box_info box_userinfo_percentile " >
2013-02-18 08:00:22 +00:00
< div class = " head colhead_dark " > Percentile rankings ( hover for values ) </ div >
2011-03-28 14:21:28 +00:00
< ul class = " stats nobullet " >
2012-07-09 08:00:09 +00:00
< ? if (( $Override = check_paranoia_here ( 'uploaded' ))) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> title="<?=Format::get_size($Uploaded)?>">Data uploaded: <?=$UploadedRank === false ? 'Server busy' : number_format($UploadedRank)?></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
2012-07-09 08:00:09 +00:00
< ? if (( $Override = check_paranoia_here ( 'downloaded' ))) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> title="<?=Format::get_size($Downloaded)?>">Data downloaded: <?=$DownloadedRank === false ? 'Server busy' : number_format($DownloadedRank)?></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
2012-07-09 08:00:09 +00:00
< ? if (( $Override = check_paranoia_here ( 'uploads+' ))) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> title="<?=number_format($Uploads)?>">Torrents uploaded: <?=$UploadsRank === false ? 'Server busy' : number_format($UploadsRank)?></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
2012-07-09 08:00:09 +00:00
< ? if (( $Override = check_paranoia_here ( 'requestsfilled_count' ))) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> title="<?=number_format($RequestsFilled)?>">Requests filled: <?=$RequestRank === false ? 'Server busy' : number_format($RequestRank)?></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
2012-07-09 08:00:09 +00:00
< ? if (( $Override = check_paranoia_here ( 'requestsvoted_bounty' ))) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> title="<?=Format::get_size($TotalSpent)?>">Bounty spent: <?=$BountyRank === false ? 'Server busy' : number_format($BountyRank)?></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
2013-02-16 08:00:57 +00:00
< li title = " <?=number_format( $ForumPosts )?> " > Posts made : < ? = $PostRank === false ? 'Server busy' : number_format ( $PostRank ) ?> </li>
2012-07-09 08:00:09 +00:00
< ? if (( $Override = check_paranoia_here ( 'artistsadded' ))) { ?>
2013-02-18 08:00:22 +00:00
< li < ? = $Override === 2 ? ' class="paranoia_override"' : '' ?> title="<?=number_format($ArtistsAdded)?>">Artists added: <?=$ArtistsRank === false ? 'Server busy' : number_format($ArtistsRank)?></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
< ? if ( check_paranoia_here ( array ( 'uploaded' , 'downloaded' , 'uploads+' , 'requestsfilled_count' , 'requestsvoted_bounty' , 'artistsadded' ))) { ?>
2012-03-03 08:00:28 +00:00
< li >< strong > Overall rank : < ? = $OverallRank === false ? 'Server busy' : number_format ( $OverallRank ) ?> </strong></li>
2011-03-28 14:21:28 +00:00
< ? } ?>
</ ul >
</ div >
< ?
if ( check_perms ( 'users_mod' , $Class ) || check_perms ( 'users_view_ips' , $Class ) || check_perms ( 'users_view_keys' , $Class )) {
$DB -> query ( " SELECT COUNT(*) FROM users_history_passwords WHERE UserID=' $UserID ' " );
list ( $PasswordChanges ) = $DB -> next_record ();
if ( check_perms ( 'users_view_keys' , $Class )) {
$DB -> query ( " SELECT COUNT(*) FROM users_history_passkeys WHERE UserID=' $UserID ' " );
list ( $PasskeyChanges ) = $DB -> next_record ();
}
if ( check_perms ( 'users_view_ips' , $Class )) {
$DB -> query ( " SELECT COUNT(DISTINCT IP) FROM users_history_ips WHERE UserID=' $UserID ' " );
list ( $IPChanges ) = $DB -> next_record ();
$DB -> query ( " SELECT COUNT(DISTINCT IP) FROM xbt_snatched WHERE uid=' $UserID ' AND IP != '' " );
list ( $TrackerIPs ) = $DB -> next_record ();
}
if ( check_perms ( 'users_view_email' , $Class )) {
$DB -> query ( " SELECT COUNT(*) FROM users_history_emails WHERE UserID=' $UserID ' " );
list ( $EmailChanges ) = $DB -> next_record ();
}
?>
2012-08-17 08:00:13 +00:00
< div class = " box box_info box_userinfo_history " >
2011-03-28 14:21:28 +00:00
< div class = " head colhead_dark " > History </ div >
< ul class = " stats nobullet " >
< ? if ( check_perms ( 'users_view_email' , $Class )) { ?>
2013-02-09 08:01:01 +00:00
< li > Emails : < ? = number_format ( $EmailChanges ) ?> <a href="userhistory.php?action=email2&userid=<?=$UserID?>" class="brackets">View</a> <a href="userhistory.php?action=email&userid=<?=$UserID?>" class="brackets">Legacy view</a></li>
2011-03-28 14:21:28 +00:00
< ?
}
if ( check_perms ( 'users_view_ips' , $Class )) {
?>
2013-02-18 08:00:22 +00:00
< li > IPs : < ? = number_format ( $IPChanges ) ?> <a href="userhistory.php?action=ips&userid=<?=$UserID?>" class="brackets">View</a> <a href="userhistory.php?action=ips&userid=<?=$UserID?>&usersonly=1" class="brackets">View users</a></li>
2011-04-29 13:49:03 +00:00
< ? if ( check_perms ( 'users_view_ips' , $Class ) && check_perms ( 'users_mod' , $Class )) { ?>
2013-02-09 08:01:01 +00:00
< li > Tracker IPs : < ? = number_format ( $TrackerIPs ) ?> <a href="userhistory.php?action=tracker_ips&userid=<?=$UserID?>" class="brackets">View</a></li>
2011-04-29 13:49:03 +00:00
< ? } ?>
2011-03-28 14:21:28 +00:00
< ?
}
if ( check_perms ( 'users_view_keys' , $Class )) {
?>
2013-02-09 08:01:01 +00:00
< li > Passkeys : < ? = number_format ( $PasskeyChanges ) ?> <a href="userhistory.php?action=passkeys&userid=<?=$UserID?>" class="brackets">View</a></li>
2011-03-28 14:21:28 +00:00
< ?
}
if ( check_perms ( 'users_mod' , $Class )) {
?>
2013-02-09 08:01:01 +00:00
< li > Passwords : < ? = number_format ( $PasswordChanges ) ?> <a href="userhistory.php?action=passwords&userid=<?=$UserID?>" class="brackets">View</a></li>
< li > Stats : N / A < a href = " userhistory.php?action=stats&userid=<?= $UserID ?> " class = " brackets " > View </ a ></ li >
2011-03-28 14:21:28 +00:00
< ?
}
?>
</ ul >
</ div >
< ? } ?>
2012-08-17 08:00:13 +00:00
< div class = " box box_info box_userinfo_personal " >
2011-03-28 14:21:28 +00:00
< div class = " head colhead_dark " > Personal </ div >
< ul class = " stats nobullet " >
< li > Class : < ? = $ClassLevels [ $Class ][ 'Name' ] ?> </li>
< ?
2012-10-11 08:00:15 +00:00
$UserInfo = Users :: user_info ( $UserID );
2012-03-28 08:00:20 +00:00
if ( ! empty ( $UserInfo [ 'ExtraClasses' ])) {
?>
< li >
< ul class = " stats " >
< ?
foreach ( $UserInfo [ 'ExtraClasses' ] as $PermID => $Val ) { ?>
< li >< ? = $Classes [ $PermID ][ 'Name' ] ?> </li>
< ? }
?>
</ ul >
</ li >
< ?
}
2011-03-28 14:21:28 +00:00
// An easy way for people to measure the paranoia of a user, for e.g. contest eligibility
if ( $ParanoiaLevel == 0 ) {
$ParanoiaLevelText = 'Off' ;
} elseif ( $ParanoiaLevel == 1 ) {
$ParanoiaLevelText = 'Very Low' ;
} elseif ( $ParanoiaLevel <= 5 ) {
$ParanoiaLevelText = 'Low' ;
} elseif ( $ParanoiaLevel <= 20 ) {
$ParanoiaLevelText = 'High' ;
} else {
$ParanoiaLevelText = 'Very high' ;
}
?>
< li > Paranoia level : < span title = " <?= $ParanoiaLevel ?> " >< ? = $ParanoiaLevelText ?> </span></li>
< ? if ( check_perms ( 'users_view_email' , $Class ) || $OwnProfile ) { ?>
< li > Email : < a href = " mailto:<?=display_str( $Email )?> " >< ? = display_str ( $Email ) ?> </a>
< ? if ( check_perms ( 'users_view_email' , $Class )) { ?>
2013-02-09 08:01:01 +00:00
< a href = " user.php?action=search&email_history=on&email=<?=display_str( $Email )?> " title = " Search " class = " brackets " > S </ a >
2011-03-28 14:21:28 +00:00
< ? } ?>
</ li >
< ? }
if ( check_perms ( 'users_view_ips' , $Class )) {
?>
2012-10-11 08:00:15 +00:00
< li > IP : < ? = Tools :: display_ip ( $IP ) ?> </li>
< li > Host : < ? = Tools :: get_host_by_ajax ( $IP ) ?> </li>
2011-03-28 14:21:28 +00:00
< ?
}
if ( check_perms ( 'users_view_keys' , $Class ) || $OwnProfile ) {
?>
2013-02-09 08:01:01 +00:00
< li > Passkey : < a href = " # " onclick = " this.innerHTML='<?=display_str( $torrent_pass )?>'; return false; " class = " brackets " > View </ a ></ li >
2011-03-28 14:21:28 +00:00
< ? }
if ( check_perms ( 'users_view_invites' )) {
if ( ! $InviterID ) {
2012-09-23 08:00:25 +00:00
$Invited = '<span style="font-style: italic;">Nobody</span>' ;
2011-03-28 14:21:28 +00:00
} else {
$Invited = '<a href="user.php?id=' . $InviterID . '">' . $InviterName . '</a>' ;
}
?>
2012-10-14 08:00:20 +00:00
< li > Invited by : < ? = $Invited ?> </li>
2012-09-23 08:00:25 +00:00
< li > Invites : < ?
2011-03-28 14:21:28 +00:00
$DB -> query ( " SELECT count(InviterID) FROM invites WHERE InviterID = ' $UserID ' " );
list ( $Pending ) = $DB -> next_record ();
2012-09-23 08:00:25 +00:00
if ( $DisableInvites ) {
echo 'X' ;
} else {
echo number_format ( $Invites );
}
2011-03-28 14:21:28 +00:00
echo " ( " . $Pending . " ) "
?> </li>
< ?
}
2011-10-19 08:00:13 +00:00
if ( ! isset ( $SupportFor )) {
$DB -> query ( " SELECT SupportFor FROM users_info WHERE UserID = " . $LoggedUser [ 'ID' ]);
list ( $SupportFor ) = $DB -> next_record ();
}
2012-07-09 08:00:09 +00:00
if ( $Override = check_perms ( 'users_mod' ) || $OwnProfile || ! empty ( $SupportFor )) {
2011-10-19 08:00:13 +00:00
?>
2012-07-09 08:00:09 +00:00
< li < ? = $Override === 2 || $SupportFor ? 'class="paranoia_override"' : '' ?> >Clients: <?
2011-10-19 08:00:13 +00:00
$DB -> query ( " SELECT DISTINCT useragent FROM xbt_files_users WHERE uid = " . $UserID );
2013-02-09 08:01:01 +00:00
$Clients = $DB -> collect ( 0 );
echo implode ( " ; " , $Clients );
2011-10-19 08:00:13 +00:00
?> </li>
< ?
}
2011-03-28 14:21:28 +00:00
?>
</ ul >
</ div >
< ?
2012-10-03 08:00:16 +00:00
include ( SERVER_ROOT . '/sections/user/community_stats.php' );
2012-11-16 08:00:21 +00:00
?>
</ div >
< div class = " main_column " >
< ?
if ( $RatioWatchEnds != '0000-00-00 00:00:00'
&& ( time () < strtotime ( $RatioWatchEnds ))
&& ( $Downloaded * $RequiredRatio ) > $Uploaded
) {
?>
< div class = " box " >
< div class = " head " > Ratio watch </ div >
< div class = " pad " > This user is currently on ratio watch and must upload < ? = Format :: get_size (( $Downloaded * $RequiredRatio ) - $Uploaded ) ?> in the next <?=time_diff($RatioWatchEnds)?>, or their leeching privileges will be revoked. Amount downloaded while on ratio watch: <?=Format::get_size($Downloaded-$RatioWatchDownload)?></div>
</ div >
< ? } ?>
< div class = " box " >
< div class = " head " >
2013-03-01 08:00:40 +00:00
< span style = " float:left; " > Profile & nbsp ; -& nbsp ; </ span >
< span class = " user_title " >< ? if ( $CustomTitle ) { echo html_entity_decode ( $DisplayCustomTitle ); } ?> </span>
2013-02-23 08:00:22 +00:00
< span style = " float:right; " >< ? =! empty ( $Badges ) ? " $Badges " : '' ?> <a href="#" onclick="$('#profilediv').toggle(); this.innerHTML=(this.innerHTML=='Hide'?'Show':'Hide'); return false;" class="brackets">Hide</a></span>
2012-11-16 08:00:21 +00:00
</ div >
< div class = " pad " id = " profilediv " >
< ? if ( ! $Info ) { ?>
This profile is currently empty .
< ?
} else {
echo $Text -> full_format ( $Info );
}
?>
</ div >
</ div >
< ?
if ( $Snatched > 4 && check_paranoia_here ( 'snatched' )) {
$RecentSnatches = $Cache -> get_value ( 'recent_snatches_' . $UserID );
if ( ! is_array ( $RecentSnatches )){
$DB -> query ( " SELECT
g . ID ,
g . Name ,
g . WikiImage
FROM xbt_snatched AS s
INNER JOIN torrents AS t ON t . ID = s . fid
INNER JOIN torrents_group AS g ON t . GroupID = g . ID
WHERE s . uid = '$UserID'
AND g . CategoryID = '1'
AND g . WikiImage <> ''
GROUP BY g . ID
ORDER BY s . tstamp DESC
LIMIT 5 " );
$RecentSnatches = $DB -> to_array ();
$Artists = Artists :: get_artists ( $DB -> collect ( 'ID' ));
foreach ( $RecentSnatches as $Key => $SnatchInfo ) {
$RecentSnatches [ $Key ][ 'Artist' ] = Artists :: display_artists ( $Artists [ $SnatchInfo [ 'ID' ]], false , true );
}
$Cache -> cache_value ( 'recent_snatches_' . $UserID , $RecentSnatches , 0 ); //inf cache
}
?>
< table class = " layout recent " id = " recent_snatches " cellpadding = " 0 " cellspacing = " 0 " border = " 0 " >
< tr class = " colhead " >
2013-02-18 08:00:22 +00:00
< td colspan = " 5 " > Recent snatches </ td >
2012-11-16 08:00:21 +00:00
</ tr >
< tr >
< ?
foreach ( $RecentSnatches as $RS ) { ?>
< td >
2013-02-25 21:16:55 +00:00
< a href = " torrents.php?id=<?= $RS['ID'] ?> " title = " <?=display_str( $RS['Artist'] )?><?=display_str( $RS['Name'] )?> " >< img src = " <?=ImageTools::thumbnail( $RS['WikiImage'] )?> " alt = " <?=display_str( $RS['Artist'] )?><?=display_str( $RS['Name'] )?> " width = " 107 " /></ a >
2012-11-16 08:00:21 +00:00
</ td >
< ? } ?>
</ tr >
</ table >
< ?
}
if ( ! isset ( $Uploads )) { $Uploads = 0 ; }
if ( $Uploads > 4 && check_paranoia_here ( 'uploads' )) {
$RecentUploads = $Cache -> get_value ( 'recent_uploads_' . $UserID );
if ( ! is_array ( $RecentUploads )){
$DB -> query ( " SELECT
g . ID ,
g . Name ,
g . WikiImage
FROM torrents_group AS g
INNER JOIN torrents AS t ON t . GroupID = g . ID
WHERE t . UserID = '$UserID'
AND g . CategoryID = '1'
AND g . WikiImage <> ''
GROUP BY g . ID
ORDER BY t . Time DESC
LIMIT 5 " );
$RecentUploads = $DB -> to_array ();
$Artists = Artists :: get_artists ( $DB -> collect ( 'ID' ));
foreach ( $RecentUploads as $Key => $UploadInfo ) {
$RecentUploads [ $Key ][ 'Artist' ] = Artists :: display_artists ( $Artists [ $UploadInfo [ 'ID' ]], false , true );
}
$Cache -> cache_value ( 'recent_uploads_' . $UserID , $RecentUploads , 0 ); //inf cache
}
?>
< table class = " layout recent " id = " recent_uploads " cellpadding = " 0 " cellspacing = " 0 " border = " 0 " >
< tr class = " colhead " >
2013-02-18 08:00:22 +00:00
< td colspan = " 5 " > Recent uploads </ td >
2012-11-16 08:00:21 +00:00
</ tr >
< tr >
< ? foreach ( $RecentUploads as $RU ) { ?>
< td >
2013-02-25 21:16:55 +00:00
< a href = " torrents.php?id=<?= $RU['ID'] ?> " title = " <?= $RU['Artist'] ?><?= $RU['Name'] ?> " >< img src = " <?=ImageTools::thumbnail( $RU['WikiImage'] )?> " alt = " <?= $RU['Artist'] ?><?= $RU['Name'] ?> " width = " 107 " /></ a >
2012-11-16 08:00:21 +00:00
</ td >
< ? } ?>
</ tr >
</ table >
< ?
}
$DB -> query ( " SELECT ID, Name FROM collages WHERE UserID=' $UserID ' AND CategoryID='0' AND Deleted='0' ORDER BY Featured DESC, Name ASC " );
$Collages = $DB -> to_array ();
$FirstCol = true ;
foreach ( $Collages as $CollageInfo ) {
list ( $CollageID , $CName ) = $CollageInfo ;
$DB -> query ( " SELECT ct.GroupID,
tg . WikiImage ,
tg . CategoryID
FROM collages_torrents AS ct
JOIN torrents_group AS tg ON tg . ID = ct . GroupID
WHERE ct . CollageID = '$CollageID'
ORDER BY ct . Sort LIMIT 5 " );
$Collage = $DB -> to_array ();
?>
< table class = " layout recent " id = " collage<?= $CollageID ?> " cellpadding = " 0 " cellspacing = " 0 " border = " 0 " >
< tr class = " colhead " >
< td colspan = " 5 " >
< span style = " float:left; " >
2013-02-09 08:01:01 +00:00
< ? = display_str ( $CName ) ?> - <a href="collages.php?id=<?=$CollageID?>" class="brackets">See full</a>
2012-11-16 08:00:21 +00:00
</ span >
< span style = " float:right; " >
2013-02-23 08:00:22 +00:00
< a href = " # " onclick = " $ ('#collage<?= $CollageID ?> .images').toggle(); this.innerHTML=(this.innerHTML=='Hide'?'Show':'Hide'); return false; " class = " brackets " >< ? = $FirstCol ? 'Hide' : 'Show' ?> </a>
2012-11-16 08:00:21 +00:00
</ span >
</ td >
</ tr >
2013-02-23 08:00:22 +00:00
< tr class = " images<?= $FirstCol ? '' : ' hidden'?> " >
2012-11-16 08:00:21 +00:00
< ? foreach ( $Collage as $C ) {
$Group = Torrents :: get_groups ( array ( $C [ 'GroupID' ]));
$Group = array_pop ( $Group [ 'matches' ]);
2013-02-25 21:16:55 +00:00
extract ( Torrents :: array_group ( $Group ));
2012-11-16 08:00:21 +00:00
$Name = '' ;
2013-02-25 21:16:55 +00:00
$Name .= Artists :: display_artists ( array ( '1' => $Artists ), false , true );
2012-11-16 08:00:21 +00:00
$Name .= $GroupName ;
?>
< td >
2013-02-25 21:16:55 +00:00
< a href = " torrents.php?id=<?= $GroupID ?> " title = " <?= $Name ?> " >< img src = " <?=ImageTools::thumbnail( $C['WikiImage'] )?> " alt = " <?= $Name ?> " width = " 107 " /></ a >
2012-11-16 08:00:21 +00:00
</ td >
< ? } ?>
</ tr >
</ table >
< ?
$FirstCol = false ;
}
2013-01-02 08:00:26 +00:00
2011-03-28 14:21:28 +00:00
2012-02-04 08:00:25 +00:00
// Linked accounts
if ( check_perms ( 'users_mod' )) {
include ( SERVER_ROOT . '/sections/user/linkedfunctions.php' );
user_dupes_table ( $UserID );
}
2011-03-28 14:21:28 +00:00
if (( check_perms ( 'users_view_invites' )) && $Invited > 0 ) {
include ( SERVER_ROOT . '/classes/class_invite_tree.php' );
$Tree = new INVITE_TREE ( $UserID , array ( 'visible' => false ));
?>
< div class = " box " >
2013-02-23 08:00:22 +00:00
< div class = " head " > Invite tree < a href = " # " onclick = " $ ('#invitetree').toggle();return false; " class = " brackets " > View </ a ></ div >
2011-03-28 14:21:28 +00:00
< div id = " invitetree " class = " hidden " >
< ? $Tree -> make_tree (); ?>
</ div >
</ div >
< ?
}
// Requests
if ( check_paranoia_here ( 'requestsvoted_list' )) {
$DB -> query ( " SELECT
r . ID ,
r . CategoryID ,
r . Title ,
r . Year ,
r . TimeAdded ,
COUNT ( rv . UserID ) AS Votes ,
SUM ( rv . Bounty ) AS Bounty
FROM requests AS r
LEFT JOIN users_main AS u ON u . ID = UserID
LEFT JOIN requests_votes AS rv ON rv . RequestID = r . ID
WHERE r . UserID = " . $UserID . "
AND r . TorrentID = 0
GROUP BY r . ID
ORDER BY Votes DESC " );
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
if ( $DB -> record_count () > 0 ) {
$Requests = $DB -> to_array ();
?>
< div class = " box " >
2013-02-23 08:00:22 +00:00
< div class = " head " > Requests < a href = " # " onclick = " $ ('#requests').toggle();return false; " class = " brackets " > View </ a ></ div >
2012-09-01 08:00:24 +00:00
< div id = " requests " class = " request_table hidden " >
2011-03-28 14:21:28 +00:00
< table cellpadding = " 6 " cellspacing = " 1 " border = " 0 " class = " border " width = " 100% " >
< tr class = " colhead_dark " >
< td style = " width:48%; " >
2013-02-09 08:01:01 +00:00
< strong > Request name </ strong >
2011-03-28 14:21:28 +00:00
</ td >
< td >
< strong > Vote </ strong >
</ td >
< td >
< strong > Bounty </ strong >
</ td >
< td >
< strong > Added </ strong >
</ td >
</ tr >
< ?
foreach ( $Requests as $Request ) {
list ( $RequestID , $CategoryID , $Title , $Year , $TimeAdded , $Votes , $Bounty ) = $Request ;
2012-10-11 08:00:15 +00:00
$Request = Requests :: get_requests ( array ( $RequestID ));
2011-03-28 14:21:28 +00:00
$Request = $Request [ 'matches' ][ $RequestID ];
if ( empty ( $Request )) {
continue ;
}
list ( $RequestID , $RequestorID , $RequestorName , $TimeAdded , $LastVote , $CategoryID , $Title , $Year , $Image , $Description , $CatalogueNumber , $ReleaseType ,
$BitrateList , $FormatList , $MediaList , $LogCue , $FillerID , $FillerName , $TorrentID , $TimeFilled ) = $Request ;
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
$CategoryName = $Categories [ $CategoryID - 1 ];
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
if ( $CategoryName == " Music " ) {
$ArtistForm = get_request_artists ( $RequestID );
2012-10-11 08:00:15 +00:00
$ArtistLink = Artists :: display_artists ( $ArtistForm , true , true );
2011-03-28 14:21:28 +00:00
$FullName = $ArtistLink . " <a href='requests.php?action=view&id= " . $RequestID . " '> " . $Title . " [ " . $Year . " ]</a> " ;
} else if ( $CategoryName == " Audiobooks " || $CategoryName == " Comedy " ) {
$FullName = " <a href='requests.php?action=view&id= " . $RequestID . " '> " . $Title . " [ " . $Year . " ]</a> " ;
} else {
$FullName = " <a href='requests.php?action=view&id= " . $RequestID . " '> " . $Title . " </a> " ;
}
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
$Row = ( empty ( $Row ) || $Row == 'a' ) ? 'b' : 'a' ;
?>
< tr class = " row<?= $Row ?> " >
< td >
< ? = $FullName ?>
< div class = " tags " >
2012-10-11 08:00:15 +00:00
< ?
2011-03-28 14:21:28 +00:00
$Tags = $Request [ 'Tags' ];
$TagList = array ();
foreach ( $Tags as $TagID => $TagName ) {
2011-04-13 15:36:33 +00:00
$TagList [] = " <a href='requests.php?tags= " . $TagName . " '> " . display_str ( $TagName ) . " </a> " ;
2011-03-28 14:21:28 +00:00
}
$TagList = implode ( ', ' , $TagList );
?>
< ? = $TagList ?>
</ div >
</ td >
< td >
2011-06-27 08:00:06 +00:00
< span id = " vote_count_<?= $RequestID ?> " >< ? = $Votes ?> </span>
2013-02-07 08:00:47 +00:00
< ? if ( check_perms ( 'site_vote' )){ ?>
2013-02-18 08:00:22 +00:00
& nbsp ; & nbsp ; < a href = " javascript:Vote(0, <?= $RequestID ?>) " class = " brackets " >+</ a >
2012-10-11 08:00:15 +00:00
< ? } ?>
2011-03-28 14:21:28 +00:00
</ td >
< td >
2012-10-11 08:00:15 +00:00
< span id = " bounty_<?= $RequestID ?> " >< ? = Format :: get_size ( $Bounty ) ?> </span>
2011-03-28 14:21:28 +00:00
</ td >
< td >
< ? = time_diff ( $TimeAdded ) ?>
</ td >
</ tr >
< ? } ?>
</ table >
</ div >
</ div >
< ?
}
}
2011-08-22 08:00:05 +00:00
2012-03-31 08:00:23 +00:00
$IsFLS = $LoggedUser [ 'ExtraClasses' ][ 41 ];
2012-10-11 08:00:15 +00:00
if ( check_perms ( 'users_mod' , $Class ) || $IsFLS ) {
2012-03-28 08:00:20 +00:00
$UserLevel = $LoggedUser [ 'EffectiveClass' ];
2012-10-11 08:00:15 +00:00
$DB -> query ( " SELECT
2011-08-22 08:00:05 +00:00
SQL_CALC_FOUND_ROWS
2012-10-11 08:00:15 +00:00
ID ,
Subject ,
Status ,
Level ,
AssignedToUser ,
Date ,
ResolverID
FROM staff_pm_conversations
2011-08-22 08:00:05 +00:00
WHERE UserID = $UserID AND ( Level <= $UserLevel OR AssignedToUser = '".$LoggedUser[' ID ']."' )
ORDER BY Date DESC " );
if ( $DB -> record_count ()) {
$StaffPMs = $DB -> to_array ();
?>
< div class = " box " >
2013-02-23 08:00:22 +00:00
< div class = " head " > Staff PMs < a href = " # " onclick = " $ ('#staffpms').toggle();return false; " class = " brackets " > View </ a ></ div >
2012-09-01 08:00:24 +00:00
< table width = " 100% " class = " message_table hidden " id = " staffpms " >
2011-08-22 08:00:05 +00:00
< tr class = " colhead " >
< td > Subject </ td >
< td > Date </ td >
2013-02-09 08:01:01 +00:00
< td > Assigned to </ td >
< td > Resolved by </ td >
2011-08-22 08:00:05 +00:00
</ tr >
< ? foreach ( $StaffPMs as $StaffPM ) {
list ( $ID , $Subject , $Status , $Level , $AssignedTo , $Date , $ResolverID ) = $StaffPM ;
// Get assigned
if ( $AssignedToUser == '' ) {
// Assigned to class
$Assigned = ( $Level == 0 ) ? " First Line Support " : $ClassLevels [ $Level ][ 'Name' ];
// No + on Sysops
if ( $Assigned != 'Sysop' ) { $Assigned .= " + " ; }
2012-10-11 08:00:15 +00:00
2011-08-22 08:00:05 +00:00
} else {
// Assigned to user
2012-10-11 08:00:15 +00:00
$Assigned = Users :: format_username ( $UserID , true , true , true , true );
}
2011-08-22 08:00:05 +00:00
if ( $ResolverID ) {
2012-10-11 08:00:15 +00:00
$Resolver = Users :: format_username ( $ResolverID , true , true , true , true );
2011-08-22 08:00:05 +00:00
} else {
$Resolver = " (unresolved) " ;
}
2012-10-11 08:00:15 +00:00
2011-08-22 08:00:05 +00:00
?>
< tr >
< td >< a href = " staffpm.php?action=viewconv&id=<?= $ID ?> " >< ? = display_str ( $Subject ) ?> </a></td>
< td >< ? = time_diff ( $Date , 2 , true ) ?> </td>
< td >< ? = $Assigned ?> </td>
< td >< ? = $Resolver ?> </td>
</ tr >
2012-10-11 08:00:15 +00:00
< ? } ?>
2011-08-22 08:00:05 +00:00
</ table >
</ div >
< ? }
}
2011-03-28 14:21:28 +00:00
?>
< br />
2011-08-22 08:00:05 +00:00
< ?
2012-10-05 08:00:20 +00:00
// Displays a table of forum warnings viewable only to Forum Moderators
2012-08-28 08:00:14 +00:00
if ( $LoggedUser [ 'Class' ] == 650 && check_perms ( 'users_warn' , $Class )) {
$DB -> query ( " SELECT Comment FROM users_warnings_forums WHERE UserID = ' $UserID ' " );
list ( $ForumWarnings ) = $DB -> next_record ();
if ( $DB -> record_count () > 0 ) {
?>
< div class = " box " >
2013-02-18 08:00:22 +00:00
< div class = " head " > Forum warnings </ div >
2012-08-28 08:00:14 +00:00
< div class = " pad " >
< div id = " forumwarningslinks " class = " AdminComment box " style = " width:98%; " >< ? = $Text -> full_format ( $ForumWarnings ) ?> </div>
</ div >
</ div >
< br />
2012-10-11 08:00:15 +00:00
< ?
2012-08-28 08:00:14 +00:00
}
}
2011-08-22 08:00:05 +00:00
if ( check_perms ( 'users_mod' , $Class )) { ?>
2012-09-15 08:00:25 +00:00
< form class = " manage_form " name = " user " id = " form " action = " user.php " method = " post " >
2011-03-28 14:21:28 +00:00
< input type = " hidden " name = " action " value = " moderate " />
< input type = " hidden " name = " userid " value = " <?= $UserID ?> " />
< input type = " hidden " name = " auth " value = " <?= $LoggedUser['AuthKey'] ?> " />
< div class = " box " >
2013-02-18 08:00:22 +00:00
< div class = " head " > Staff notes
2013-02-23 08:00:22 +00:00
< a href = " # " name = " admincommentbutton " onclick = " ChangeTo('text'); return false; " class = " brackets " > Edit </ a >
< a href = " # " onclick = " $ ('#staffnotes').toggle(); return false; " class = " brackets " > Toggle </ a >
2013-01-15 08:00:37 +00:00
</ div >
< div id = " staffnotes " class = " pad " >
2012-09-26 07:15:36 +00:00
< input type = " hidden " name = " comment_hash " value = " <?= $CommentHash ?> " />
2011-03-28 14:21:28 +00:00
< div id = " admincommentlinks " class = " AdminComment box " style = " width:98%; " >< ? = $Text -> full_format ( $AdminComment ) ?> </div>
< textarea id = " admincomment " onkeyup = " resize('admincomment'); " class = " AdminComment hidden " name = " AdminComment " cols = " 65 " rows = " 26 " style = " width:98%; " >< ? = display_str ( $AdminComment ) ?> </textarea>
2013-02-18 08:00:22 +00:00
< a href = " # " name = " admincommentbutton " onclick = " ChangeTo('text'); return false; " class = " brackets " > Toggle edit </ a >
2011-03-28 14:21:28 +00:00
< script type = " text/javascript " >
resize ( 'admincomment' );
</ script >
</ div >
</ div >
2012-09-01 08:00:24 +00:00
< table class = " layout " >
< tr class = " colhead " >
2013-02-18 08:00:22 +00:00
< td colspan = " 2 " > User information </ td >
2011-03-28 14:21:28 +00:00
</ tr >
< ? if ( check_perms ( 'users_edit_usernames' , $Class )) { ?>
< tr >
< td class = " label " > Username :</ td >
< td >< input type = " text " size = " 20 " name = " Username " value = " <?=display_str( $Username )?> " /></ td >
</ tr >
< ?
}
if ( check_perms ( 'users_edit_titles' )) {
?>
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " > Custom title :</ td >
2011-03-28 14:21:28 +00:00
< td >< input type = " text " size = " 50 " name = " Title " value = " <?=display_str( $CustomTitle )?> " /></ td >
</ tr >
< ?
}
if ( check_perms ( 'users_promote_below' , $Class ) || check_perms ( 'users_promote_to' , $Class - 1 )) {
?>
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " > Primary class :</ td >
2011-03-28 14:21:28 +00:00
< td >
< select name = " Class " >
< ?
foreach ( $ClassLevels as $CurClass ) {
2012-03-28 08:00:20 +00:00
if ( check_perms ( 'users_promote_below' , $Class ) && $CurClass [ 'ID' ] >= $LoggedUser [ 'EffectiveClass' ]) { break ; }
if ( $CurClass [ 'ID' ] > $LoggedUser [ 'EffectiveClass' ]) { break ; }
if ( $CurClass [ 'Secondary' ]) { continue ; }
2013-02-18 08:00:22 +00:00
if ( $Class === $CurClass [ 'Level' ]) { $Selected = ' selected="selected"' ; } else { $Selected = " " ; }
2011-03-28 14:21:28 +00:00
?>
2013-02-18 08:00:22 +00:00
< option value = " <?= $CurClass['ID'] ?> " < ? = $Selected ?> ><?=$CurClass['Name'].' ('.$CurClass['Level'].')'?></option>
2011-03-28 14:21:28 +00:00
< ? } ?>
</ select >
</ td >
</ tr >
< ?
}
if ( check_perms ( 'users_give_donor' )) {
?>
< tr >
< td class = " label " > Donor :</ td >
2013-02-18 08:00:22 +00:00
< td >< input type = " checkbox " name = " Donor " < ? if ( $Donor == 1 ) { ?> checked="checked"<? } ?> /></td>
2011-03-28 14:21:28 +00:00
</ tr >
< ?
}
2012-03-28 08:00:20 +00:00
if ( check_perms ( 'users_promote_below' ) || check_perms ( 'users_promote_to' )) { ?>
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " > Secondary classes :</ td >
2012-03-28 08:00:20 +00:00
< td >
2011-03-28 14:21:28 +00:00
< ?
2012-03-28 08:00:20 +00:00
$DB -> query ( " SELECT p.ID, p.Name, l.UserID
FROM permissions AS p
LEFT JOIN users_levels AS l ON l . PermissionID = p . ID AND l . UserID = '$UserID'
WHERE p . Secondary = 1
ORDER BY p . Name " );
$i = 0 ;
while ( list ( $PermID , $PermName , $IsSet ) = $DB -> next_record ()) {
$i ++ ;
?>
2013-02-18 08:00:22 +00:00
< input type = " checkbox " id = " perm_<?= $PermID ?> " name = " secondary_classes[] " value = " <?= $PermID ?> " < ? if ( $IsSet ) { ?> checked="checked"<? } ?> /> <label for="perm_<?=$PermID?>" style="margin-right: 10px;"><?=$PermName?></label>
2012-03-28 08:00:20 +00:00
< ? if ( $i % 5 == 0 ) { echo '<br />' ; }
} ?>
</ td >
</ tr >
< ? }
2011-03-28 14:21:28 +00:00
if ( check_perms ( 'users_make_invisible' )) {
?>
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " > Visible in peer lists :</ td >
< td >< input type = " checkbox " name = " Visible " < ? if ( $Visible == 1 ) { ?> checked="checked"<? } ?> /></td>
2011-03-28 14:21:28 +00:00
</ tr >
< ?
}
if ( check_perms ( 'users_edit_ratio' , $Class ) || ( check_perms ( 'users_edit_own_ratio' ) && $UserID == $LoggedUser [ 'ID' ])) {
?>
< tr >
2012-10-05 08:00:20 +00:00
< td class = " label " >< span title = " Upload amount in bytes. Also accepts e.g. +20GB or -35.6364MB on the end " > Uploaded :</ span ></ td >
2011-03-28 14:21:28 +00:00
< td >
< input type = " hidden " name = " OldUploaded " value = " <?= $Uploaded ?> " />
< input type = " text " size = " 20 " name = " Uploaded " value = " <?= $Uploaded ?> " />
</ td >
</ tr >
< tr >
2012-10-05 08:00:20 +00:00
< td class = " label " >< span title = " Download amount in bytes. Also accepts e.g. +20GB or -35.6364MB on the end " > Downloaded :</ span ></ td >
2011-03-28 14:21:28 +00:00
< td >
< input type = " hidden " name = " OldDownloaded " value = " <?= $Downloaded ?> " />
< input type = " text " size = " 20 " name = " Downloaded " value = " <?= $Downloaded ?> " />
</ td >
</ tr >
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " > Merge stats < strong > from :</ strong ></ td >
2011-03-28 14:21:28 +00:00
< td >
< input type = " text " size = " 40 " name = " MergeStatsFrom " />
</ td >
</ tr >
2011-10-27 08:00:15 +00:00
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " > Freeleech tokens :</ td >
2011-10-08 08:00:14 +00:00
< td >
< input type = " text " size = " 5 " name = " FLTokens " value = " <?= $FLTokens ?> " />
</ td >
2011-10-27 08:00:15 +00:00
</ tr >
2011-03-28 14:21:28 +00:00
< ?
}
if ( check_perms ( 'users_edit_invites' )) {
?>
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " >< span title = " Number of invites " > Invites :</ span ></ td >
2011-03-28 14:21:28 +00:00
< td >< input type = " text " size = " 5 " name = " Invites " value = " <?= $Invites ?> " /></ td >
</ tr >
< ?
}
if ( check_perms ( 'admin_manage_fls' ) || ( check_perms ( 'users_mod' ) && $OwnProfile )) {
?>
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " >< span title = " This is the message shown in the right-hand column on /staff.php " > FLS / Staff remark :</ span ></ td >
2011-03-28 14:21:28 +00:00
< td >< input type = " text " size = " 50 " name = " SupportFor " value = " <?=display_str( $SupportFor )?> " /></ td >
</ tr >
< ?
}
if ( check_perms ( 'users_edit_reset_keys' )) {
?>
< tr >
< td class = " label " > Reset :</ td >
< td >
2013-02-18 08:00:22 +00:00
< input type = " checkbox " name = " ResetRatioWatch " id = " ResetRatioWatch " /> < label for = " ResetRatioWatch " > Ratio watch </ label > |
2011-03-28 14:21:28 +00:00
< input type = " checkbox " name = " ResetPasskey " id = " ResetPasskey " /> < label for = " ResetPasskey " > Passkey </ label > |
< input type = " checkbox " name = " ResetAuthkey " id = " ResetAuthkey " /> < label for = " ResetAuthkey " > Authkey </ label > |
2013-02-18 08:00:22 +00:00
< input type = " checkbox " name = " ResetIPHistory " id = " ResetIPHistory " /> < label for = " ResetIPHistory " > IP history </ label > |
< input type = " checkbox " name = " ResetEmailHistory " id = " ResetEmailHistory " /> < label for = " ResetEmailHistory " > Email history </ label >
2011-03-28 14:21:28 +00:00
< br />
2013-02-18 08:00:22 +00:00
< input type = " checkbox " name = " ResetSnatchList " id = " ResetSnatchList " /> < label for = " ResetSnatchList " > Snatch list </ label > |
< input type = " checkbox " name = " ResetDownloadList " id = " ResetDownloadList " /> < label for = " ResetDownloadList " > Download list </ label >
2011-03-28 14:21:28 +00:00
</ td >
</ tr >
< ?
}
if ( check_perms ( 'users_mod' )) {
?>
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " > Reset all EAC v0 . 95 logs to :</ td >
2011-03-28 14:21:28 +00:00
< td >
< select name = " 095logs " >
< option value = " " ></ option >
< option value = " 99 " > 99 </ option >
< option value = " 100 " > 100 </ option >
</ select >
</ td >
</ tr >
< ? }
if ( check_perms ( 'users_edit_password' )) {
?>
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " > New password :</ td >
2011-03-28 14:21:28 +00:00
< td >
< input type = " text " size = " 30 " id = " change_password " name = " ChangePassword " />
</ td >
</ tr >
< ? } ?>
</ table >< br />
< ? if ( check_perms ( 'users_warn' )) { ?>
2012-09-01 08:00:24 +00:00
< table class = " layout " >
2011-03-28 14:21:28 +00:00
< tr class = " colhead " >
2013-02-18 08:00:22 +00:00
< td colspan = " 2 " > Warn user </ td >
2011-03-28 14:21:28 +00:00
</ tr >
< tr >
< td class = " label " > Warned :</ td >
< td >
2013-02-18 08:00:22 +00:00
< input type = " checkbox " name = " Warned " < ? if ( $Warned != '0000-00-00 00:00:00' ) { ?> checked="checked"<? } ?> />
2011-03-28 14:21:28 +00:00
</ td >
</ tr >
< ? if ( $Warned == '0000-00-00 00:00:00' ) { // user is not warned ?>
< tr >
< td class = " label " > Expiration :</ td >
< td >
< select name = " WarnLength " >
< option value = " " >---</ option >
2013-02-23 08:00:22 +00:00
< option value = " 1 " > 1 week </ option >
< option value = " 2 " > 2 weeks </ option >
< option value = " 4 " > 4 weeks </ option >
< option value = " 8 " > 8 weeks </ option >
2011-03-28 14:21:28 +00:00
</ select >
</ td >
</ tr >
< ? } else { // user is warned ?>
< tr >
< td class = " label " > Extension :</ td >
< td >
2012-09-20 08:00:49 +00:00
< select name = " ExtendWarning " onchange = " ToggleWarningAdjust(this) " >
2012-03-03 08:00:28 +00:00
< option >---</ option >
2013-02-23 08:00:22 +00:00
< option value = " 1 " > 1 week </ option >
< option value = " 2 " > 2 weeks </ option >
< option value = " 4 " > 4 weeks </ option >
< option value = " 8 " > 8 weeks </ option >
2012-03-03 08:00:28 +00:00
</ select >
</ td >
</ tr >
< tr id = " ReduceWarningTR " >
< td class = " label " > Reduction :</ td >
< td >
2012-09-15 08:00:25 +00:00
< select name = " ReduceWarning " >
2011-03-28 14:21:28 +00:00
< option >---</ option >
2013-02-23 08:00:22 +00:00
< option value = " 1 " > 1 week </ option >
< option value = " 2 " > 2 weeks </ option >
< option value = " 4 " > 4 weeks </ option >
< option value = " 8 " > 8 weeks </ option >
2011-03-28 14:21:28 +00:00
</ select >
</ td >
</ tr >
< ? } ?>
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " >< span title = " This message *will* be sent to the user in the warning PM! " > Warning reason :</ span ></ td >
2011-03-28 14:21:28 +00:00
< td >
< input type = " text " size = " 60 " name = " WarnReason " />
</ td >
</ tr >
< ? } ?>
</ table >< br />
2012-09-01 08:00:24 +00:00
< table class = " layout " >
2013-02-18 08:00:22 +00:00
< tr class = " colhead " >< td colspan = " 2 " > User privileges </ td ></ tr >
2011-03-28 14:21:28 +00:00
< ? if ( check_perms ( 'users_disable_posts' ) || check_perms ( 'users_disable_any' )) {
$DB -> query ( " SELECT DISTINCT Email, IP FROM users_history_emails WHERE UserID = " . $UserID . " ORDER BY Time ASC " );
$Emails = $DB -> to_array ();
?>
< tr >
< td class = " label " > Disable :</ td >
< td >
2013-02-07 08:00:47 +00:00
< input type = " checkbox " name = " DisablePosting " id = " DisablePosting " < ? if ( $DisablePosting == 1 ) { ?> checked="checked"<? } ?> /> <label for="DisablePosting">Posting</label>
< ? if ( check_perms ( 'users_disable_any' )) { ?> |
< input type = " checkbox " name = " DisableAvatar " id = " DisableAvatar " < ? if ( $DisableAvatar == 1 ) { ?> checked="checked"<? } ?> /> <label for="DisableAvatar">Avatar</label> |
< input type = " checkbox " name = " DisableInvites " id = " DisableInvites " < ? if ( $DisableInvites == 1 ) { ?> checked="checked"<? } ?> /> <label for="DisableInvites">Invites</label> |
< input type = " checkbox " name = " DisableForums " id = " DisableForums " < ? if ( $DisableForums == 1 ) { ?> checked="checked"<? } ?> /> <label for="DisableForums">Forums</label> |
< input type = " checkbox " name = " DisableTagging " id = " DisableTagging " < ? if ( $DisableTagging == 1 ) { ?> checked="checked"<? } ?> /> <label for="DisableTagging" title="This only disables a user's ability to delete tags.">Tagging</label> |
< input type = " checkbox " name = " DisableRequests " id = " DisableRequests " < ? if ( $DisableRequests == 1 ) { ?> checked="checked"<? } ?> /> <label for="DisableRequests">Requests</label>
2011-03-28 14:21:28 +00:00
< br />
2013-02-07 08:00:47 +00:00
< input type = " checkbox " name = " DisableUpload " id = " DisableUpload " < ? if ( $DisableUpload == 1 ) { ?> checked="checked"<? } ?> /> <label for="DisableUpload">Upload</label> |
< input type = " checkbox " name = " DisableWiki " id = " DisableWiki " < ? if ( $DisableWiki == 1 ) { ?> checked="checked"<? } ?> /> <label for="DisableWiki">Wiki</label> |
< input type = " checkbox " name = " DisableLeech " id = " DisableLeech " < ? if ( $DisableLeech == 0 ) { ?> checked="checked"<? } ?> /> <label for="DisableLeech">Leech</label> |
< input type = " checkbox " name = " DisablePM " id = " DisablePM " < ? if ( $DisablePM == 1 ) { ?> checked="checked"<? } ?> /> <label for="DisablePM">PM</label> |
< input type = " checkbox " name = " DisableIRC " id = " DisableIRC " < ? if ( $DisableIRC == 1 ) { ?> checked="checked"<? } ?> /> <label for="DisableIRC">IRC</label>
2011-03-28 14:21:28 +00:00
</ td >
</ tr >
< tr >
< td class = " label " > Hacked :</ td >
< td >
2012-10-11 08:00:15 +00:00
< input type = " checkbox " name = " SendHackedMail " id = " SendHackedMail " /> < label for = " SendHackedMail " > Send hacked account email </ label > to
2011-03-28 14:21:28 +00:00
< select name = " HackedEmail " >
< ?
foreach ( $Emails as $Email ) {
list ( $Address , $IP ) = $Email ;
?>
< option value = " <?=display_str( $Address )?> " >< ? = display_str ( $Address ) ?> - <?=display_str($IP)?></option>
< ? } ?>
</ select >
</ td >
</ tr >
< ? } ?>
< ?
}
if ( check_perms ( 'users_disable_any' )) {
?>
< tr >
< td class = " label " > Account :</ td >
< td >
< select name = " UserStatus " >
2013-02-18 08:00:22 +00:00
< option value = " 0 " < ? if ( $Enabled == '0' ) { ?> selected="selected"<? } ?>>Unconfirmed</option>
< option value = " 1 " < ? if ( $Enabled == '1' ) { ?> selected="selected"<? } ?>>Enabled</option>
< option value = " 2 " < ? if ( $Enabled == '2' ) { ?> selected="selected"<? } ?>>Disabled</option>
2011-03-28 14:21:28 +00:00
< ? if ( check_perms ( 'users_delete_users' )) { ?>
< optgroup label = " -- WARNING -- " ></ optgroup >
2013-02-18 08:00:22 +00:00
< option value = " delete " > Delete account </ option >
2011-03-28 14:21:28 +00:00
< ? } ?>
</ select >
</ td >
</ tr >
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " > User reason :</ td >
2011-03-28 14:21:28 +00:00
< td >
< input type = " text " size = " 60 " name = " UserReason " />
</ td >
</ tr >
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " >< span title = " Enter a comma-delimited list of forum IDs " > Restricted forums :</ span ></ td >
2011-10-11 08:00:15 +00:00
< td >
< input type = " text " size = " 60 " name = " RestrictedForums " value = " <?=display_str( $RestrictedForums )?> " />
</ td >
</ tr >
< tr >
2013-02-18 08:00:22 +00:00
< td class = " label " >< span title = " Enter a comma-delimited list of forum IDs " > Extra forums :</ span ></ td >
2011-10-11 08:00:15 +00:00
< td >
< input type = " text " size = " 60 " name = " PermittedForums " value = " <?=display_str( $PermittedForums )?> " />
</ td >
</ tr >
2011-03-28 14:21:28 +00:00
< ? } ?>
</ table >< br />
< ? if ( check_perms ( 'users_logout' )) { ?>
2012-09-01 08:00:24 +00:00
< table class = " layout " >
2011-03-28 14:21:28 +00:00
< tr class = " colhead " >< td colspan = " 2 " > Session </ td ></ tr >
< tr >
< td class = " label " > Reset session :</ td >
< td >< input type = " checkbox " name = " ResetSession " id = " ResetSession " /></ td >
</ tr >
< tr >
< td class = " label " > Log out :</ td >
< td >< input type = " checkbox " name = " LogOut " id = " LogOut " /></ td >
</ tr >
</ table >
< ? } ?>
2012-09-01 08:00:24 +00:00
< table class = " layout " >
2011-03-28 14:21:28 +00:00
< tr class = " colhead " >< td colspan = " 2 " > Submit </ td ></ tr >
< tr >
2012-10-05 08:00:20 +00:00
< td class = " label " >< span title = " This message will be entered into staff notes only. " > Reason :</ span ></ td >
2011-03-28 14:21:28 +00:00
< td >
< textarea rows = " 1 " cols = " 50 " name = " Reason " id = " Reason " onkeyup = " resize('Reason'); " ></ textarea >
</ td >
</ tr >
< tr >
< td align = " right " colspan = " 2 " >
2013-02-18 08:00:22 +00:00
< input type = " submit " value = " Save changes " />
2011-03-28 14:21:28 +00:00
</ td >
</ tr >
</ table >
</ form >
< ? } ?>
</ div >
</ div >
2012-10-11 08:00:15 +00:00
< ? View :: show_footer (); ?>