diff --git a/engine/function/users.php b/engine/function/users.php index 26f4408..ac1571c 100644 --- a/engine/function/users.php +++ b/engine/function/users.php @@ -241,7 +241,7 @@ function shop_account_gender_tickets($accid) { // function guild_remove_member($cid) { $cid = (int)$cid; - mysql_update("UPDATE `players` SET `rank_id`='0' WHERE `id`=$cid"); + mysql_update("UPDATE `players` SET `rank_id`='0', `guildnick`= NULL WHERE `id`=$cid"); } function guild_remove_member_10($cid) { $cid = (int)$cid; @@ -330,7 +330,7 @@ function guild_delete($gid) { // Player leave guild function guild_player_leave($cid) { $cid = (int)$cid; - mysql_update("UPDATE `players` SET `rank_id`='0' WHERE `id`=$cid LIMIT 1;"); + mysql_update("UPDATE `players` SET `rank_id`='0', `guildnick`= NULL WHERE `id`=$cid LIMIT 1;"); } function guild_player_leave_10($cid) { $cid = (int)$cid; @@ -409,6 +409,27 @@ function update_player_guild_position_10($cid, $rid) { mysql_update("UPDATE `guild_membership` SET `rank_id`='$rid' WHERE `player_id`=$cid"); } +// Update player's guild nick +function update_player_guildnick($cid, $nick) { + $cid = (int)$cid; + $nick = sanitize($nick); + if (!empty($nick)) { + + mysql_update("UPDATE `players` SET `guildnick`='$nick' WHERE `id`=$cid"); + } else { + mysql_update("UPDATE `players` SET `guildnick`= NULL WHERE `id`=$cid"); + } +} +function update_player_guildnick_10($cid, $nick) { + $cid = (int)$cid; + $nick = sanitize($nick); + if (!empty($nick)) { + mysql_update("UPDATE `guild_membership` SET `nick`='$nick' WHERE `player_id`=$cid"); + } else { + mysql_update("UPDATE `guild_membership` SET `nick`= NULL WHERE `player_id`=$cid"); + } +} + // Get guild data, using guild id. function get_guild_rank_data($gid) { $gid = (int)$gid; @@ -505,8 +526,8 @@ function get_guilds_list() { // Get array of player data related to a guild. function get_guild_players($gid) { $gid = (int)$gid; // Sanitizing the parameter id - if (config('TFSVersion') !== 'TFS_10') return mysql_select_multi("SELECT p.rank_id, p.name, p.level, p.vocation, p.online, gr.name AS `rank_name` FROM players AS p LEFT JOIN guild_ranks AS gr ON gr.id = p.rank_id WHERE gr.guild_id ='$gid' ORDER BY gr.id, p.name;"); - else return mysql_select_multi("SELECT p.id, p.name, p.level, p.vocation, gm.rank_id, gr.name AS `rank_name` FROM players AS p LEFT JOIN guild_membership AS gm ON gm.player_id = p.id LEFT JOIN guild_ranks AS gr ON gr.id = gm.rank_id WHERE gm.guild_id = '$gid' ORDER BY gm.rank_id, p.name"); + if (config('TFSVersion') !== 'TFS_10') return mysql_select_multi("SELECT p.rank_id, p.name, p.level, p.guildnick, p.vocation, p.online, gr.name AS `rank_name` FROM players AS p LEFT JOIN guild_ranks AS gr ON gr.id = p.rank_id WHERE gr.guild_id ='$gid' ORDER BY gr.id, p.name;"); + else return mysql_select_multi("SELECT p.id, p.name, p.level, p.vocation, gm.rank_id, gm.nick AS `guildnick`, gr.name AS `rank_name` FROM players AS p LEFT JOIN guild_membership AS gm ON gm.player_id = p.id LEFT JOIN guild_ranks AS gr ON gr.id = gm.rank_id WHERE gm.guild_id = '$gid' ORDER BY gm.rank_id, p.name"); } // Returns total members in a guild (integer) @@ -1496,4 +1517,4 @@ function cancel_war_invitation($cid, $gid) { mysql_update("UPDATE `guild_wars` SET `status` = 3, `ended` = '$time' WHERE `guild2` = '$cid' AND `guild1` = '$gid';"); } -?> \ No newline at end of file +?> diff --git a/guilds.php b/guilds.php index 5ae903d..4a96d50 100644 --- a/guilds.php +++ b/guilds.php @@ -212,7 +212,11 @@ if (user_logged_in() === true) { } else $chardata['online'] = (in_array($player['id'], $onlinelist)) ? 1 : 0; echo ''; echo ''. $player['rank_name'] .''; - echo ''. $player['name'] .''; + echo ''. $player['name'] .''; + if (!empty($player['guildnick'])) { + echo ' ('. $player['guildnick'] .')'; + } + echo ''; echo ''. $player['level'] .''; echo ''. $config['vocations'][$player['vocation']] .''; if ($chardata['online'] == 1) echo ' Online '; @@ -341,6 +345,26 @@ if (user_logged_in() === true) { if ($highest_access >= 2) { // Guild leader stuff + // Change Guild Nick + if (!empty($_POST['player_guildnick'])) { + $p_cid = user_character_id($_POST['player_guildnick']); + $p_guild = get_player_guild_data($p_cid); + if (preg_match("/^[a-zA-Z_ ]+$/", $_POST['guildnick']) || empty($_POST['guildnick'])) { + // Only allow normal symbols as guild nick + $p_nick = sanitize($_POST['guildnick']); + if ($p_guild['guild_id'] == $gid) { + if ($config['TFSVersion'] !== 'TFS_10') $chardata = user_character_data($p_cid, 'online'); + else $chardata['online'] = (user_is_online_10($p_cid)) ? 1 : 0; + if ($chardata['online'] == 0) { + if ($config['TFSVersion'] !== 'TFS_10') update_player_guildnick($p_cid, $p_nick); + else update_player_guildnick_10($p_cid, $p_nick); + header('Location: guilds.php?name='. $_GET['name']); + exit(); + } else echo 'Character not offline.'; + } + } else echo 'Character guild nick may only contain a-z, A-Z and spaces.'; + } + // Promote character to guild position if (!empty($_POST['promote_character']) && !empty($_POST['promote_position'])) { // Verify that promoted character is from this guild. @@ -617,6 +641,33 @@ if ($highest_access >= 2) { + +
+ +
+ 1) { ?>