From ef904c854b37e7423ab0946fe67b8f3ec2950ca0 Mon Sep 17 00:00:00 2001 From: slawkens Date: Wed, 18 Oct 2017 10:59:15 +0200 Subject: [PATCH] * moved guilds actions (pages) to guilds/ directory --- system/pages/guilds.php | 2222 +---------------- system/pages/guilds/accept_invite.php | 121 + system/pages/guilds/add_rank.php | 72 + system/pages/guilds/change_description.php | 73 + system/pages/guilds/change_logo.php | 123 + system/pages/guilds/change_motd.php | 75 + system/pages/guilds/change_nick.php | 55 + system/pages/guilds/change_rank.php | 201 ++ system/pages/guilds/cleanup_guilds.php | 65 + system/pages/guilds/cleanup_players.php | 67 + system/pages/guilds/create_guild.php | 136 + system/pages/guilds/delete_by_admin.php | 66 + system/pages/guilds/delete_guild.php | 79 + system/pages/guilds/delete_invite.php | 103 + system/pages/guilds/delete_rank.php | 113 + system/pages/guilds/invite.php | 110 + system/pages/guilds/kick_player.php | 112 + system/pages/guilds/leave_guild.php | 126 + system/pages/guilds/list_of_guilds.php | 128 + system/pages/guilds/manager.php | 61 + system/pages/guilds/pass_leadership.php | 120 + system/pages/guilds/save_ranks.php | 86 + system/pages/guilds/show.php | 266 ++ .../guilds.change_description.html.twig | 2 +- system/templates/guilds.change_logo.html.twig | 2 +- system/templates/guilds.change_motd.html.twig | 2 +- .../templates/guilds.create_guild.html.twig | 2 +- .../templates/guilds.delete_guild.html.twig | 2 +- system/templates/guilds.manager.html.twig | 16 +- .../guilds.pass_leadership.html.twig | 2 +- 30 files changed, 2378 insertions(+), 2230 deletions(-) create mode 100644 system/pages/guilds/accept_invite.php create mode 100644 system/pages/guilds/add_rank.php create mode 100644 system/pages/guilds/change_description.php create mode 100644 system/pages/guilds/change_logo.php create mode 100644 system/pages/guilds/change_motd.php create mode 100644 system/pages/guilds/change_nick.php create mode 100644 system/pages/guilds/change_rank.php create mode 100644 system/pages/guilds/cleanup_guilds.php create mode 100644 system/pages/guilds/cleanup_players.php create mode 100644 system/pages/guilds/create_guild.php create mode 100644 system/pages/guilds/delete_by_admin.php create mode 100644 system/pages/guilds/delete_guild.php create mode 100644 system/pages/guilds/delete_invite.php create mode 100644 system/pages/guilds/delete_rank.php create mode 100644 system/pages/guilds/invite.php create mode 100644 system/pages/guilds/kick_player.php create mode 100644 system/pages/guilds/leave_guild.php create mode 100644 system/pages/guilds/list_of_guilds.php create mode 100644 system/pages/guilds/manager.php create mode 100644 system/pages/guilds/pass_leadership.php create mode 100644 system/pages/guilds/save_ranks.php create mode 100644 system/pages/guilds/show.php diff --git a/system/pages/guilds.php b/system/pages/guilds.php index 78515d11..49247153 100644 --- a/system/pages/guilds.php +++ b/system/pages/guilds.php @@ -16,2224 +16,14 @@ if(tableExist('guild_members')) define('GUILD_MEMBERS_TABLE', 'guild_members'); else define('GUILD_MEMBERS_TABLE', 'guild_membership'); - + define('MOTD_EXISTS', fieldExist('motd', 'guilds')); -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- + //show list of guilds -if($action == '') -{ - $guilds_list = $ots->createObject('Guilds_List'); - - if(!isset($_REQUEST['preview'])) - $_REQUEST['preview'] = 1; - - $guilds_list->orderBy("name"); - - //echo 'Guilds needs to have atleast 4 members, otherwise it will be deleted automatically after 4 days.

Guild statistics are self-updated once per 3 days.

'; - - //echo 'Normal preview / Advanced ranks & statistics

