function user_rel_update($uid, $peer_uid, $relationship, $nickname = "") { if (!($db = db::get())) { return false; } if (!is_numeric($uid)) { return false; } if (!is_numeric($peer_uid)) { return false; } if (!is_numeric($relationship)) { return false; } if (!($table_prefix = get_table_prefix())) { return false; } $sql = "INSERT INTO `{$table_prefix}USER_PEER` (UID, PEER_UID, RELATIONSHIP, PEER_NICKNAME) "; $sql .= "VALUES ('{$uid}', '{$peer_uid}', '{$relationship}', NULL) ON DUPLICATE KEY UPDATE "; $sql .= "RELATIONSHIP = VALUES(RELATIONSHIP), PEER_NICKNAME = NULL"; if (!$db->query($sql)) { return false; } $user_nickname = user_get_nickname($peer_uid); if ($nickname != $user_nickname) { $nickname = $db->escape($nickname); $sql = "INSERT INTO `{$table_prefix}USER_PEER` (UID, PEER_UID, PEER_NICKNAME) "; $sql .= "VALUES ('{$uid}', '{$peer_uid}', '{$nickname}') ON DUPLICATE KEY UPDATE "; $sql .= "PEER_NICKNAME = VALUES(PEER_NICKNAME)"; if (!$db->query($sql)) { return false; } } return true; }
$peer_nickname = ""; } } if ($peer_perms & USER_PERM_FOLDER_MODERATE && !session::check_perm(USER_PERM_CAN_IGNORE_ADMIN, 0)) { $peer_relationship = $peer_relationship & USER_IGNORED ? USER_NORMAL : $peer_relationship; } if (user_rel_update($_SESSION['UID'], $peer_uid, $peer_relationship, $peer_nickname)) { header_redirect("{$ret}&relupdated=true"); exit; } else { $error_msg_array[] = gettext("Relationship updated failed!"); $valid = false; } } if (isset($_POST['reset_nickname_x']) || isset($_POST['reset_nickname_y'])) { $peer_nickname = user_get_nickname($peer_uid); $peer_relationship = user_get_peer_relationship($_SESSION['UID'], $peer_uid); user_rel_update($_SESSION['UID'], $peer_uid, $peer_relationship, $peer_nickname); } $peer_user_display = format_user_name($user_peer['LOGON'], $user_peer['NICKNAME']); html_draw_top(array('title' => sprintf(gettext('User Relationship - %s'), $peer_user_display), 'class' => 'window_title')); $peer_relationship = user_get_relationship($_SESSION['UID'], $peer_uid); $peer_nickname = user_get_peer_nickname($_SESSION['UID'], $peer_uid); echo "<h1>", gettext("User Relationship"), html_style_image('separator'), "<a href=\"user_profile.php?webtag={$webtag}&uid={$peer_uid}\" target=\"_blank\" class=\"popup 650x500\">", word_filter_add_ob_tags($peer_user_display, true), "</a></h1>\n"; if (isset($error_msg_array) && sizeof($error_msg_array) > 0) { html_display_error_array($error_msg_array, '600', 'left'); } else { if ($peer_perms & USER_PERM_FOLDER_MODERATE && !session::check_perm(USER_PERM_CAN_IGNORE_ADMIN, 0)) { html_display_warning_msg(gettext("You cannot ignore this user, as they are a moderator."), '600', 'left'); } }
function user_get_peer_nickname($uid, $peer_uid) { if (!($db = db::get())) { return false; } if (!is_numeric($uid)) { return false; } if (!is_numeric($peer_uid)) { return false; } if (!($table_prefix = get_table_prefix())) { return false; } $sql = "SELECT COALESCE(USER_PEER.PEER_NICKNAME, USER.NICKNAME) AS NICKNAME "; $sql .= "FROM USER LEFT JOIN `{$table_prefix}USER_PEER` USER_PEER "; $sql .= "ON (USER_PEER.PEER_UID = USER.UID AND USER_PEER.UID = '{$uid}') "; $sql .= "WHERE USER_PEER.UID = '{$uid}' AND USER_PEER.PEER_UID = '{$peer_uid}'"; if (!($result = $db->query($sql))) { return false; } if ($result->num_rows > 0) { list($peer_nickname) = $result->fetch_row(); return $peer_nickname; } return user_get_nickname($peer_uid); }