$user_id_ary = array_diff($user_id_ary, $perms); unset($perms); } if (sizeof($user_id_ary)) { $friend_foe_mode = $zmode == 'friends' ? true : false; user_friend_foe_add($user_id_ary, $friend_foe_mode); $updated = true; } unset($user_id_ary); } } } elseif (sizeof($data['usernames'])) { // Force integer values $data['usernames'] = array_map('intval', $data['usernames']); $friend_foe_mode = $zmode == 'friends' ? true : false; user_friend_foe_remove($data['usernames'], $friend_foe_mode); $updated = true; } $db->clear_cache('zebra_users_'); if ($updated) { $redirect_url = append_sid(append_sid(CMS_PAGE_PROFILE . '?mode=zebra&zmode=' . $zmode)); meta_refresh(3, $redirect_url); message_die(GENERAL_MESSAGE, $zmode == 'friends' ? $lang['FRIENDS_UPDATED'] : $lang['FOES_UPDATED']); } else { message_die(GENERAL_ERROR, $zmode == 'friends' ? $lang['FRIENDS_UPDATE_ERROR'] : $lang['FOES_UPDATE_ERROR']); } } } $sql_and = $zmode == 'foes' ? 'z.foe = 1' : 'z.friend = 1'; $sql = "SELECT z.*, u.username\n\tFROM " . ZEBRA_TABLE . " z, " . USERS_TABLE . " u\n\tWHERE z.user_id = '" . $user->data['user_id'] . "'\n\t\tAND " . $sql_and . "\n\t\tAND u.user_id = z.zebra_id\n\tORDER BY u.username ASC"; $result = $db->sql_query($sql);
if (!empty($user->data['session_logged_in']) && $profiledata['user_id'] != $user->data['user_id']) { $zmode = request_var('zmode', ''); if (!empty($zmode)) { // Allow only friends... //$zmode_types = array('friend', 'foe'); $zmode_types = array('friend'); $zmode = !in_array($zmode, $zmode_types) ? '' : $zmode; } if (!empty($zmode)) { $zaction = request_var('zaction', ''); $zaction_types = array('add', 'remove'); $zaction = !in_array($zaction, $zaction_types) ? '' : $zaction; if (!empty($zaction) && $zaction == 'add') { user_friend_foe_add(array($profiledata['user_id']), true); } elseif (!empty($zaction) && $zaction == 'remove') { user_friend_foe_remove(array($profiledata['user_id']), true); } } } // Update the profile view list $target_user = $profiledata['user_id']; $viewer = $user->data['username']; $viewer_id = $user->data['user_id']; $current_time = time(); if ($target_user != $viewer_id) { $sql = "UPDATE " . USERS_TABLE . "\n\t\t\tSET user_profile_view = '1'\n\t\t\tWHERE user_id = " . $target_user; $db->sql_query($sql); $sql = "SELECT * FROM " . PROFILE_VIEW_TABLE . "\n\t\tWHERE user_id = " . $target_user . "\n\t\tAND viewer_id = " . $viewer_id; $db->sql_return_on_error(true); $result = $db->sql_query($sql); $db->sql_return_on_error(false);
function user_friend_foe_add($target_ids, $friend = true) { global $db, $cache, $config, $user; if (empty($target_ids)) { return false; } if (!is_array($target_ids)) { $target_ids = array($target_ids); } $sql_values = !empty($friend) ? "'1', '0'" : "'0', '1'"; foreach ($target_ids as $target_id) { $is_friend_foe = user_check_friend_foe($target_id, $friend); if (empty($is_friend_foe)) { user_friend_foe_remove(array($target_id), !$friend); $sql = "INSERT INTO " . ZEBRA_TABLE . " (`user_id` , `zebra_id` , `friend` , `foe`)\n\t\t\t\t\t\t\tVALUES ('" . $user->data['user_id'] . "', '" . $target_id . "', " . $sql_values . ")"; $result = $db->sql_query($sql); } } return true; }