2023-03-11 12:04:29 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
if (!defined('BB_ROOT')) die(basename(__FILE__));
|
|
|
|
|
|
|
|
require(INC_DIR .'bbcode.php');
|
|
|
|
|
|
|
|
$datastore->enqueue(array(
|
|
|
|
'ranks',
|
|
|
|
));
|
|
|
|
|
2023-06-29 17:20:56 +03:00
|
|
|
if (!$userdata['session_logged_in'])
|
2023-03-11 12:04:29 +03:00
|
|
|
{
|
2023-06-29 17:20:56 +03:00
|
|
|
redirect(LOGIN_URL . "?redirect={$_SERVER['REQUEST_URI']}");
|
2023-03-11 12:04:29 +03:00
|
|
|
}
|
2023-06-29 17:20:56 +03:00
|
|
|
else
|
2023-03-11 12:04:29 +03:00
|
|
|
{
|
2023-06-29 17:20:56 +03:00
|
|
|
if (empty($_GET[POST_USERS_URL]))
|
|
|
|
{
|
|
|
|
$_GET[POST_USERS_URL] = $userdata['user_id'];
|
|
|
|
}
|
2023-03-11 12:04:29 +03:00
|
|
|
}
|
|
|
|
|
2023-06-29 17:20:56 +03:00
|
|
|
if (!$profiledata = get_userdata($_GET[POST_USERS_URL]))
|
2023-03-11 12:04:29 +03:00
|
|
|
{
|
2023-06-29 17:20:56 +03:00
|
|
|
bb_die($lang['NO_USER_ID_SPECIFIED']);
|
2023-03-11 12:04:29 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
if (!$ranks = $datastore->get('ranks'))
|
|
|
|
{
|
|
|
|
$datastore->update('ranks');
|
|
|
|
$ranks = $datastore->get('ranks');
|
|
|
|
}
|
|
|
|
|
|
|
|
$poster_rank = $rank_image= $rank_style = $rank_select = '';
|
|
|
|
if ($user_rank = $profiledata['user_rank'] AND isset($ranks[$user_rank]))
|
|
|
|
{
|
|
|
|
$rank_image = ($ranks[$user_rank]['rank_image']) ? '<img src="'. $ranks[$user_rank]['rank_image'] .'" alt="" title="" border="0" />' : '';
|
|
|
|
$poster_rank = $ranks[$user_rank]['rank_title'];
|
|
|
|
$rank_style = $ranks[$user_rank]['rank_style'];
|
|
|
|
}
|
|
|
|
if (IS_ADMIN)
|
|
|
|
{
|
|
|
|
$rank_select = array($lang['NONE'] => 0);
|
|
|
|
foreach ($ranks as $row)
|
|
|
|
{
|
|
|
|
$rank_select[$row['rank_title']] = $row['rank_id'];
|
|
|
|
}
|
|
|
|
$rank_select = build_select('rank-sel', $rank_select, $user_rank);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (bf($profiledata['user_opt'], 'user_opt', 'user_viewemail') || $profiledata['user_id'] == $userdata['user_id'] || IS_AM)
|
|
|
|
{
|
|
|
|
$email_uri = ($bb_cfg['board_email_form']) ? 'profile.php?mode=email&'. POST_USERS_URL .'='. $profiledata['user_id'] : 'mailto:'. $profiledata['user_email'];
|
|
|
|
$email = '<a class="editable" href="'. $email_uri .'">'. $profiledata['user_email'] .'</a>';
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
$email = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
//
|
|
|
|
// Generate page
|
|
|
|
//
|
|
|
|
|
|
|
|
$profile_user_id = ($profiledata['user_id'] == $userdata['user_id']);
|
|
|
|
|
|
|
|
$signature = ($bb_cfg['allow_sig'] && $profiledata['user_sig']) ? $profiledata['user_sig'] : '';
|
|
|
|
|
|
|
|
if(bf($profiledata['user_opt'], 'user_opt', 'dis_sig'))
|
|
|
|
{
|
|
|
|
if($profile_user_id)
|
|
|
|
{
|
|
|
|
$signature = $lang['SIGNATURE_DISABLE'];
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
$signature = '';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if ($signature)
|
|
|
|
{
|
|
|
|
$signature = bbcode2html($signature);
|
|
|
|
}
|
|
|
|
|
|
|
|
$template->assign_vars(array(
|
|
|
|
'PAGE_TITLE' => sprintf($lang['VIEWING_USER_PROFILE'], $profiledata['username']),
|
|
|
|
'USERNAME' => $profiledata['username'],
|
|
|
|
'PROFILE_USER_ID' => $profiledata['user_id'],
|
|
|
|
'PROFILE_USER' => $profile_user_id,
|
|
|
|
'USER_REGDATE' => bb_date($profiledata['user_regdate'], 'Y-m-d H:i', false),
|
|
|
|
'POSTER_RANK' => ($poster_rank) ? "<span class=\"$rank_style\">". $poster_rank ."</span>" : $lang['USER'],
|
|
|
|
'RANK_IMAGE' => $rank_image,
|
|
|
|
'RANK_SELECT' => $rank_select,
|
|
|
|
'POSTS' => $profiledata['user_posts'],
|
|
|
|
'PM' => '<a href="' . PM_URL . '?mode=post&'. POST_USERS_URL .'='. $profiledata['user_id'] .'">'. $lang['SEND_PRIVATE_MESSAGE'] .'</a>',
|
|
|
|
'EMAIL' => $email,
|
|
|
|
'WWW' => $profiledata['user_website'],
|
|
|
|
'ICQ' => $profiledata['user_icq'],
|
2023-04-05 18:44:23 +03:00
|
|
|
'LAST_VISIT_TIME' => ($profiledata['user_lastvisit']) ? (!$profile_user_id && bf($profiledata['user_opt'], 'user_opt', 'user_viewonline') && !IS_ADMIN) ? $lang['HIDDEN_USER'] : bb_date($profiledata['user_lastvisit'], 'Y-m-d H:i', false) : $lang['NEVER'],
|
|
|
|
'LAST_ACTIVITY_TIME' => ($profiledata['user_session_time']) ? (!$profile_user_id && bf($profiledata['user_opt'], 'user_opt', 'user_viewonline') && !IS_ADMIN) ? $lang['HIDDEN_USER'] : bb_date($profiledata['user_session_time'], 'Y-m-d H:i', false) : $lang['NEVER'],
|
2023-03-11 12:04:29 +03:00
|
|
|
|
|
|
|
'USER_ACTIVE' => $profiledata['user_active'],
|
|
|
|
'LOCATION' => $profiledata['user_from'],
|
|
|
|
'OCCUPATION' => $profiledata['user_occ'],
|
|
|
|
'INTERESTS' => $profiledata['user_interests'],
|
|
|
|
'SKYPE' => $profiledata['user_skype'],
|
|
|
|
'TWITTER' => $profiledata['user_twitter'],
|
|
|
|
'USER_POINTS' => $profiledata['user_points'],
|
|
|
|
'GENDER' => ($bb_cfg['gender']) ? $lang['GENDER_SELECT'][$profiledata['user_gender']] : '',
|
2023-04-01 10:29:01 +03:00
|
|
|
'BIRTHDAY' => ($bb_cfg['birthday_enabled'] && !empty($profiledata['user_birthday']) && $profiledata['user_birthday'] != '1900-01-01') ? $profiledata['user_birthday'] : '',
|
|
|
|
'AGE' => ($bb_cfg['birthday_enabled'] && !empty($profiledata['user_birthday']) && $profiledata['user_birthday'] != '1900-01-01') ? birthday_age($profiledata['user_birthday']) : '',
|
2023-03-11 12:04:29 +03:00
|
|
|
|
|
|
|
'L_VIEWING_PROFILE' => sprintf($lang['VIEWING_USER_PROFILE'], $profiledata['username']),
|
|
|
|
'L_MY_PROFILE' => sprintf($lang['VIEWING_MY_PROFILE'], 'profile.php?mode=editprofile'),
|
|
|
|
|
|
|
|
'U_SEARCH_USER' => "search.php?search_author=1&uid={$profiledata['user_id']}",
|
|
|
|
'U_SEARCH_TOPICS' => "search.php?uid={$profiledata['user_id']}&myt=1",
|
|
|
|
'U_SEARCH_RELEASES' => "tracker.php?rid={$profiledata['user_id']}#results",
|
|
|
|
|
|
|
|
'AVATAR_IMG' => get_avatar($profiledata['user_id'], $profiledata['avatar_ext_id'], !bf($profiledata['user_opt'], 'user_opt', 'dis_avatar')),
|
|
|
|
|
|
|
|
'SIGNATURE' => $signature,
|
|
|
|
'SHOW_PASSKEY' => (IS_ADMIN || $profile_user_id),
|
|
|
|
'SHOW_ROLE' => (IS_AM || $profile_user_id || $profiledata['user_active']),
|
|
|
|
'GROUP_MEMBERSHIP' => false,
|
|
|
|
'TRAF_STATS' => !(IS_AM || $profile_user_id),
|
|
|
|
));
|
|
|
|
|
|
|
|
if (IS_ADMIN)
|
|
|
|
{
|
|
|
|
$group_membership = array();
|
|
|
|
$sql = "
|
|
|
|
SELECT COUNT(g.group_id) AS groups_cnt, g.group_single_user, ug.user_pending
|
|
|
|
FROM ". BB_USER_GROUP ." ug
|
|
|
|
LEFT JOIN ". BB_GROUPS ." g USING(group_id)
|
|
|
|
WHERE ug.user_id = {$profiledata['user_id']}
|
|
|
|
GROUP BY ug.user_id, g.group_single_user, ug.user_pending
|
|
|
|
ORDER BY NULL
|
|
|
|
";
|
|
|
|
if ($rowset = DB()->fetch_rowset($sql))
|
|
|
|
{
|
|
|
|
$member = $pending = $single = 0;
|
|
|
|
foreach ($rowset as $row)
|
|
|
|
{
|
|
|
|
if (!$row['group_single_user'] && !$row['user_pending'])
|
|
|
|
{
|
|
|
|
$member = $row['groups_cnt'];
|
|
|
|
}
|
|
|
|
else if (!$row['group_single_user'] && $row['user_pending'])
|
|
|
|
{
|
|
|
|
$pending = $row['groups_cnt'];
|
|
|
|
}
|
|
|
|
else if ($row['group_single_user'])
|
|
|
|
{
|
|
|
|
$single = $row['groups_cnt'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ($member) $group_membership[] = $lang['PARTY'] ." <b>$member</b>";
|
|
|
|
if ($pending) $group_membership[] = $lang['CANDIDATE'] ." <b>$pending</b>";
|
|
|
|
if ($single) $group_membership[] = $lang['INDIVIDUAL'];
|
|
|
|
$group_membership = join(', ', $group_membership);
|
|
|
|
}
|
|
|
|
$template->assign_vars(array(
|
|
|
|
'GROUP_MEMBERSHIP' => (bool) $group_membership,
|
|
|
|
'GROUP_MEMBERSHIP_TXT' => $group_membership,
|
|
|
|
));
|
|
|
|
}
|
|
|
|
else if (IS_MOD)
|
|
|
|
{
|
|
|
|
$template->assign_vars(array(
|
|
|
|
'SHOW_GROUP_MEMBERSHIP' => ($profiledata['user_level'] != USER),
|
|
|
|
));
|
|
|
|
}
|
|
|
|
|
|
|
|
// Show users torrent-profile
|
|
|
|
if (IS_AM || $profile_user_id || !bf($profiledata['user_opt'], 'user_opt', 'user_dls'))
|
|
|
|
{
|
|
|
|
require(UCP_DIR .'viewtorrent.php');
|
|
|
|
}
|
|
|
|
|
|
|
|
// Ajax bt_userdata
|
|
|
|
if (IS_AM || $profile_user_id)
|
|
|
|
{
|
|
|
|
show_bt_userdata($profiledata['user_id']);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
$template->assign_vars(array(
|
|
|
|
'DOWN_TOTAL_BYTES' => false,
|
|
|
|
'MIN_DL_BYTES' => false,
|
|
|
|
));
|
|
|
|
}
|
|
|
|
|
|
|
|
if (IS_ADMIN)
|
|
|
|
{
|
|
|
|
$ajax_user_opt = Zend\Json\Json::encode(array(
|
|
|
|
'dis_avatar' => bf($profiledata['user_opt'], 'user_opt', 'dis_avatar'),
|
|
|
|
'dis_sig' => bf($profiledata['user_opt'], 'user_opt', 'dis_sig'),
|
|
|
|
'dis_passkey' => bf($profiledata['user_opt'], 'user_opt', 'dis_passkey'),
|
|
|
|
'dis_pm' => bf($profiledata['user_opt'], 'user_opt', 'dis_pm'),
|
|
|
|
'dis_post' => bf($profiledata['user_opt'], 'user_opt', 'dis_post'),
|
|
|
|
'dis_post_edit' => bf($profiledata['user_opt'], 'user_opt', 'dis_post_edit'),
|
|
|
|
'dis_topic' => bf($profiledata['user_opt'], 'user_opt', 'dis_topic'),
|
|
|
|
));
|
|
|
|
|
|
|
|
$template->assign_vars(array(
|
|
|
|
'EDITABLE_TPLS' => true,
|
|
|
|
'AJAX_USER_OPT' => $ajax_user_opt,
|
|
|
|
'U_MANAGE' => "profile.php?mode=editprofile&u={$profiledata['user_id']}",
|
|
|
|
'U_PERMISSIONS' => "admin/admin_ug_auth.php?mode=user&u={$profiledata['user_id']}",
|
|
|
|
));
|
|
|
|
}
|
|
|
|
|
|
|
|
$user_restrictions = array();
|
|
|
|
|
|
|
|
if (bf($profiledata['user_opt'], 'user_opt', 'dis_avatar')) $user_restrictions[] = $lang['HIDE_AVATARS'];
|
|
|
|
if (bf($profiledata['user_opt'], 'user_opt', 'dis_sig')) $user_restrictions[] = $lang['SHOW_CAPTION'];
|
|
|
|
if (bf($profiledata['user_opt'], 'user_opt', 'dis_passkey')) $user_restrictions[] = $lang['DOWNLOAD_TORRENT'];
|
|
|
|
if (bf($profiledata['user_opt'], 'user_opt', 'dis_pm')) $user_restrictions[] = $lang['SEND_PM'];
|
|
|
|
if (bf($profiledata['user_opt'], 'user_opt', 'dis_post')) $user_restrictions[] = $lang['SEND_MESSAGE'];
|
|
|
|
if (bf($profiledata['user_opt'], 'user_opt', 'dis_post_edit')) $user_restrictions[] = $lang['EDIT_POST'];
|
|
|
|
if (bf($profiledata['user_opt'], 'user_opt', 'dis_topic')) $user_restrictions[] = $lang['NEW_THREADS'];
|
|
|
|
|
|
|
|
$template->assign_var('USER_RESTRICTIONS', join('</li><li>', $user_restrictions));
|
|
|
|
|
2023-06-29 17:20:56 +03:00
|
|
|
print_page('usercp_viewprofile.tpl');
|