- echo ' - - - '; - if($_REQUEST['preview'] == 2) { - echo ' - - - '; - /* - - - - ';*/ - } - else - echo ' - - - '; - - echo ' - '; - $showed_guilds = 0; - - if($_REQUEST['preview'] == 2) - { - if(count($guilds_list) > 0) - { - foreach($guilds_list as $guild) - { - $guild_logo = $guild->getCustomField('logo_name'); - if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) - $guild_logo = "default.gif"; - - echo ' - '; - // - - echo ''; - } - } - else - echo ' - - '; - } - else - { - if(count($guilds_list) > 0) - { - foreach($guilds_list as $guild) - { - $link = ($config['friendly_urls'] ? '' : '?') . 'guilds/' . $guild->getName(); - - $guild_logo = $guild->getCustomField('logo_name'); - if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) - $guild_logo = "default.gif"; - $description = $guild->getCustomField('description'); - $description_with_lines = str_replace(array("\r\n", "\n", "\r"), '
', $description, $count); - if($count < $config['guild_description_lines_limit']) - $description = wordwrap(nl2br($description), 60, "
", true); - //$description = $description_with_lines; - - echo ' - '; - } - } - else - echo ' - - '; - } - - - echo '
Active Guilds on '.$config['lua']['serverName'].'
RankLogoGuild nameMembersTotal levelAverage levelFragsLogoDescription
'.($show_ranks ? $showed_guilds.'.' : '-').''.$guild->getName().'
'; - if(admin()) - echo '
Delete this guild (for ADMIN only!)'; - echo '
'.$guild->getCustomField('total_members').''.$guild->getCustomField('total_level').''; - //if($guild->getCustomField('total_members') > 0) - // echo ceil($guild->getCustomField('total_level')/$guild->getCustomField('total_members')); - //echo ''.$guild->getCustomField('frags').'
-Create guild
Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '
'; - if($logged) - echo ' -
- -
'; - - echo ' -
'.$guild->getName().'
'.$description.''; - if(admin()) - echo '
Delete this guild (for ADMIN only!)'; - echo '
- -
-
Create guild
Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '
'; - if($logged) - echo '
- -
'; - echo ' -


'; - if($logged) - echo '
- -
-
If you have any problem with guilds try: -
Cleanup players - can\'t join guild/be invited? Can\'t create guild? Try cleanup players. -
Cleanup guilds - made guild, you are a leader, but you are not on players list? Cleanup guilds!'; - else - echo 'Before you can create guild you must login.
- -
'; +if(empty($action)) { + require(PAGES . 'guilds/list_of_guilds.php'); } -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//show guild page -if($action == 'show') -{ - $guild_name = $_REQUEST['guild']; - if(!Validator::guildName($guild_name)) - $guild_errors[] = Validator::getLastError(); - if(empty($guild_errors)) - { - $guild = $ots->createObject('Guild'); - $guild->find($guild_name); - if(!$guild->isLoaded()) - $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; - } - if(!empty($guild_errors)) - { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); - echo ' -
'; - } - else - { - $title = $guild->getName() . ' - ' . $title; - //check is it vice or/and leader account (leader has vice + leader rights) - $guild_leader_char = $guild->getOwner(); - $rank_list = $guild->getGuildRanksList(); - $rank_list->orderBy('level', POT::ORDER_DESC); - $guild_leader = false; - $guild_vice = false; - $level_in_guild = 0; - $players_from_account_in_guild = array(); - if($logged) - { - $account_players = $account_logged->getPlayers(); - foreach($account_players as $player) - { - $players_from_account_ids[] = $player->getId(); - $player_rank = $player->getRank(); - if($player_rank->isLoaded()) - { - foreach($rank_list as $rank_in_guild) - { - if($rank_in_guild->isLoaded() && $player_rank->isLoaded() && - $rank_in_guild->getId() == $player_rank->getId()) - { - $players_from_account_in_guild[] = $player->getName(); - if($guild->getOwner()->getId() == $player->getId()) - { - $guild_vice = true; - $guild_leader = true; - } - else if($player_rank->getLevel() > 1) - { - $guild_vice = true; - $level_in_guild = $player_rank->getLevel(); - } - } - } - } - } - } - //show guild page - $guild_logo = $guild->getCustomField('logo_name'); - if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) - $guild_logo = "default.gif"; - $description = $guild->getCustomField('description'); - $description_with_lines = str_replace(array("\r\n", "\n", "\r"), '
', $description, $count); - if($count < $config['guild_description_lines_limit']) - $description = wordwrap(nl2br($description), 60, "
", true); - //$description = $description_with_lines; - $guild_owner = $guild->getOwner(); - if($guild_owner->isLoaded()) - $guild_owner = $guild_owner->getName(); - echo ' - -
- - - - -

'.$guild->getName().'


'.$description.'

'.$guild_owner.' is guild leader of '.$guild->getName().'.
The guild was founded on '.$config['lua']['serverName'].' on '.date("j F Y", $guild->getCreationData()).'.'; - if($guild_leader) - echo '   Manage Guild'; - echo '

- - - - - - - - - '; - - //Slaw stats values - //$s_total_members = 0; - //$s_members_online = 0; - //$s_total_level = 0; - //End Slaw stats values - - $showed_players = 1; - foreach($rank_list as $rank) - { - if(tableExist(GUILD_MEMBERS_TABLE)) - $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); - else if(fieldExist('rank_id', 'players')) - $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); - - $players_with_rank_number = $players_with_rank->rowCount(); - if($players_with_rank_number > 0) - { - $bgcolor = getStyle($showed_players); - $showed_players++; - echo ' - - - '; - } - } - echo '
Guild Members
RankName, title, level & status
'.$rank->getName().' - '; - foreach($players_with_rank as $result) - { - $player = $ots->createObject('Player'); - $player->load($result['id']); - if(!$player->isLoaded()) - continue; - - //$s_total_members++; - //$s_total_level += $player->getLevel(); - echo ''; - } - echo '
' . getPlayerLink($player->getName()) . '
'; - $guild_nick = $player->getGuildNick(); - if($logged) - { - if(in_array($player->getId(), $players_from_account_ids)) - echo ' ()'; - else - { - if(!empty($guild_nick)) - echo ' ('.htmlentities($player->getGuildNick()).')'; - } - } - else - if(!empty($guild_nick)) - echo ' ('.htmlentities($player->getGuildNick()).')'; - - if($level_in_guild > $rank->getLevel() || $guild_leader) - if($guild_leader_char->getName() != $player->getName()) - echo ' {KICK}'; - //if($player->isOnline()) - // $s_members_online++; - echo '
'.$player->getLevel().'Online' : 'red">Offline').'
'; - /* - //Statistics ;) - echo '
- - - - - - - - - - - - - - - - - - - - - - '; - //guild hall? - $houseInfo = $db->query('SELECT `id`, `name` FROM `houses` WHERE `owner` = ' . $guild->getId() . ' AND `guild` = 1'); - if($houseInfo->rowCount() > 0) //have guild hall - { - $houseInfo = $houseInfo->fetch(); - echo - ' - - - '; - } - echo '
Statistics
Total members:'.$s_total_members.'
Members currently online:'.$s_members_online.'
Total members level:'.$s_total_level.'
Average members level:'.ceil($s_total_level/$s_total_members).'
Frags:'.$guild->getCustomField('frags').'
Guildhall: - '.$houseInfo['name'].' -
- - -
-
'; - */ - //End statistics - - //Lets update some stuff in database - //$db->query('UPDATE `guilds` SET `total_members` = '.$s_total_members.', `members_online` = '.$s_members_online.', `total_level` = '.$s_total_level.', `average_level` = '.ceil($s_total_level/$s_total_members).' WHERE `id` = '.$guild->getId()); - include(SYSTEM . 'libs/pot/InvitesDriver.php'); - new InvitesDriver($guild); - $invited_list = $guild->listInvites(); - $show_accept_invite = 0; - if(count($invited_list) == 0) - echo '
Invited Characters
No invited characters found.
'; - else - { - echo '

'; - $showed_invited = 1; - foreach($invited_list as $invited_player) - { - if(count($account_players) > 0) - foreach($account_players as $player_from_acc) - if($player_from_acc->getName() == $invited_player->getName()) - $show_accept_invite++; - if(is_int($showed_invited / 2)) { $bgcolor = $config['darkborder']; } else { $bgcolor = $config['lightborder']; } $showed_invited++; - echo ''; - } - echo '
Invited Characters
' . getPlayerLink($invited_player->getName()); - if($guild_vice) - echo ' (Cancel Invitation)'; - echo '
'; - } - echo '

- '; - if(!$logged) - echo ''; - else - { - if($show_accept_invite > 0) - echo ''; - if($guild_vice) - { - echo ''; - echo ''; - } - if(count($players_from_account_in_guild) > 0) - echo ''; - } - echo '
- -
- -
- -
- -
- -
- -
-
-
'; - } +else if(file_exists(PAGES . 'guilds/' . $action . '.php')) { + require(PAGES . 'guilds/' . $action . '.php'); } - - - -//-------------------------------------------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------------------------------------------- -//change rank of player in guild -if($action == 'changerank') -{ - $guild_name = $_REQUEST['guild']; - if(!Validator::guildName($guild_name)) - $guild_errors[] = Validator::getLastError(); - if(!$logged) - $guild_errors[] = 'You are not logged in. You can\'t change rank.'; - if(empty($guild_errors)) - { - $guild = $ots->createObject('Guild'); - $guild->find($guild_name); - if(!$guild->isLoaded()) - $guild_errors[] = 'Guild with name ' . $guild_name . ' doesn\'t exist.'; - } - if(!empty($guild_errors)) - { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); -echo ' -
'; - } - else - { - //check is it vice or/and leader account (leader has vice + leader rights) - $rank_list = $guild->getGuildRanksList(); - $rank_list->orderBy('level', POT::ORDER_DESC); - $guild_leader = false; - $guild_vice = false; - $account_players = $account_logged->getPlayers(); - foreach($account_players as $player) - { - $player_rank = $player->getRank(); - if($player_rank->isLoaded()) { - foreach($rank_list as $rank_in_guild) - { - if($rank_in_guild->getId() == $player_rank->getId()) - { - $players_from_account_in_guild[] = $player->getName(); - if($player_rank->getLevel() > 1) { - $guild_vice = true; - $level_in_guild = $player_rank->getLevel(); - } - if($guild->getOwner()->getId() == $player->getId()) { - $guild_vice = true; - $guild_leader = true; - } - } - } - } - } - //tworzenie listy osob z nizszymi uprawnieniami i rank z nizszym levelem - if($guild_vice) - { - $rid = 0; - $sid = 0; - foreach($rank_list as $rank) - { - if($guild_leader || $rank->getLevel() < $level_in_guild) - { - $ranks[$rid]['0'] = $rank->getId(); - $ranks[$rid]['1'] = $rank->getName(); - $rid++; - - if(fieldExist('rank_id', 'players')) - $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); - else - $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); - - $players_with_rank_number = $players_with_rank->rowCount(); - if(count($players_with_rank) > 0) - { - - foreach($players_with_rank as $result) - { - $player = $ots->createObject('Player'); - $player->load($result['id']); - if(!$player->isLoaded()) - continue; - - if($guild->getOwner()->getId() != $player->getId() || $guild_leader) - { - $players_with_lower_rank[$sid]['0'] = $player->getName(); - $players_with_lower_rank[$sid]['1'] = $player->getName().' ('.$rank->getName().')'; - $sid++; - } - } - } - } - } - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') - { - $player_name = stripslashes($_REQUEST['name']); - $new_rank = (int) $_REQUEST['rankid']; - if(!Validator::characterName($player_name)) - $change_errors[] = 'Invalid player name format.'; - $rank = $ots->createObject('GuildRank'); - $rank->load($new_rank); - if(!$rank->isLoaded()) - $change_errors[] = 'Rank with this ID doesn\'t exist.'; - if($level_in_guild <= $rank->getLevel() && !$guild_leader) - $change_errors[] = 'You can\'t set ranks with equal or higher level than your.'; - if(empty($change_errors)) - { - $player_to_change = $ots->createObject('Player'); - $player_to_change->find($player_name); - if(!$player_to_change->isLoaded()) - $change_errors[] = 'Player with name '.$player_name.' doesn\'t exist.'; - else - { - $player_in_guild = false; - if($guild->getName() == $player_to_change->getRank()->getGuild()->getName() || $guild_leader) - { - $player_in_guild = true; - $player_has_lower_rank = false; - if($player_to_change->getRank()->getLevel() < $level_in_guild || $guild_leader) - $player_has_lower_rank = true; - } - } - $rank_in_guild = false; - foreach($rank_list as $rank_from_guild) - if($rank_from_guild->getId() == $rank->getId()) - $rank_in_guild = true; - if(!$player_in_guild) - $change_errors[] = 'This player isn\'t in your guild.'; - if(!$rank_in_guild) - $change_errors[] = 'This rank isn\'t in your guild.'; - if(!$player_has_lower_rank) - $change_errors[] = 'This player has higher rank in guild than you. You can\'t change his/her rank.'; - } - if(empty($change_errors)) - { - $player_to_change->setRank($rank); - echo '
Guild Deleted
Rank of player '.$player_to_change->getName().' has been changed to '.$rank->getName().'.

'; - unset($players_with_lower_rank); - unset($ranks); - $rid = 0; - $sid= 0; - foreach($rank_list as $rank) - { - if($guild_leader || $rank->getLevel() < $level_in_guild) - { - $ranks[$rid]['0'] = $rank->getId(); - $ranks[$rid]['1'] = $rank->getName(); - $rid++; - - if(fieldExist('rank_id', 'players')) - $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); - else - $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); - - $players_with_rank_number = $players_with_rank->rowCount(); - if(count($players_with_rank) > 0) - { - foreach($players_with_rank as $result) - { - $player = $ots->createObject('Player'); - $player->load($result['id']); - if(!$player->isLoaded()) - continue; - - if($guild->getOwner()->getId() != $player->getId() || $guild_leader) - { - $players_with_lower_rank[$sid]['0'] = $player->getName(); - $players_with_lower_rank[$sid]['1'] = $player->getName().' ('.$rank->getName().')'; - $sid++; - } - } - } - } - } - } - else - { - echo $twig->render('error_box.html.twig', array('errors' => $change_errors)); - } - } - echo '
- - - -
Change Rank
Name:  Rank:    
'; - } - else - echo 'Error. You are not a leader or vice leader in guild '.$guild->getName().'.
'; - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//show guild page -if($action == 'deleteinvite') -{ - //set rights in guild - $guild_name = $_REQUEST['guild']; - $name = stripslashes($_REQUEST['name']); - if(!$logged) - $guild_errors[] = 'You are not logged in. You can\'t delete invitations.'; - if(!Validator::guildName($guild_name)) - $guild_errors[] = Validator::getLastError(); - if(!Validator($name)) - $guild_errors[] = 'Invalid name format.'; - if(empty($guild_errors)) - { - $guild = $ots->createObject('Guild'); - $guild->find($guild_name); - if(!$guild->isLoaded()) - $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; - } - if(empty($guild_errors)) - { - $rank_list = $guild->getGuildRanksList(); - $rank_list->orderBy('level', POT::ORDER_DESC); - $guild_leader = false; - $guild_vice = false; - $account_players = $account_logged->getPlayers(); - foreach($account_players as $player) - { - $player_rank = $player->getRank(); - if($player_rank->isLoaded()) - { - foreach($rank_list as $rank_in_guild) - { - if($rank_in_guild->getId() == $player_rank->getId()) - { - $players_from_account_in_guild[] = $player->getName(); - if($player_rank->getLevel() > 1) - { - $guild_vice = true; - $level_in_guild = $player_rank->getLevel(); - } - if($guild->getOwner()->getId() == $player->getId()) - { - $guild_vice = true; - $guild_leader = true; - } - } - } - } - } - } - if(empty($guild_errors)) - { - $player = new OTS_Player(); - $player->find($name); - if(!$player->isLoaded()) - $guild_errors[] = 'Player with name '.$name.' doesn\'t exist.'; - } - if(!$guild_vice) - $guild_errors[] = 'You are not a leader or vice leader of guild '.$guild_name.'.'; - if(empty($guild_errors)) - { - include(SYSTEM . 'libs/pot/InvitesDriver.php'); - new InvitesDriver($guild); - $invited_list = $guild->listInvites(); - if(count($invited_list) > 0) - { - $is_invited = false; - foreach($invited_list as $invited) - if($invited->getName() == $player->getName()) - $is_invited = true; - if(!$is_invited) - $guild_errors[] = ''.$player->getName().' isn\'t invited to your guild.'; - } - else - $guild_errors[] = 'No one is invited to your guild.'; - } - if(!empty($guild_errors)) - { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); - echo ' -
'; - } - else - { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') - { - $guild->deleteInvite($player); - echo '
Delete player invitation
Player with name '.$player->getName().' has been deleted from "invites list".

'; - } - else - echo '
Delete player invitation
Are you sure you want to delete player with name '.$player->getName().' from "invites list"?

  
  
'; - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//show guild page -if($action == 'invite') -{ - //set rights in guild - $guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; - $name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; - if(!$logged) { - $guild_errors[] = 'You are not logged in. You can\'t invite players.'; - } - - if(!Validator::guildName($guild_name)) { - $guild_errors[] = Validator::getLastError(); - } - - if(empty($guild_errors)) { - $guild = $ots->createObject('Guild'); - $guild->find($guild_name); - if(!$guild->isLoaded()) { - $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; - } - } - - if(empty($guild_errors)) { - $rank_list = $guild->getGuildRanksList(); - $rank_list->orderBy('level', POT::ORDER_DESC); - $guild_leader = false; - $guild_vice = false; - $account_players = $account_logged->getPlayers(); - foreach($account_players as $player) { - $player_rank = $player->getRank(); - if($player_rank->isLoaded()) { - foreach($rank_list as $rank_in_guild) { - if($rank_in_guild->getId() == $player_rank->getId()) { - $players_from_account_in_guild[] = $player->getName(); - if($player_rank->getLevel() > 1) { - $guild_vice = true; - $level_in_guild = $player_rank->getLevel(); - } - - if($guild->getOwner()->getId() == $player->getId()) { - $guild_vice = true; - $guild_leader = true; - } - } - } - } - } - } - - if(!$guild_vice) { - $guild_errors[] = 'You are not a leader or vice leader of guild '.$guild_name.'.'.$level_in_guild; - } - - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - if(!Validator::characterName($name)) { - $guild_errors[] = 'Invalid name format.'; - } - - if(empty($guild_errors)) { - $player = new OTS_Player(); - $player->find($name); - if(!$player->isLoaded()) { - $guild_errors[] = 'Player with name ' . $name . ' doesn\'t exist.'; - } - else - { - $rank_of_player = $player->getRank(); - if($rank_of_player->isLoaded()) { - $guild_errors[] = 'Player with name ' . $name . ' is already in guild. He must leave guild before you can invite him.'; - } - } - } - } - if(empty($guild_errors)) { - include(SYSTEM . 'libs/pot/InvitesDriver.php'); - new InvitesDriver($guild); - $invited_list = $guild->listInvites(); - if(count($invited_list) > 0) { - foreach($invited_list as $invited) { - if($invited->getName() == $player->getName()) { - $guild_errors[] = ''.$invited->getName().' is already invited to your guild.'; - } - } - } - } - - if(!empty($guild_errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); - echo ' -
'; - } - else { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - $guild->invite($player); - echo '
Invite player
Player with name '.$player->getName().' has been invited to your guild.

'; - } - else { - echo '
Invite player
Invite player with name:      

'; - } - } -} - - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//show guild page -if($action == 'acceptinvite') { - //set rights in guild - $guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; - $name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; - if(!$logged) { - $errors[] = 'You are not logged in. You can\'t accept invitations.'; - } - if(!Validator::guildName($guild_name)) { - $errors[] = Validator::getLastError(); - } - if(empty($errors)) { - $guild = $ots->createObject('Guild'); - $guild->find($guild_name); - if(!$guild->isLoaded()) { - $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; - } - } - - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - if(!Validator::characterName($name)) { - $errors[] = 'Invalid name format.'; - } - - if(empty($errors)) { - $player = new OTS_Player(); - $player->find($name); - if(!$player->isLoaded()) { - $errors[] = 'Player with name '.$name.' doesn\'t exist.'; - } - else - { - $rank_of_player = $player->getRank(); - if($rank_of_player->isLoaded()) { - $errors[] = 'Character with name '.$name.' is already in guild. You must leave guild before you join other guild.'; - } - } - } - } - - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - if(empty($errors)) { - $is_invited = false; - include(SYSTEM . 'libs/pot/InvitesDriver.php'); - new InvitesDriver($guild); - $invited_list = $guild->listInvites(); - if(count($invited_list) > 0) { - foreach($invited_list as $invited) { - if($invited->getName() == $player->getName()) { - $is_invited = true; - } - } - } - - if(!$is_invited) { - $errors[] = 'Character '.$player->getName.' isn\'t invited to guild '.$guild->getName().'.'; - } - } - } - else - { - if(empty($errors)) { - $acc_invited = false; - $account_players = $account_logged->getPlayers(); - include(SYSTEM . 'libs/pot/InvitesDriver.php'); - new InvitesDriver($guild); - $invited_list = $guild->listInvites(); - - if(count($invited_list) > 0) { - foreach($invited_list as $invited) { - foreach($account_players as $player_from_acc) { - if($invited->getName() == $player_from_acc->getName()) { - $acc_invited = true; - $list_of_invited_players[] = $player_from_acc->getName(); - } - } - } - } - } - - if(!$acc_invited) { - $errors[] = 'Any character from your account isn\'t invited to '.$guild->getName().'.'; - } - } - if(!empty($errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $errors)); - echo ' -
'; - } - else { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - $guild->acceptInvite($player); - echo '
Accept invitation
Player with name '.$player->getName().' has been added to guild '.$guild->getName().'.

'; - } - else - { - echo ''; - echo ''; - echo '
Accept invitation
Select character to join guild:
-
'; - sort($list_of_invited_players); - $i = 0; - foreach($list_of_invited_players as $invited_player_from_list) { - echo '
'; - } - echo '

'; - } - } -} - - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//show guild page -if($action == 'kickplayer') { - //set rights in guild - $guild_name = $_REQUEST['guild']; - $name = stripslashes($_REQUEST['name']); - if(!$logged) { - $errors[] = 'You are not logged in. You can\'t kick characters.'; - } - - if(!Validator::guildName($guild_name)) { - $errors[] = Validator::getLastError(); - } - - if(!Validator::characterName($name)) { - $errors[] = 'Invalid name format.'; - } - - if(empty($errors)) { - $guild = $ots->createObject('Guild'); - $guild->find($guild_name); - if(!$guild->isLoaded()) { - $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; - } - } - - if(empty($errors)) { - $rank_list = $guild->getGuildRanksList(); - $rank_list->orderBy('level', POT::ORDER_DESC); - $guild_leader = false; - $guild_vice = false; - $account_players = $account_logged->getPlayers(); - foreach($account_players as $player) { - $player_rank = $player->getRank(); - if($player_rank->isLoaded()) { - foreach($rank_list as $rank_in_guild) { - if($rank_in_guild->getId() == $player_rank->getId()) { - $players_from_account_in_guild[] = $player->getName(); - if($player_rank->getLevel() > 1) { - $guild_vice = true; - $level_in_guild = $player_rank->getLevel(); - } - if($guild->getOwner()->getId() == $player->getId()) { - $guild_vice = true; - $guild_leader = true; - } - } - } - } - } - } - - if(empty($errors)) { - if(!$guild_leader && $level_in_guild < 3) { - $errors[] = 'You are not a leader of guild '.$guild_name.'. You can\'t kick players.'; - } - } - - if(empty($errors)) { - $player = new OTS_Player(); - $player->find($name); - if(!$player->isLoaded()) { - $errors[] = 'Character '.$name.' doesn\'t exist.'; - } - else - { - if($player->getRank()->isLoaded() && $player->getRank()->getGuild()->isLoaded() && $player->getRank()->getGuild()->getName() != $guild->getName()) { - $errors[] = 'Character '.$name.' isn\'t from your guild.'; - } - } - } - - if(empty($errors)) { - if($player->getRank()->isLoaded() && $player->getRank()->getLevel() >= $level_in_guild && !$guild_leader) { - $errors[] = 'You can\'t kick character '.$name.'. Too high access level.'; - } - } - - if(empty($errors)) { - if($guild->getOwner()->getName() == $player->getName()) { - $errors[] = 'It\'s not possible to kick guild owner!'; - } - } - - if(!empty($errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $errors)); - echo ' -
'; - } - else - { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - $player->setRank(); - echo '
Kick player
Player with name '.$player->getName().' has been kicked from your guild.

'; - } - else - { - echo '
Kick player
Are you sure you want to kick player with name '.$player->getName().' from your guild?

  
  
'; - } - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//show guild page -if($action == 'leaveguild') { - //set rights in guild - $guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; - $name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; - if(!$logged) { - $errors[] = 'You are not logged in. You can\'t leave guild.'; - } - - if(!Validator::guildName($guild_name)) { - $errors[] = Validator::getLastError(); - } - - if(empty($errors)) { - $guild = new OTS_Guild(); - $guild->find($guild_name); - if(!$guild->isLoaded()) { - $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; - } - } - - $array_of_player_ig = array(); - if(empty($errors)) { - $guild_owner_name = $guild->getOwner()->getName(); - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - if(!Validator::characterName($name)) { - $errors[] = 'Invalid name format.'; - } - - if(empty($errors)) { - $player = new OTS_Player(); - $player->find($name); - if(!$player->isLoaded()) { - $errors[] = 'Character '.$name.' doesn\'t exist.'; - } - else { - if($player->getAccount()->getId() != $account_logged->getId()) { - $errors[] = 'Character '.$name.' isn\'t from your account!'; - } - } - } - - if(empty($errors)) { - $player_loaded_rank = $player->getRank(); - if($player_loaded_rank->isLoaded()) { - if($player_loaded_rank->getGuild()->getName() != $guild->getName()) { - $errors[] = 'Character '.$name.' isn\'t from guild '.$guild->getName().'.'; - } - } - else { - $errors[] = 'Character '.$name.' isn\'t in any guild.'; - } - } - - if(empty($errors)) { - if($guild_owner_name == $player->getName()) { - $errors[] = 'You can\'t leave guild. You are an owner of guild.'; - } - } - } - else - { - $account_players = $account_logged->getPlayers(); - foreach($account_players as $player_fac) { - $player_rank = $player_fac->getRank(); - if($player_rank->isLoaded()) { - if($player_rank->getGuild()->getId() == $guild->getId()) { - if($guild_owner_name != $player_fac->getName()) { - $array_of_player_ig[] = $player_fac->getName(); - } - } - } - } - } - } - - if(!empty($errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $errors)); - echo ' -
'; - } - else - { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - $player->setRank(); - echo '
Leave guild
Player with name '.$player->getName().' leaved guild '.$guild->getName().'.

