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.<BR/><BR/>Guild statistics are self-updated once per 3 days.<BR/><BR/>'; - - //echo '<A HREF="?subtopic=guilds&preview=1">Normal preview</A> / <A HREF="?subtopic=guilds&preview=2">Advanced ranks & statistics</A><BR/><BR/> - echo ' - <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> - <TR BGCOLOR='.$config['vdarkborder'].'><TD COLSPAN='.($_REQUEST['preview'] == 2 ? '7' : '3').' class="white"><B>Active Guilds on '.$config['lua']['serverName'].'</B></TD></TR> - <TR BGCOLOR='.$config['darkborder'].' '.($_REQUEST['preview'] == 2 ? 'ALIGN="CENTER"' : '' ).'>'; - if($_REQUEST['preview'] == 2) { - echo ' - <TD WIDTH=50><B><A HREF="?subtopic=guilds&preview=2&order=rank">Rank</A></B></TD> - <TD WIDTH=32><B>Logo</B></TD> - <TD WIDTH=200><B><A HREF="?subtopic=guilds&preview=2&order=name">Guild name</A></B></TD>'; - /* - <TD WIDTH=10><B><A HREF="?subtopic=guilds&preview=2&order=total_members">Members</A></B></TD> - <TD WIDTH=10><B><A HREF="?subtopic=guilds&preview=2&order=total_level">Total level</A></B></TD> - <TD WIDTH=10><B><A HREF="?subtopic=guilds&preview=2&order=average_level">Average level</A></B></TD> - <TD WIDTH=10><B><A HREF="?subtopic=guilds&preview=2&order=frags">Frags</A></B></TD>';*/ - } - else - echo ' - <TD WIDTH=64><B>Logo</B></TD> - <TD WIDTH=100%><B>Description</B></TD> - <TD WIDTH=50><B> </B></TD>'; - - echo ' - </TR>'; - $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 '<TR class="moduleRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'?subtopic=guilds&action=show&guild='.$guild->getName().'\'"'; - - echo ' BGCOLOR="' . getStyle($showed_guilds++) . '"><TD ALIGN="CENTER">'.($show_ranks ? $showed_guilds.'.' : '-').'</TD><TD ALIGN="CENTER"><A HREF="?subtopic=guilds&action=show&guild='.$guild->getName().'"><IMG STYLE="border: none" SRC="images/guilds/' .$guild_logo.'" WIDTH=32 HEIGHT=32></A></TD> - <TD valign="top"><B>'.$guild->getName().'</B><BR/>'; - if(admin()) - echo '<br /><a href="?subtopic=guilds&action=deletebyadmin&guild='.$guild->getName().'">Delete this guild (for ADMIN only!)</a>'; - echo '</TD>'; - //<TD ALIGN="CENTER">'.$guild->getCustomField('total_members').'</TD><TD ALIGN="CENTER">'.$guild->getCustomField('total_level').'</TD><TD ALIGN="CENTER">'; - //if($guild->getCustomField('total_members') > 0) - // echo ceil($guild->getCustomField('total_level')/$guild->getCustomField('total_members')); - //echo '</TD><TD>'.$guild->getCustomField('frags').'</TD> - - echo '</TR>'; - } - } - else - echo '<TR BGCOLOR='.$config['lightborder'].'><TD ALIGN="CENTER">-</TD><TD><IMG SRC="images/guilds/' . 'default.gif" WIDTH=64 HEIGHT=64></TD> - <TD valign="top" align="center"><B>Create guild</B><BR/>Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '</TD> - <TD colspan="4">'; - if($logged) - echo ' - <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=createguild" METHOD=post><TR><TD> - <INPUT TYPE=image NAME="Create Guild" ALT="Create Guild" SRC="'.$template_path.'/images/buttons/sbutton_createguild.png" BORDER=0 WIDTH=120 HEIGHT=18> - </TD></TR></FORM></TABLE>'; - - echo ' - </TD></TR>'; - } - 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"), '<br />', $description, $count); - if($count < $config['guild_description_lines_limit']) - $description = wordwrap(nl2br($description), 60, "<br />", true); - //$description = $description_with_lines; - - echo '<TR BGCOLOR="' . getStyle($showed_guilds++) . '"><TD><IMG SRC="images/guilds/' . $guild_logo.'" WIDTH=64 HEIGHT=64></TD> - <TD valign="top"><B>'.$guild->getName().'</B><BR/>'.$description.''; - if(admin()) - echo '<br /><a href="?subtopic=guilds&action=deletebyadmin&guild='.$guild->getName().'">Delete this guild (for ADMIN only!)</a>'; - echo '</TD><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="' . $link . '" METHOD=post><TR><TD> - <INPUT TYPE=image NAME="View" ALT="View" SRC="'.$template_path.'/images/buttons/sbutton_view.gif" BORDER=0 WIDTH=120 HEIGHT=18> - </TD></TR></FORM></TABLE> - </TD></TR>'; - } - } - else - echo '<TR BGCOLOR='.$config['lightborder'].'><TD><IMG SRC="images/guilds/' . 'default.gif" WIDTH=64 HEIGHT=64></TD> - <TD valign="top"><B>Create guild</B><BR/>Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '</TD> - <TD>'; - if($logged) - echo '<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=createguild" METHOD=post><TR><TD> - <INPUT TYPE=image NAME="Create Guild" ALT="Create Guild" SRC="'.$template_path.'/images/buttons/sbutton_createguild.png" BORDER=0 WIDTH=120 HEIGHT=18> - </TD></TR></FORM></TABLE>'; - echo ' - </TD></TR>'; - } - - - echo '</TABLE><br><br>'; - if($logged) - echo '<TABLE BORDER=0 WIDTH=100%><TR><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD><TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=createguild" METHOD=post><TR><TD> - <INPUT TYPE=image NAME="Create Guild" ALT="Create Guild" SRC="'.$template_path.'/images/buttons/sbutton_createguild.png" BORDER=0 WIDTH=120 HEIGHT=18> - </TD></TR></FORM></TABLE></TD><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD></TR></TABLE> - <BR />If you have any problem with guilds try: - <BR /><a href="?subtopic=guilds&action=cleanup_players">Cleanup players</a> - can\'t join guild/be invited? Can\'t create guild? Try cleanup players. - <BR /><a href="?subtopic=guilds&action=cleanup_guilds">Cleanup guilds</a> - 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.<br><TABLE BORDER=0 WIDTH=100%><TR><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD><TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=accountmanagement&redirect=' . getLink('guilds') . '" METHOD=post><TR><TD> - <INPUT TYPE=image NAME="Login" ALT="Login" SRC="'.$template_path.'/images/buttons/sbutton_login.gif" BORDER=0 WIDTH=120 HEIGHT=18> - </TD></TR></FORM></TABLE></TD><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD></TR></TABLE>'; +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 <b>'.$guild_name.'</b> doesn\'t exist.'; - } - if(!empty($guild_errors)) - { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); - echo ' -<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - 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"), '<br />', $description, $count); - if($count < $config['guild_description_lines_limit']) - $description = wordwrap(nl2br($description), 60, "<br />", true); - //$description = $description_with_lines; - $guild_owner = $guild->getOwner(); - if($guild_owner->isLoaded()) - $guild_owner = $guild_owner->getName(); - echo '<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%><TR> - <TD><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD><TD> - <TABLE BORDER=0 WIDTH=100%> - <TR><TD WIDTH=64><IMG SRC="images/guilds/' . $guild_logo.'" WIDTH=64 HEIGHT=64></TD> - <TD ALIGN=center WIDTH=100%><H1>'.$guild->getName().'</H1></TD> - <TD WIDTH=64><IMG SRC="images/guilds/' . $guild_logo.'" WIDTH=64 HEIGHT=64></TD></TR> - </TABLE><BR>'.$description.'<BR><BR><a href="' . getPlayerLink($guild_owner, false).'"><b>'.$guild_owner.'</b></a> is guild leader of <b>'.$guild->getName().'</b>.<BR>The guild was founded on '.$config['lua']['serverName'].' on '.date("j F Y", $guild->getCreationData()).'.'; - if($guild_leader) - echo ' <a href="?subtopic=guilds&action=manager&guild='.$guild->getName().'"><IMG SRC="'.$template_path.'/images/buttons/sbutton_manageguild.png" BORDER=0 WIDTH=120 HEIGHT=18 alt="Manage Guild"></a>'; - echo '<BR><BR> - - <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> - <TR BGCOLOR='.$config['vdarkborder'].'> - <TD COLSPAN=3 class="white"><B>Guild Members</B></TD> - </TR> - <TR BGCOLOR='.$config['darkborder'].'> - <TD WIDTH=30%><B>Rank</B></TD> - <TD WIDTH=30%><B>Name, title, level & status</B></TD> - </TR>'; - - //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 ' - <TR BGCOLOR="'.$bgcolor.'"> - <TD valign="top">'.$rank->getName().'</TD> - <TD> - <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%>'; - 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 '<TR><TD>' . getPlayerLink($player->getName()) . '<FORM ACTION="?subtopic=guilds&action=change_nick&name='.$player->getName().'" METHOD=post>'; - $guild_nick = $player->getGuildNick(); - if($logged) - { - if(in_array($player->getId(), $players_from_account_ids)) - echo ' (<input type="text" name="nick" value="'.htmlentities($player->getGuildNick()).'"><input type="submit" value="Change">)'; - 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 ' <font size=1>{<a href="?subtopic=guilds&action=kickplayer&guild='.urlencode($guild->getName()).'&name='.urlencode($player->getName()).'">KICK</a>}</font>'; - //if($player->isOnline()) - // $s_members_online++; - echo '</FORM></TD><TD align="right" width="10%">'.$player->getLevel().'</TD><TD align="right" width="20%"><font color="'.($player->isOnline() ? 'green"><b>Online' : 'red"><b>Offline').'</b></font></TD></TR>'; - } - echo '</TABLE></TD></TR>'; - } - } - echo '</TABLE>'; - /* - //Statistics ;) - echo '<BR> - <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> - <TR BGCOLOR='.$config['vdarkborder'].'><TD COLSPAN=2 class="white"><B>Statistics</B></TD></TR> - <TR BGCOLOR='.$config['darkborder'].'> - <TD WIDTH=30%>Total members:</TD> - <TD WIDTH=50%><B>'.$s_total_members.'</B></TD> - </TR> - <TR BGCOLOR='.$config['lightborder'].'> - <TD WIDTH=30%>Members currently online:</TD> - <TD WIDTH=50%><B>'.$s_members_online.'</B></TD> - </TR> - <TR BGCOLOR='.$config['darkborder'].'> - <TD WIDTH=30%>Total members level:</TD> - <TD WIDTH=50%><B>'.$s_total_level.'</B></TD> - </TR> - <TR BGCOLOR='.$config['lightborder'].'> - <TD WIDTH=30%>Average members level:</TD> - <TD WIDTH=50%><B>'.ceil($s_total_level/$s_total_members).'</B></TD> - </TR> - <TR BGCOLOR='.$config['darkborder'].'> - <TD WIDTH=30%>Frags:</TD> - <TD WIDTH=50%><B>'.$guild->getCustomField('frags').'</B></TD> - </TR>'; - //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 - '<TR BGCOLOR='.$config['lightborder'].'> - <TD WIDTH=30%>Guildhall:</TD> - <TD WIDTH=50%> - <B>'.$houseInfo['name'].'</B> - <FORM ACTION=?subtopic=houses&page=view METHOD=post> - <INPUT TYPE=hidden NAME=houseid VALUE='.$houseInfo['id'].'> - <INPUT TYPE=image NAME="View" ALT="View" SRC="'.$template_path.'/images/buttons/sbutton_view.gif" BORDER=0 WIDTH=120> - </FORM> - </TD> - </TR>'; - } - echo '</TABLE>'; - */ - //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 '<BR><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD COLSPAN=2 class="white"><B>Invited Characters</B></TD></TR><TR BGCOLOR='.$config['lightborder'].'><TD>No invited characters found.</TD></TR></TABLE>'; - else - { - echo '<BR><BR><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD COLSPAN=2 class="white"><B>Invited Characters</B></TD></TR>'; - $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 '<TR bgcolor="'.$bgcolor.'"><TD>' . getPlayerLink($invited_player->getName()); - if($guild_vice) - echo ' (<a href="?subtopic=guilds&action=deleteinvite&guild='.$guild->getName().'&name='.$invited_player->getName().'">Cancel Invitation</a>)'; - echo '</TD></TR>'; - } - echo '</TABLE>'; - } - echo '<BR><BR> - <TABLE BORDER=0 WIDTH=100%><TR><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD>'; - if(!$logged) - echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=accountmanagement&redirect='.getGuildLink($guild->getName(), false).'" METHOD=post><TR><TD> - <INPUT TYPE=image NAME="Login" ALT="Login" SRC="'.$template_path.'/images/buttons/sbutton_login.gif" BORDER=0 WIDTH=120 HEIGHT=18> - </TD></TR></FORM></TABLE></TD>'; - else - { - if($show_accept_invite > 0) - echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=acceptinvite&guild='.$guild->getName().'" METHOD=post><TR><TD> - <INPUT TYPE=image NAME="Accept Invite" ALT="Accept Invite" SRC="'.$template_path.'/images/buttons/sbutton_acceptinvite.png" BORDER=0 WIDTH=120 HEIGHT=18> - </TD></TR></FORM></TABLE></TD>'; - if($guild_vice) - { - echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=invite&guild='.$guild->getName().'" METHOD=post><TR><TD> - <INPUT TYPE=image NAME="Invite Player" ALT="Invite Player" SRC="'.$template_path.'/images/buttons/sbutton_inviteplayer.png" BORDER=0 WIDTH=120 HEIGHT=18> - </TD></TR></FORM></TABLE></TD>'; - echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=changerank&guild='.$guild->getName().'" METHOD=post><TR><TD> - <INPUT TYPE=image NAME="Change Rank" ALT="Change Rank" SRC="'.$template_path.'/images/buttons/sbutton_changerank.png" BORDER=0 WIDTH=120 HEIGHT=18> - </TD></TR></FORM></TABLE></TD>'; - } - if(count($players_from_account_in_guild) > 0) - echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=leaveguild&guild='.$guild->getName().'" METHOD=post><TR><TD> - <INPUT TYPE=image NAME="Leave Guild" ALT="Leave Guild" SRC="'.$template_path.'/images/buttons/sbutton_leaveguild.png" BORDER=0 WIDTH=120 HEIGHT=18> - </TD></TR></FORM></TABLE></TD>'; - } - echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds" METHOD=post><TR><TD> - <INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18> - </TD></TR></FORM></TABLE> - </TD><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD></TR></TABLE> - </TD><TD><IMG src="'.$template_path.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD> - </TR></TABLE></TABLE>'; - } +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 <b>' . $guild_name . '</b> doesn\'t exist.'; - } - if(!empty($guild_errors)) - { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); -echo ' -<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - 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.'</b> 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 '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$template_path.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Guild Deleted</div> <span class="CaptionVerticalRight" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$template_path.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>Rank of player <b>'.$player_to_change->getName().'</b> has been changed to <b>'.$rank->getName().'</b>.</td></tr> </table> </div> </table></div></td></tr><br>'; - 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 '<FORM ACTION="?subtopic=guilds&action=changerank&guild='.$guild->getName().'&todo=save" METHOD=post> - <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> - <TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Change Rank</B></TD></TR> - <TR BGCOLOR='.$config['darkborder'].'><TD>Name: <SELECT NAME="name">'; - foreach($players_with_lower_rank as $player_to_list) - echo '<OPTION value="'.$player_to_list['0'].'">'.$player_to_list['1']; - echo '</SELECT> Rank: <SELECT NAME="rankid">'; - foreach($ranks as $rank) - echo '<OPTION value="'.$rank['0'].'">'.$rank['1']; - echo '</SELECT> <INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD><TR> - </TABLE></FORM><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild->getName().'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - else - echo 'Error. You are not a leader or vice leader in guild '.$guild->getName().'.<FORM ACTION="?subtopic=guilds&action=show&guild='.$guild->getName().'" METHOD=post><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></FORM>'; - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//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 <b>'.$guild_name.'</b> 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 <b>'.$name.'</b> doesn\'t exist.'; - } - if(!$guild_vice) - $guild_errors[] = 'You are not a leader or vice leader of guild <b>'.$guild_name.'</b>.'; - 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[] = '<b>'.$player->getName().'</b> 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 ' -<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - else - { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') - { - $guild->deleteInvite($player); - echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Delete player invitation</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Player with name <b>'.$player->getName().'</b> has been deleted from "invites list".</TD></TR></TABLE><br/><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - else - echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Delete player invitation</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Are you sure you want to delete player with name <b>'.$player->getName().'</b> from "invites list"?</TD></TR></TABLE><br/><center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><TR><FORM ACTION="?subtopic=guilds&action=deleteinvite&guild='.$guild->getName().'&name='.$player->getName().'&todo=save" METHOD=post><TD align="right" width="50%"><INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18> </TD></FORM><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TD> <INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></FORM></TABLE></center>'; - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//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 <b>'.$guild_name.'</b> 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 <b>'.$guild_name.'</b>.'.$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 <b>' . $name . '</b> doesn\'t exist.'; - } - else - { - $rank_of_player = $player->getRank(); - if($rank_of_player->isLoaded()) { - $guild_errors[] = 'Player with name <b>' . $name . '</b> 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[] = '<b>'.$invited->getName().'</b> is already invited to your guild.'; - } - } - } - } - - if(!empty($guild_errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); - echo ' - <table border="0" cellspacing="0" cellpadding="0" width="100%"><form action="?subtopic=guilds&action=show&guild='.$guild_name.'" method="post"><tr><td><center><input type=image name="Back" alt="Back" src="'.$template_path.'/images/buttons/sbutton_back.gif" border=0 width=120 height="18"></center></td></tr></form></table>'; - } - else { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - $guild->invite($player); - echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Invite player</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Player with name <b>'.$player->getName().'</b> has been invited to your guild.</TD></TR></TABLE><br/><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - else { - echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Invite player</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%><FORM ACTION="?subtopic=guilds&action=invite&guild='.$guild->getName().'&todo=save" METHOD=post>Invite player with name: <INPUT TYPE="text" NAME="name"> <INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></FORM></TD></TD></TR></TR></TABLE><br/><center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><TR><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TD><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></FORM></TABLE></center>'; - } - } -} - - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//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 <b>'.$guild_name.'</b> 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 <b>'.$name.'</b> doesn\'t exist.'; - } - else - { - $rank_of_player = $player->getRank(); - if($rank_of_player->isLoaded()) { - $errors[] = 'Character with name <b>'.$name.'</b> 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 <b>'.$guild->getName().'</b>.'; - } - } - } - 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 <b>'.$guild->getName().'</b>.'; - } - } - if(!empty($errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $errors)); - echo ' -<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - else { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - $guild->acceptInvite($player); - echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Accept invitation</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Player with name <b>'.$player->getName().'</b> has been added to guild <b>'.$guild->getName().'</b>.</TD></TR></TABLE><br/><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - else - { - echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Accept invitation</B></TD></TR>'; - echo '<TR BGCOLOR='.$config['lightborder'].'><TD WIDTH=100%>Select character to join guild:</TD></TR>'; - echo '<TR BGCOLOR='.$config['darkborder'].'><TD> - <form action="?subtopic=guilds&action=acceptinvite&guild='.$guild_name.'&todo=save" METHOD="post">'; - sort($list_of_invited_players); - $i = 0; - foreach($list_of_invited_players as $invited_player_from_list) { - echo '<input type="radio" name="name" id="name_' . $i . '" value="'.$invited_player_from_list.'" /><label for="name_' . $i++ . '">'.$invited_player_from_list.'</label><br>'; - } - echo '<br><input type="image" name="Submit" alt="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" border="0" width="120" height="18"></form></td></tr></table><br/><center><table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><form action="?subtopic=guilds&action=show&guild='.$guild_name.'" method="post"><td><input type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/sbutton_back.gif" border=0 width=120 height=18></td></tr></form></table></center>'; - } - } -} - - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//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 <b>'.$guild_name.'</b> 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 <b>'.$guild_name.'</b>. You can\'t kick players.'; - } - } - - if(empty($errors)) { - $player = new OTS_Player(); - $player->find($name); - if(!$player->isLoaded()) { - $errors[] = 'Character <b>'.$name.'</b> doesn\'t exist.'; - } - else - { - if($player->getRank()->isLoaded() && $player->getRank()->getGuild()->isLoaded() && $player->getRank()->getGuild()->getName() != $guild->getName()) { - $errors[] = 'Character <b>'.$name.'</b> 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 <b>'.$name.'</b>. 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 ' -<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - else - { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - $player->setRank(); - echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Kick player</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Player with name <b>'.$player->getName().'</b> has been kicked from your guild.</TD></TR></TABLE><br/><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - else - { - echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Kick player</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Are you sure you want to kick player with name <b>'.$player->getName().'</b> from your guild?</TD></TR></TABLE><br/><center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><TR><FORM ACTION="?subtopic=guilds&action=kickplayer&guild='.$guild->getName().'&name='.$player->getName().'&todo=save" METHOD=post><TD align="right" width="50%"><INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18> </TD></FORM><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TD> <INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></FORM></TABLE></center>'; - } - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//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 <b>'.$guild_name.'</b> 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 <b>'.$name.'</b> doesn\'t exist.'; - } - else { - if($player->getAccount()->getId() != $account_logged->getId()) { - $errors[] = 'Character <b>'.$name.'</b> 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 <b>'.$name.'</b> isn\'t from guild <b>'.$guild->getName().'</b>.'; - } - } - else { - $errors[] = 'Character <b>'.$name.'</b> 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 ' -<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - else - { - if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { - $player->setRank(); - echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Leave guild</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Player with name <b>'.$player->getName().'</b> leaved guild <b>'.$guild->getName().'</b>.</TD></TR></TABLE><br/><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; - } - else - { - echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Leave guild</B></TD></TR>'; - if(count($array_of_player_ig) > 0) { - echo '<TR BGCOLOR='.$config['lightborder'].'><TD WIDTH=100%>Select character to leave guild:</TD></TR>'; - echo '<TR BGCOLOR='.$config['darkborder'].'><TD> - <form action="?subtopic=guilds&action=leaveguild&guild='.$guild_name.'&todo=save" METHOD="post">'; - - sort($array_of_player_ig); - foreach($array_of_player_ig as $player_to_leave) { - echo '<input type="radio" name="name" value="'.$player_to_leave.'" />'.$player_to_leave.'<br>'; - } - echo '</TD></TR><br></TABLE>'; - } - else { - echo '<TR BGCOLOR='.$config['lightborder'].'><TD WIDTH=100%>Any of your characters can\'t leave guild.</TD></TR>'; - } - - echo '<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><tr>'; - if(count($array_of_player_ig) > 0) { - echo '<td width="130" valign="top"><INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></form></td>'; - } - - echo '<td><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></FORM></td></tr></table>'; - } - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//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 <b>'.$name.'</b> doesn\'t exist.'; - } - } - - - if(empty($guild_errors)) - { - $guild = $ots->createObject('Guild'); - $guild->find($guild_name); - if($guild->isLoaded()) { - $guild_errors[] = 'Guild <b>'.$guild_name.'</b> 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 <b>'.$name.'</b> isn\'t on your account or is already in guild.'; - } - } - - if(empty($guild_errors)) { - if($player->getLevel() < $config['guild_need_level']) { - $guild_errors[] = 'Character <b>'.$name.'</b> has too low level. To create guild you need character with level <b>'.$config['guild_need_level'].'</b>.'; - } - if($config['guild_need_premium'] && !$account_logged->isPremium()) { - $guild_errors[] = 'Character <b>'.$name.'</b> 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' => '<b>Congratulations!</b><br/>You have created guild <b>' . $guild_name . '</b>. <b>'.$player->getName().'</b> 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' => '<table border="0" cellspacing="0" cellpadding="0" width="100%"><form action="?subtopic=guilds&action=show&guild='.$guild_name.'" method="post"><tr><td><center><input type="image" name="Submit" alt="Submit" src="'.$template_path.'/images/buttons/sbutton_Submit.gif" border="0" width="120" height="18"></center></td></tr></form></table>' - )); - - /*$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 <b>'.$guild_name.'</b> 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 <b>'.$guild_name.'</b> 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: <b>'.$file['size'].' bytes</b>, Max. size: <b>'.$max_image_size_b.' bytes</b>.'; - } - - $type = strtolower($file['type']); - if(!in_array($type, $allowed_ext)) { - $upload_errors[] = 'Your file type isn\' allowed. Allowed: <b>gif, jpg, bmp, png</b>. Your file type: <b>'.$type.'</b> If it\'s valid image contact with admin.'; - } - } - else { - $upload_errors[] = 'You didn\'t send file or file is too big. Limit: <b>'.$config['guild_image_size_kb'].' KB</b>.'; - } - - 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; - } -} - - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -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 <b>'.$guild_name.'</b> 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 '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$template_path.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Rank Deleted</div> <span class="CaptionVerticalRight" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$template_path.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>Rank <b>'.$rank->getName().'</b> has been deleted. Players with this rank has now other rank.</td></tr> </table> </div> </table></div></td></tr>'; -} else { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors2)); -} -//back button -echo '<br/><center><form action="?subtopic=guilds&guild='.$guild->getName().'&action=manager" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; -} -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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; -} -} -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -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 <b>'.$guild_name.'</b> 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 '<br/><center><form action="?subtopic=guilds&guild='.$guild_name.'&action=show" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; -} -} -else -{ -if(!empty($guild_errors)) { - echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); - -echo '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; -} -} -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -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 <b>'.$guild_name.'</b> 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -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 <b>" . $guild_name . "</b> 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 <b>'.$pass_to.'</b> 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 <b>'.$to_player->getName().'</b> isn\'t from your guild.'; - } - } - else { - $guild_errors2[] = 'Player with name <b>'.$to_player->getName().'</b> 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' => '<b>'.$to_player->getName().'</b> is now a Leader of <b>'.$guild_name.'</b>.', - 'custom_buttons' => '<center><form action="?subtopic=guilds&guild='.$guild->getName().'&action=show" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>' - )); - } - 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 '<br/><center><form action="?subtopic=guilds&guild='.$guild->getName().'&action=passleadership" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; - } - 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; - } -} -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -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 <b>'.$guild_name.'</b> 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 <b>'.$guild_name.'</b> has been deleted.', - 'custom_buttons' => '<center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>' - )); - } - 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; - } -} - - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -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 <b>' . $guild_name . '</b> 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 <b>' . $guild_name . '</b> has been deleted.', - 'custom_buttons' => '<center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url(' . $template_path . '/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url(' . $template_path . '/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>' - )); - } - else { - echo $twig->render('success.html.twig', array( - 'title' => 'Delete Guild', - 'description' => 'Are you sure you want delete guild <b>' . $guild_name . '</b>?<br> - <form action="?subtopic=guilds&guild=' . $guild->getName() . '&action=deletebyadmin" METHOD="post"><input type="hidden" name="todo" value="save"><input type="submit" value="Yes, delete"></form>', - 'custom_buttons' => '<center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>' - )); - } - } - 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -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 <b>" . $guild_name . "</b> 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; - } -} - -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -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 <b>'.$guild_name.'</b> 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 <b>'.$rank_id.'</b>.'; - } - if($level > 0 && $level < 4) { - $rank->setLevel($level); - } - else { - $errors[] = 'Invalid rank level. Contact with admin. Rank ID <b>'.$rank_id.'</b>.'; - } - - $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 "<b>Deleted ranks (this ranks guilds doesn't exist [bug fix]):</b>"; - if(!empty($deleted_ranks)) - foreach($deleted_ranks as $rank) - echo "<li>".$rank; - echo "<BR /><BR /><b>Changed ranks of players (rank or guild of rank doesn't exist [bug fix]):</b>"; - if(!empty($changed_ranks_of)) - foreach($changed_ranks_of as $name) - echo "<li>".$name; - } - else - echo "0 players found."; - } - else - echo "You are not logged in."; - echo "<center><h3><a href=\"?subtopic=guilds\">BACK</a></h3></center>"; -} -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -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 "<b>Deleted guilds (leaders of this guilds are not members of this guild [fix bugged guilds]):</b>"; - if(!empty($deleted_guilds)) - foreach($deleted_guilds as $guild) - echo "<li>".$guild; - } - else - echo "0 guilds found."; - } - else - echo "You are not logged in."; - echo "<center><h3><a href=\"?subtopic=guilds\">BACK</a></h3></center>"; -} -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- -//-----------------------------------------------------------------------------//----------------------------------------------------------------------------- - 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 <b>'.$player->getName().'</b> changed to <b>'.htmlentities($new_nick).'</b>.'; - $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 '<center><h3><a href="?subtopic=guilds'.$addtolink.'">BACK</a></h3></center>'; - } ?> 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 @@ +<?php +/** + * Accept invite + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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 <b>'.$name.'</b> doesn\'t exist.'; + } + else + { + $rank_of_player = $player->getRank(); + if($rank_of_player->isLoaded()) { + $errors[] = 'Character with name <b>'.$name.'</b> 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 <b>'.$guild->getName().'</b>.'; + } + } +} +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 <b>'.$guild->getName().'</b>.'; + } +} +if(!empty($errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $errors)); + echo ' +<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; +} +else { + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + $guild->acceptInvite($player); + echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Accept invitation</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Player with name <b>'.$player->getName().'</b> has been added to guild <b>'.$guild->getName().'</b>.</TD></TR></TABLE><br/><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; + } + else + { + echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Accept invitation</B></TD></TR>'; + echo '<TR BGCOLOR='.$config['lightborder'].'><TD WIDTH=100%>Select character to join guild:</TD></TR>'; + echo '<TR BGCOLOR='.$config['darkborder'].'><TD> + <form action="?subtopic=guilds&action=accept_invite&guild='.$guild_name.'&todo=save" METHOD="post">'; + sort($list_of_invited_players); + $i = 0; + foreach($list_of_invited_players as $invited_player_from_list) { + echo '<input type="radio" name="name" id="name_' . $i . '" value="'.$invited_player_from_list.'" /><label for="name_' . $i++ . '">'.$invited_player_from_list.'</label><br>'; + } + echo '<br><input type="image" name="Submit" alt="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" border="0" width="120" height="18"></form></td></tr></table><br/><center><table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><form action="?subtopic=guilds&action=show&guild='.$guild_name.'" method="post"><td><input type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/sbutton_back.gif" border=0 width=120 height=18></td></tr></form></table></center>'; + } +} + +?> \ 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 @@ +<?php +/** + * Add rank + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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 '<br/><center><form action="?subtopic=guilds&guild='.$guild_name.'&action=show" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; + } +} +else +{ + if(!empty($guild_errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + + echo '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; + } +} + +?> \ 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 @@ +<?php +/** + * Change guild description + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; +} + +?> \ 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 @@ +<?php +/** + * Change guild logo + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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: <b>'.$file['size'].' bytes</b>, Max. size: <b>'.$max_image_size_b.' bytes</b>.'; + } + + $type = strtolower($file['type']); + if(!in_array($type, $allowed_ext)) { + $upload_errors[] = 'Your file type isn\' allowed. Allowed: <b>gif, jpg, bmp, png</b>. Your file type: <b>'.$type.'</b> If it\'s valid image contact with admin.'; + } + } + else { + $upload_errors[] = 'You didn\'t send file or file is too big. Limit: <b>'.$config['guild_image_size_kb'].' KB</b>.'; + } + + 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; +} +?> \ 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 @@ +<?php +/** + * Change motd + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>" . $guild_name . "</b> 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; +} + +?> \ 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 @@ +<?php +/** + * Change nick + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$player->getName().'</b> changed to <b>'.htmlentities($new_nick).'</b>.'; + $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 '<center><h3><a href="?subtopic=guilds'.$addtolink.'">BACK</a></h3></center>'; + +?> \ 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 @@ +<?php +/** + * Change rank + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>' . $guild_name . '</b> doesn\'t exist.'; +} +if(!empty($guild_errors)) +{ + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + echo ' +<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; +} +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.'</b> 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 '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$template_path.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Guild Deleted</div> <span class="CaptionVerticalRight" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$template_path.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>Rank of player <b>'.$player_to_change->getName().'</b> has been changed to <b>'.$rank->getName().'</b>.</td></tr> </table> </div> </table></div></td></tr><br>'; + 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 '<FORM ACTION="?subtopic=guilds&action=change_rank&guild='.$guild->getName().'&todo=save" METHOD=post> + <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> + <TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Change Rank</B></TD></TR> + <TR BGCOLOR='.$config['darkborder'].'><TD>Name: <SELECT NAME="name">'; + foreach($players_with_lower_rank as $player_to_list) + echo '<OPTION value="'.$player_to_list['0'].'">'.$player_to_list['1']; + echo '</SELECT> Rank: <SELECT NAME="rankid">'; + foreach($ranks as $rank) + echo '<OPTION value="'.$rank['0'].'">'.$rank['1']; + echo '</SELECT> <INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD><TR> + </TABLE></FORM><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild->getName().'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; + } + else + echo 'Error. You are not a leader or vice leader in guild '.$guild->getName().'.<FORM ACTION="?subtopic=guilds&action=show&guild='.$guild->getName().'" METHOD=post><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></FORM>'; +} \ 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 @@ +<?php +/** + * Cleanup guilds + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 "<b>Deleted guilds (leaders of this guilds are not members of this guild [fix bugged guilds]):</b>"; + if(!empty($deleted_guilds)) + foreach($deleted_guilds as $guild) + echo "<li>".$guild; + } + else + echo "0 guilds found."; +} +else + echo "You are not logged in."; +echo "<center><h3><a href=\"?subtopic=guilds\">BACK</a></h3></center>"; +?> \ 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 @@ +<?php +/** + * Cleanup players + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 "<b>Deleted ranks (this ranks guilds doesn't exist [bug fix]):</b>"; + if(!empty($deleted_ranks)) + foreach($deleted_ranks as $rank) + echo "<li>".$rank; + echo "<BR /><BR /><b>Changed ranks of players (rank or guild of rank doesn't exist [bug fix]):</b>"; + if(!empty($changed_ranks_of)) + foreach($changed_ranks_of as $name) + echo "<li>".$name; + } + else + echo "0 players found."; +} +else + echo "You are not logged in."; +echo "<center><h3><a href=\"?subtopic=guilds\">BACK</a></h3></center>"; +?> \ 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 @@ +<?php +/** + * Create guild + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$name.'</b> doesn\'t exist.'; + } + } + + + if(empty($guild_errors)) + { + $guild = $ots->createObject('Guild'); + $guild->find($guild_name); + if($guild->isLoaded()) { + $guild_errors[] = 'Guild <b>'.$guild_name.'</b> 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 <b>'.$name.'</b> isn\'t on your account or is already in guild.'; + } + } + + if(empty($guild_errors)) { + if($player->getLevel() < $config['guild_need_level']) { + $guild_errors[] = 'Character <b>'.$name.'</b> has too low level. To create guild you need character with level <b>'.$config['guild_need_level'].'</b>.'; + } + if($config['guild_need_premium'] && !$account_logged->isPremium()) { + $guild_errors[] = 'Character <b>'.$name.'</b> 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' => '<b>Congratulations!</b><br/>You have created guild <b>' . $guild_name . '</b>. <b>'.$player->getName().'</b> 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' => '<table border="0" cellspacing="0" cellpadding="0" width="100%"><form action="?subtopic=guilds&action=show&guild='.$guild_name.'" method="post"><tr><td><center><input type="image" name="Submit" alt="Submit" src="'.$template_path.'/images/buttons/sbutton_Submit.gif" border="0" width="120" height="18"></center></td></tr></form></table>' + )); + + /*$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 @@ +<?php +/** + * Delete by admin + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>' . $guild_name . '</b> 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 <b>' . $guild_name . '</b> has been deleted.', + 'custom_buttons' => '<center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url(' . $template_path . '/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url(' . $template_path . '/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>' + )); + } + else { + echo $twig->render('success.html.twig', array( + 'title' => 'Delete Guild', + 'description' => 'Are you sure you want delete guild <b>' . $guild_name . '</b>?<br> + <form action="?subtopic=guilds&guild=' . $guild->getName() . '&action=delete_by_admin" METHOD="post"><input type="hidden" name="todo" value="save"><input type="submit" value="Yes, delete"></form>', + 'custom_buttons' => '<center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>' + )); + } + } + 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; +} + +?> \ 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 @@ +<?php +/** + * Delete guild + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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 <b>'.$guild_name.'</b> has been deleted.', + 'custom_buttons' => '<center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>' + )); + } + 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; +} + +?> \ 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 @@ +<?php +/** + * Delete invite + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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 <b>'.$name.'</b> doesn\'t exist.'; +} +if(!$guild_vice) + $guild_errors[] = 'You are not a leader or vice leader of guild <b>'.$guild_name.'</b>.'; +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[] = '<b>'.$player->getName().'</b> 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 ' +<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; +} +else +{ + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') + { + $guild->deleteInvite($player); + echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Delete player invitation</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Player with name <b>'.$player->getName().'</b> has been deleted from "invites list".</TD></TR></TABLE><br/><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; + } + else + echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Delete player invitation</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Are you sure you want to delete player with name <b>'.$player->getName().'</b> from "invites list"?</TD></TR></TABLE><br/><center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><TR><FORM ACTION="?subtopic=guilds&action=delete_invite&guild='.$guild->getName().'&name='.$player->getName().'&todo=save" METHOD=post><TD align="right" width="50%"><INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18> </TD></FORM><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TD> <INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></FORM></TABLE></center>'; +} \ 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 @@ +<?php +/** + * Delete rank + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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 '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$template_path.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Rank Deleted</div> <span class="CaptionVerticalRight" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$template_path.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>Rank <b>'.$rank->getName().'</b> has been deleted. Players with this rank has now other rank.</td></tr> </table> </div> </table></div></td></tr>'; + } else { + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors2)); + } +//back button + echo '<br/><center><form action="?subtopic=guilds&guild='.$guild->getName().'&action=manager" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; + } + 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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; +} + +?> \ 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 @@ +<?php +/** + * Invite to guild + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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 <b>'.$guild_name.'</b>.'.$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 <b>' . $name . '</b> doesn\'t exist.'; + } + else + { + $rank_of_player = $player->getRank(); + if($rank_of_player->isLoaded()) { + $guild_errors[] = 'Player with name <b>' . $name . '</b> 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[] = '<b>'.$invited->getName().'</b> is already invited to your guild.'; + } + } + } +} + +if(!empty($guild_errors)) { + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + echo ' + <table border="0" cellspacing="0" cellpadding="0" width="100%"><form action="?subtopic=guilds&action=show&guild='.$guild_name.'" method="post"><tr><td><center><input type=image name="Back" alt="Back" src="'.$template_path.'/images/buttons/sbutton_back.gif" border=0 width=120 height="18"></center></td></tr></form></table>'; +} +else { + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + $guild->invite($player); + echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Invite player</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Player with name <b>'.$player->getName().'</b> has been invited to your guild.</TD></TR></TABLE><br/><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; + } + else { + echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Invite player</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%><FORM ACTION="?subtopic=guilds&action=invite&guild='.$guild->getName().'&todo=save" METHOD=post>Invite player with name: <INPUT TYPE="text" NAME="name"> <INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></FORM></TD></TD></TR></TR></TABLE><br/><center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><TR><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TD><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></FORM></TABLE></center>'; + } +} \ 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 @@ +<?php +/** + * Kick player from guild + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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 <b>'.$guild_name.'</b>. You can\'t kick players.'; + } +} + +if(empty($errors)) { + $player = new OTS_Player(); + $player->find($name); + if(!$player->isLoaded()) { + $errors[] = 'Character <b>'.$name.'</b> doesn\'t exist.'; + } + else + { + if($player->getRank()->isLoaded() && $player->getRank()->getGuild()->isLoaded() && $player->getRank()->getGuild()->getName() != $guild->getName()) { + $errors[] = 'Character <b>'.$name.'</b> 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 <b>'.$name.'</b>. 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 ' +<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; +} +else +{ + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + $player->setRank(); + echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Kick player</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Player with name <b>'.$player->getName().'</b> has been kicked from your guild.</TD></TR></TABLE><br/><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; + } + else + { + echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Kick player</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Are you sure you want to kick player with name <b>'.$player->getName().'</b> from your guild?</TD></TR></TABLE><br/><center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><TR><FORM ACTION="?subtopic=guilds&action=kick_player&guild='.$guild->getName().'&name='.$player->getName().'&todo=save" METHOD=post><TD align="right" width="50%"><INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18> </TD></FORM><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TD> <INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></FORM></TABLE></center>'; + } +} + +?> \ 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 @@ +<?php +/** + * Leave guild + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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 <b>'.$name.'</b> doesn\'t exist.'; + } + else { + if($player->getAccount()->getId() != $account_logged->getId()) { + $errors[] = 'Character <b>'.$name.'</b> 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 <b>'.$name.'</b> isn\'t from guild <b>'.$guild->getName().'</b>.'; + } + } + else { + $errors[] = 'Character <b>'.$name.'</b> 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 ' +<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; +} +else +{ + if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { + $player->setRank(); + echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Leave guild</B></TD></TR><TR BGCOLOR='.$config['darkborder'].'><TD WIDTH=100%>Player with name <b>'.$player->getName().'</b> leaved guild <b>'.$guild->getName().'</b>.</TD></TR></TABLE><br/><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; + } + else + { + echo '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD class="white"><B>Leave guild</B></TD></TR>'; + if(count($array_of_player_ig) > 0) { + echo '<TR BGCOLOR='.$config['lightborder'].'><TD WIDTH=100%>Select character to leave guild:</TD></TR>'; + echo '<TR BGCOLOR='.$config['darkborder'].'><TD> + <form action="?subtopic=guilds&action=leave_guild&guild='.$guild_name.'&todo=save" METHOD="post">'; + + sort($array_of_player_ig); + foreach($array_of_player_ig as $player_to_leave) { + echo '<input type="radio" name="name" value="'.$player_to_leave.'" />'.$player_to_leave.'<br>'; + } + echo '</TD></TR><br></TABLE>'; + } + else { + echo '<TR BGCOLOR='.$config['lightborder'].'><TD WIDTH=100%>Any of your characters can\'t leave guild.</TD></TR>'; + } + + echo '<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><tr>'; + if(count($array_of_player_ig) > 0) { + echo '<td width="130" valign="top"><INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$template_path.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></form></td>'; + } + + echo '<td><FORM ACTION="?subtopic=guilds&action=show&guild='.$guild_name.'" METHOD=post><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></FORM></td></tr></table>'; + } +} + +?> \ 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 @@ +<?php + +$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.<BR/><BR/>Guild statistics are self-updated once per 3 days.<BR/><BR/>'; + +//echo '<A HREF="?subtopic=guilds&preview=1">Normal preview</A> / <A HREF="?subtopic=guilds&preview=2">Advanced ranks & statistics</A><BR/><BR/> +echo ' + <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> + <TR BGCOLOR='.$config['vdarkborder'].'><TD COLSPAN='.($_REQUEST['preview'] == 2 ? '7' : '3').' class="white"><B>Active Guilds on '.$config['lua']['serverName'].'</B></TD></TR> + <TR BGCOLOR='.$config['darkborder'].' '.($_REQUEST['preview'] == 2 ? 'ALIGN="CENTER"' : '' ).'>'; +if($_REQUEST['preview'] == 2) { + echo ' + <TD WIDTH=50><B><A HREF="?subtopic=guilds&preview=2&order=rank">Rank</A></B></TD> + <TD WIDTH=32><B>Logo</B></TD> + <TD WIDTH=200><B><A HREF="?subtopic=guilds&preview=2&order=name">Guild name</A></B></TD>'; + /* + <TD WIDTH=10><B><A HREF="?subtopic=guilds&preview=2&order=total_members">Members</A></B></TD> + <TD WIDTH=10><B><A HREF="?subtopic=guilds&preview=2&order=total_level">Total level</A></B></TD> + <TD WIDTH=10><B><A HREF="?subtopic=guilds&preview=2&order=average_level">Average level</A></B></TD> + <TD WIDTH=10><B><A HREF="?subtopic=guilds&preview=2&order=frags">Frags</A></B></TD>';*/ +} +else + echo ' + <TD WIDTH=64><B>Logo</B></TD> + <TD WIDTH=100%><B>Description</B></TD> + <TD WIDTH=50><B> </B></TD>'; + +echo ' + </TR>'; +$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 '<TR class="moduleRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'?subtopic=guilds&action=show&guild='.$guild->getName().'\'"'; + + echo ' BGCOLOR="' . getStyle($showed_guilds++) . '"><TD ALIGN="CENTER">'.($show_ranks ? $showed_guilds.'.' : '-').'</TD><TD ALIGN="CENTER"><A HREF="?subtopic=guilds&action=show&guild='.$guild->getName().'"><IMG STYLE="border: none" SRC="images/guilds/' .$guild_logo.'" WIDTH=32 HEIGHT=32></A></TD> + <TD valign="top"><B>'.$guild->getName().'</B><BR/>'; + if(admin()) + echo '<br /><a href="?subtopic=guilds&action=delete_by_admin&guild='.$guild->getName().'">Delete this guild (for ADMIN only!)</a>'; + echo '</TD>'; + //<TD ALIGN="CENTER">'.$guild->getCustomField('total_members').'</TD><TD ALIGN="CENTER">'.$guild->getCustomField('total_level').'</TD><TD ALIGN="CENTER">'; + //if($guild->getCustomField('total_members') > 0) + // echo ceil($guild->getCustomField('total_level')/$guild->getCustomField('total_members')); + //echo '</TD><TD>'.$guild->getCustomField('frags').'</TD> + + echo '</TR>'; + } + } + else + echo '<TR BGCOLOR='.$config['lightborder'].'><TD ALIGN="CENTER">-</TD><TD><IMG SRC="images/guilds/' . 'default.gif" WIDTH=64 HEIGHT=64></TD> + <TD valign="top" align="center"><B>Create guild</B><BR/>Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '</TD> + <TD colspan="4">'; + if($logged) + echo ' + <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=create_guild" METHOD=post><TR><TD> + <INPUT TYPE=image NAME="Create Guild" ALT="Create Guild" SRC="'.$template_path.'/images/buttons/sbutton_createguild.png" BORDER=0 WIDTH=120 HEIGHT=18> + </TD></TR></FORM></TABLE>'; + + echo ' + </TD></TR>'; +} +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"), '<br />', $description, $count); + if($count < $config['guild_description_lines_limit']) + $description = wordwrap(nl2br($description), 60, "<br />", true); + //$description = $description_with_lines; + + echo '<TR BGCOLOR="' . getStyle($showed_guilds++) . '"><TD><IMG SRC="images/guilds/' . $guild_logo.'" WIDTH=64 HEIGHT=64></TD> + <TD valign="top"><B>'.$guild->getName().'</B><BR/>'.$description.''; + if(admin()) + echo '<br /><a href="?subtopic=guilds&action=delete_by_admin&guild='.$guild->getName().'">Delete this guild (for ADMIN only!)</a>'; + echo '</TD><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="' . $link . '" METHOD=post><TR><TD> + <INPUT TYPE=image NAME="View" ALT="View" SRC="'.$template_path.'/images/buttons/sbutton_view.gif" BORDER=0 WIDTH=120 HEIGHT=18> + </TD></TR></FORM></TABLE> + </TD></TR>'; + } + } + else + echo '<TR BGCOLOR='.$config['lightborder'].'><TD><IMG SRC="images/guilds/' . 'default.gif" WIDTH=64 HEIGHT=64></TD> + <TD valign="top"><B>Create guild</B><BR/>Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '</TD> + <TD>'; + if($logged) + echo '<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=create_guild" METHOD=post><TR><TD> + <INPUT TYPE=image NAME="Create Guild" ALT="Create Guild" SRC="'.$template_path.'/images/buttons/sbutton_createguild.png" BORDER=0 WIDTH=120 HEIGHT=18> + </TD></TR></FORM></TABLE>'; + echo ' + </TD></TR>'; +} + + +echo '</TABLE><br><br>'; +if($logged) + echo '<TABLE BORDER=0 WIDTH=100%><TR><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD><TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=create_guild" METHOD=post><TR><TD> + <INPUT TYPE=image NAME="Create Guild" ALT="Create Guild" SRC="'.$template_path.'/images/buttons/sbutton_createguild.png" BORDER=0 WIDTH=120 HEIGHT=18> + </TD></TR></FORM></TABLE></TD><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD></TR></TABLE> + <BR />If you have any problem with guilds try: + <BR /><a href="?subtopic=guilds&action=cleanup_players">Cleanup players</a> - can\'t join guild/be invited? Can\'t create guild? Try cleanup players. + <BR /><a href="?subtopic=guilds&action=cleanup_guilds">Cleanup guilds</a> - 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.<br><TABLE BORDER=0 WIDTH=100%><TR><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD><TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=accountmanagement&redirect=' . getLink('guilds') . '" METHOD=post><TR><TD> + <INPUT TYPE=image NAME="Login" ALT="Login" SRC="'.$template_path.'/images/buttons/sbutton_login.gif" BORDER=0 WIDTH=120 HEIGHT=18> + </TD></TR></FORM></TABLE></TD><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD></TR></TABLE>'; +?> \ 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 @@ +<?php +/** + * Guild manager + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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 @@ +<?php +/** + * Pass leadership + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>" . $guild_name . "</b> 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 <b>'.$pass_to.'</b> 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 <b>'.$to_player->getName().'</b> isn\'t from your guild.'; + } + } + else { + $guild_errors2[] = 'Player with name <b>'.$to_player->getName().'</b> 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' => '<b>'.$to_player->getName().'</b> is now a Leader of <b>'.$guild_name.'</b>.', + 'custom_buttons' => '<center><form action="?subtopic=guilds&guild='.$guild->getName().'&action=show" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>' + )); + } + 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 '<br/><center><form action="?subtopic=guilds&guild='.$guild->getName().'&action=pass_leadership" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; +} +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 '<br/><center><form action="?subtopic=guilds" METHOD=post><div class="BigButton" style="background-image:url('.$template_path.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$template_path.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$template_path.'/images/buttons/_sbutton_back.gif" ></div></div></form></center>'; +} + +?> \ 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 @@ +<?php +/** + * Save ranks + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> 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 <b>'.$rank_id.'</b>.'; + } + if($level > 0 && $level < 4) { + $rank->setLevel($level); + } + else { + $errors[] = 'Invalid rank level. Contact with admin. Rank ID <b>'.$rank_id.'</b>.'; + } + + $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 @@ +<?php +/** + * Show guild + * + * @package MyAAC + * @author Gesior <jerzyskalski@wp.pl> + * @author Slawkens <slawkens@gmail.com> + * @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 <b>'.$guild_name.'</b> doesn\'t exist.'; +} +if(!empty($guild_errors)) +{ + echo $twig->render('error_box.html.twig', array('errors' => $guild_errors)); + echo ' +<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><FORM ACTION="?subtopic=guilds" METHOD=post><TR><TD><center><INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></center></TD></TR></FORM></TABLE>'; +} +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"), '<br />', $description, $count); + if($count < $config['guild_description_lines_limit']) + $description = wordwrap(nl2br($description), 60, "<br />", true); + //$description = $description_with_lines; + $guild_owner = $guild->getOwner(); + if($guild_owner->isLoaded()) + $guild_owner = $guild_owner->getName(); + echo '<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%><TR> + <TD><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD><TD> + <TABLE BORDER=0 WIDTH=100%> + <TR><TD WIDTH=64><IMG SRC="images/guilds/' . $guild_logo.'" WIDTH=64 HEIGHT=64></TD> + <TD ALIGN=center WIDTH=100%><H1>'.$guild->getName().'</H1></TD> + <TD WIDTH=64><IMG SRC="images/guilds/' . $guild_logo.'" WIDTH=64 HEIGHT=64></TD></TR> + </TABLE><BR>'.$description.'<BR><BR><a href="' . getPlayerLink($guild_owner, false).'"><b>'.$guild_owner.'</b></a> is guild leader of <b>'.$guild->getName().'</b>.<BR>The guild was founded on '.$config['lua']['serverName'].' on '.date("j F Y", $guild->getCreationData()).'.'; + if($guild_leader) + echo ' <a href="?subtopic=guilds&action=manager&guild='.$guild->getName().'"><IMG SRC="'.$template_path.'/images/buttons/sbutton_manageguild.png" BORDER=0 WIDTH=120 HEIGHT=18 alt="Manage Guild"></a>'; + echo '<BR><BR> + + <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> + <TR BGCOLOR='.$config['vdarkborder'].'> + <TD COLSPAN=3 class="white"><B>Guild Members</B></TD> + </TR> + <TR BGCOLOR='.$config['darkborder'].'> + <TD WIDTH=30%><B>Rank</B></TD> + <TD WIDTH=30%><B>Name, title, level & status</B></TD> + </TR>'; + + //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 ' + <TR BGCOLOR="'.$bgcolor.'"> + <TD valign="top">'.$rank->getName().'</TD> + <TD> + <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%>'; + 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 '<TR><TD>' . getPlayerLink($player->getName()) . '<FORM ACTION="?subtopic=guilds&action=change_nick&name='.$player->getName().'" METHOD=post>'; + $guild_nick = $player->getGuildNick(); + if($logged) + { + if(in_array($player->getId(), $players_from_account_ids)) + echo ' (<input type="text" name="nick" value="'.htmlentities($player->getGuildNick()).'"><input type="submit" value="Change">)'; + 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 ' <font size=1>{<a href="?subtopic=guilds&action=kick_player&guild='.urlencode($guild->getName()).'&name='.urlencode($player->getName()).'">KICK</a>}</font>'; + + echo '</FORM></TD><TD align="right" width="10%">'.$player->getLevel().'</TD><TD align="right" width="20%"><font color="'.($player->isOnline() ? 'green"><b>Online' : 'red"><b>Offline').'</b></font></TD></TR>'; + } + echo '</TABLE></TD></TR>'; + } + } + echo '</TABLE>'; + /* + //Statistics ;) + echo '<BR> + <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> + <TR BGCOLOR='.$config['vdarkborder'].'><TD COLSPAN=2 class="white"><B>Statistics</B></TD></TR> + <TR BGCOLOR='.$config['darkborder'].'> + <TD WIDTH=30%>Total members:</TD> + <TD WIDTH=50%><B>'.$s_total_members.'</B></TD> + </TR> + <TR BGCOLOR='.$config['lightborder'].'> + <TD WIDTH=30%>Members currently online:</TD> + <TD WIDTH=50%><B>'.$s_members_online.'</B></TD> + </TR> + <TR BGCOLOR='.$config['darkborder'].'> + <TD WIDTH=30%>Total members level:</TD> + <TD WIDTH=50%><B>'.$s_total_level.'</B></TD> + </TR> + <TR BGCOLOR='.$config['lightborder'].'> + <TD WIDTH=30%>Average members level:</TD> + <TD WIDTH=50%><B>'.ceil($s_total_level/$s_total_members).'</B></TD> + </TR> + <TR BGCOLOR='.$config['darkborder'].'> + <TD WIDTH=30%>Frags:</TD> + <TD WIDTH=50%><B>'.$guild->getCustomField('frags').'</B></TD> + </TR>'; + //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 + '<TR BGCOLOR='.$config['lightborder'].'> + <TD WIDTH=30%>Guildhall:</TD> + <TD WIDTH=50%> + <B>'.$houseInfo['name'].'</B> + <FORM ACTION=?subtopic=houses&page=view METHOD=post> + <INPUT TYPE=hidden NAME=houseid VALUE='.$houseInfo['id'].'> + <INPUT TYPE=image NAME="View" ALT="View" SRC="'.$template_path.'/images/buttons/sbutton_view.gif" BORDER=0 WIDTH=120> + </FORM> + </TD> + </TR>'; + } + echo '</TABLE>'; + */ + //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 '<BR><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD COLSPAN=2 class="white"><B>Invited Characters</B></TD></TR><TR BGCOLOR='.$config['lightborder'].'><TD>No invited characters found.</TD></TR></TABLE>'; + else + { + echo '<BR><BR><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['vdarkborder'].'><TD COLSPAN=2 class="white"><B>Invited Characters</B></TD></TR>'; + $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 '<TR bgcolor="'.$bgcolor.'"><TD>' . getPlayerLink($invited_player->getName()); + if($guild_vice) + echo ' (<a href="?subtopic=guilds&action=delete_invite&guild='.$guild->getName().'&name='.$invited_player->getName().'">Cancel Invitation</a>)'; + echo '</TD></TR>'; + } + echo '</TABLE>'; + } + echo '<BR><BR> + <TABLE BORDER=0 WIDTH=100%><TR><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD>'; + if(!$logged) + echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=accountmanagement&redirect='.getGuildLink($guild->getName(), false).'" METHOD=post><TR><TD> + <INPUT TYPE=image NAME="Login" ALT="Login" SRC="'.$template_path.'/images/buttons/sbutton_login.gif" BORDER=0 WIDTH=120 HEIGHT=18> + </TD></TR></FORM></TABLE></TD>'; + else + { + if($show_accept_invite > 0) + echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=accept_invite&guild='.$guild->getName().'" METHOD=post><TR><TD> + <INPUT TYPE=image NAME="Accept Invite" ALT="Accept Invite" SRC="'.$template_path.'/images/buttons/sbutton_acceptinvite.png" BORDER=0 WIDTH=120 HEIGHT=18> + </TD></TR></FORM></TABLE></TD>'; + if($guild_vice) + { + echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=invite&guild='.$guild->getName().'" METHOD=post><TR><TD> + <INPUT TYPE=image NAME="Invite Player" ALT="Invite Player" SRC="'.$template_path.'/images/buttons/sbutton_inviteplayer.png" BORDER=0 WIDTH=120 HEIGHT=18> + </TD></TR></FORM></TABLE></TD>'; + echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=change_rank&guild='.$guild->getName().'" METHOD=post><TR><TD> + <INPUT TYPE=image NAME="Change Rank" ALT="Change Rank" SRC="'.$template_path.'/images/buttons/sbutton_changerank.png" BORDER=0 WIDTH=120 HEIGHT=18> + </TD></TR></FORM></TABLE></TD>'; + } + if(count($players_from_account_in_guild) > 0) + echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=leave_guild&guild='.$guild->getName().'" METHOD=post><TR><TD> + <INPUT TYPE=image NAME="Leave Guild" ALT="Leave Guild" SRC="'.$template_path.'/images/buttons/sbutton_leaveguild.png" BORDER=0 WIDTH=120 HEIGHT=18> + </TD></TR></FORM></TABLE></TD>'; + } + echo '<TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds" METHOD=post><TR><TD> + <INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18> + </TD></TR></FORM></TABLE> + </TD><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD></TR></TABLE> + </TD><TD><IMG src="'.$template_path.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD> + </TR></TABLE></TABLE>'; +} \ 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 @@ <center><h2>Change guild description</h2></center> Here you can change description of your guild.<br/> -<form enctype="multipart/form-data" action="?subtopic=guilds&guild={{ guild.getName() }}&action=changedescription" method="post"> +<form enctype="multipart/form-data" action="?subtopic=guilds&guild={{ guild.getName() }}&action=change_description" method="post"> <input type="hidden" name="todo" value="save"/> <textarea name="description" cols="60" rows="{{ rows }}">{{ guild.getCustomField('description')|raw }}</textarea><br> (max. {{ config.guild_description_lines_limit }} lines, max. {{ config.guild_description_chars_limit }} chars) <input type="submit" value="Save description"/></form><br/> 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 @@ <center><h2>Change guild logo</h2></center> Here you can change logo of your guild.<br/>Actuall logo: <img src="images/guilds/{{ guild_logo }}" height="64" width="64"><br/><br/> -<form enctype="multipart/form-data" action="?subtopic=guilds&guild={{ guild.getName() }}&action=changelogo" method="post" id="upload_form"> +<form enctype="multipart/form-data" action="?subtopic=guilds&guild={{ guild.getName() }}&action=change_logo" method="post" id="upload_form"> <input type="hidden" name="todo" value="save" /> <input type="hidden" name="MAX_FILE_SIZE" value="{{ max_image_size_b }}" /> Select new logo: <input name="newlogo" id="newlogo" type="file" /> 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 @@ <center><h2>Change guild MOTD</h2></center> Here you can change MOTD (Message of the Day, showed in game!) of your guild.<br/> -<form enctype="multipart/form-data" action="?subtopic=guilds&guild={{ guild.getName() }}&action=changemotd" method="post"> +<form enctype="multipart/form-data" action="?subtopic=guilds&guild={{ guild.getName() }}&action=change_motd" method="post"> <input type="hidden" name="todo" value="save"/> <textarea name="motd" cols="60" rows="3">{{ guild.getCustomField('motd')|raw }}</textarea><br/> (max. {{ config.guild_motd_chars_limit }} chars) <input type="submit" value="Save MOTD" /></form><br/> 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 @@ -<form action="?subtopic=guilds&action=createguild&todo=save" method="post"> +<form action="?subtopic=guilds&action=create_guild&todo=save" method="post"> <table width="100%" border="0" cellspacing="1" cellpadding="4"> <tr> <td bgcolor="{{ config.vdarkborder }}" class="white"><B>Create a {{ config.lua.serverName }} Guild</b></td> 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 @@ <table style="width:100%;" > <tr> <td>Are you sure you want delete guild <b>{{ guild.getName() }}</b>?<br/> - <form action="?subtopic=guilds&guild={{ guild.getName() }}&action=deleteguild" method="post"> + <form action="?subtopic=guilds&guild={{ guild.getName() }}&action=delete_guild" method="post"> <input type="hidden" name="todo" value="save"/> <input type="submit" value="Yes, delete"/> </form> 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 </tr> <tr bgcolor="{{ config.lightborder }}"> <td width="170"> - <b><a href="?subtopic=guilds&guild={{ guild.getName() }}&action=passleadership">Pass Leadership</a></b> + <b><a href="?subtopic=guilds&guild={{ guild.getName() }}&action=pass_leadership">Pass Leadership</a></b> </td> <td> <b>Pass leadership of guild to other guild member.</b> @@ -20,7 +20,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth </tr> <tr bgcolor="{{ config.darkborder }}"> <td width="170"> - <b><a href="?subtopic=guilds&guild={{ guild.getName() }}&action=deleteguild">Delete Guild</a></b> + <b><a href="?subtopic=guilds&guild={{ guild.getName() }}&action=delete_guild">Delete Guild</a></b> </td> <td> <b>Delete guild, kick all members.</b> @@ -28,7 +28,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth </tr> <tr bgcolor="{{ config.lightborder }}"> <td width="170"> - <b><a href="?subtopic=guilds&guild={{ guild.getName() }}&action=changedescription">Change Description</a></b> + <b><a href="?subtopic=guilds&guild={{ guild.getName() }}&action=change_description">Change Description</a></b> </td> <td> <b>Change description of guild.</b> @@ -37,7 +37,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth {% if constant('MOTD_EXISTS') %} <tr bgcolor="{{ config.darkborder }}"> <td width="170"> - <b><a href="?subtopic=guilds&guild={{ guild.getName() }}&action=changemotd">Change MOTD</a></b> + <b><a href="?subtopic=guilds&guild={{ guild.getName() }}&action=change_motd">Change MOTD</a></b> </td> <td> <b>Change MOTD of guild.</b> @@ -46,7 +46,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth {% endif %} <tr bgcolor="{{ config.lightborder }}"> <td width="170"> - <b><a href="?subtopic=guilds&guild={{ guild.getName() }}&action=changelogo">Change guild logo</a></b> + <b><a href="?subtopic=guilds&guild={{ guild.getName() }}&action=change_logo">Change guild logo</a></b> </td> <td> <b>Upload new guild logo.</b> @@ -75,7 +75,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth <tr> <td width="120" valign="top">New rank name:</td> <td> - <form action="?subtopic=guilds&guild={{ guild.getName() }}&action=addrank" method="post"> + <form action="?subtopic=guilds&guild={{ guild.getName() }}&action=add_rank" method="post"> <input type="text" name="rank_name" size="20"/> <input type="submit" value="Add"/> </form> @@ -88,7 +88,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth </table> </div> <center><h3>Change rank names and levels</h3></center> -<form action="?subtopic=guilds&action=saveranks&guild={{ guild.getName() }}" method="post"> +<form action="?subtopic=guilds&action=save_ranks&guild={{ guild.getName() }}" method="post"> <table style="clear:both" border="0" cellpadding="0" cellspacing="0" width="100%"> <tr bgcolor="{{ config.vdarkborder }}"> <td rowspan="2" width="120" align="center"> @@ -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 %} <tr bgcolor="{{ getStyle(i) }}"> - <td align="center">{{ rank.getId() }} // <a href="?subtopic=guilds&guild={{ guild.getName() }}&action=deleterank&rankid={{ rank.getId() }}" border="0"><img src="{{ template_path }}/images/news/delete.png" border="0" alt="Delete Rank"></a> + <td align="center">{{ rank.getId() }} // <a href="?subtopic=guilds&guild={{ guild.getName() }}&action=delete_rank&rankid={{ rank.getId() }}" border="0"><img src="{{ template_path }}/images/news/delete.png" border="0" alt="Delete Rank"></a> </td> <td> <input type="text" name="{{ rank.getId() }}_name" value="{{ rank.getName() }}" size="35"/> 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 @@ <table style="width:100%;"> <tr> <td>Pass leadership to: </b><br> - <form action="?subtopic=guilds&guild={{ guild.getName() }}&action=passleadership" method="post"> + <form action="?subtopic=guilds&guild={{ guild.getName() }}&action=pass_leadership" method="post"> <input type="hidden" name="todo" value="save"/> <input type="text" size="40" name="player"/> <input type="submit" value="Save">