'; - } - else - { - echo ''; - if(count($array_of_player_ig) > 0) { - echo ''; - echo '
Leave guild
Select character to leave guild:
-
'; - - sort($array_of_player_ig); - foreach($array_of_player_ig as $player_to_leave) { - echo ''.$player_to_leave.'
'; - } - echo '
'; - } - else { - echo 'Any of your characters can\'t leave guild.'; - } - - echo ''; - if(count($array_of_player_ig) > 0) { - echo ''; - } - - echo '
'; - } - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//create guild -if($action == 'createguild') -{ - $guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; - $name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; - $todo = isset($_REQUEST['todo']) ? $_REQUEST['todo'] : NULL; - if(!$logged) { - $guild_errors[] = 'You are not logged in. You can\'t create guild.'; - } - - $array_of_player_nig = array(); - if(empty($guild_errors)) - { - $account_players = $account_logged->getPlayers(); - foreach($account_players as $player) - { - $player_rank = $player->getRank(); - if(!$player_rank->isLoaded()) - { - if($player->getLevel() >= $config['guild_need_level']) { - if(!$config['guild_need_premium'] || $account_logged->isPremium()) { - $array_of_player_nig[] = $player->getName(); - } - } - } - } - } - - if(empty($todo)) { - if(count($array_of_player_nig) == 0) { - $guild_errors[] = 'On your account all characters are in guilds, have too low level to create new guild' . ($config['guild_need_premium'] ? ' or you don\' have a premium account' : '') . '.'; - } - } - - if($todo == 'save') - { - if(!Validator::guildName($guild_name)) { - $guild_errors[] = Validator::getLastError(); - $guild_name = ''; - } - - if(!Validator::characterName($name)) { - $guild_errors[] = 'Invalid character name format.'; - $name = ''; - } - - if(empty($guild_errors)) { - $player = $ots->createObject('Player'); - $player->find($name); - if(!$player->isLoaded()) { - $guild_errors[] = 'Character '.$name.' doesn\'t exist.'; - } - } - - - if(empty($guild_errors)) - { - $guild = $ots->createObject('Guild'); - $guild->find($guild_name); - if($guild->isLoaded()) { - $guild_errors[] = 'Guild '.$guild_name.' already exist. Select other name.'; - } - } - - if(empty($guild_errors)) - { - $bad_char = true; - foreach($array_of_player_nig as $nick_from_list) { - if($nick_from_list == $player->getName()) { - $bad_char = false; - } - } - if($bad_char) { - $guild_errors[] = 'Character '.$name.' isn\'t on your account or is already in guild.'; - } - } - - if(empty($guild_errors)) { - if($player->getLevel() < $config['guild_need_level']) { - $guild_errors[] = 'Character '.$name.' has too low level. To create guild you need character with level '.$config['guild_need_level'].'.'; - } - if($config['guild_need_premium'] && !$account_logged->isPremium()) { - $guild_errors[] = 'Character '.$name.' is on FREE account. To create guild you need PREMIUM account.'; - } - } - } - -if(!empty($guild_errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); -unset($todo); -} - -if(isset($todo) && $todo == 'save') -{ - $new_guild = new OTS_Guild(); - $new_guild->setCreationData(time()); - $new_guild->setName($guild_name); - $new_guild->setOwner($player); - $new_guild->save(); - $new_guild->setCustomField('description', 'New guild. Leader must edit this text :)'); - //$new_guild->setCustomField('creationdata', time()); - $ranks = $new_guild->getGuildRanksList(); - $ranks->orderBy('level', POT::ORDER_DESC); - foreach($ranks as $rank) { - if($rank->getLevel() == 3) { - $player->setRank($rank); - } - } - echo $twig->render('success.html.twig', array( - 'title' => 'Created guild', - 'description' => 'Congratulations!
You have created guild ' . $guild_name . '. '.$player->getName().' is leader of this guild. Now you can invite players, change picture, description' . (MOTD_EXISTS ? ' and motd' : '') . ' of guild. Press submit to open guild manager.', - 'custom_buttons' => '
' - )); - - /*$db->query('INSERT INTO `guild_ranks` (`id`, `guild_id`, `name`, `level`) VALUES (null, '.$new_guild->getId().', "the Leader", 3)'); - $db->query('INSERT INTO `guild_ranks` (`id`, `guild_id`, `name`, `level`) VALUES (null, '.$new_guild->getId().', "a Vice-Leader", 2)'); - $db->query('INSERT INTO `guild_ranks` (`id`, `guild_id`, `name`, `level`) VALUES (null, '.$new_guild->getId().', "a Member", 1)');*/ -} -else { - sort($array_of_player_nig); - echo $twig->render('guilds.create_guild.html.twig', array( - 'players' => $array_of_player_nig - )); -} -} -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'manager') { - $guild_name = $_REQUEST['guild']; - if(!Validator::guildName($guild_name)) { - $guild_errors[] = Validator::getLastError(); - } - - if(empty($guild_errors)) { - $guild = new OTS_Guild(); - $guild->find($guild_name); - if(!$guild->isLoaded()) { - $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; - } - } - - if(empty($guild_errors)) { - if($logged) { - $guild_leader_char = $guild->getOwner(); - $rank_list = $guild->getGuildRanksList(); - $rank_list->orderBy('level', POT::ORDER_DESC); - $guild_leader = false; - $account_players = $account_logged->getPlayers(); - foreach($account_players as $player) { - if($guild_leader_char->getId() == $player->getId()) { - $guild_vice = true; - $guild_leader = true; - $level_in_guild = 3; - } - } -if($guild_leader) { - echo $twig->render('guilds.manager.html.twig', array( - 'guild' => $guild, - 'rank_list' => $rank_list - )); -} -else -{ -$guild_errors[] = 'You are not a leader of guild!'; -} -} -else -{ -$guild_errors[] = 'You are not logged. You can\'t manage guild.'; -} -} -if(!empty($guild_errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); -} -} -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'changelogo') { - $guild_name = $_REQUEST['guild']; - if(!Validator::guildName($guild_name)) { - $errors[] = Validator::getLastError(); - } - - if(empty($errors)) { - $guild = new OTS_Guild(); - $guild->find($guild_name); - - if(!$guild->isLoaded()) { - $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; - } - } - - if(empty($errors)) { - if($logged) { - $guild_leader_char = $guild->getOwner(); - $guild_leader = false; - $account_players = $account_logged->getPlayers(); - - foreach($account_players as $player) { - if($guild_leader_char->getId() == $player->getId()) { - $guild_vice = true; - $guild_leader = true; - $level_in_guild = 3; - } - } - - if($guild_leader) - { - $max_image_size_b = $config['guild_image_size_kb'] * 1024; - $allowed_ext = array('image/gif', 'image/jpg', 'image/pjpeg', 'image/jpeg', 'image/bmp', 'image/png', 'image/x-png'); - $ext_name = array('image/gif' => 'gif', 'image/jpg' => 'jpg', 'image/jpeg' => 'jpg', 'image/pjpeg' => 'jpg', 'image/bmp' => 'bmp', 'image/png' => 'png', 'image/x-png' => 'png'); - $save_file_name = str_replace(' ', '_', strtolower($guild->getName())); - $save_path = 'images/guilds/' . $save_file_name; - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') - { - $file = $_FILES['newlogo']; - if(is_uploaded_file($file['tmp_name'])) - { - if($file['size'] > $max_image_size_b) { - $upload_errors[] = 'Uploaded image is too big. Size: '.$file['size'].' bytes, Max. size: '.$max_image_size_b.' bytes.'; - } - - $type = strtolower($file['type']); - if(!in_array($type, $allowed_ext)) { - $upload_errors[] = 'Your file type isn\' allowed. Allowed: gif, jpg, bmp, png. Your file type: '.$type.' If it\'s valid image contact with admin.'; - } - } - else { - $upload_errors[] = 'You didn\'t send file or file is too big. Limit: '.$config['guild_image_size_kb'].' KB.'; - } - - if(empty($upload_errors)) { - $extension = $ext_name[$type]; - if(!move_uploaded_file($file['tmp_name'], $save_path.'.'.$extension)) { - $upload_errors[] = "Sorry! Can't save your image."; - } - } - - if(empty($upload_errors)) - { - $guild_logo = $guild->getCustomField('logo_name'); - $guild_logo = str_replace(array('..', '/', '\\'), array('','',''), $guild->getCustomField('logo_name')); - if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) { - $guild_logo = "default.gif"; - } - - if($guild_logo != "default.gif" && $guild_logo != $save_file_name.'.'.$extension) { - unlink('images/guilds/' . $guild_logo); - } - } - - //show errors or save file - if(!empty($upload_errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $upload_errors)); - } - else { - success('Logo has been changed.'); - $guild->setCustomField('logo_name', $save_file_name.'.'.$extension); - } - } - - $guild_logo = $guild->getCustomField('logo_name'); - if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) { - $guild_logo = "default.gif"; - } - - echo $twig->render('guilds.change_logo.html.twig', array( - 'guild_logo' => $guild_logo, - 'guild' => $guild, - 'max_image_size_b' => $max_image_size_b - )); - - } - else { - $errors[] = 'You are not a leader of guild!'; - } - } - else - { - $errors[] = 'You are not logged. You can\'t manage guild.'; - } - } - if(!empty($errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $errors)); - - echo '
'; - } -} - - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'deleterank') { -$guild_name = $_REQUEST['guild']; -$rank_to_delete = (int) $_REQUEST['rankid']; -if(!Validator::guildName($guild_name)) { -$guild_errors[] = Validator::getLastError(); -} -if(empty($guild_errors)) { -$guild = $ots->createObject('Guild'); -$guild->find($guild_name); -if(!$guild->isLoaded()) { -$guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; -} -} -if(empty($guild_errors)) { -if($logged) { -$guild_leader_char = $guild->getOwner(); -$rank_list = $guild->getGuildRanksList(); -$rank_list->orderBy('level', POT::ORDER_DESC); -$guild_leader = false; -$account_players = $account_logged->getPlayers(); -foreach($account_players as $player) { -if($guild->getOwner()->getId() == $player->getId()) { -$guild_vice = true; -$guild_leader = true; -$level_in_guild = 3; -} -} -if($guild_leader) { -$rank = new OTS_GuildRank(); -$rank->load($rank_to_delete); -if(!$rank->isLoaded()) { -$guild_errors2[] = 'Rank with ID '.$rank_to_delete.' doesn\'t exist.'; -} -else -{ -if($rank->getGuild()->getId() != $guild->getId()) { -$guild_errors2[] = 'Rank with ID '.$rank_to_delete.' isn\'t from your guild.'; -} -else -{ -if(count($rank_list) < 2) { -$guild_errors2[] = 'You have only 1 rank in your guild. You can\'t delete this rank.'; -} -else -{ - if(fieldExist('rank_id', 'players')) - $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); - else - $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); - - $players_with_rank_number = $players_with_rank->rowCount(); - if($players_with_rank_number > 0) { - foreach($rank_list as $checkrank) { - if($checkrank->getId() != $rank->getId()) { - if($checkrank->getLevel() <= $rank->getLevel()) { - $new_rank = $checkrank; - } - } - } - - if(empty($new_rank)) { - $new_rank = new OTS_GuildRank(); - $new_rank->setGuild($guild); - $new_rank->setLevel($rank->getLevel()); - $new_rank->setName('New Rank level '.$rank->getLevel()); - $new_rank->save(); - } - foreach($players_with_rank as $player_in_guild) { - $player_in_guild->setRank($new_rank); - } - } - $rank->delete(); - $saved = true; -} -} -} -if($saved) { -echo '
Rank Deleted
Rank '.$rank->getName().' has been deleted. Players with this rank has now other rank.
'; -} else { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors2)); -} -//back button -echo '
'; -} -else -{ -$guild_errors[] = 'You are not a leader of guild!'; -} -} -else -{ -$guild_errors[] = 'You are not logged. You can\'t manage guild.'; -} -} -if(!empty($guild_errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); - -echo '
'; -} -} -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'addrank') { -$guild_name = $_REQUEST['guild']; -$ranknew = $_REQUEST['rank_name']; -if(!Validator::guildName($guild_name)) { -$guild_errors[] = Validator::getLastError(); -} -if(empty($guild_errors)) { -if(!Validator::rankName($ranknew)) { -$guild_errors[] = 'Invalid rank name format.'; -} -if(!$logged) { -$guild_errors[] = 'You are not logged.'; -} -$guild = $ots->createObject('Guild'); -$guild->find($guild_name); -if(!$guild->isLoaded()) { -$guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; -} -if(empty($guild_errors)) { -$guild_leader_char = $guild->getOwner(); -$rank_list = $guild->getGuildRanksList(); -$rank_list->orderBy('level', POT::ORDER_DESC); -$guild_leader = false; -$account_players = $account_logged->getPlayers(); -foreach($account_players as $player) { -if($guild_leader_char->getId() == $player->getId()) { -$guild_vice = true; -$guild_leader = true; -$level_in_guild = 3; -} -} -if($guild_leader) { -$new_rank = new OTS_GuildRank(); -$new_rank->setGuild($guild); -$new_rank->setLevel(1); -$new_rank->setName($ranknew); -$new_rank->save(); -header("Location: ?subtopic=guilds&guild=".$guild->getName()."&action=manager"); -echo 'New rank added. Redirecting...'; -} -else { - $guild_errors[] = 'You are not a leader of guild!'; -} -} -if(!empty($guild_errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); - -echo '
'; -} -} -else -{ -if(!empty($guild_errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); - -echo '
'; -} -} -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'changedescription') { - $guild_name = $_REQUEST['guild']; - if(!Validator::guildName($guild_name)) { - $errors[] = Validator::getLastError(); - } - - if(empty($errors)) { - $guild = $ots->createObject('Guild'); - $guild->find($guild_name); - if(!$guild->isLoaded()) { - $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; - } - } - - if(empty($errors)) { - if($logged) { - $guild_leader_char = $guild->getOwner(); - $rank_list = $guild->getGuildRanksList(); - $rank_list->orderBy('level', POT::ORDER_DESC); - $guild_leader = false; - $account_players = $account_logged->getPlayers(); - foreach($account_players as $player) { - if($guild->getOwner()->getId() == $player->getId()) { - $guild_vice = true; - $guild_leader = true; - $level_in_guild = 3; - } - } - - $saved = false; - if($guild_leader) { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - $description = htmlspecialchars(stripslashes(substr(trim($_REQUEST['description']),0,$config['guild_description_chars_limit']))); - $guild->setCustomField('description', $description); - $saved = true; - } - - if($saved) { - success('Changes has been saved'); - } - - echo $twig->render('guilds.change_description.html.twig', array( - 'guild' => $guild, - 'rows' => bcsub($config['guild_description_lines_limit'],1) - )); - } - else { - $errors[] = 'You are not a leader of guild!'; - } - } - else { - $errors[] = 'You are not logged. You can\'t manage guild.'; - } - } - if(!empty($errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $errors)); - - echo '
'; - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'passleadership') { - $guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; - $pass_to = isset($_REQUEST['player']) ? stripslashes($_REQUEST['player']) : NULL; - if(!Validator::guildName($guild_name)) { - $guild_errors[] = Validator::getLastError(); - } - - if(empty($guild_errors)) { - $guild = $ots->createObject('Guild'); - $guild->find($guild_name); - if(!$guild->isLoaded()) { - $guild_errors[] = "Guild with name " . $guild_name . " doesn't exist."; - } - } - if(empty($guild_errors)) { - if(isset($_POST['todo']) && $_POST['todo'] == 'save') { - if(!Validator::characterName($pass_to)) { - $guild_errors2[] = 'Invalid player name format.'; - } - - if(empty($guild_errors2)) { - $to_player = new OTS_Player(); - $to_player->find($pass_to); - if(!$to_player->isLoaded()) { - $guild_errors2[] = 'Player with name '.$pass_to.' doesn\'t exist.'; - } - - if(empty($guild_errors2)) { - $to_player_rank = $to_player->getRank(); - if($to_player_rank->isLoaded()) { - $to_player_guild = $to_player_rank->getGuild(); - if($to_player_guild->getId() != $guild->getId()) { - $guild_errors2[] = 'Player with name '.$to_player->getName().' isn\'t from your guild.'; - } - } - else { - $guild_errors2[] = 'Player with name '.$to_player->getName().' isn\'t from your guild.'; - } - } - } - } - } - if(empty($guild_errors) && empty($guild_errors2)) { - if($logged) { - $guild_leader_char = $guild->getOwner(); - $guild_leader = false; - $account_players = $account_logged->getPlayers(); - foreach($account_players as $player) { - if($guild_leader_char->getId() == $player->getId()) { - $guild_vice = true; - $guild_leader = true; - $level_in_guild = 3; - } - } - - $saved = false; - if($guild_leader) { - if(isset($_POST['todo']) && $_POST['todo'] == 'save') { - $query = $db->query('SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild->getId() . ' ORDER BY `level` ASC LIMIT 1')->fetch(); - if($query) { - $guild_leader_char->setRankId($query['id'], $guild->getId()); - } - - $query = $db->query('SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild->getId() . ' ORDER BY `level` DESC LIMIT 1')->fetch(); - if($query) { - $to_player->setRankId($query['id'], $guild->getId()); - } - - $guild->setOwner($to_player); - $guild->save(); - $saved = true; - } - if($saved) { - echo $twig->render('success.html.twig', array( - 'title' => 'Leadership passed', - 'description' => ''.$to_player->getName().' is now a Leader of '.$guild_name.'.', - 'custom_buttons' => '
' - )); - } - else { - echo $twig->render('guilds.pass_leadership.html.twig', array( - 'guild' => $guild - )); - } - } - else { - $guild_errors[] = 'You are not a leader of guild!'; - } - } - else { - $guild_errors[] = "You are not logged. You can't manage guild."; - } - } - if(empty($guild_errors) && !empty($guild_errors2)) { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors2)); - - echo '
'; - } - if(!empty($guild_errors)) { - if(!empty($guild_errors2)) { - $guild_errors = array_merge($guild_errors, $guild_errors2); - } - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); - - echo '
'; - } -} -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'deleteguild') { - $guild_name = $_REQUEST['guild']; - if(!Validator::guildName($guild_name)) { - $errors[] = Validator::getLastError(); - } - - if(empty($errors)) { - $guild = new OTS_Guild(); - $guild->find($guild_name); - if(!$guild->isLoaded()) { - $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; - } - } - - if(empty($errors)) { - if($logged) { - $guild_leader_char = $guild->getOwner(); - $rank_list = $guild->getGuildRanksList(); - $rank_list->orderBy('level', POT::ORDER_DESC); - $guild_leader = false; - $account_players = $account_logged->getPlayers(); - - foreach($account_players as $player) { - if($guild->getOwner()->getId() == $player->getId()) { - $guild_vice = true; - $guild_leader = true; - $level_in_guild = 3; - } - } - - if($guild_leader) { - $saved = false; - - if(isset($_POST['todo']) && $_POST['todo'] == 'save') { - delete_guild($guild->getId()); - $saved = true; - } - - if($saved) { - echo $twig->render('success.html.twig', array( - 'title' => 'Guild Deleted', - 'description' => 'Guild with name '.$guild_name.' has been deleted.', - 'custom_buttons' => '
' - )); - } - else { - echo $twig->render('guilds.delete_guild.html.twig', array( - 'guild' => $guild - )); - } - } - else { - $errors[] = 'You are not a leader of guild!'; - } - } - else { - $errors[] = 'You are not logged. You can\'t manage guild.'; - } - } - - if(!empty($errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $errors)); - - echo '
'; - } -} - - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'deletebyadmin') { - $guild_name = $_REQUEST['guild']; - if(!Validator::guildName($guild_name)) { - $errors[] = Validator::getLastError(); - } - - if(empty($errors)) { - $guild = new OTS_Guild(); - $guild->find($guild_name); - if(!$guild->isLoaded()) { - $errors[] = 'Guild with name ' . $guild_name . ' doesn\'t exist.'; - } - } - - if(empty($errors)) { - if($logged) { - if(admin()) { - $saved = false; - if(isset($_POST['todo']) && $_POST['todo'] == 'save') { - delete_guild($guild->getId()); - $saved = true; - } - - if($saved) { - echo $twig->render('success.html.twig', array( - 'title' => 'Guild Deleted', - 'description' => 'Guild with name ' . $guild_name . ' has been deleted.', - 'custom_buttons' => '
' - )); - } - else { - echo $twig->render('success.html.twig', array( - 'title' => 'Delete Guild', - 'description' => 'Are you sure you want delete guild ' . $guild_name . '?
-
', - 'custom_buttons' => '
' - )); - } - } - else { - $errors[] = 'You are not an admin!'; - } - } - else { - $errors[] = "You are not logged. You can't delete guild."; - } - } - if(!empty($errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $errors)); - - echo '
'; - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'changemotd' && MOTD_EXISTS) { - $guild_name = $_REQUEST['guild']; - if(!Validator::guildName($guild_name)) { - $errors[] = Validator::getLastError(); - } - - if(empty($errors)) { - $guild = new OTS_Guild(); - $guild->find($guild_name); - if(!$guild->isLoaded()) { - $errors[] = "Guild with name " . $guild_name . " doesn't exist."; - } - } - - if(empty($errors)) { - if($logged) { - $guild_leader_char = $guild->getOwner(); - $rank_list = $guild->getGuildRanksList(); - $rank_list->orderBy('level', POT::ORDER_DESC); - $guild_leader = false; - $account_players = $account_logged->getPlayers(); - foreach($account_players as $player) { - if($guild->getOwner()->getId() == $player->getId()) { - $guild_vice = true; - $guild_leader = true; - $level_in_guild = 3; - } - } - - $saved = false; - if($guild_leader) { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - $motd = htmlspecialchars(stripslashes(substr($_REQUEST['motd'],0, $config['guild_motd_chars_limit']))); - $guild->setCustomField('motd', $motd); - $saved = true; - } - - if($saved) { - success('Changes has been saved'); - } - - echo $twig->render('guilds.change_motd.html.twig', array( - 'guild' => $guild - )); - } - else { - $errors[] = 'You are not a leader of guild!'; - } - } - else { - $errors[] = 'You are not logged. You can\'t manage guild.'; - } - } - if(!empty($errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $errors)); - - echo '
'; - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'saveranks') { - $guild_name = $_REQUEST['guild']; - if(!Validator::guildName($guild_name)) { - $errors[] = Validator::get; - } - - if(empty($errors)) { - $guild = $ots->createObject('Guild'); - $guild->find($guild_name); - if(!$guild->isLoaded()) { - $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; - } - } - - if(empty($errors)) { - if($logged) { - $guild_leader_char = $guild->getOwner(); - $rank_list = $guild->getGuildRanksList(); - $rank_list->orderBy('level', POT::ORDER_DESC); - $guild_leader = false; - $account_players = $account_logged->getPlayers(); - - foreach($account_players as $player) { - if($guild_leader_char->getId() == $player->getId()) { - $guild_vice = true; - $guild_leader = true; - $level_in_guild = 3; - } - } - - if($guild_leader) { - foreach($rank_list as $rank) { - $rank_id = $rank->getId(); - $name = $_REQUEST[$rank_id.'_name']; - $level = (int) $_REQUEST[$rank_id.'_level']; - if(Validator::rankName($name)) { - $rank->setName($name); - } - else { - $errors[] = 'Invalid rank name. Please use only a-Z, 0-9 and spaces. Rank ID '.$rank_id.'.'; - } - if($level > 0 && $level < 4) { - $rank->setLevel($level); - } - else { - $errors[] = 'Invalid rank level. Contact with admin. Rank ID '.$rank_id.'.'; - } - - $rank->save(); - } - //show errors or redirect - if(!empty($errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $errors)); - } - else - { - header("Location: ?subtopic=guilds&action=manager&guild=".$guild->getName()); - } - } - else - { - $errors[] = 'You are not a leader of guild!'; - } - } - else - { - $errors[] = 'You are not logged. You can\'t manage guild.'; - } - } - if(!empty($errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $errors)); - } -} -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'cleanup_players') -{ - if($logged) - { - if(admin()) - { - $players_list = new OTS_Players_List(); - $players_list->init(); - } - else - $players_list = $account_logged->getPlayersList(); - - if(count($players_list) > 0) - { - foreach($players_list as $player) - { - $player_rank = $player->getRank(); - if($player_rank->isLoaded()) - { - if($player_rank->isLoaded()) - { - $rank_guild = $player_rank->getGuild(); - if(!$rank_guild->isLoaded()) - { - $player->setRank(); - $player->setGuildNick(); - $changed_ranks_of[] = $player->getName(); - $deleted_ranks[] = 'ID: '.$player_rank->getId().' - '.$player_rank->getName(); - $player_rank->delete(); - } - } - else - { - $player->setRank(); - $player->setGuildNick(''); - $changed_ranks_of[] = $player->getName(); - } - - } - } - echo "Deleted ranks (this ranks guilds doesn't exist [bug fix]):"; - if(!empty($deleted_ranks)) - foreach($deleted_ranks as $rank) - echo "
  • ".$rank; - echo "

    Changed ranks of players (rank or guild of rank doesn't exist [bug fix]):"; - if(!empty($changed_ranks_of)) - foreach($changed_ranks_of as $name) - echo "
  • ".$name; - } - else - echo "0 players found."; - } - else - echo "You are not logged in."; - echo "

    BACK

    "; -} -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -if($action == 'cleanup_guilds') -{ - if($logged) - { - $guilds_list = new OTS_Guilds_List(); - $guilds_list->init(); - if(count($guilds_list) > 0) - { - foreach($guilds_list as $guild) - { - $error = 0; - $leader = $guild->getOwner(); - if($leader->isLoaded()) - { - $leader_rank = $leader->getRank(); - if($leader_rank->isLoaded()) - { - if($leader_rank->isLoaded()) - { - $leader_guild = $leader_rank->getGuild(); - if($leader_guild->isLoaded()) - { - if($leader_guild->getId() != $guild->getId()) - $error = 1; - } - else - $error = 1; - } - else - $error = 1; - } - else - $error = 1; - } - else - $error = 1; - if($error == 1) - { - $deleted_guilds[] = $guild->getName(); - $status = delete_guild($guild->getId()); - } - } - echo "Deleted guilds (leaders of this guilds are not members of this guild [fix bugged guilds]):"; - if(!empty($deleted_guilds)) - foreach($deleted_guilds as $guild) - echo "
  • ".$guild; - } - else - echo "0 guilds found."; - } - else - echo "You are not logged in."; - echo "

    BACK

    "; -} -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- - if($action == 'change_nick') - { - if($logged) - { - $name = stripslashes($_REQUEST['name']); - $new_nick = stripslashes($_REQUEST['nick']); - $player = new OTS_Player(); - $player->find($name); - $player_from_account = false; - if(strlen($new_nick) <= 40) - { - if($player->isLoaded()) - { - $account_players = $account_logged->getPlayersList(); - if(count($account_players)) - { - foreach($account_players as $acc_player) - { - if($acc_player->getId() == $player->getId()) - $player_from_account = true; - } - if($player_from_account) - { - $player->setGuildNick($new_nick); - echo 'Guild nick of player '.$player->getName().' changed to '.htmlentities($new_nick).'.'; - $addtolink = '&action=show&guild='.$player->getRank()->getGuild()->getName(); - } - else - echo 'This player is not from your account.'; - } - else - echo 'This player is not from your account.'; - } - else - echo 'Unknow error occured.'; - } - else - echo 'Too long guild nick. Max. 40 chars, your length: '.strlen($new_nick); - } - else - echo 'You are not logged.'; - echo '

    BACK

    '; - } ?> diff --git a/system/pages/guilds/accept_invite.php b/system/pages/guilds/accept_invite.php new file mode 100644 index 00000000..97ed5cd6 --- /dev/null +++ b/system/pages/guilds/accept_invite.php @@ -0,0 +1,121 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +//set rights in guild +$guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; +$name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; +if(!$logged) { + $errors[] = 'You are not logged in. You can\'t accept invitations.'; +} +if(!Validator::guildName($guild_name)) { + $errors[] = Validator::getLastError(); +} +if(empty($errors)) { + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; + } +} + +if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + if(!Validator::characterName($name)) { + $errors[] = 'Invalid name format.'; + } + + if(empty($errors)) { + $player = new OTS_Player(); + $player->find($name); + if(!$player->isLoaded()) { + $errors[] = 'Player with name '.$name.' doesn\'t exist.'; + } + else + { + $rank_of_player = $player->getRank(); + if($rank_of_player->isLoaded()) { + $errors[] = 'Character with name '.$name.' is already in guild. You must leave guild before you join other guild.'; + } + } + } +} + +if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + if(empty($errors)) { + $is_invited = false; + include(SYSTEM . 'libs/pot/InvitesDriver.php'); + new InvitesDriver($guild); + $invited_list = $guild->listInvites(); + if(count($invited_list) > 0) { + foreach($invited_list as $invited) { + if($invited->getName() == $player->getName()) { + $is_invited = true; + } + } + } + + if(!$is_invited) { + $errors[] = 'Character '.$player->getName.' isn\'t invited to guild '.$guild->getName().'.'; + } + } +} +else +{ + if(empty($errors)) { + $acc_invited = false; + $account_players = $account_logged->getPlayers(); + include(SYSTEM . 'libs/pot/InvitesDriver.php'); + new InvitesDriver($guild); + $invited_list = $guild->listInvites(); + + if(count($invited_list) > 0) { + foreach($invited_list as $invited) { + foreach($account_players as $player_from_acc) { + if($invited->getName() == $player_from_acc->getName()) { + $acc_invited = true; + $list_of_invited_players[] = $player_from_acc->getName(); + } + } + } + } + } + + if(!$acc_invited) { + $errors[] = 'Any character from your account isn\'t invited to '.$guild->getName().'.'; + } +} +if(!empty($errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $errors)); + echo ' +
    '; +} +else { + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + $guild->acceptInvite($player); + echo '
    Accept invitation
    Player with name '.$player->getName().' has been added to guild '.$guild->getName().'.

    '; + } + else + { + echo ''; + echo ''; + echo '
    Accept invitation
    Select character to join guild:
    +
    '; + sort($list_of_invited_players); + $i = 0; + foreach($list_of_invited_players as $invited_player_from_list) { + echo '
    '; + } + echo '

    '; + } +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/add_rank.php b/system/pages/guilds/add_rank.php new file mode 100644 index 00000000..4ce504d4 --- /dev/null +++ b/system/pages/guilds/add_rank.php @@ -0,0 +1,72 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = $_REQUEST['guild']; +$ranknew = $_REQUEST['rank_name']; +if(!Validator::guildName($guild_name)) { + $guild_errors[] = Validator::getLastError(); +} +if(empty($guild_errors)) { + if(!Validator::rankName($ranknew)) { + $guild_errors[] = 'Invalid rank name format.'; + } + if(!$logged) { + $guild_errors[] = 'You are not logged.'; + } + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; + } + if(empty($guild_errors)) { + $guild_leader_char = $guild->getOwner(); + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) { + if($guild_leader_char->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + $level_in_guild = 3; + } + } + if($guild_leader) { + $new_rank = new OTS_GuildRank(); + $new_rank->setGuild($guild); + $new_rank->setLevel(1); + $new_rank->setName($ranknew); + $new_rank->save(); + header("Location: ?subtopic=guilds&guild=".$guild->getName()."&action=manager"); + echo 'New rank added. Redirecting...'; + } + else { + $guild_errors[] = 'You are not a leader of guild!'; + } + } + if(!empty($guild_errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + + echo '
    '; + } +} +else +{ + if(!empty($guild_errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + + echo '
    '; + } +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/change_description.php b/system/pages/guilds/change_description.php new file mode 100644 index 00000000..042d14c6 --- /dev/null +++ b/system/pages/guilds/change_description.php @@ -0,0 +1,73 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = $_REQUEST['guild']; +if(!Validator::guildName($guild_name)) { + $errors[] = Validator::getLastError(); +} + +if(empty($errors)) { + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; + } +} + +if(empty($errors)) { + if($logged) { + $guild_leader_char = $guild->getOwner(); + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) { + if($guild->getOwner()->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + $level_in_guild = 3; + } + } + + $saved = false; + if($guild_leader) { + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + $description = htmlspecialchars(stripslashes(substr(trim($_REQUEST['description']),0,$config['guild_description_chars_limit']))); + $guild->setCustomField('description', $description); + $saved = true; + } + + if($saved) { + success('Changes has been saved'); + } + + echo $twig->render('guilds.change_description.html.twig', array( + 'guild' => $guild, + 'rows' => bcsub($config['guild_description_lines_limit'],1) + )); + } + else { + $errors[] = 'You are not a leader of guild!'; + } + } + else { + $errors[] = 'You are not logged. You can\'t manage guild.'; + } +} +if(!empty($errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $errors)); + + echo '
    '; +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/change_logo.php b/system/pages/guilds/change_logo.php new file mode 100644 index 00000000..69f4d106 --- /dev/null +++ b/system/pages/guilds/change_logo.php @@ -0,0 +1,123 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = $_REQUEST['guild']; +if(!Validator::guildName($guild_name)) { + $errors[] = Validator::getLastError(); +} + +if(empty($errors)) { + $guild = new OTS_Guild(); + $guild->find($guild_name); + + if(!$guild->isLoaded()) { + $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; + } +} + +if(empty($errors)) { + if($logged) { + $guild_leader_char = $guild->getOwner(); + $guild_leader = false; + $account_players = $account_logged->getPlayers(); + + foreach($account_players as $player) { + if($guild_leader_char->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + $level_in_guild = 3; + } + } + + if($guild_leader) + { + $max_image_size_b = $config['guild_image_size_kb'] * 1024; + $allowed_ext = array('image/gif', 'image/jpg', 'image/pjpeg', 'image/jpeg', 'image/bmp', 'image/png', 'image/x-png'); + $ext_name = array('image/gif' => 'gif', 'image/jpg' => 'jpg', 'image/jpeg' => 'jpg', 'image/pjpeg' => 'jpg', 'image/bmp' => 'bmp', 'image/png' => 'png', 'image/x-png' => 'png'); + $save_file_name = str_replace(' ', '_', strtolower($guild->getName())); + $save_path = 'images/guilds/' . $save_file_name; + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') + { + $file = $_FILES['newlogo']; + if(is_uploaded_file($file['tmp_name'])) + { + if($file['size'] > $max_image_size_b) { + $upload_errors[] = 'Uploaded image is too big. Size: '.$file['size'].' bytes, Max. size: '.$max_image_size_b.' bytes.'; + } + + $type = strtolower($file['type']); + if(!in_array($type, $allowed_ext)) { + $upload_errors[] = 'Your file type isn\' allowed. Allowed: gif, jpg, bmp, png. Your file type: '.$type.' If it\'s valid image contact with admin.'; + } + } + else { + $upload_errors[] = 'You didn\'t send file or file is too big. Limit: '.$config['guild_image_size_kb'].' KB.'; + } + + if(empty($upload_errors)) { + $extension = $ext_name[$type]; + if(!move_uploaded_file($file['tmp_name'], $save_path.'.'.$extension)) { + $upload_errors[] = "Sorry! Can't save your image."; + } + } + + if(empty($upload_errors)) + { + $guild_logo = $guild->getCustomField('logo_name'); + $guild_logo = str_replace(array('..', '/', '\\'), array('','',''), $guild->getCustomField('logo_name')); + if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) { + $guild_logo = "default.gif"; + } + + if($guild_logo != "default.gif" && $guild_logo != $save_file_name.'.'.$extension) { + unlink('images/guilds/' . $guild_logo); + } + } + + //show errors or save file + if(!empty($upload_errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $upload_errors)); + } + else { + success('Logo has been changed.'); + $guild->setCustomField('logo_name', $save_file_name.'.'.$extension); + } + } + + $guild_logo = $guild->getCustomField('logo_name'); + if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) { + $guild_logo = "default.gif"; + } + + echo $twig->render('guilds.change_logo.html.twig', array( + 'guild_logo' => $guild_logo, + 'guild' => $guild, + 'max_image_size_b' => $max_image_size_b + )); + + } + else { + $errors[] = 'You are not a leader of guild!'; + } + } + else + { + $errors[] = 'You are not logged. You can\'t manage guild.'; + } +} +if(!empty($errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $errors)); + + echo '
    '; +} +?> \ No newline at end of file diff --git a/system/pages/guilds/change_motd.php b/system/pages/guilds/change_motd.php new file mode 100644 index 00000000..848aa205 --- /dev/null +++ b/system/pages/guilds/change_motd.php @@ -0,0 +1,75 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +if(!MOTD_EXISTS) + return; + +$guild_name = $_REQUEST['guild']; +if(!Validator::guildName($guild_name)) { + $errors[] = Validator::getLastError(); +} + +if(empty($errors)) { + $guild = new OTS_Guild(); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $errors[] = "Guild with name " . $guild_name . " doesn't exist."; + } +} + +if(empty($errors)) { + if($logged) { + $guild_leader_char = $guild->getOwner(); + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) { + if($guild->getOwner()->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + $level_in_guild = 3; + } + } + + $saved = false; + if($guild_leader) { + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + $motd = htmlspecialchars(stripslashes(substr($_REQUEST['motd'],0, $config['guild_motd_chars_limit']))); + $guild->setCustomField('motd', $motd); + $saved = true; + } + + if($saved) { + success('Changes has been saved'); + } + + echo $twig->render('guilds.change_motd.html.twig', array( + 'guild' => $guild + )); + } + else { + $errors[] = 'You are not a leader of guild!'; + } + } + else { + $errors[] = 'You are not logged. You can\'t manage guild.'; + } +} +if(!empty($errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $errors)); + + echo '
    '; +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/change_nick.php b/system/pages/guilds/change_nick.php new file mode 100644 index 00000000..16a909b1 --- /dev/null +++ b/system/pages/guilds/change_nick.php @@ -0,0 +1,55 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +if($logged) +{ + $name = stripslashes($_REQUEST['name']); + $new_nick = stripslashes($_REQUEST['nick']); + $player = new OTS_Player(); + $player->find($name); + $player_from_account = false; + if(strlen($new_nick) <= 40) + { + if($player->isLoaded()) + { + $account_players = $account_logged->getPlayersList(); + if(count($account_players)) + { + foreach($account_players as $acc_player) + { + if($acc_player->getId() == $player->getId()) + $player_from_account = true; + } + if($player_from_account) + { + $player->setGuildNick($new_nick); + echo 'Guild nick of player '.$player->getName().' changed to '.htmlentities($new_nick).'.'; + $addtolink = '&action=show&guild='.$player->getRank()->getGuild()->getName(); + } + else + echo 'This player is not from your account.'; + } + else + echo 'This player is not from your account.'; + } + else + echo 'Unknow error occured.'; + } + else + echo 'Too long guild nick. Max. 40 chars, your length: '.strlen($new_nick); +} +else + echo 'You are not logged.'; +echo '

    BACK

    '; + +?> \ No newline at end of file diff --git a/system/pages/guilds/change_rank.php b/system/pages/guilds/change_rank.php new file mode 100644 index 00000000..c996df56 --- /dev/null +++ b/system/pages/guilds/change_rank.php @@ -0,0 +1,201 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = $_REQUEST['guild']; +if(!Validator::guildName($guild_name)) + $guild_errors[] = Validator::getLastError(); +if(!$logged) + $guild_errors[] = 'You are not logged in. You can\'t change rank.'; +if(empty($guild_errors)) +{ + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if(!$guild->isLoaded()) + $guild_errors[] = 'Guild with name ' . $guild_name . ' doesn\'t exist.'; +} +if(!empty($guild_errors)) +{ + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + echo ' +
    '; +} +else +{ + //check is it vice or/and leader account (leader has vice + leader rights) + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $guild_vice = false; + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) + { + $player_rank = $player->getRank(); + if($player_rank->isLoaded()) { + foreach($rank_list as $rank_in_guild) + { + if($rank_in_guild->getId() == $player_rank->getId()) + { + $players_from_account_in_guild[] = $player->getName(); + if($player_rank->getLevel() > 1) { + $guild_vice = true; + $level_in_guild = $player_rank->getLevel(); + } + if($guild->getOwner()->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + } + } + } + } + } + //tworzenie listy osob z nizszymi uprawnieniami i rank z nizszym levelem + if($guild_vice) + { + $rid = 0; + $sid = 0; + foreach($rank_list as $rank) + { + if($guild_leader || $rank->getLevel() < $level_in_guild) + { + $ranks[$rid]['0'] = $rank->getId(); + $ranks[$rid]['1'] = $rank->getName(); + $rid++; + + if(fieldExist('rank_id', 'players')) + $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); + else + $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); + + $players_with_rank_number = $players_with_rank->rowCount(); + if(count($players_with_rank) > 0) + { + + foreach($players_with_rank as $result) + { + $player = $ots->createObject('Player'); + $player->load($result['id']); + if(!$player->isLoaded()) + continue; + + if($guild->getOwner()->getId() != $player->getId() || $guild_leader) + { + $players_with_lower_rank[$sid]['0'] = $player->getName(); + $players_with_lower_rank[$sid]['1'] = $player->getName().' ('.$rank->getName().')'; + $sid++; + } + } + } + } + } + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') + { + $player_name = stripslashes($_REQUEST['name']); + $new_rank = (int) $_REQUEST['rankid']; + if(!Validator::characterName($player_name)) + $change_errors[] = 'Invalid player name format.'; + $rank = $ots->createObject('GuildRank'); + $rank->load($new_rank); + if(!$rank->isLoaded()) + $change_errors[] = 'Rank with this ID doesn\'t exist.'; + if($level_in_guild <= $rank->getLevel() && !$guild_leader) + $change_errors[] = 'You can\'t set ranks with equal or higher level than your.'; + if(empty($change_errors)) + { + $player_to_change = $ots->createObject('Player'); + $player_to_change->find($player_name); + if(!$player_to_change->isLoaded()) + $change_errors[] = 'Player with name '.$player_name.' doesn\'t exist.'; + else + { + $player_in_guild = false; + if($guild->getName() == $player_to_change->getRank()->getGuild()->getName() || $guild_leader) + { + $player_in_guild = true; + $player_has_lower_rank = false; + if($player_to_change->getRank()->getLevel() < $level_in_guild || $guild_leader) + $player_has_lower_rank = true; + } + } + $rank_in_guild = false; + foreach($rank_list as $rank_from_guild) + if($rank_from_guild->getId() == $rank->getId()) + $rank_in_guild = true; + if(!$player_in_guild) + $change_errors[] = 'This player isn\'t in your guild.'; + if(!$rank_in_guild) + $change_errors[] = 'This rank isn\'t in your guild.'; + if(!$player_has_lower_rank) + $change_errors[] = 'This player has higher rank in guild than you. You can\'t change his/her rank.'; + } + if(empty($change_errors)) + { + $player_to_change->setRank($rank); + echo '
    Guild Deleted
    Rank of player '.$player_to_change->getName().' has been changed to '.$rank->getName().'.

    '; + unset($players_with_lower_rank); + unset($ranks); + $rid = 0; + $sid= 0; + foreach($rank_list as $rank) + { + if($guild_leader || $rank->getLevel() < $level_in_guild) + { + $ranks[$rid]['0'] = $rank->getId(); + $ranks[$rid]['1'] = $rank->getName(); + $rid++; + + if(fieldExist('rank_id', 'players')) + $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); + else + $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); + + $players_with_rank_number = $players_with_rank->rowCount(); + if(count($players_with_rank) > 0) + { + foreach($players_with_rank as $result) + { + $player = $ots->createObject('Player'); + $player->load($result['id']); + if(!$player->isLoaded()) + continue; + + if($guild->getOwner()->getId() != $player->getId() || $guild_leader) + { + $players_with_lower_rank[$sid]['0'] = $player->getName(); + $players_with_lower_rank[$sid]['1'] = $player->getName().' ('.$rank->getName().')'; + $sid++; + } + } + } + } + } + } + else + { + echo $twig->render('error_box.html.twig', array('errors' => $change_errors)); + } + } + echo '
    + + + +
    Change Rank
    Name:  Rank:    
    '; + } + else + echo 'Error. You are not a leader or vice leader in guild '.$guild->getName().'.
    '; +} \ No newline at end of file diff --git a/system/pages/guilds/cleanup_guilds.php b/system/pages/guilds/cleanup_guilds.php new file mode 100644 index 00000000..2e3cc4a5 --- /dev/null +++ b/system/pages/guilds/cleanup_guilds.php @@ -0,0 +1,65 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +if($logged) +{ + $guilds_list = new OTS_Guilds_List(); + $guilds_list->init(); + if(count($guilds_list) > 0) + { + foreach($guilds_list as $guild) + { + $error = 0; + $leader = $guild->getOwner(); + if($leader->isLoaded()) + { + $leader_rank = $leader->getRank(); + if($leader_rank->isLoaded()) + { + if($leader_rank->isLoaded()) + { + $leader_guild = $leader_rank->getGuild(); + if($leader_guild->isLoaded()) + { + if($leader_guild->getId() != $guild->getId()) + $error = 1; + } + else + $error = 1; + } + else + $error = 1; + } + else + $error = 1; + } + else + $error = 1; + if($error == 1) + { + $deleted_guilds[] = $guild->getName(); + $status = delete_guild($guild->getId()); + } + } + echo "Deleted guilds (leaders of this guilds are not members of this guild [fix bugged guilds]):"; + if(!empty($deleted_guilds)) + foreach($deleted_guilds as $guild) + echo "
  • ".$guild; + } + else + echo "0 guilds found."; +} +else + echo "You are not logged in."; +echo "

    BACK

    "; +?> \ No newline at end of file diff --git a/system/pages/guilds/cleanup_players.php b/system/pages/guilds/cleanup_players.php new file mode 100644 index 00000000..6fe2085d --- /dev/null +++ b/system/pages/guilds/cleanup_players.php @@ -0,0 +1,67 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +if($logged) +{ + if(admin()) + { + $players_list = new OTS_Players_List(); + $players_list->init(); + } + else + $players_list = $account_logged->getPlayersList(); + + if(count($players_list) > 0) + { + foreach($players_list as $player) + { + $player_rank = $player->getRank(); + if($player_rank->isLoaded()) + { + if($player_rank->isLoaded()) + { + $rank_guild = $player_rank->getGuild(); + if(!$rank_guild->isLoaded()) + { + $player->setRank(); + $player->setGuildNick(); + $changed_ranks_of[] = $player->getName(); + $deleted_ranks[] = 'ID: '.$player_rank->getId().' - '.$player_rank->getName(); + $player_rank->delete(); + } + } + else + { + $player->setRank(); + $player->setGuildNick(''); + $changed_ranks_of[] = $player->getName(); + } + + } + } + echo "Deleted ranks (this ranks guilds doesn't exist [bug fix]):"; + if(!empty($deleted_ranks)) + foreach($deleted_ranks as $rank) + echo "
  • ".$rank; + echo "

    Changed ranks of players (rank or guild of rank doesn't exist [bug fix]):"; + if(!empty($changed_ranks_of)) + foreach($changed_ranks_of as $name) + echo "
  • ".$name; + } + else + echo "0 players found."; +} +else + echo "You are not logged in."; +echo "

    BACK

    "; +?> \ No newline at end of file diff --git a/system/pages/guilds/create_guild.php b/system/pages/guilds/create_guild.php new file mode 100644 index 00000000..f9e44c29 --- /dev/null +++ b/system/pages/guilds/create_guild.php @@ -0,0 +1,136 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; +$name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; +$todo = isset($_REQUEST['todo']) ? $_REQUEST['todo'] : NULL; +if(!$logged) { + $guild_errors[] = 'You are not logged in. You can\'t create guild.'; +} + +$array_of_player_nig = array(); +if(empty($guild_errors)) +{ + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) + { + $player_rank = $player->getRank(); + if(!$player_rank->isLoaded()) + { + if($player->getLevel() >= $config['guild_need_level']) { + if(!$config['guild_need_premium'] || $account_logged->isPremium()) { + $array_of_player_nig[] = $player->getName(); + } + } + } + } +} + +if(empty($todo)) { + if(count($array_of_player_nig) == 0) { + $guild_errors[] = 'On your account all characters are in guilds, have too low level to create new guild' . ($config['guild_need_premium'] ? ' or you don\' have a premium account' : '') . '.'; + } +} + +if($todo == 'save') +{ + if(!Validator::guildName($guild_name)) { + $guild_errors[] = Validator::getLastError(); + $guild_name = ''; + } + + if(!Validator::characterName($name)) { + $guild_errors[] = 'Invalid character name format.'; + $name = ''; + } + + if(empty($guild_errors)) { + $player = $ots->createObject('Player'); + $player->find($name); + if(!$player->isLoaded()) { + $guild_errors[] = 'Character '.$name.' doesn\'t exist.'; + } + } + + + if(empty($guild_errors)) + { + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if($guild->isLoaded()) { + $guild_errors[] = 'Guild '.$guild_name.' already exist. Select other name.'; + } + } + + if(empty($guild_errors)) + { + $bad_char = true; + foreach($array_of_player_nig as $nick_from_list) { + if($nick_from_list == $player->getName()) { + $bad_char = false; + } + } + if($bad_char) { + $guild_errors[] = 'Character '.$name.' isn\'t on your account or is already in guild.'; + } + } + + if(empty($guild_errors)) { + if($player->getLevel() < $config['guild_need_level']) { + $guild_errors[] = 'Character '.$name.' has too low level. To create guild you need character with level '.$config['guild_need_level'].'.'; + } + if($config['guild_need_premium'] && !$account_logged->isPremium()) { + $guild_errors[] = 'Character '.$name.' is on FREE account. To create guild you need PREMIUM account.'; + } + } +} + +if(!empty($guild_errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + unset($todo); +} + +if(isset($todo) && $todo == 'save') +{ + $new_guild = new OTS_Guild(); + $new_guild->setCreationData(time()); + $new_guild->setName($guild_name); + $new_guild->setOwner($player); + $new_guild->save(); + $new_guild->setCustomField('description', 'New guild. Leader must edit this text :)'); + //$new_guild->setCustomField('creationdata', time()); + $ranks = $new_guild->getGuildRanksList(); + $ranks->orderBy('level', POT::ORDER_DESC); + foreach($ranks as $rank) { + if($rank->getLevel() == 3) { + $player->setRank($rank); + } + } + echo $twig->render('success.html.twig', array( + 'title' => 'Created guild', + 'description' => 'Congratulations!
    You have created guild ' . $guild_name . '. '.$player->getName().' is leader of this guild. Now you can invite players, change picture, description' . (MOTD_EXISTS ? ' and motd' : '') . ' of guild. Press submit to open guild manager.', + 'custom_buttons' => '
    ' + )); + + /*$db->query('INSERT INTO `guild_ranks` (`id`, `guild_id`, `name`, `level`) VALUES (null, '.$new_guild->getId().', "the Leader", 3)'); + $db->query('INSERT INTO `guild_ranks` (`id`, `guild_id`, `name`, `level`) VALUES (null, '.$new_guild->getId().', "a Vice-Leader", 2)'); + $db->query('INSERT INTO `guild_ranks` (`id`, `guild_id`, `name`, `level`) VALUES (null, '.$new_guild->getId().', "a Member", 1)');*/ +} +else { + sort($array_of_player_nig); + echo $twig->render('guilds.create_guild.html.twig', array( + 'players' => $array_of_player_nig + )); +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/delete_by_admin.php b/system/pages/guilds/delete_by_admin.php new file mode 100644 index 00000000..a59e2bba --- /dev/null +++ b/system/pages/guilds/delete_by_admin.php @@ -0,0 +1,66 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = $_REQUEST['guild']; +if(!Validator::guildName($guild_name)) { + $errors[] = Validator::getLastError(); +} + +if(empty($errors)) { + $guild = new OTS_Guild(); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $errors[] = 'Guild with name ' . $guild_name . ' doesn\'t exist.'; + } +} + +if(empty($errors)) { + if($logged) { + if(admin()) { + $saved = false; + if(isset($_POST['todo']) && $_POST['todo'] == 'save') { + delete_guild($guild->getId()); + $saved = true; + } + + if($saved) { + echo $twig->render('success.html.twig', array( + 'title' => 'Guild Deleted', + 'description' => 'Guild with name ' . $guild_name . ' has been deleted.', + 'custom_buttons' => '
    ' + )); + } + else { + echo $twig->render('success.html.twig', array( + 'title' => 'Delete Guild', + 'description' => 'Are you sure you want delete guild ' . $guild_name . '?
    +
    ', + 'custom_buttons' => '
    ' + )); + } + } + else { + $errors[] = 'You are not an admin!'; + } + } + else { + $errors[] = "You are not logged. You can't delete guild."; + } +} +if(!empty($errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $errors)); + + echo '
    '; +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/delete_guild.php b/system/pages/guilds/delete_guild.php new file mode 100644 index 00000000..0d37571b --- /dev/null +++ b/system/pages/guilds/delete_guild.php @@ -0,0 +1,79 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = $_REQUEST['guild']; +if(!Validator::guildName($guild_name)) { + $errors[] = Validator::getLastError(); +} + +if(empty($errors)) { + $guild = new OTS_Guild(); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; + } +} + +if(empty($errors)) { + if($logged) { + $guild_leader_char = $guild->getOwner(); + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $account_players = $account_logged->getPlayers(); + + foreach($account_players as $player) { + if($guild->getOwner()->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + $level_in_guild = 3; + } + } + + if($guild_leader) { + $saved = false; + + if(isset($_POST['todo']) && $_POST['todo'] == 'save') { + delete_guild($guild->getId()); + $saved = true; + } + + if($saved) { + echo $twig->render('success.html.twig', array( + 'title' => 'Guild Deleted', + 'description' => 'Guild with name '.$guild_name.' has been deleted.', + 'custom_buttons' => '
    ' + )); + } + else { + echo $twig->render('guilds.delete_guild.html.twig', array( + 'guild' => $guild + )); + } + } + else { + $errors[] = 'You are not a leader of guild!'; + } + } + else { + $errors[] = 'You are not logged. You can\'t manage guild.'; + } +} + +if(!empty($errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $errors)); + + echo '
    '; +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/delete_invite.php b/system/pages/guilds/delete_invite.php new file mode 100644 index 00000000..1b6d6230 --- /dev/null +++ b/system/pages/guilds/delete_invite.php @@ -0,0 +1,103 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +//set rights in guild +$guild_name = $_REQUEST['guild']; +$name = stripslashes($_REQUEST['name']); +if(!$logged) + $guild_errors[] = 'You are not logged in. You can\'t delete invitations.'; +if(!Validator::guildName($guild_name)) + $guild_errors[] = Validator::getLastError(); +if(!Validator($name)) + $guild_errors[] = 'Invalid name format.'; +if(empty($guild_errors)) +{ + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if(!$guild->isLoaded()) + $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; +} +if(empty($guild_errors)) +{ + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $guild_vice = false; + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) + { + $player_rank = $player->getRank(); + if($player_rank->isLoaded()) + { + foreach($rank_list as $rank_in_guild) + { + if($rank_in_guild->getId() == $player_rank->getId()) + { + $players_from_account_in_guild[] = $player->getName(); + if($player_rank->getLevel() > 1) + { + $guild_vice = true; + $level_in_guild = $player_rank->getLevel(); + } + if($guild->getOwner()->getId() == $player->getId()) + { + $guild_vice = true; + $guild_leader = true; + } + } + } + } + } +} +if(empty($guild_errors)) +{ + $player = new OTS_Player(); + $player->find($name); + if(!$player->isLoaded()) + $guild_errors[] = 'Player with name '.$name.' doesn\'t exist.'; +} +if(!$guild_vice) + $guild_errors[] = 'You are not a leader or vice leader of guild '.$guild_name.'.'; +if(empty($guild_errors)) +{ + include(SYSTEM . 'libs/pot/InvitesDriver.php'); + new InvitesDriver($guild); + $invited_list = $guild->listInvites(); + if(count($invited_list) > 0) + { + $is_invited = false; + foreach($invited_list as $invited) + if($invited->getName() == $player->getName()) + $is_invited = true; + if(!$is_invited) + $guild_errors[] = ''.$player->getName().' isn\'t invited to your guild.'; + } + else + $guild_errors[] = 'No one is invited to your guild.'; +} +if(!empty($guild_errors)) +{ + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + echo ' +
    '; +} +else +{ + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') + { + $guild->deleteInvite($player); + echo '
    Delete player invitation
    Player with name '.$player->getName().' has been deleted from "invites list".

    '; + } + else + echo '
    Delete player invitation
    Are you sure you want to delete player with name '.$player->getName().' from "invites list"?

      
      
    '; +} \ No newline at end of file diff --git a/system/pages/guilds/delete_rank.php b/system/pages/guilds/delete_rank.php new file mode 100644 index 00000000..2ebbe697 --- /dev/null +++ b/system/pages/guilds/delete_rank.php @@ -0,0 +1,113 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = $_REQUEST['guild']; +$rank_to_delete = (int) $_REQUEST['rankid']; +if(!Validator::guildName($guild_name)) { + $guild_errors[] = Validator::getLastError(); +} +if(empty($guild_errors)) { + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; + } +} +if(empty($guild_errors)) { + if($logged) { + $guild_leader_char = $guild->getOwner(); + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) { + if($guild->getOwner()->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + $level_in_guild = 3; + } + } + if($guild_leader) { + $rank = new OTS_GuildRank(); + $rank->load($rank_to_delete); + if(!$rank->isLoaded()) { + $guild_errors2[] = 'Rank with ID '.$rank_to_delete.' doesn\'t exist.'; + } + else + { + if($rank->getGuild()->getId() != $guild->getId()) { + $guild_errors2[] = 'Rank with ID '.$rank_to_delete.' isn\'t from your guild.'; + } + else + { + if(count($rank_list) < 2) { + $guild_errors2[] = 'You have only 1 rank in your guild. You can\'t delete this rank.'; + } + else + { + if(fieldExist('rank_id', 'players')) + $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); + else + $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); + + $players_with_rank_number = $players_with_rank->rowCount(); + if($players_with_rank_number > 0) { + foreach($rank_list as $checkrank) { + if($checkrank->getId() != $rank->getId()) { + if($checkrank->getLevel() <= $rank->getLevel()) { + $new_rank = $checkrank; + } + } + } + + if(empty($new_rank)) { + $new_rank = new OTS_GuildRank(); + $new_rank->setGuild($guild); + $new_rank->setLevel($rank->getLevel()); + $new_rank->setName('New Rank level '.$rank->getLevel()); + $new_rank->save(); + } + foreach($players_with_rank as $player_in_guild) { + $player_in_guild->setRank($new_rank); + } + } + $rank->delete(); + $saved = true; + } + } + } + if($saved) { + echo '
    Rank Deleted
    Rank '.$rank->getName().' has been deleted. Players with this rank has now other rank.
    '; + } else { + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors2)); + } +//back button + echo '
    '; + } + else + { + $guild_errors[] = 'You are not a leader of guild!'; + } + } + else + { + $guild_errors[] = 'You are not logged. You can\'t manage guild.'; + } +} +if(!empty($guild_errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + + echo '
    '; +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/invite.php b/system/pages/guilds/invite.php new file mode 100644 index 00000000..0c01955a --- /dev/null +++ b/system/pages/guilds/invite.php @@ -0,0 +1,110 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +//set rights in guild +$guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; +$name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; +if(!$logged) { + $guild_errors[] = 'You are not logged in. You can\'t invite players.'; +} + +if(!Validator::guildName($guild_name)) { + $guild_errors[] = Validator::getLastError(); +} + +if(empty($guild_errors)) { + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; + } +} + +if(empty($guild_errors)) { + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $guild_vice = false; + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) { + $player_rank = $player->getRank(); + if($player_rank->isLoaded()) { + foreach($rank_list as $rank_in_guild) { + if($rank_in_guild->getId() == $player_rank->getId()) { + $players_from_account_in_guild[] = $player->getName(); + if($player_rank->getLevel() > 1) { + $guild_vice = true; + $level_in_guild = $player_rank->getLevel(); + } + + if($guild->getOwner()->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + } + } + } + } + } +} + +if(!$guild_vice) { + $guild_errors[] = 'You are not a leader or vice leader of guild '.$guild_name.'.'.$level_in_guild; +} + +if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + if(!Validator::characterName($name)) { + $guild_errors[] = 'Invalid name format.'; + } + + if(empty($guild_errors)) { + $player = new OTS_Player(); + $player->find($name); + if(!$player->isLoaded()) { + $guild_errors[] = 'Player with name ' . $name . ' doesn\'t exist.'; + } + else + { + $rank_of_player = $player->getRank(); + if($rank_of_player->isLoaded()) { + $guild_errors[] = 'Player with name ' . $name . ' is already in guild. He must leave guild before you can invite him.'; + } + } + } +} +if(empty($guild_errors)) { + include(SYSTEM . 'libs/pot/InvitesDriver.php'); + new InvitesDriver($guild); + $invited_list = $guild->listInvites(); + if(count($invited_list) > 0) { + foreach($invited_list as $invited) { + if($invited->getName() == $player->getName()) { + $guild_errors[] = ''.$invited->getName().' is already invited to your guild.'; + } + } + } +} + +if(!empty($guild_errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + echo ' +
    '; +} +else { + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + $guild->invite($player); + echo '
    Invite player
    Player with name '.$player->getName().' has been invited to your guild.

    '; + } + else { + echo '
    Invite player
    Invite player with name:      

    '; + } +} \ No newline at end of file diff --git a/system/pages/guilds/kick_player.php b/system/pages/guilds/kick_player.php new file mode 100644 index 00000000..8d46444e --- /dev/null +++ b/system/pages/guilds/kick_player.php @@ -0,0 +1,112 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +//set rights in guild +$guild_name = $_REQUEST['guild']; +$name = stripslashes($_REQUEST['name']); +if(!$logged) { + $errors[] = 'You are not logged in. You can\'t kick characters.'; +} + +if(!Validator::guildName($guild_name)) { + $errors[] = Validator::getLastError(); +} + +if(!Validator::characterName($name)) { + $errors[] = 'Invalid name format.'; +} + +if(empty($errors)) { + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; + } +} + +if(empty($errors)) { + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $guild_vice = false; + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) { + $player_rank = $player->getRank(); + if($player_rank->isLoaded()) { + foreach($rank_list as $rank_in_guild) { + if($rank_in_guild->getId() == $player_rank->getId()) { + $players_from_account_in_guild[] = $player->getName(); + if($player_rank->getLevel() > 1) { + $guild_vice = true; + $level_in_guild = $player_rank->getLevel(); + } + if($guild->getOwner()->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + } + } + } + } + } +} + +if(empty($errors)) { + if(!$guild_leader && $level_in_guild < 3) { + $errors[] = 'You are not a leader of guild '.$guild_name.'. You can\'t kick players.'; + } +} + +if(empty($errors)) { + $player = new OTS_Player(); + $player->find($name); + if(!$player->isLoaded()) { + $errors[] = 'Character '.$name.' doesn\'t exist.'; + } + else + { + if($player->getRank()->isLoaded() && $player->getRank()->getGuild()->isLoaded() && $player->getRank()->getGuild()->getName() != $guild->getName()) { + $errors[] = 'Character '.$name.' isn\'t from your guild.'; + } + } +} + +if(empty($errors)) { + if($player->getRank()->isLoaded() && $player->getRank()->getLevel() >= $level_in_guild && !$guild_leader) { + $errors[] = 'You can\'t kick character '.$name.'. Too high access level.'; + } +} + +if(empty($errors)) { + if($guild->getOwner()->getName() == $player->getName()) { + $errors[] = 'It\'s not possible to kick guild owner!'; + } +} + +if(!empty($errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $errors)); + echo ' +
    '; +} +else +{ + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + $player->setRank(); + echo '
    Kick player
    Player with name '.$player->getName().' has been kicked from your guild.

    '; + } + else + { + echo '
    Kick player
    Are you sure you want to kick player with name '.$player->getName().' from your guild?

      
      
    '; + } +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/leave_guild.php b/system/pages/guilds/leave_guild.php new file mode 100644 index 00000000..887cf1da --- /dev/null +++ b/system/pages/guilds/leave_guild.php @@ -0,0 +1,126 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +//set rights in guild +$guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; +$name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; +if(!$logged) { + $errors[] = 'You are not logged in. You can\'t leave guild.'; +} + +if(!Validator::guildName($guild_name)) { + $errors[] = Validator::getLastError(); +} + +if(empty($errors)) { + $guild = new OTS_Guild(); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; + } +} + +$array_of_player_ig = array(); +if(empty($errors)) { + $guild_owner_name = $guild->getOwner()->getName(); + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + if(!Validator::characterName($name)) { + $errors[] = 'Invalid name format.'; + } + + if(empty($errors)) { + $player = new OTS_Player(); + $player->find($name); + if(!$player->isLoaded()) { + $errors[] = 'Character '.$name.' doesn\'t exist.'; + } + else { + if($player->getAccount()->getId() != $account_logged->getId()) { + $errors[] = 'Character '.$name.' isn\'t from your account!'; + } + } + } + + if(empty($errors)) { + $player_loaded_rank = $player->getRank(); + if($player_loaded_rank->isLoaded()) { + if($player_loaded_rank->getGuild()->getName() != $guild->getName()) { + $errors[] = 'Character '.$name.' isn\'t from guild '.$guild->getName().'.'; + } + } + else { + $errors[] = 'Character '.$name.' isn\'t in any guild.'; + } + } + + if(empty($errors)) { + if($guild_owner_name == $player->getName()) { + $errors[] = 'You can\'t leave guild. You are an owner of guild.'; + } + } + } + else + { + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player_fac) { + $player_rank = $player_fac->getRank(); + if($player_rank->isLoaded()) { + if($player_rank->getGuild()->getId() == $guild->getId()) { + if($guild_owner_name != $player_fac->getName()) { + $array_of_player_ig[] = $player_fac->getName(); + } + } + } + } + } +} + +if(!empty($errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $errors)); + echo ' +
    '; +} +else +{ + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + $player->setRank(); + echo '
    Leave guild
    Player with name '.$player->getName().' leaved guild '.$guild->getName().'.

    '; + } + else + { + echo ''; + if(count($array_of_player_ig) > 0) { + echo ''; + echo '
    Leave guild
    Select character to leave guild:
    +
    '; + + sort($array_of_player_ig); + foreach($array_of_player_ig as $player_to_leave) { + echo ''.$player_to_leave.'
    '; + } + echo '
    '; + } + else { + echo 'Any of your characters can\'t leave guild.'; + } + + echo ''; + if(count($array_of_player_ig) > 0) { + echo ''; + } + + echo '
    '; + } +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/list_of_guilds.php b/system/pages/guilds/list_of_guilds.php new file mode 100644 index 00000000..cf4a2bca --- /dev/null +++ b/system/pages/guilds/list_of_guilds.php @@ -0,0 +1,128 @@ +createObject('Guilds_List'); + +if(!isset($_REQUEST['preview'])) + $_REQUEST['preview'] = 1; + +$guilds_list->orderBy("name"); + +//echo 'Guilds needs to have atleast 4 members, otherwise it will be deleted automatically after 4 days.

    Guild statistics are self-updated once per 3 days.

    '; + +//echo 'Normal preview / Advanced ranks & statistics

    +echo ' + + + '; +if($_REQUEST['preview'] == 2) { + echo ' + + + '; + /* + + + + ';*/ +} +else + echo ' + + + '; + +echo ' + '; +$showed_guilds = 0; + +if($_REQUEST['preview'] == 2) +{ + if(count($guilds_list) > 0) + { + foreach($guilds_list as $guild) + { + $guild_logo = $guild->getCustomField('logo_name'); + if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) + $guild_logo = "default.gif"; + + echo ' + '; + // + + echo ''; + } + } + else + echo ' + + '; +} +else +{ + if(count($guilds_list) > 0) + { + foreach($guilds_list as $guild) + { + $link = ($config['friendly_urls'] ? '' : '?') . 'guilds/' . $guild->getName(); + + $guild_logo = $guild->getCustomField('logo_name'); + if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) + $guild_logo = "default.gif"; + $description = $guild->getCustomField('description'); + $description_with_lines = str_replace(array("\r\n", "\n", "\r"), '
    ', $description, $count); + if($count < $config['guild_description_lines_limit']) + $description = wordwrap(nl2br($description), 60, "
    ", true); + //$description = $description_with_lines; + + echo ' + '; + } + } + else + echo ' + + '; +} + + +echo '
    Active Guilds on '.$config['lua']['serverName'].'
    RankLogoGuild nameMembersTotal levelAverage levelFragsLogoDescription
    '.($show_ranks ? $showed_guilds.'.' : '-').''.$guild->getName().'
    '; + if(admin()) + echo '
    Delete this guild (for ADMIN only!)'; + echo '
    '.$guild->getCustomField('total_members').''.$guild->getCustomField('total_level').''; + //if($guild->getCustomField('total_members') > 0) + // echo ceil($guild->getCustomField('total_level')/$guild->getCustomField('total_members')); + //echo ''.$guild->getCustomField('frags').'
    -Create guild
    Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '
    '; + if($logged) + echo ' +
    + +
    '; + + echo ' +
    '.$guild->getName().'
    '.$description.''; + if(admin()) + echo '
    Delete this guild (for ADMIN only!)'; + echo '
    + +
    +
    Create guild
    Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '
    '; + if($logged) + echo '
    + +
    '; + echo ' +


    '; +if($logged) + echo '
    + +
    +
    If you have any problem with guilds try: +
    Cleanup players - can\'t join guild/be invited? Can\'t create guild? Try cleanup players. +
    Cleanup guilds - made guild, you are a leader, but you are not on players list? Cleanup guilds!'; +else + echo 'Before you can create guild you must login.
    + +
    '; +?> \ No newline at end of file diff --git a/system/pages/guilds/manager.php b/system/pages/guilds/manager.php new file mode 100644 index 00000000..bc1cf00b --- /dev/null +++ b/system/pages/guilds/manager.php @@ -0,0 +1,61 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = $_REQUEST['guild']; +if(!Validator::guildName($guild_name)) { + $guild_errors[] = Validator::getLastError(); +} + +if(empty($guild_errors)) { + $guild = new OTS_Guild(); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; + } +} + +if(empty($guild_errors)) { + if($logged) { + $guild_leader_char = $guild->getOwner(); + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) { + if($guild_leader_char->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + $level_in_guild = 3; + } + } + if($guild_leader) { + echo $twig->render('guilds.manager.html.twig', array( + 'guild' => $guild, + 'rank_list' => $rank_list + )); + } + else + { + $guild_errors[] = 'You are not a leader of guild!'; + } + } + else + { + $guild_errors[] = 'You are not logged. You can\'t manage guild.'; + } +} +if(!empty($guild_errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/pass_leadership.php b/system/pages/guilds/pass_leadership.php new file mode 100644 index 00000000..6b545559 --- /dev/null +++ b/system/pages/guilds/pass_leadership.php @@ -0,0 +1,120 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; +$pass_to = isset($_REQUEST['player']) ? stripslashes($_REQUEST['player']) : NULL; +if(!Validator::guildName($guild_name)) { + $guild_errors[] = Validator::getLastError(); +} + +if(empty($guild_errors)) { + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $guild_errors[] = "Guild with name " . $guild_name . " doesn't exist."; + } +} +if(empty($guild_errors)) { + if(isset($_POST['todo']) && $_POST['todo'] == 'save') { + if(!Validator::characterName($pass_to)) { + $guild_errors2[] = 'Invalid player name format.'; + } + + if(empty($guild_errors2)) { + $to_player = new OTS_Player(); + $to_player->find($pass_to); + if(!$to_player->isLoaded()) { + $guild_errors2[] = 'Player with name '.$pass_to.' doesn\'t exist.'; + } + + if(empty($guild_errors2)) { + $to_player_rank = $to_player->getRank(); + if($to_player_rank->isLoaded()) { + $to_player_guild = $to_player_rank->getGuild(); + if($to_player_guild->getId() != $guild->getId()) { + $guild_errors2[] = 'Player with name '.$to_player->getName().' isn\'t from your guild.'; + } + } + else { + $guild_errors2[] = 'Player with name '.$to_player->getName().' isn\'t from your guild.'; + } + } + } + } +} +if(empty($guild_errors) && empty($guild_errors2)) { + if($logged) { + $guild_leader_char = $guild->getOwner(); + $guild_leader = false; + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) { + if($guild_leader_char->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + $level_in_guild = 3; + } + } + + $saved = false; + if($guild_leader) { + if(isset($_POST['todo']) && $_POST['todo'] == 'save') { + $query = $db->query('SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild->getId() . ' ORDER BY `level` ASC LIMIT 1')->fetch(); + if($query) { + $guild_leader_char->setRankId($query['id'], $guild->getId()); + } + + $query = $db->query('SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild->getId() . ' ORDER BY `level` DESC LIMIT 1')->fetch(); + if($query) { + $to_player->setRankId($query['id'], $guild->getId()); + } + + $guild->setOwner($to_player); + $guild->save(); + $saved = true; + } + if($saved) { + echo $twig->render('success.html.twig', array( + 'title' => 'Leadership passed', + 'description' => ''.$to_player->getName().' is now a Leader of '.$guild_name.'.', + 'custom_buttons' => '
    ' + )); + } + else { + echo $twig->render('guilds.pass_leadership.html.twig', array( + 'guild' => $guild + )); + } + } + else { + $guild_errors[] = 'You are not a leader of guild!'; + } + } + else { + $guild_errors[] = "You are not logged. You can't manage guild."; + } +} +if(empty($guild_errors) && !empty($guild_errors2)) { + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors2)); + + echo '
    '; +} +if(!empty($guild_errors)) { + if(!empty($guild_errors2)) { + $guild_errors = array_merge($guild_errors, $guild_errors2); + } + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + + echo '
    '; +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/save_ranks.php b/system/pages/guilds/save_ranks.php new file mode 100644 index 00000000..b9aabb75 --- /dev/null +++ b/system/pages/guilds/save_ranks.php @@ -0,0 +1,86 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = $_REQUEST['guild']; +if(!Validator::guildName($guild_name)) { + $errors[] = Validator::get; +} + +if(empty($errors)) { + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if(!$guild->isLoaded()) { + $errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; + } +} + +if(empty($errors)) { + if($logged) { + $guild_leader_char = $guild->getOwner(); + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $account_players = $account_logged->getPlayers(); + + foreach($account_players as $player) { + if($guild_leader_char->getId() == $player->getId()) { + $guild_vice = true; + $guild_leader = true; + $level_in_guild = 3; + } + } + + if($guild_leader) { + foreach($rank_list as $rank) { + $rank_id = $rank->getId(); + $name = $_REQUEST[$rank_id.'_name']; + $level = (int) $_REQUEST[$rank_id.'_level']; + if(Validator::rankName($name)) { + $rank->setName($name); + } + else { + $errors[] = 'Invalid rank name. Please use only a-Z, 0-9 and spaces. Rank ID '.$rank_id.'.'; + } + if($level > 0 && $level < 4) { + $rank->setLevel($level); + } + else { + $errors[] = 'Invalid rank level. Contact with admin. Rank ID '.$rank_id.'.'; + } + + $rank->save(); + } + //show errors or redirect + if(!empty($errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $errors)); + } + else + { + header("Location: ?subtopic=guilds&action=manager&guild=".$guild->getName()); + } + } + else + { + $errors[] = 'You are not a leader of guild!'; + } + } + else + { + $errors[] = 'You are not logged. You can\'t manage guild.'; + } +} +if(!empty($errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $errors)); +} + +?> \ No newline at end of file diff --git a/system/pages/guilds/show.php b/system/pages/guilds/show.php new file mode 100644 index 00000000..b995888b --- /dev/null +++ b/system/pages/guilds/show.php @@ -0,0 +1,266 @@ + + * @author Slawkens + * @copyright 2017 MyAAC + * @version 0.6.1 + * @link http://my-aac.org + */ +defined('MYAAC') or die('Direct access not allowed!'); + +$guild_name = $_REQUEST['guild']; +if(!Validator::guildName($guild_name)) + $guild_errors[] = Validator::getLastError(); +if(empty($guild_errors)) +{ + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if(!$guild->isLoaded()) + $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; +} +if(!empty($guild_errors)) +{ + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + echo ' +
    '; +} +else +{ + $title = $guild->getName() . ' - ' . $title; + //check is it vice or/and leader account (leader has vice + leader rights) + $guild_leader_char = $guild->getOwner(); + $rank_list = $guild->getGuildRanksList(); + $rank_list->orderBy('level', POT::ORDER_DESC); + $guild_leader = false; + $guild_vice = false; + $level_in_guild = 0; + $players_from_account_in_guild = array(); + if($logged) + { + $account_players = $account_logged->getPlayers(); + foreach($account_players as $player) + { + $players_from_account_ids[] = $player->getId(); + $player_rank = $player->getRank(); + if($player_rank->isLoaded()) + { + foreach($rank_list as $rank_in_guild) + { + if($rank_in_guild->isLoaded() && $player_rank->isLoaded() && + $rank_in_guild->getId() == $player_rank->getId()) + { + $players_from_account_in_guild[] = $player->getName(); + if($guild->getOwner()->getId() == $player->getId()) + { + $guild_vice = true; + $guild_leader = true; + } + else if($player_rank->getLevel() > 1) + { + $guild_vice = true; + $level_in_guild = $player_rank->getLevel(); + } + } + } + } + } + } + //show guild page + $guild_logo = $guild->getCustomField('logo_name'); + if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) + $guild_logo = "default.gif"; + $description = $guild->getCustomField('description'); + $description_with_lines = str_replace(array("\r\n", "\n", "\r"), '
    ', $description, $count); + if($count < $config['guild_description_lines_limit']) + $description = wordwrap(nl2br($description), 60, "
    ", true); + //$description = $description_with_lines; + $guild_owner = $guild->getOwner(); + if($guild_owner->isLoaded()) + $guild_owner = $guild_owner->getName(); + echo ' + +
    + + + + +

    '.$guild->getName().'


    '.$description.'

    '.$guild_owner.' is guild leader of '.$guild->getName().'.
    The guild was founded on '.$config['lua']['serverName'].' on '.date("j F Y", $guild->getCreationData()).'.'; + if($guild_leader) + echo '   Manage Guild'; + echo '

    + + + + + + + + + '; + + //Slaw stats values + //$s_total_members = 0; + //$s_members_online = 0; + //$s_total_level = 0; + //End Slaw stats values + + $showed_players = 1; + foreach($rank_list as $rank) + { + if(tableExist(GUILD_MEMBERS_TABLE)) + $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); + else if(fieldExist('rank_id', 'players')) + $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); + + $players_with_rank_number = $players_with_rank->rowCount(); + if($players_with_rank_number > 0) + { + $bgcolor = getStyle($showed_players); + $showed_players++; + echo ' + + + '; + } + } + echo '
    Guild Members
    RankName, title, level & status
    '.$rank->getName().' + '; + foreach($players_with_rank as $result) + { + $player = $ots->createObject('Player'); + $player->load($result['id']); + if(!$player->isLoaded()) + continue; + + //$s_total_members++; + //$s_total_level += $player->getLevel(); + echo ''; + } + echo '
    ' . getPlayerLink($player->getName()) . '
    '; + $guild_nick = $player->getGuildNick(); + if($logged) + { + if(in_array($player->getId(), $players_from_account_ids)) + echo ' ()'; + else + { + if(!empty($guild_nick)) + echo ' ('.htmlentities($player->getGuildNick()).')'; + } + } + else + if(!empty($guild_nick)) + echo ' ('.htmlentities($player->getGuildNick()).')'; + + if($level_in_guild > $rank->getLevel() || $guild_leader) + if($guild_leader_char->getName() != $player->getName()) + echo ' {KICK}'; + + echo '
    '.$player->getLevel().'Online' : 'red">Offline').'
    '; + /* + //Statistics ;) + echo '
    + + + + + + + + + + + + + + + + + + + + + + '; + //guild hall? + $houseInfo = $db->query('SELECT `id`, `name` FROM `houses` WHERE `owner` = ' . $guild->getId() . ' AND `guild` = 1'); + if($houseInfo->rowCount() > 0) //have guild hall + { + $houseInfo = $houseInfo->fetch(); + echo + ' + + + '; + } + echo '
    Statistics
    Total members:'.$s_total_members.'
    Members currently online:'.$s_members_online.'
    Total members level:'.$s_total_level.'
    Average members level:'.ceil($s_total_level/$s_total_members).'
    Frags:'.$guild->getCustomField('frags').'
    Guildhall: + '.$houseInfo['name'].' +
    + + +
    +
    '; + */ + //End statistics + + //Lets update some stuff in database + //$db->query('UPDATE `guilds` SET `total_members` = '.$s_total_members.', `members_online` = '.$s_members_online.', `total_level` = '.$s_total_level.', `average_level` = '.ceil($s_total_level/$s_total_members).' WHERE `id` = '.$guild->getId()); + include(SYSTEM . 'libs/pot/InvitesDriver.php'); + new InvitesDriver($guild); + $invited_list = $guild->listInvites(); + $show_accept_invite = 0; + if(count($invited_list) == 0) + echo '
    Invited Characters
    No invited characters found.
    '; + else + { + echo '

    '; + $showed_invited = 1; + foreach($invited_list as $invited_player) + { + if(count($account_players) > 0) + foreach($account_players as $player_from_acc) + if($player_from_acc->getName() == $invited_player->getName()) + $show_accept_invite++; + if(is_int($showed_invited / 2)) { $bgcolor = $config['darkborder']; } else { $bgcolor = $config['lightborder']; } $showed_invited++; + echo ''; + } + echo '
    Invited Characters
    ' . getPlayerLink($invited_player->getName()); + if($guild_vice) + echo ' (Cancel Invitation)'; + echo '
    '; + } + echo '

    + '; + if(!$logged) + echo ''; + else + { + if($show_accept_invite > 0) + echo ''; + if($guild_vice) + { + echo ''; + echo ''; + } + if(count($players_from_account_in_guild) > 0) + echo ''; + } + echo '
    + +
    + +
    + +
    + +
    + +
    + +
    +
    +
    '; +} \ No newline at end of file diff --git a/system/templates/guilds.change_description.html.twig b/system/templates/guilds.change_description.html.twig index f0f196d3..798ebc6d 100644 --- a/system/templates/guilds.change_description.html.twig +++ b/system/templates/guilds.change_description.html.twig @@ -1,6 +1,6 @@

    Change guild description

    Here you can change description of your guild.
    -
    +
    (max. {{ config.guild_description_lines_limit }} lines, max. {{ config.guild_description_chars_limit }} chars)

    diff --git a/system/templates/guilds.change_logo.html.twig b/system/templates/guilds.change_logo.html.twig index d1f13bbe..6fe54e79 100644 --- a/system/templates/guilds.change_logo.html.twig +++ b/system/templates/guilds.change_logo.html.twig @@ -1,6 +1,6 @@

    Change guild logo

    Here you can change logo of your guild.
    Actuall logo:

    -
    + Select new logo: diff --git a/system/templates/guilds.change_motd.html.twig b/system/templates/guilds.change_motd.html.twig index 1be21fc3..0002348d 100644 --- a/system/templates/guilds.change_motd.html.twig +++ b/system/templates/guilds.change_motd.html.twig @@ -1,6 +1,6 @@

    Change guild MOTD

    Here you can change MOTD (Message of the Day, showed in game!) of your guild.
    - +
    (max. {{ config.guild_motd_chars_limit }} chars)

    diff --git a/system/templates/guilds.create_guild.html.twig b/system/templates/guilds.create_guild.html.twig index aa21d16b..0c3965ff 100644 --- a/system/templates/guilds.create_guild.html.twig +++ b/system/templates/guilds.create_guild.html.twig @@ -1,4 +1,4 @@ -
    + diff --git a/system/templates/guilds.delete_guild.html.twig b/system/templates/guilds.delete_guild.html.twig index 3f6a06c1..09122554 100644 --- a/system/templates/guilds.delete_guild.html.twig +++ b/system/templates/guilds.delete_guild.html.twig @@ -19,7 +19,7 @@
    Create a {{ config.lua.serverName }} Guild
    Are you sure you want delete guild {{ guild.getName() }}?
    - + diff --git a/system/templates/guilds.manager.html.twig b/system/templates/guilds.manager.html.twig index d7383641..de4edd47 100644 --- a/system/templates/guilds.manager.html.twig +++ b/system/templates/guilds.manager.html.twig @@ -12,7 +12,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth
    - Pass Leadership + Pass Leadership Pass leadership of guild to other guild member. @@ -20,7 +20,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth
    - Delete Guild + Delete Guild Delete guild, kick all members. @@ -28,7 +28,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth
    - Change Description + Change Description Change description of guild. @@ -37,7 +37,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth {% if constant('MOTD_EXISTS') %}
    - Change MOTD + Change MOTD Change MOTD of guild. @@ -46,7 +46,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth {% endif %}
    - Change guild logo + Change guild logo Upload new guild logo. @@ -75,7 +75,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth
    New rank name: -
    +
    @@ -88,7 +88,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth

    Change rank names and levels

    -
    + -
    @@ -115,7 +115,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth {% set i = 0 %} {% for rank in rank_list %}
    {{ rank.getId() }} // Delete Rank + {{ rank.getId() }} // Delete Rank diff --git a/system/templates/guilds.pass_leadership.html.twig b/system/templates/guilds.pass_leadership.html.twig index f1dd3ba5..a9c0ce8e 100644 --- a/system/templates/guilds.pass_leadership.html.twig +++ b/system/templates/guilds.pass_leadership.html.twig @@ -19,7 +19,7 @@
    Pass leadership to:
    - +