Fixes regarding csrf + refactor some parts of AAC (guilds + forum)

Replace $account_logged->getPlayers() with getPlayersList()
$_REQUEST['todo'] -> $_REQUEST['post']
$guild_errors -> $errors
This commit is contained in:
slawkens
2025-05-24 11:42:42 +02:00
parent e776bd52be
commit 84d502bf10
42 changed files with 301 additions and 272 deletions

View File

@@ -64,7 +64,7 @@ if(!empty($action)) {
else if($action == 'delete_board') { else if($action == 'delete_board') {
Forum::delete_board($id, $errors); Forum::delete_board($id, $errors);
header('Location: ' . getLink('forum')); header('Location: ' . getLink('forum'));
$action = ''; exit;
} }
else if($action == 'edit_board') else if($action == 'edit_board')
{ {
@@ -78,28 +78,27 @@ if(!empty($action)) {
else { else {
Forum::update_board($id, $name, $access, $guild, $description); Forum::update_board($id, $name, $access, $guild, $description);
header('Location: ' . getLink('forum')); header('Location: ' . getLink('forum'));
$action = $name = $description = ''; exit;
$access = $guild = 0;
} }
} }
else if($action == 'hide_board') { else if($action == 'hide_board') {
Forum::toggleHide_board($id, $errors); Forum::toggleHide_board($id, $errors);
header('Location: ' . getLink('forum')); header('Location: ' . getLink('forum'));
$action = ''; exit;
} }
else if($action == 'moveup_board') { else if($action == 'moveup_board') {
Forum::move_board($id, -1, $errors); Forum::move_board($id, -1, $errors);
header('Location: ' . getLink('forum')); header('Location: ' . getLink('forum'));
$action = ''; exit;
} }
else if($action == 'movedown_board') { else if($action == 'movedown_board') {
Forum::move_board($id, 1, $errors); Forum::move_board($id, 1, $errors);
header('Location: ' . getLink('forum')); header('Location: ' . getLink('forum'));
$action = ''; exit;
} }
if(!empty($errors)) { if(!empty($errors)) {
$twig->display('error_box.html.twig', array('errors' => $errors)); $twig->display('error_box.html.twig', ['errors' => $errors]);
$action = ''; $action = '';
} }
} }

View File

@@ -18,15 +18,14 @@ if ($ret === false) {
return; return;
} }
csrfProtect();
if(!$logged) { if(!$logged) {
echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . urlencode(getLink('forum')) . '">Log in</a> to post on the forum.<br /><br />'; echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . urlencode(getLink('forum')) . '">Log in</a> to post on the forum.<br /><br />';
return; return;
} }
if(Forum::canPost($account_logged)) csrfProtect();
{
if(Forum::canPost($account_logged)) {
$post_id = isset($_REQUEST['id']) ? (int) $_REQUEST['id'] : false; $post_id = isset($_REQUEST['id']) ? (int) $_REQUEST['id'] : false;
if(!$post_id) { if(!$post_id) {
$errors[] = 'Please enter post id.'; $errors[] = 'Please enter post id.';
@@ -43,12 +42,12 @@ if(Forum::canPost($account_logged))
$char_id = $post_topic = $text = $smile = $html = null; $char_id = $post_topic = $text = $smile = $html = null;
$players_from_account = $db->query("SELECT `players`.`name`, `players`.`id` FROM `players` WHERE `players`.`account_id` = ".(int) $account_logged->getId())->fetchAll(); $players_from_account = $db->query("SELECT `players`.`name`, `players`.`id` FROM `players` WHERE `players`.`account_id` = ".(int) $account_logged->getId())->fetchAll();
$saved = false; $saved = false;
if(isset($_REQUEST['save'])) { if(isset($_POST['save'])) {
$text = stripslashes(trim($_REQUEST['text'])); $text = stripslashes(trim($_POST['text']));
$char_id = (int) $_REQUEST['char_id']; $char_id = (int) $_POST['char_id'];
$post_topic = stripslashes(trim($_REQUEST['topic'])); $post_topic = stripslashes(trim($_POST['topic']));
$smile = isset($_REQUEST['smile']) ? (int)$_REQUEST['smile'] : 0; $smile = isset($_POST['smile']) ? (int)$_POST['smile'] : 0;
$html = isset($_REQUEST['html']) ? (int)$_REQUEST['html'] : 0; $html = isset($_POST['html']) ? (int)$_POST['html'] : 0;
if (!superAdmin()) { if (!superAdmin()) {
$html = 0; $html = 0;

View File

@@ -18,22 +18,22 @@ if ($ret === false) {
return; return;
} }
csrfProtect();
if(!$logged) { if(!$logged) {
echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . urlencode(getLink('forum')) . '">Log in</a> to post on the forum.<br /><br />'; echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . urlencode(getLink('forum')) . '">Log in</a> to post on the forum.<br /><br />';
return; return;
} }
csrfProtect();
if(!Forum::isModerator()) { if(!Forum::isModerator()) {
echo 'You are not logged in or you are not moderator.'; echo 'You are not logged in or you are not moderator.';
return; return;
} }
$save = isset($_REQUEST['save']) && (int)$_REQUEST['save'] == 1; $save = isset($_POST['save']) && (int)$_POST['save'] == 1;
if($save) { if($save) {
$post_id = (int)$_REQUEST['id']; $post_id = (int)$_POST['id'];
$board = (int)$_REQUEST['section']; $board = (int)$_POST['section'];
if(!Forum::hasAccess($board)) { if(!Forum::hasAccess($board)) {
$errors[] = "You don't have access to this board."; $errors[] = "You don't have access to this board.";
displayErrorBoxWithBackButton($errors, getLink('forum')); displayErrorBoxWithBackButton($errors, getLink('forum'));

View File

@@ -45,11 +45,11 @@ if(Forum::canPost($account_logged)) {
echo '<a href="' . getLink('forum') . '">Boards</a> >> <a href="' . getForumBoardLink($thread['section']) . '">'.$sections[$thread['section']]['name'].'</a> >> <a href="' . getForumThreadLink($thread_id) . '">'.htmlspecialchars($thread['post_topic']).'</a> >> <b>Post new reply</b><br /><h3>'.htmlspecialchars($thread['post_topic']).'</h3>'; echo '<a href="' . getLink('forum') . '">Boards</a> >> <a href="' . getForumBoardLink($thread['section']) . '">'.$sections[$thread['section']]['name'].'</a> >> <a href="' . getForumThreadLink($thread_id) . '">'.htmlspecialchars($thread['post_topic']).'</a> >> <b>Post new reply</b><br /><h3>'.htmlspecialchars($thread['post_topic']).'</h3>';
$quote = isset($_REQUEST['quote']) ? (int) $_REQUEST['quote'] : NULL; $quote = isset($_REQUEST['quote']) ? (int) $_REQUEST['quote'] : NULL;
$text = isset($_REQUEST['text']) ? stripslashes(trim($_REQUEST['text'])) : NULL; $text = isset($_POST['text']) ? stripslashes(trim($_POST['text'])) : NULL;
$char_id = (int) ($_REQUEST['char_id'] ?? 0); $char_id = (int) ($_POST['char_id'] ?? 0);
$post_topic = isset($_REQUEST['topic']) ? stripslashes(trim($_REQUEST['topic'])) : ''; $post_topic = isset($_POST['topic']) ? stripslashes(trim($_POST['topic'])) : '';
$smile = (int)($_REQUEST['smile'] ?? 0); $smile = (int)($_POST['smile'] ?? 0);
$html = (int)($_REQUEST['html'] ?? 0); $html = (int)($_POST['html'] ?? 0);
$saved = false; $saved = false;
if (!superAdmin()) { if (!superAdmin()) {
@@ -62,10 +62,10 @@ if(Forum::canPost($account_logged)) {
$text = '[i]Originally posted by ' . $quoted_post[0]['name'] . ' on ' . date('d.m.y H:i:s', $quoted_post[0]['post_date']) . ':[/i][quote]' . $quoted_post[0]['post_text'] . '[/quote]'; $text = '[i]Originally posted by ' . $quoted_post[0]['name'] . ' on ' . date('d.m.y H:i:s', $quoted_post[0]['post_date']) . ':[/i][quote]' . $quoted_post[0]['post_text'] . '[/quote]';
} }
} }
elseif(isset($_REQUEST['save'])) { elseif(isset($_POST['save'])) {
$length = strlen($text); $length = strlen($text);
if($length < 1 || strlen($text) > 15000) { if($length < 1 || strlen($text) > 15000) {
$errors[] = 'Too short or too long post (Length: $length letters). Minimum 1 letter, maximum 15000 letters.'; $errors[] = "Too short or too long post (Length: $length letters). Minimum 1 letter, maximum 15000 letters.";
} }
if($char_id == 0) { if($char_id == 0) {
@@ -81,15 +81,14 @@ if(Forum::canPost($account_logged)) {
} }
if(!$player_on_account) { if(!$player_on_account) {
$errors[] = 'Player with selected ID ' . $char_id . ' doesn\'t exist or isn\'t on your account'; $errors[] = "Player with selected ID $char_id doesn't exist or isn't on your account";
} }
} }
if(count($errors) == 0) { if(count($errors) == 0) {
$last_post = 0; $last_post = 0;
$query = $db->query('SELECT post_date FROM ' . FORUM_TABLE_PREFIX . 'forum ORDER BY post_date DESC LIMIT 1'); $query = $db->query('SELECT post_date FROM ' . FORUM_TABLE_PREFIX . 'forum ORDER BY post_date DESC LIMIT 1');
if($query->rowCount() > 0) if($query->rowCount() > 0) {
{
$query = $query->fetch(); $query = $query->fetch();
$last_post = $query['post_date']; $last_post = $query['post_date'];
} }

View File

@@ -40,19 +40,18 @@ if(Forum::canPost($account_logged)) {
if ($sections[$section_id]['closed'] && !Forum::isModerator()) if ($sections[$section_id]['closed'] && !Forum::isModerator())
$errors[] = 'You cannot create topic on this board.'; $errors[] = 'You cannot create topic on this board.';
$quote = (int)(isset($_REQUEST['quote']) ? $_REQUEST['quote'] : 0); $text = isset($_POST['text']) ? stripslashes($_POST['text']) : '';
$text = isset($_REQUEST['text']) ? stripslashes($_REQUEST['text']) : ''; $char_id = (int)(isset($_POST['char_id']) ? $_POST['char_id'] : 0);
$char_id = (int)(isset($_REQUEST['char_id']) ? $_REQUEST['char_id'] : 0); $post_topic = isset($_POST['topic']) ? stripslashes($_POST['topic']) : '';
$post_topic = isset($_REQUEST['topic']) ? stripslashes($_REQUEST['topic']) : ''; $smile = (isset($_POST['smile']) ? (int)$_POST['smile'] : 0);
$smile = (isset($_REQUEST['smile']) ? (int)$_REQUEST['smile'] : 0); $html = (isset($_POST['html']) ? (int)$_POST['html'] : 0);
$html = (isset($_REQUEST['html']) ? (int)$_REQUEST['html'] : 0);
if (!superAdmin()) { if (!superAdmin()) {
$html = 0; $html = 0;
} }
$saved = false; $saved = false;
if (isset($_REQUEST['save'])) { if (isset($_POST['save'])) {
$length = strlen($post_topic); $length = strlen($post_topic);
if ($length < 1 || $length > 60) { if ($length < 1 || $length > 60) {
$errors[] = "Too short or too long topic (Length: $length letters). Minimum 1 letter, maximum 60 letters."; $errors[] = "Too short or too long topic (Length: $length letters). Minimum 1 letter, maximum 60 letters.";

View File

@@ -26,10 +26,10 @@ if(!$logged) {
csrfProtect(); csrfProtect();
if(Forum::isModerator()) { if(Forum::isModerator()) {
$id = (int) $_REQUEST['id']; $id = (int) ($_POST['id'] ?? 0);
$post = $db->query("SELECT `id`, `first_post`, `section` FROM `" . FORUM_TABLE_PREFIX . "forum` WHERE `id` = ".$id." LIMIT 1")->fetch(); $post = $db->query("SELECT `id`, `first_post`, `section` FROM `" . FORUM_TABLE_PREFIX . "forum` WHERE `id` = ".$id." LIMIT 1")->fetch();
if($post['id'] == $id && Forum::hasAccess($post['section'])) { if($post && $post['id'] == $id && Forum::hasAccess($post['section'])) {
if($post['id'] == $post['first_post']) { if($post['id'] == $post['first_post']) {
$db->query("DELETE FROM `" . FORUM_TABLE_PREFIX . "forum` WHERE `first_post` = ".$post['id']); $db->query("DELETE FROM `" . FORUM_TABLE_PREFIX . "forum` WHERE `first_post` = ".$post['id']);
header('Location: ' . getForumBoardLink($post['section'])); header('Location: ' . getForumBoardLink($post['section']));
@@ -38,7 +38,7 @@ if(Forum::isModerator()) {
$post_page = $db->query("SELECT COUNT(`" . FORUM_TABLE_PREFIX . "forum`.`id`) AS posts_count FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` AND `" . FORUM_TABLE_PREFIX . "forum`.`id` < ".$id." AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".(int) $post['first_post'])->fetch(); $post_page = $db->query("SELECT COUNT(`" . FORUM_TABLE_PREFIX . "forum`.`id`) AS posts_count FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` AND `" . FORUM_TABLE_PREFIX . "forum`.`id` < ".$id." AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".(int) $post['first_post'])->fetch();
$_page = (int) ceil($post_page['posts_count'] / setting('core.forum_threads_per_page')) - 1; $_page = (int) ceil($post_page['posts_count'] / setting('core.forum_threads_per_page')) - 1;
$db->query("DELETE FROM `" . FORUM_TABLE_PREFIX . "forum` WHERE `id` = ".$post['id']); $db->query("DELETE FROM `" . FORUM_TABLE_PREFIX . "forum` WHERE `id` = ".$post['id']);
header('Location: ' . getForumThreadLink($post['first_post'], (int) $_page)); header('Location: ' . getForumThreadLink($post['first_post'], $_page));
} }
} }
else { else {

View File

@@ -33,7 +33,7 @@ if(!Forum::hasAccess($section_id)) {
return; return;
} }
$_page = (int) (isset($_REQUEST['page']) ? $_REQUEST['page'] : 0); $_page = (int) ($_REQUEST['page'] ?? 0);
$threads_count = $db->query("SELECT COUNT(`" . FORUM_TABLE_PREFIX . "forum`.`id`) AS threads_count FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` AND `" . FORUM_TABLE_PREFIX . "forum`.`section` = ".(int) $section_id." AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = `" . FORUM_TABLE_PREFIX . "forum`.`id`")->fetch(); $threads_count = $db->query("SELECT COUNT(`" . FORUM_TABLE_PREFIX . "forum`.`id`) AS threads_count FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` AND `" . FORUM_TABLE_PREFIX . "forum`.`section` = ".(int) $section_id." AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = `" . FORUM_TABLE_PREFIX . "forum`.`id`")->fetch();
for($i = 0; $i < $threads_count['threads_count'] / setting('core.forum_threads_per_page'); $i++) { for($i = 0; $i < $threads_count['threads_count'] / setting('core.forum_threads_per_page'); $i++) {
if($i != $_page) if($i != $_page)
@@ -50,7 +50,7 @@ if($logged && (!$sections[$section_id]['closed'] || Forum::isModerator())) {
} }
echo '<br /><br />Page: '.$links_to_pages.'<br />'; echo '<br /><br />Page: '.$links_to_pages.'<br />';
$last_threads = $db->query("SELECT `players`.`id` as `player_id`, `players`.`name`, `" . FORUM_TABLE_PREFIX . "forum`.`post_text`, `" . FORUM_TABLE_PREFIX . "forum`.`post_topic`, `" . FORUM_TABLE_PREFIX . "forum`.`id`, `" . FORUM_TABLE_PREFIX . "forum`.`last_post`, `" . FORUM_TABLE_PREFIX . "forum`.`replies`, `" . FORUM_TABLE_PREFIX . "forum`.`views`, `" . FORUM_TABLE_PREFIX . "forum`.`post_date` FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` AND `" . FORUM_TABLE_PREFIX . "forum`.`section` = ".$section_id." AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = `" . FORUM_TABLE_PREFIX . "forum`.`id` ORDER BY `" . FORUM_TABLE_PREFIX . "forum`.`last_post` DESC LIMIT ".setting('core.forum_threads_per_page')." OFFSET ".($_page * setting('core.forum_threads_per_page')))->fetchAll(); $last_threads = $db->query("SELECT `players`.`id` as `player_id`, `players`.`name`, `" . FORUM_TABLE_PREFIX . "forum`.`first_post`, `" . FORUM_TABLE_PREFIX . "forum`.`post_text`, `" . FORUM_TABLE_PREFIX . "forum`.`post_topic`, `" . FORUM_TABLE_PREFIX . "forum`.`id`, `" . FORUM_TABLE_PREFIX . "forum`.`last_post`, `" . FORUM_TABLE_PREFIX . "forum`.`replies`, `" . FORUM_TABLE_PREFIX . "forum`.`views`, `" . FORUM_TABLE_PREFIX . "forum`.`post_date` FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` AND `" . FORUM_TABLE_PREFIX . "forum`.`section` = ".$section_id." AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = `" . FORUM_TABLE_PREFIX . "forum`.`id` ORDER BY `" . FORUM_TABLE_PREFIX . "forum`.`last_post` DESC LIMIT ".setting('core.forum_threads_per_page')." OFFSET ".($_page * setting('core.forum_threads_per_page')))->fetchAll(PDO::FETCH_ASSOC);
if(isset($last_threads[0])) { if(isset($last_threads[0])) {
echo '<table width="100%"> echo '<table width="100%">
@@ -67,8 +67,8 @@ if(isset($last_threads[0])) {
foreach($last_threads as $thread) { foreach($last_threads as $thread) {
echo '<tr bgcolor="' . getStyle($number_of_rows++) . '"><td>'; echo '<tr bgcolor="' . getStyle($number_of_rows++) . '"><td>';
if(Forum::isModerator()) { if(Forum::isModerator()) {
echo '<a href="' . getLink('forum') . '?action=move_thread&id='.$thread['id'].'"\')"><span style="color:darkgreen">[MOVE]</span></a>'; echo '<a href="' . getLink('forum') . '?action=move_thread&id=' . $thread['id'] . '" title="Move Thread"><img src="images/icons/arrow_right.gif"/></a>';
echo '<a href="' . getLink('forum') . '?action=remove_post&id='.$thread['id'].'" onclick="return confirm(\'Are you sure you want remove thread > '.htmlspecialchars($thread['post_topic']).' <?\')"><span style="color: red">[REMOVE]</span></a> '; $twig->display('forum.remove_post.html.twig', ['post' => $thread]);
} }
$player->load($thread['player_id']); $player->load($thread['player_id']);
@@ -82,10 +82,13 @@ if(isset($last_threads[0])) {
echo '<a href="' . getForumThreadLink($thread['id']) . '">'.htmlspecialchars($thread['post_topic']). '</a><br /><small>'.($canEditForum ? substr(strip_tags($thread['post_text']), 0, 50) : htmlspecialchars(substr($thread['post_text'], 0, 50))).'...</small></td><td>' . getPlayerLink($thread['name']) . '</td><td>'.(int) $thread['replies'].'</td><td>'.(int) $thread['views'].'</td><td>'; echo '<a href="' . getForumThreadLink($thread['id']) . '">'.htmlspecialchars($thread['post_topic']). '</a><br /><small>'.($canEditForum ? substr(strip_tags($thread['post_text']), 0, 50) : htmlspecialchars(substr($thread['post_text'], 0, 50))).'...</small></td><td>' . getPlayerLink($thread['name']) . '</td><td>'.(int) $thread['replies'].'</td><td>'.(int) $thread['views'].'</td><td>';
if($thread['last_post'] > 0) { if($thread['last_post'] > 0) {
$last_post = $db->query("SELECT `players`.`name`, `" . FORUM_TABLE_PREFIX . "forum`.`post_date` FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".(int) $thread['id']." AND `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` ORDER BY `post_date` DESC LIMIT 1")->fetch(); $last_post = $db->query("SELECT `players`.`name`, `" . FORUM_TABLE_PREFIX . "forum`.`post_date` FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".(int) $thread['id']." AND `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` ORDER BY `post_date` DESC LIMIT 1")->fetch();
if(isset($last_post['name']))
echo date('d.m.y H:i:s', $last_post['post_date']).'<br />by ' . getPlayerLink($last_post['name']); if(isset($last_post['name'])) {
else echo date('d.m.y H:i:s', $last_post['post_date']) . '<br />by ' . getPlayerLink($last_post['name']);
}
else {
echo 'No posts.'; echo 'No posts.';
}
} }
else { else {
echo date('d.m.y H:i:s', $thread['post_date']) . '<br />by ' . getPlayerLink($thread['name']); echo date('d.m.y H:i:s', $thread['post_date']) . '<br />by ' . getPlayerLink($thread['name']);

View File

@@ -35,7 +35,7 @@ if(!Forum::hasAccess($thread_starter['section'])) {
return; return;
} }
$posts_count = $db->query("SELECT COUNT(`" . FORUM_TABLE_PREFIX . "forum`.`id`) AS posts_count FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".(int) $thread_id)->fetch(); $posts_count = $db->query("SELECT COUNT(`" . FORUM_TABLE_PREFIX . "forum`.`id`) AS posts_count FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".$thread_id)->fetch();
for($i = 0; $i < $posts_count['posts_count'] / setting('core.forum_threads_per_page'); $i++) { for($i = 0; $i < $posts_count['posts_count'] / setting('core.forum_threads_per_page'); $i++) {
if($i != $_page) if($i != $_page)
$links_to_pages .= '<a href="' . getForumThreadLink($thread_id, $i) . '">'.($i + 1).'</a> '; $links_to_pages .= '<a href="' . getForumThreadLink($thread_id, $i) . '">'.($i + 1).'</a> ';
@@ -46,7 +46,7 @@ for($i = 0; $i < $posts_count['posts_count'] / setting('core.forum_threads_per_p
$posts = $db->query("SELECT `players`.`id` as `player_id`, `" . FORUM_TABLE_PREFIX . "forum`.`id`,`" . FORUM_TABLE_PREFIX . "forum`.`first_post`, `" . FORUM_TABLE_PREFIX . "forum`.`section`,`" . FORUM_TABLE_PREFIX . "forum`.`post_text`, `" . FORUM_TABLE_PREFIX . "forum`.`post_topic`, `" . FORUM_TABLE_PREFIX . "forum`.`post_date` AS `date`, `" . FORUM_TABLE_PREFIX . "forum`.`post_smile`, `" . FORUM_TABLE_PREFIX . "forum`.`post_html`, `" . FORUM_TABLE_PREFIX . "forum`.`author_aid`, `" . FORUM_TABLE_PREFIX . "forum`.`author_guid`, `" . FORUM_TABLE_PREFIX . "forum`.`last_edit_aid`, `" . FORUM_TABLE_PREFIX . "forum`.`edit_date` FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".$thread_id." ORDER BY `" . FORUM_TABLE_PREFIX . "forum`.`post_date` LIMIT " . setting('core.forum_posts_per_page') . " OFFSET ".($_page * setting('core.forum_posts_per_page')))->fetchAll(); $posts = $db->query("SELECT `players`.`id` as `player_id`, `" . FORUM_TABLE_PREFIX . "forum`.`id`,`" . FORUM_TABLE_PREFIX . "forum`.`first_post`, `" . FORUM_TABLE_PREFIX . "forum`.`section`,`" . FORUM_TABLE_PREFIX . "forum`.`post_text`, `" . FORUM_TABLE_PREFIX . "forum`.`post_topic`, `" . FORUM_TABLE_PREFIX . "forum`.`post_date` AS `date`, `" . FORUM_TABLE_PREFIX . "forum`.`post_smile`, `" . FORUM_TABLE_PREFIX . "forum`.`post_html`, `" . FORUM_TABLE_PREFIX . "forum`.`author_aid`, `" . FORUM_TABLE_PREFIX . "forum`.`author_guid`, `" . FORUM_TABLE_PREFIX . "forum`.`last_edit_aid`, `" . FORUM_TABLE_PREFIX . "forum`.`edit_date` FROM `players`, `" . FORUM_TABLE_PREFIX . "forum` WHERE `players`.`id` = `" . FORUM_TABLE_PREFIX . "forum`.`author_guid` AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".$thread_id." ORDER BY `" . FORUM_TABLE_PREFIX . "forum`.`post_date` LIMIT " . setting('core.forum_posts_per_page') . " OFFSET ".($_page * setting('core.forum_posts_per_page')))->fetchAll();
if(isset($posts[0]['player_id'])) { if(isset($posts[0]['player_id'])) {
$db->query("UPDATE `" . FORUM_TABLE_PREFIX . "forum` SET `views`=`views`+1 WHERE `id` = ".(int) $thread_id); $db->query("UPDATE `" . FORUM_TABLE_PREFIX . "forum` SET `views`=`views`+1 WHERE `id` = " . $thread_id);
} }
$lookaddons = $db->hasColumn('players', 'lookaddons'); $lookaddons = $db->hasColumn('players', 'lookaddons');

View File

@@ -12,11 +12,11 @@ defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; require __DIR__ . '/base.php';
//set rights in guild // set rights in guild
$guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null; $guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null;
$name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : null; $name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : null;
if(!$logged) { if(!$logged) {
$errors[] = 'You are not logged in. You can\'t accept invitations.'; $errors[] = "You are not logged in. You can't accept invitations.";
} }
if(!Validator::guildName($guild_name)) { if(!Validator::guildName($guild_name)) {
@@ -27,11 +27,11 @@ if(empty($errors)) {
$guild = new OTS_Guild(); $guild = new OTS_Guild();
$guild->find($guild_name); $guild->find($guild_name);
if(!$guild->isLoaded()) { if(!$guild->isLoaded()) {
$errors[] = 'Guild with name <b>'.$guild_name.'</b> doesn\'t exist.'; $errors[] = "Guild with name <b>$guild_name</b> doesn't exist.";
} }
} }
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(isset($_POST['todo']) && $_POST['todo'] == 'save') {
if(!Validator::characterName($name)) { if(!Validator::characterName($name)) {
$errors[] = 'Invalid name format.'; $errors[] = 'Invalid name format.';
} }
@@ -51,7 +51,7 @@ if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') {
} }
} }
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(isset($_POST['todo']) && $_POST['todo'] == 'save') {
if(empty($errors)) { if(empty($errors)) {
$is_invited = false; $is_invited = false;
include(SYSTEM . 'libs/pot/InvitesDriver.php'); include(SYSTEM . 'libs/pot/InvitesDriver.php');
@@ -104,7 +104,7 @@ if(!empty($errors)) {
)); ));
} }
else { else {
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(isset($_POST['todo']) && $_POST['todo'] == 'save') {
$guild->acceptInvite($player); $guild->acceptInvite($player);
$twig->display('success.html.twig', array( $twig->display('success.html.twig', array(
'title' => 'Accept invitation', 'title' => 'Accept invitation',

View File

@@ -13,7 +13,7 @@ defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; require __DIR__ . '/base.php';
$guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null; $guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null;
$rank_name = isset($_REQUEST['rank_name']) ? $_REQUEST['rank_name'] : null; $rank_name = $_POST['rank_name'] ?? null;
if(!Validator::guildName($guild_name)) { if(!Validator::guildName($guild_name)) {
$errors[] = Validator::getLastError(); $errors[] = Validator::getLastError();
} }
@@ -35,7 +35,7 @@ if(empty($errors)) {
$rank_list = $guild->getGuildRanksList(); $rank_list = $guild->getGuildRanksList();
$rank_list->orderBy('level', POT::ORDER_DESC); $rank_list->orderBy('level', POT::ORDER_DESC);
$guild_leader = false; $guild_leader = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) { foreach($account_players as $player) {
if($guild_leader_char->getId() == $player->getId()) { if($guild_leader_char->getId() == $player->getId()) {
$guild_vice = true; $guild_vice = true;

View File

@@ -31,7 +31,7 @@ if(empty($errors)) {
$rank_list = $guild->getGuildRanksList(); $rank_list = $guild->getGuildRanksList();
$rank_list->orderBy('level', POT::ORDER_DESC); $rank_list->orderBy('level', POT::ORDER_DESC);
$guild_leader = false; $guild_leader = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) { foreach($account_players as $player) {
if($guild->getOwner()->getId() == $player->getId()) { if($guild->getOwner()->getId() == $player->getId()) {
$guild_vice = true; $guild_vice = true;
@@ -42,8 +42,8 @@ if(empty($errors)) {
$saved = false; $saved = false;
if($guild_leader) { if($guild_leader) {
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(isset($_POST['todo']) && $_POST['todo'] == 'save') {
$description = htmlspecialchars(stripslashes(substr(trim($_REQUEST['description']),0, setting('core.guild_description_chars_limit')))); $description = htmlspecialchars(stripslashes(substr(trim($_POST['description']),0, setting('core.guild_description_chars_limit'))));
$guild->setCustomField('description', $description); $guild->setCustomField('description', $description);
$saved = true; $saved = true;
} }

View File

@@ -30,7 +30,7 @@ if(empty($errors)) {
if($logged) { if($logged) {
$guild_leader_char = $guild->getOwner(); $guild_leader_char = $guild->getOwner();
$guild_leader = false; $guild_leader = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) { foreach($account_players as $player) {
if($guild_leader_char->getId() == $player->getId()) { if($guild_leader_char->getId() == $player->getId()) {
@@ -40,14 +40,13 @@ if(empty($errors)) {
} }
} }
if($guild_leader) if($guild_leader) {
{
$max_image_size_b = setting('core.guild_image_size_kb') * 1024; $max_image_size_b = setting('core.guild_image_size_kb') * 1024;
$allowed_ext = array('image/gif', 'image/jpg', 'image/pjpeg', 'image/jpeg', 'image/bmp', 'image/png', 'image/x-png'); $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'); $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_file_name = str_replace(' ', '_', strtolower($guild->getName()));
$save_path = GUILD_IMAGES_DIR . $save_file_name; $save_path = GUILD_IMAGES_DIR . $save_file_name;
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') if(isset($_POST['todo']) && $_POST['todo'] == 'save')
{ {
$file = $_FILES['newlogo']; $file = $_FILES['newlogo'];
if(is_uploaded_file($file['tmp_name'])) if(is_uploaded_file($file['tmp_name']))
@@ -97,13 +96,13 @@ if(empty($errors)) {
$guild_logo = $guild->getCustomField('logo_name'); $guild_logo = $guild->getCustomField('logo_name');
if(empty($guild_logo) || !file_exists(GUILD_IMAGES_DIR . $guild_logo)) { if(empty($guild_logo) || !file_exists(GUILD_IMAGES_DIR . $guild_logo)) {
$guild_logo = "default.gif"; $guild_logo = 'default.gif';
} }
$twig->display('guilds.change_logo.html.twig', array( $twig->display('guilds.change_logo.html.twig', array(
'guild_logo' => $guild_logo, 'guild_logo' => $guild_logo,
'guild' => $guild, 'guild' => $guild,
'max_image_size_b' => $max_image_size_b //'max_image_size_b' => $max_image_size_b
)); ));
} }

View File

@@ -34,7 +34,7 @@ if(empty($errors)) {
$rank_list = $guild->getGuildRanksList(); $rank_list = $guild->getGuildRanksList();
$rank_list->orderBy('level', POT::ORDER_DESC); $rank_list->orderBy('level', POT::ORDER_DESC);
$guild_leader = false; $guild_leader = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) { foreach($account_players as $player) {
if($guild->getOwner()->getId() == $player->getId()) { if($guild->getOwner()->getId() == $player->getId()) {
$guild_vice = true; $guild_vice = true;
@@ -45,8 +45,8 @@ if(empty($errors)) {
$saved = false; $saved = false;
if($guild_leader) { if($guild_leader) {
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(isset($_POST['todo']) && $_POST['todo'] == 'save') {
$motd = htmlspecialchars(stripslashes(substr($_REQUEST['motd'],0, setting('core.guild_motd_chars_limit')))); $motd = htmlspecialchars(stripslashes(substr($_POST['motd'],0, setting('core.guild_motd_chars_limit'))));
$guild->setCustomField('motd', $motd); $guild->setCustomField('motd', $motd);
$saved = true; $saved = true;
} }

View File

@@ -20,17 +20,15 @@ if(!$logged) {
} }
$name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : null; $name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : null;
$new_nick = isset($_REQUEST['nick']) ? stripslashes($_REQUEST['nick']) : null; $new_nick = isset($_POST['nick']) ? stripslashes($_POST['nick']) : null;
$guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null; $guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null;
if(!$name) { if(!$name) {
$errors[] = 'Please enter new name.'; $errors[] = 'Please enter new name.';
return;
} }
if(!$new_nick) { if(!$new_nick) {
$errors[] = 'Please enter new nick.'; $errors[] = 'Please enter new nick.';
return;
} }
if(empty($errors)) if(empty($errors))

View File

@@ -17,8 +17,9 @@ if(!$logged) {
} }
else { else {
$guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null; $guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null;
if(!Validator::guildName($guild_name)) if(!Validator::guildName($guild_name)) {
$errors[] = Validator::getLastError(); $errors[] = Validator::getLastError();
}
} }
if(empty($errors)) if(empty($errors))
@@ -42,7 +43,7 @@ $rank_list = $guild->getGuildRanksList();
$rank_list->orderBy('level', POT::ORDER_DESC); $rank_list->orderBy('level', POT::ORDER_DESC);
$guild_leader = false; $guild_leader = false;
$guild_vice = false; $guild_vice = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) foreach($account_players as $player)
{ {
$player_rank = $player->getRank(); $player_rank = $player->getRank();
@@ -65,22 +66,23 @@ foreach($account_players as $player)
} }
} }
if($guild_vice) if($guild_vice) {
{ if(isset($_POST['todo']) && $_POST['todo'] === 'save') {
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] === 'save')
{
$player_name = stripslashes($_REQUEST['name']); $player_name = stripslashes($_REQUEST['name']);
$new_rank = (int) $_REQUEST['rankid']; $new_rank = (int) $_POST['rankid'];
if(!Validator::characterName($player_name))
if(!Validator::characterName($player_name)) {
$errors[] = 'Invalid player name format.'; $errors[] = 'Invalid player name format.';
}
$rank = new OTS_GuildRank(); $rank = new OTS_GuildRank();
$rank->load($new_rank); $rank->load($new_rank);
if(!$rank->isLoaded()) if(!$rank->isLoaded())
$errors[] = "Rank with this ID doesn't exist."; $errors[] = "Rank with this ID doesn't exist.";
if($level_in_guild <= $rank->getLevel() && !$guild_leader) if($level_in_guild <= $rank->getLevel() && !$guild_leader)
$errors[] = "You can't set ranks with equal or higher level than your."; $errors[] = "You can't set ranks with equal or higher level than your.";
if(empty($errors))
{ if(empty($errors)) {
$player_to_change = new OTS_Player(); $player_to_change = new OTS_Player();
$player_to_change->find($player_name); $player_to_change->find($player_name);
if(!$player_to_change->isLoaded()) if(!$player_to_change->isLoaded())
@@ -108,8 +110,7 @@ if($guild_vice)
$errors[] = 'This player has higher rank in guild than you. You can\'t change his/her rank.'; $errors[] = 'This player has higher rank in guild than you. You can\'t change his/her rank.';
} }
if(empty($errors)) if(empty($errors)) {
{
$player_to_change->setRank($rank); $player_to_change->setRank($rank);
$twig->display('success.html.twig', array( $twig->display('success.html.twig', array(
'title' => 'Rank Changed', 'title' => 'Rank Changed',
@@ -125,7 +126,7 @@ if($guild_vice)
$result = getPlayersWithLowerRank($rank_list, $guild_leader, $db, $level_in_guild, $guild); $result = getPlayersWithLowerRank($rank_list, $guild_leader, $db, $level_in_guild, $guild);
$twig->display('guilds.change_rank.html.twig', array( $twig->display('guilds.change_rank.html.twig', array(
'players' => isset($result['players']) ? $result['players'] : array(), 'players' => $result['players'] ?? [],
'guild_name' => $guild->getName(), 'guild_name' => $guild->getName(),
'ranks' => $result['ranks'] 'ranks' => $result['ranks']
)); ));

View File

@@ -12,33 +12,27 @@ defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; require __DIR__ . '/base.php';
if(!$logged) if(!$logged) {
{
echo "You are not logged in."; echo "You are not logged in.";
$twig->display('guilds.back_button.html.twig'); $twig->display('guilds.back_button.html.twig');
return; return;
} }
if(admin()) if(admin()) {
{
$players_list = new OTS_Players_List(); $players_list = new OTS_Players_List();
$players_list->init(); $players_list->init();
} }
else else {
$players_list = $account_logged->getPlayersList(); $players_list = $account_logged->getPlayersList();
}
if(count($players_list) > 0) if(count($players_list) > 0) {
{ foreach($players_list as $player) {
foreach($players_list as $player)
{
$player_rank = $player->getRank(); $player_rank = $player->getRank();
if($player_rank->isLoaded()) if($player_rank->isLoaded()) {
{ if($player_rank->isLoaded()) {
if($player_rank->isLoaded())
{
$rank_guild = $player_rank->getGuild(); $rank_guild = $player_rank->getGuild();
if(!$rank_guild->isLoaded()) if(!$rank_guild->isLoaded()) {
{
$player->setRank(); $player->setRank();
$player->setGuildNick(''); $player->setGuildNick('');
$changed_ranks_of[] = $player->getName(); $changed_ranks_of[] = $player->getName();
@@ -46,8 +40,7 @@ if(count($players_list) > 0)
$player_rank->delete(); $player_rank->delete();
} }
} }
else else {
{
$player->setRank(); $player->setRank();
$player->setGuildNick(''); $player->setGuildNick('');
$changed_ranks_of[] = $player->getName(); $changed_ranks_of[] = $player->getName();
@@ -55,14 +48,20 @@ if(count($players_list) > 0)
} }
} }
echo "<b>Deleted ranks (this ranks guilds doesn't exist [bug fix]):</b>"; echo "<b>Deleted ranks (this ranks guilds doesn't exist [bug fix]):</b>";
if(!empty($deleted_ranks)) if(!empty($deleted_ranks)) {
foreach($deleted_ranks as $rank) foreach ($deleted_ranks as $rank) {
echo "<li>".$rank; echo "<li>" . $rank;
}
}
echo "<BR /><BR /><b>Changed ranks of players (rank or guild of rank doesn't exist [bug fix]):</b>"; 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) if(!empty($changed_ranks_of)) {
echo "<li>".$name; foreach ($changed_ranks_of as $name) {
echo "<li>" . $name;
}
}
} }
else else
echo "0 players found."; echo "0 players found.";

View File

@@ -14,15 +14,15 @@ use MyAAC\Models\GuildRank;
require __DIR__ . '/base.php'; require __DIR__ . '/base.php';
$guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : NULL; $guild_name = isset($_POST['guild']) ? urldecode($_POST['guild']) : NULL;
$name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; $name = isset($_POST['name']) ? stripslashes($_POST['name']) : NULL;
$todo = isset($_REQUEST['todo']) ? $_REQUEST['todo'] : NULL; $todo = isset($_POST['todo']) ? $_POST['todo'] : NULL;
if(!$logged) { if(!$logged) {
$guild_errors[] = 'You are not logged in. You can\'t create guild.'; $errors[] = 'You are not logged in. You can\'t create guild.';
} }
$array_of_player_nig = array(); $array_of_player_nig = array();
if(empty($guild_errors)) if(empty($errors))
{ {
$account_players = $account_logged->getPlayersList(false); $account_players = $account_logged->getPlayersList(false);
foreach($account_players as $player) foreach($account_players as $player)
@@ -41,45 +41,44 @@ if(empty($guild_errors))
if(empty($todo)) { if(empty($todo)) {
if(count($array_of_player_nig) == 0) { 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' . (setting('core.guild_need_premium') ? ' or you don\' have a premium account' : '') . '.'; $errors[] = 'On your account all characters are in guilds, have too low level to create new guild' . (setting('core.guild_need_premium') ? ' or you don\' have a premium account' : '') . '.';
} }
} }
if($todo == 'save') if($todo == 'save')
{ {
if(!Validator::guildName($guild_name)) { if(!Validator::guildName($guild_name)) {
$guild_errors[] = Validator::getLastError(); $errors[] = Validator::getLastError();
$guild_name = ''; $guild_name = '';
} }
if(!Validator::characterName($name)) { if(!Validator::characterName($name)) {
$guild_errors[] = 'Invalid character name format.'; $errors[] = 'Invalid character name format.';
$name = ''; $name = '';
} }
if(empty($guild_errors)) { if(empty($errors)) {
$player = new OTS_Player(); $player = new OTS_Player();
$player->find($name); $player->find($name);
if(!$player->isLoaded()) { if(!$player->isLoaded()) {
$guild_errors[] = 'Character <b>'.$name.'</b> doesn\'t exist.'; $errors[] = 'Character <b>'.$name.'</b> doesn\'t exist.';
} }
} }
if(empty($errors))
if(empty($guild_errors))
{ {
$guild = new OTS_Guild(); $guild = new OTS_Guild();
$guild->find($guild_name); $guild->find($guild_name);
if($guild->isLoaded()) { if($guild->isLoaded()) {
$guild_errors[] = 'Guild <b>'.$guild_name.'</b> already exist. Select other name.'; $errors[] = 'Guild <b>'.$guild_name.'</b> already exist. Select other name.';
} }
} }
if(empty($guild_errors) && $player->isDeleted()) { if(empty($errors) && $player->isDeleted()) {
$guild_errors[] = "Character <b>$name</b> has been deleted."; $errors[] = "Character <b>$name</b> has been deleted.";
} }
if(empty($guild_errors)) if(empty($errors))
{ {
$bad_char = true; $bad_char = true;
foreach($array_of_player_nig as $nick_from_list) { foreach($array_of_player_nig as $nick_from_list) {
@@ -88,22 +87,22 @@ if($todo == 'save')
} }
} }
if($bad_char) { if($bad_char) {
$guild_errors[] = 'Character <b>'.$name.'</b> isn\'t on your account or is already in guild.'; $errors[] = 'Character <b>'.$name.'</b> isn\'t on your account or is already in guild.';
} }
} }
if(empty($guild_errors)) { if(empty($errors)) {
if($player->getLevel() < setting('core.guild_need_level')) { if($player->getLevel() < setting('core.guild_need_level')) {
$guild_errors[] = 'Character <b>'.$name.'</b> has too low level. To create guild you need character with level <b>' . setting('core.guild_need_level') . '</b>.'; $errors[] = 'Character <b>'.$name.'</b> has too low level. To create guild you need character with level <b>' . setting('core.guild_need_level') . '</b>.';
} }
if(setting('core.guild_need_premium') && !$account_logged->isPremium()) { if(setting('core.guild_need_premium') && !$account_logged->isPremium()) {
$guild_errors[] = 'Character <b>'.$name.'</b> is on FREE account. To create guild you need PREMIUM account.'; $errors[] = 'Character <b>'.$name.'</b> is on FREE account. To create guild you need PREMIUM account.';
} }
} }
} }
if(!empty($guild_errors)) { if(!empty($errors)) {
$twig->display('error_box.html.twig', array('errors' => $guild_errors)); $twig->display('error_box.html.twig', array('errors' => $errors));
unset($todo); unset($todo);
} }

View File

@@ -45,7 +45,10 @@ if(empty($errors)) {
$twig->display('success.html.twig', array( $twig->display('success.html.twig', array(
'title' => 'Delete Guild', 'title' => 'Delete Guild',
'description' => 'Are you sure you want delete guild <b>' . $guild_name . '</b>?<br/> 'description' => 'Are you sure you want delete guild <b>' . $guild_name . '</b>?<br/>
<form action="' . getLink('guilds') . '?guild=' . $guild->getName() . '&action=delete_by_admin" METHOD="post"><input type="hidden" name="todo" value="save"><input type="submit" value="Yes, delete"></form>', <form action="' . getLink('guilds') . '?guild=' . $guild->getName() . '&action=delete_by_admin" METHOD="post">
' . csrf(true) . '
<input type="hidden" name="todo" value="save"><input type="submit" value="Yes, delete">
</form>',
'custom_buttons' => $twig->render('guilds.back_button.html.twig') 'custom_buttons' => $twig->render('guilds.back_button.html.twig')
)); ));
} }

View File

@@ -21,7 +21,7 @@ if(empty($errors)) {
$guild = new OTS_Guild(); $guild = new OTS_Guild();
$guild->find($guild_name); $guild->find($guild_name);
if(!$guild->isLoaded()) { if(!$guild->isLoaded()) {
$errors[] = 'Guild with name <b>'.$guild_name.'</b> doesn\'t exist.'; $errors[] = "Guild with name <b>$guild_name</b> doesn't exist.";
} }
} }
@@ -31,7 +31,7 @@ if(empty($errors)) {
$rank_list = $guild->getGuildRanksList(); $rank_list = $guild->getGuildRanksList();
$rank_list->orderBy('level', POT::ORDER_DESC); $rank_list->orderBy('level', POT::ORDER_DESC);
$guild_leader = false; $guild_leader = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) { foreach($account_players as $player) {
if($guild->getOwner()->getId() == $player->getId()) { if($guild->getOwner()->getId() == $player->getId()) {

View File

@@ -15,47 +15,43 @@ require __DIR__ . '/base.php';
$guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null; $guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null;
$name = stripslashes($_REQUEST['name']); $name = stripslashes($_REQUEST['name']);
if(!$logged) if(!$logged) {
$errors[] = 'You are not logged in. You can\'t delete invitations.'; $errors[] = 'You are not logged in. You can\'t delete invitations.';
}
if(!Validator::guildName($guild_name)) if(!Validator::guildName($guild_name)) {
$errors[] = Validator::getLastError(); $errors[] = Validator::getLastError();
}
if(!Validator::characterName($name)) if(!Validator::characterName($name)) {
$errors[] = 'Invalid name format.'; $errors[] = 'Invalid name format.';
}
if(empty($errors)) if(empty($errors)) {
{
$guild = new OTS_Guild(); $guild = new OTS_Guild();
$guild->find($guild_name); $guild->find($guild_name);
if(!$guild->isLoaded()) if(!$guild->isLoaded())
$errors[] = "Guild with name <b>" . $guild_name . "</b> doesn't exist."; $errors[] = "Guild with name <b>" . $guild_name . "</b> doesn't exist.";
} }
if(empty($errors)) if(empty($errors)) {
{
$rank_list = $guild->getGuildRanksList(); $rank_list = $guild->getGuildRanksList();
$rank_list->orderBy('level', POT::ORDER_DESC); $rank_list->orderBy('level', POT::ORDER_DESC);
$guild_leader = false; $guild_leader = false;
$guild_vice = false; $guild_vice = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) foreach($account_players as $player) {
{
$player_rank = $player->getRank(); $player_rank = $player->getRank();
if($player_rank->isLoaded()) if($player_rank->isLoaded()) {
{ foreach($rank_list as $rank_in_guild) {
foreach($rank_list as $rank_in_guild) if($rank_in_guild->getId() == $player_rank->getId()) {
{
if($rank_in_guild->getId() == $player_rank->getId())
{
$players_from_account_in_guild[] = $player->getName(); $players_from_account_in_guild[] = $player->getName();
if($player_rank->getLevel() > 1) if($player_rank->getLevel() > 1) {
{
$guild_vice = true; $guild_vice = true;
$level_in_guild = $player_rank->getLevel(); $level_in_guild = $player_rank->getLevel();
} }
if($guild->getOwner()->getId() == $player->getId())
{ if($guild->getOwner()->getId() == $player->getId()) {
$guild_vice = true; $guild_vice = true;
$guild_leader = true; $guild_leader = true;
} }
@@ -64,44 +60,46 @@ if(empty($errors))
} }
} }
if(!$guild_vice) if(!$guild_vice) {
$errors[] = 'You are not a leader or vice leader of guild <b>' . $guild_name . '</b>.'; $errors[] = 'You are not a leader or vice leader of guild <b>' . $guild_name . '</b>.';
} }
if(empty($errors))
{
$player = new OTS_Player();
$player->find($name);
if(!$player->isLoaded())
$errors[] = 'Player with name <b>' . $name . '</b> doesn\'t exist.';
} }
if(empty($errors)) if(empty($errors)) {
{ $player = new OTS_Player();
$player->find($name);
if(!$player->isLoaded()) {
$errors[] = "Player with name <b>$name</b> doesn't exist.";
}
}
if(empty($errors)) {
include(SYSTEM . 'libs/pot/InvitesDriver.php'); include(SYSTEM . 'libs/pot/InvitesDriver.php');
new InvitesDriver($guild); new InvitesDriver($guild);
$invited_list = $guild->listInvites(); $invited_list = $guild->listInvites();
if(count($invited_list) > 0) if(count($invited_list) > 0) {
{
$is_invited = false; $is_invited = false;
foreach($invited_list as $invited) foreach($invited_list as $invited) {
if($invited->getName() == $player->getName()) if ($invited->getName() == $player->getName()) {
$is_invited = true; $is_invited = true;
if(!$is_invited) }
$errors[] = '<b>'.$player->getName().'</b> isn\'t invited to your guild.'; }
if(!$is_invited) {
$errors[] = '<b>' . $player->getName() . '</b> isn\'t invited to your guild.';
}
} }
else else {
$errors[] = 'No one is invited to your guild.'; $errors[] = 'No one is invited to your guild.';
}
} }
if(!empty($errors))
{ if(!empty($errors)) {
$twig->display('error_box.html.twig', array('errors' => $errors)); $twig->display('error_box.html.twig', array('errors' => $errors));
$twig->display('guilds.back_button.html.twig', array('action' => getLink('guilds') . '?action=show&guild=' . $guild_name)); $twig->display('guilds.back_button.html.twig', array('action' => getLink('guilds') . '?action=show&guild=' . $guild_name));
} }
else else {
{ if(isset($_POST['todo']) && $_POST['todo'] == 'save') {
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save')
{
$guild->deleteInvite($player); $guild->deleteInvite($player);
$twig->display('success.html.twig', array( $twig->display('success.html.twig', array(
'title' => 'Deleted player invitation', 'title' => 'Deleted player invitation',

View File

@@ -13,25 +13,27 @@ defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; require __DIR__ . '/base.php';
$guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null; $guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null;
$rank_to_delete = isset($_REQUEST['rankid']) ? (int) $_REQUEST['rankid'] : null; $rank_to_delete = isset($_POST['rankid']) ? (int) $_POST['rankid'] : null;
if(!Validator::guildName($guild_name)) { if(!Validator::guildName($guild_name)) {
$guild_errors[] = Validator::getLastError(); $errors[] = Validator::getLastError();
} }
if(empty($guild_errors)) {
if(empty($errors)) {
$guild = new OTS_Guild(); $guild = new OTS_Guild();
$guild->find($guild_name); $guild->find($guild_name);
if(!$guild->isLoaded()) { if(!$guild->isLoaded()) {
$guild_errors[] = 'Guild with name <b>'.$guild_name.'</b> doesn\'t exist.'; $errors[] = 'Guild with name <b>'.$guild_name.'</b> doesn\'t exist.';
} }
} }
if(empty($guild_errors)) {
if(empty($errors)) {
if($logged) { if($logged) {
$guild_leader_char = $guild->getOwner(); $guild_leader_char = $guild->getOwner();
$rank_list = $guild->getGuildRanksList(); $rank_list = $guild->getGuildRanksList();
$rank_list->orderBy('level', POT::ORDER_DESC); $rank_list->orderBy('level', POT::ORDER_DESC);
$guild_leader = false; $guild_leader = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) { foreach($account_players as $player) {
if($guild->getOwner()->getId() == $player->getId()) { if($guild->getOwner()->getId() == $player->getId()) {
$guild_vice = true; $guild_vice = true;
@@ -39,21 +41,21 @@ if(empty($guild_errors)) {
$level_in_guild = 3; $level_in_guild = 3;
} }
} }
if($guild_leader) { if($guild_leader) {
$rank = new OTS_GuildRank(); $rank = new OTS_GuildRank();
$rank->load($rank_to_delete); $rank->load($rank_to_delete);
if(!$rank->isLoaded()) { if(!$rank->isLoaded()) {
$guild_errors2[] = 'Rank with ID '.$rank_to_delete.' doesn\'t exist.'; $errors2[] = 'Rank with ID '.$rank_to_delete.' doesn\'t exist.';
} }
else else {
{
if($rank->getGuild()->getId() != $guild->getId()) { if($rank->getGuild()->getId() != $guild->getId()) {
$guild_errors2[] = 'Rank with ID '.$rank_to_delete.' isn\'t from your guild.'; $errors2[] = 'Rank with ID '.$rank_to_delete.' isn\'t from your guild.';
} }
else else
{ {
if(count($rank_list) < 2) { if(count($rank_list) < 2) {
$guild_errors2[] = 'You have only 1 rank in your guild. You can\'t delete this rank.'; $errors2[] = 'You have only 1 rank in your guild. You can\'t delete this rank.';
} }
else else
{ {
@@ -87,19 +89,21 @@ if(empty($guild_errors)) {
$player->setRank($new_rank); $player->setRank($new_rank);
} }
} }
$rank->delete(); $rank->delete();
$saved = true; $saved = true;
} }
} }
} }
if($saved) {
if(isset($saved) && $saved) {
$twig->display('success.html.twig', array( $twig->display('success.html.twig', array(
'title' => 'Rank Deleted', 'title' => 'Rank Deleted',
'description' => 'Rank <b>'.$rank->getName().'</b> has been deleted. Players with this rank has now other rank.', 'description' => 'Rank <b>'.$rank->getName().'</b> has been deleted. Players with this rank has now other rank.',
'custom_buttons' => '' 'custom_buttons' => ''
)); ));
} else { } else {
$twig->display('error_box.html.twig', array('errors' => $guild_errors2)); $twig->display('error_box.html.twig', array('errors' => $errors2));
} }
$twig->display('guilds.back_button.html.twig', array( $twig->display('guilds.back_button.html.twig', array(
@@ -107,18 +111,16 @@ if(empty($guild_errors)) {
'action' => getLink('guilds') . '?guild='.$guild->getName().'&action=manager' 'action' => getLink('guilds') . '?guild='.$guild->getName().'&action=manager'
)); ));
} }
else else {
{ $errors[] = 'You are not a leader of guild!';
$guild_errors[] = 'You are not a leader of guild!';
} }
} }
else else {
{ $errors[] = 'You are not logged. You can\'t manage guild.';
$guild_errors[] = 'You are not logged. You can\'t manage guild.';
} }
} }
if(!empty($guild_errors)) { if(!empty($errors)) {
$twig->display('error_box.html.twig', array('errors' => $guild_errors)); $twig->display('error_box.html.twig', array('errors' => $errors));
$twig->display('guilds.back_button.html.twig', array( $twig->display('guilds.back_button.html.twig', array(
'new_line' => true, 'new_line' => true,

View File

@@ -36,7 +36,7 @@ if(empty($errors)) {
$rank_list->orderBy('level', POT::ORDER_DESC); $rank_list->orderBy('level', POT::ORDER_DESC);
$guild_leader = false; $guild_leader = false;
$guild_vice = false; $guild_vice = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) { foreach($account_players as $player) {
$player_rank = $player->getRank(); $player_rank = $player->getRank();
if($player_rank->isLoaded()) { if($player_rank->isLoaded()) {
@@ -62,7 +62,7 @@ if(!$guild_vice) {
$errors[] = 'You are not a leader or vice leader of guild <b>'.$guild_name.'</b>.'.$level_in_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(isset($_POST['todo']) && $_POST['todo'] == 'save') {
if(!Validator::characterName($name)) { if(!Validator::characterName($name)) {
$errors[] = 'Invalid name format.'; $errors[] = 'Invalid name format.';
} }
@@ -71,7 +71,7 @@ if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') {
$player = new OTS_Player(); $player = new OTS_Player();
$player->find($name); $player->find($name);
if(!$player->isLoaded()) { if(!$player->isLoaded()) {
$errors[] = 'Player with name <b>' . $name . '</b> doesn\'t exist.'; $errors[] = "Player with name <b>$name</b> doesn't exist.";
} else if ($player->isDeleted()) { } else if ($player->isDeleted()) {
$errors[] = "Character with name <b>$name</b> has been deleted."; $errors[] = "Character with name <b>$name</b> has been deleted.";
} }
@@ -102,7 +102,7 @@ if(!empty($errors)) {
$twig->display('error_box.html.twig', array('errors' => $errors)); $twig->display('error_box.html.twig', array('errors' => $errors));
} }
else { else {
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(isset($_POST['todo']) && $_POST['todo'] == 'save') {
$guild->invite($player); $guild->invite($player);
$twig->display('success.html.twig', array( $twig->display('success.html.twig', array(
'title' => 'Invite player', 'title' => 'Invite player',

View File

@@ -41,7 +41,7 @@ if(empty($errors)) {
$rank_list->orderBy('level', POT::ORDER_DESC); $rank_list->orderBy('level', POT::ORDER_DESC);
$guild_leader = false; $guild_leader = false;
$guild_vice = false; $guild_vice = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) { foreach($account_players as $player) {
$player_rank = $player->getRank(); $player_rank = $player->getRank();
if($player_rank->isLoaded()) { if($player_rank->isLoaded()) {
@@ -102,7 +102,7 @@ if(!empty($errors)) {
} }
else else
{ {
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(isset($_POST['todo']) && $_POST['todo'] == 'save') {
$player->setRank(); $player->setRank();
$twig->display('success.html.twig', array( $twig->display('success.html.twig', array(

View File

@@ -34,7 +34,7 @@ if(empty($errors)) {
$array_of_player_ig = array(); $array_of_player_ig = array();
if(empty($errors)) { if(empty($errors)) {
$guild_owner_name = $guild->getOwner()->getName(); $guild_owner_name = $guild->getOwner()->getName();
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(isset($_POST['todo']) && $_POST['todo'] == 'save') {
if(!Validator::characterName($name)) { if(!Validator::characterName($name)) {
$errors[] = 'Invalid name format.'; $errors[] = 'Invalid name format.';
} }
@@ -72,7 +72,7 @@ if(empty($errors)) {
} }
else else
{ {
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player_fac) { foreach($account_players as $player_fac) {
$player_rank = $player_fac->getRank(); $player_rank = $player_fac->getRank();
if($player_rank->isLoaded()) { if($player_rank->isLoaded()) {
@@ -94,7 +94,7 @@ if(!empty($errors)) {
} }
else else
{ {
if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(isset($_POST['todo']) && $_POST['todo'] == 'save') {
$player->setRank(); $player->setRank();
$twig->display('success.html.twig', array( $twig->display('success.html.twig', array(
'title' => 'Leave guild', 'title' => 'Leave guild',

View File

@@ -14,23 +14,24 @@ defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; require __DIR__ . '/base.php';
$guilds_list = new OTS_Guilds_List(); $guilds_list = new OTS_Guilds_List();
$guilds_list->orderBy("name"); $guilds_list->orderBy('name');
$guilds = array(); $guilds = array();
if(count($guilds_list) > 0) if(count($guilds_list) > 0) {
{
/** /**
* @var OTS_Guild $guild * @var OTS_Guild $guild
*/ */
foreach ($guilds_list as $guild) { foreach ($guilds_list as $guild) {
$guild_logo = $guild->getCustomField('logo_name'); $guild_logo = $guild->getCustomField('logo_name');
if (empty($guild_logo) || !file_exists(GUILD_IMAGES_DIR . $guild_logo)) if (empty($guild_logo) || !file_exists(GUILD_IMAGES_DIR . $guild_logo)) {
$guild_logo = "default.gif"; $guild_logo = 'default.gif';
}
$description = $guild->getCustomField('description'); $description = $guild->getCustomField('description');
$description_with_lines = str_replace(array("\r\n", "\n", "\r"), '<br />', $description, $count); $description_with_lines = str_replace(array("\r\n", "\n", "\r"), '<br />', $description, $count);
if ($count < setting('core.guild_description_lines_limit')) if ($count < setting('core.guild_description_lines_limit')) {
$description = nl2br($description); $description = nl2br($description);
}
$guildName = $guild->getName(); $guildName = $guild->getName();
$guilds[] = array('name' => $guildName, 'logo' => $guild_logo, 'link' => getGuildLink($guildName, false), 'description' => $description); $guilds[] = array('name' => $guildName, 'logo' => $guild_logo, 'link' => getGuildLink($guildName, false), 'description' => $description);
@@ -39,6 +40,6 @@ if(count($guilds_list) > 0)
$twig->display('guilds.list.html.twig', array( $twig->display('guilds.list.html.twig', array(
'guilds' => $guilds, 'guilds' => $guilds,
'logged' => isset($logged) ? $logged : false, 'logged' => $logged ?? false,
'isAdmin' => admin(), 'isAdmin' => admin(),
)); ));

View File

@@ -21,7 +21,7 @@ if(empty($errors)) {
$guild = new OTS_Guild(); $guild = new OTS_Guild();
$guild->find($guild_name); $guild->find($guild_name);
if(!$guild->isLoaded()) { if(!$guild->isLoaded()) {
$errors[] = 'Guild with name <b>'.$guild_name.'</b> doesn\'t exist.'; $errors[] = "Guild with name <b>$guild_name</b> doesn't exist.";
} }
} }
@@ -31,7 +31,7 @@ if(empty($errors)) {
$rank_list = $guild->getGuildRanksList(); $rank_list = $guild->getGuildRanksList();
$rank_list->orderBy('level', POT::ORDER_DESC); $rank_list->orderBy('level', POT::ORDER_DESC);
$guild_leader = false; $guild_leader = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) { foreach($account_players as $player) {
if($guild_leader_char->getId() == $player->getId()) { if($guild_leader_char->getId() == $player->getId()) {
$guild_vice = true; $guild_vice = true;
@@ -39,22 +39,22 @@ if(empty($errors)) {
$level_in_guild = 3; $level_in_guild = 3;
} }
} }
if($guild_leader) { if($guild_leader) {
$twig->display('guilds.manager.html.twig', array( $twig->display('guilds.manager.html.twig', array(
'guild' => $guild, 'guild' => $guild,
'rank_list' => $rank_list 'rank_list' => $rank_list
)); ));
} }
else else {
{
$errors[] = 'You are not a leader of guild!'; $errors[] = 'You are not a leader of guild!';
} }
} }
else else {
{ $errors[] = "You are not logged. You can't manage guild.";
$errors[] = 'You are not logged. You can\'t manage guild.';
} }
} }
if(!empty($errors)) { if(!empty($errors)) {
$twig->display('error_box.html.twig', array('errors' => $errors)); $twig->display('error_box.html.twig', array('errors' => $errors));
} }

View File

@@ -15,51 +15,52 @@ require __DIR__ . '/base.php';
$guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : NULL; $guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : NULL;
$pass_to = isset($_REQUEST['player']) ? stripslashes($_REQUEST['player']) : NULL; $pass_to = isset($_REQUEST['player']) ? stripslashes($_REQUEST['player']) : NULL;
if(!Validator::guildName($guild_name)) { if(!Validator::guildName($guild_name)) {
$guild_errors[] = Validator::getLastError(); $errors[] = Validator::getLastError();
} }
if(empty($guild_errors)) { if(empty($errors)) {
$guild = new OTS_Guild(); $guild = new OTS_Guild();
$guild->find($guild_name); $guild->find($guild_name);
if(!$guild->isLoaded()) { if(!$guild->isLoaded()) {
$guild_errors[] = "Guild with name <b>" . $guild_name . "</b> doesn't exist."; $errors[] = "Guild with name <b>" . $guild_name . "</b> doesn't exist.";
} }
} }
if(empty($guild_errors)) {
if(empty($errors)) {
if(isset($_POST['todo']) && $_POST['todo'] == 'save') { if(isset($_POST['todo']) && $_POST['todo'] == 'save') {
if(!Validator::characterName($pass_to)) { if(!Validator::characterName($pass_to)) {
$guild_errors2[] = 'Invalid player name format.'; $errors2[] = 'Invalid player name format.';
} }
if(empty($guild_errors2)) { if(empty($errors2)) {
$to_player = new OTS_Player(); $to_player = new OTS_Player();
$to_player->find($pass_to); $to_player->find($pass_to);
if(!$to_player->isLoaded()) { if(!$to_player->isLoaded()) {
$guild_errors2[] = 'Player with name <b>'.$pass_to.'</b> doesn\'t exist.'; $errors2[] = 'Player with name <b>'.$pass_to.'</b> doesn\'t exist.';
} else if ($to_player->isDeleted()) { } else if ($to_player->isDeleted()) {
$guild_errors2[] = "Character with name <b>$pass_to</b> has been deleted."; $errors2[] = "Character with name <b>$pass_to</b> has been deleted.";
} }
if(empty($guild_errors2)) { if(empty($errors2)) {
$to_player_rank = $to_player->getRank(); $to_player_rank = $to_player->getRank();
if($to_player_rank->isLoaded()) { if($to_player_rank->isLoaded()) {
$to_player_guild = $to_player_rank->getGuild(); $to_player_guild = $to_player_rank->getGuild();
if($to_player_guild->getId() != $guild->getId()) { if($to_player_guild->getId() != $guild->getId()) {
$guild_errors2[] = 'Player with name <b>'.$to_player->getName().'</b> isn\'t from your guild.'; $errors2[] = 'Player with name <b>'.$to_player->getName().'</b> isn\'t from your guild.';
} }
} }
else { else {
$guild_errors2[] = 'Player with name <b>'.$to_player->getName().'</b> isn\'t from your guild.'; $errors2[] = 'Player with name <b>'.$to_player->getName().'</b> isn\'t from your guild.';
} }
} }
} }
} }
} }
if(empty($guild_errors) && empty($guild_errors2)) { if(empty($errors) && empty($errors2)) {
if($logged) { if($logged) {
$guild_leader_char = $guild->getOwner(); $guild_leader_char = $guild->getOwner();
$guild_leader = false; $guild_leader = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) { foreach($account_players as $player) {
if($guild_leader_char->getId() == $player->getId()) { if($guild_leader_char->getId() == $player->getId()) {
$guild_vice = true; $guild_vice = true;
@@ -99,23 +100,23 @@ if(empty($guild_errors) && empty($guild_errors2)) {
} }
} }
else { else {
$guild_errors[] = 'You are not a leader of guild!'; $errors[] = 'You are not a leader of guild!';
} }
} }
else { else {
$guild_errors[] = "You are not logged. You can't manage guild."; $errors[] = "You are not logged. You can't manage guild.";
} }
} }
if(empty($guild_errors) && !empty($guild_errors2)) { if(empty($errors) && !empty($errors2)) {
$twig->display('error_box.html.twig', array('errors' => $guild_errors2)); $twig->display('error_box.html.twig', array('errors' => $errors2));
echo '<br/><div style="text-align:center"><form action="' . getLink('guilds') . '?guild='.$guild->getName().'&action=pass_leadership" method="post">' . $twig->render('buttons.back.html.twig') . '</form></div>'; echo '<br/><div style="text-align:center"><form action="' . getLink('guilds') . '?guild='.$guild->getName().'&action=pass_leadership" method="post">' . $twig->render('buttons.back.html.twig') . '</form></div>';
} }
if(!empty($guild_errors)) { if(!empty($errors)) {
if(!empty($guild_errors2)) { if(!empty($errors2)) {
$guild_errors = array_merge($guild_errors, $guild_errors2); $errors = array_merge($errors, $errors2);
} }
$twig->display('error_box.html.twig', array('errors' => $guild_errors)); $twig->display('error_box.html.twig', array('errors' => $errors));
echo '<br/><div style="text-align:center"><form action="' . getLink('guilds') . '" method="post">' . $twig->render('buttons.back.html.twig') . '</form></div>'; echo '<br/><div style="text-align:center"><form action="' . getLink('guilds') . '" method="post">' . $twig->render('buttons.back.html.twig') . '</form></div>';
} }

View File

@@ -31,7 +31,7 @@ if(empty($errors)) {
$rank_list = $guild->getGuildRanksList(); $rank_list = $guild->getGuildRanksList();
$rank_list->orderBy('level', POT::ORDER_DESC); $rank_list->orderBy('level', POT::ORDER_DESC);
$guild_leader = false; $guild_leader = false;
$account_players = $account_logged->getPlayers(); $account_players = $account_logged->getPlayersList();
foreach($account_players as $player) { foreach($account_players as $player) {
if($guild_leader_char->getId() == $player->getId()) { if($guild_leader_char->getId() == $player->getId()) {
@@ -61,6 +61,7 @@ if(empty($errors)) {
$rank->save(); $rank->save();
} }
//show errors or redirect //show errors or redirect
if(empty($errors)) { if(empty($errors)) {
header("Location: " . getLink('guilds') . "?action=manager&guild=".$guild->getName()); header("Location: " . getLink('guilds') . "?action=manager&guild=".$guild->getName());
@@ -73,10 +74,10 @@ if(empty($errors)) {
} }
else else
{ {
$errors[] = 'You are not logged. You can\'t manage guild.'; $errors[] = "You are not logged. You can't manage guild.";
} }
} }
if(!empty($errors)) { if(!empty($errors)) {
$twig->display('error_box.html.twig', array('errors' => $errors)); $twig->display('error_box.html.twig', ['errors' => $errors]);
} }

View File

@@ -16,19 +16,18 @@ $title = 'Guilds';
require __DIR__ . '/base.php'; require __DIR__ . '/base.php';
$guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null; $guild_name = isset($_REQUEST['guild']) ? urldecode($_REQUEST['guild']) : null;
if(!Validator::guildName($guild_name)) if(!Validator::guildName($guild_name)) {
$errors[] = Validator::getLastError(); $errors[] = Validator::getLastError();
}
if(empty($errors)) if(empty($errors)) {
{
$guild = new OTS_Guild(); $guild = new OTS_Guild();
$guild->find($guild_name); $guild->find($guild_name);
if(!$guild->isLoaded()) if(!$guild->isLoaded())
$errors[] = 'Guild with name <b>'.$guild_name.'</b> doesn\'t exist.'; $errors[] = 'Guild with name <b>'.$guild_name.'</b> doesn\'t exist.';
} }
if(!empty($errors)) if(!empty($errors)) {
{
$twig->display('error_box.html.twig', array('errors' => $errors)); $twig->display('error_box.html.twig', array('errors' => $errors));
$twig->display('guilds.back_button.html.twig'); $twig->display('guilds.back_button.html.twig');
return; return;
@@ -47,9 +46,8 @@ $level_in_guild = 0;
$players_from_account_in_guild = array(); $players_from_account_in_guild = array();
$players_from_account_ids = array(); $players_from_account_ids = array();
if($logged) if($logged) {
{ $account_players = $account_logged->getPlayersList();
$account_players = $account_logged->getPlayers();
foreach($account_players as $player) foreach($account_players as $player)
{ {
$players_from_account_ids[] = $player->getId(); $players_from_account_ids[] = $player->getId();

View File

@@ -1,4 +1,4 @@
<form action="?" method="post"> <form method="post">
{{ csrf() }} {{ csrf() }}
<input type="hidden" name="action" value="new_thread" /> <input type="hidden" name="action" value="new_thread" />
<input type="hidden" name="section_id" value="{{ section_id }}" /> <input type="hidden" name="section_id" value="{{ section_id }}" />

View File

@@ -0,0 +1,12 @@
<form action="{{ getLink('forum') }}" method="post" style="display: inline"
{% if post.first_post != post.id %}
onclick="return confirm('Are you sure you want remove post of {{ post.player.getName() }}?')"
{% else %}
onclick="return confirm('Are you sure you want remove thread > {{ post.post_topic}} <?')"
{% endif %}
>
{{ csrf() }}
<input type="hidden" name="action" value="remove_post" />
<input type="hidden" name="id" value="{{ post.id }}" />
<input type="image" src="/images/del.png" border="0" alt="Delete" title="{% if post.first_post != post.id %}Remove Post{% else %}Remove Thread{% endif %}" />
</form>

View File

@@ -53,15 +53,16 @@ Page: {{ links_to_pages|raw }}<br/>
<td> <td>
{% if is_moderator %} {% if is_moderator %}
{% if post.first_post != post.id %} {% if post.first_post != post.id %}
<a href="{{ getLink('forum') }}?action=remove_post&id={{ post.id }}" title="Remove Post" onclick="return confirm('Are you sure you want remove post of {{ post.player.getName() }}?')"><img src="images/del.png"/></a> {{ include('forum.remove_post.html.twig') }}
{% else %} {% else %}
<a href="{{ getLink('forum') }}?action=move_thread&id={{ post.id }}" title="Move Thread"><img src="images/icons/arrow_right.gif"/></a> <a href="{{ getLink('forum') }}?action=move_thread&id={{ post.id }}" title="Move Thread"><img src="images/icons/arrow_right.gif"/></a>
<a href="{{ getLink('forum') }}?action=remove_post&id={{ post.id }}" title="Remove Thread" target="_blank" onclick="return confirm('Are you sure you want remove thread > {{ post.post_topic}} <?')"><img src="images/del.png"/></a> {{ include('forum.remove_post.html.twig') }}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if logged and (post.player.getAccount().getId() == account_logged.getId() or is_moderator) %} {% if logged and (post.player.getAccount().getId() == account_logged.getId() or is_moderator) %}
<a href="{{ getLink('forum') }}?action=edit_post&id={{ post.id }}" title="Edit Post" target="_blank"> <a href="{{ getLink('forum') }}?action=edit_post&id={{ post.id }}" title="Edit Post" target="_blank">
<img src="images/edit.png"/></a> <img src="images/edit.png"/>
</a>
{% endif %} {% endif %}
{% if logged %} {% if logged %}
<a href="{{ getLink('forum') }}?action=new_post&thread_id={{ thread_id }}&quote={{ post.id }}" title="Quote Post"><img src="images/icons/comment_add.png"/></a> <a href="{{ getLink('forum') }}?action=new_post&thread_id={{ thread_id }}&quote={{ post.id }}" title="Quote Post"><img src="images/icons/comment_add.png"/></a>

View File

@@ -7,12 +7,15 @@
</tr> </tr>
<tr bgcolor="{{ config.darkborder }}"> <tr bgcolor="{{ config.darkborder }}">
<td> <td>
<form action="{{ getLink('guilds') }}?action=accept_invite&guild={{ guild_name }}&todo=save" method="post"> <form action="{{ getLink('guilds') }}?action=accept_invite&guild={{ guild_name }}" method="post">
{{ csrf() }} {{ csrf() }}
<input type="hidden" name="todo" value="save" />
{% set i = 0 %} {% set i = 0 %}
{% for player in invited_players %} {% for player in invited_players %}
<input type="radio" name="name" id="name_{{ i }}" value="{{ player }}" /><label for="name_{{ i }}">{{ player }}</label> <input type="radio" name="name" id="name_{{ i }}" value="{{ player }}" /><label for="name_{{ i }}">{{ player }}</label>
{% set i = i + 1 %} {% set i = i + 1 %}
{% endfor %} {% endfor %}
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</form> </form>

View File

@@ -8,7 +8,7 @@
<form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_logo" method="post" id="upload_form"> <form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_logo" method="post" id="upload_form">
{{ csrf() }} {{ csrf() }}
<input type="hidden" name="todo" value="save" /> <input type="hidden" name="todo" value="save" />
<input type="hidden" name="MAX_FILE_SIZE" value="{{ max_image_size_b }}" /> <!--input type="hidden" name="MAX_FILE_SIZE" value="{{ max_image_size_b }}" /-->
Select new logo: <input name="newlogo" id="newlogo" type="file" /> Select new logo: <input name="newlogo" id="newlogo" type="file" />
<input type="submit" value="Send new logo" /> <input type="submit" value="Send new logo" />
</form> </form>

View File

@@ -1,5 +1,6 @@
<form action="{{ getLink('guilds') }}?action=change_rank&guild={{ guild_name }}&todo=save" method="post"> <form action="{{ getLink('guilds') }}?action=change_rank&guild={{ guild_name }}" method="post">
{{ csrf() }} {{ csrf() }}
<input type="hidden" name="todo" value="save" />
<table border="0" cellspacing="1" cellpadding="4" width="100%"> <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.vdarkborder }}"><td class="white"><b>Change Rank</b></td></tr>
<tr bgcolor="{{ config.darkborder }}"> <tr bgcolor="{{ config.darkborder }}">

View File

@@ -1,5 +1,6 @@
<form action="{{ getLink('guilds') }}?action=create&todo=save" method="post"> <form action="{{ getLink('guilds') }}?action=create" method="post">
{{ csrf() }} {{ csrf() }}
<input type="hidden" name="todo" value="save" />
<table width="100%" border="0" cellspacing="1" cellpadding="4"> <table width="100%" border="0" cellspacing="1" cellpadding="4">
<tr> <tr>
<td bgcolor="{{ config.vdarkborder }}" class="white"><B>Create a {{ config.lua.serverName }} Guild</b></td> <td bgcolor="{{ config.vdarkborder }}" class="white"><B>Create a {{ config.lua.serverName }} Guild</b></td>

View File

@@ -7,9 +7,10 @@
<table border="0" cellspacing="0" cellpadding="0" width="100%"> <table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr> <tr>
<td align="right" width="50%"> <td align="right" width="50%">
<form action="{{ getLink('guilds') }}?action=delete_invite&guild={{ guild_name }}&name={{ player_name }}&todo=save" method="post"> <form action="{{ getLink('guilds') }}?action=delete_invite&guild={{ guild_name }}&name={{ player_name }}" method="post">
{{ csrf() }} {{ csrf() }}
{{ include('buttons.submit.html.twig') }} <input type="hidden" name="todo" value="save" />
{{ include('buttons.submit.html.twig') }}
</form> </form>
</td> </td>
<td style="width: 10px; "></td> <td style="width: 10px; "></td>

View File

@@ -1,5 +1,6 @@
<form action="{{ getLink('guilds') }}?action=invite&guild={{ guild_name }}&todo=save" method="post"> <form action="{{ getLink('guilds') }}?action=invite&guild={{ guild_name }}" method="post">
{{ csrf() }} {{ csrf() }}
<input type="hidden" name="todo" value="save" />
Invite player with name:&nbsp;&nbsp;<input type="text" name="name">&nbsp;&nbsp;&nbsp;&nbsp; Invite player with name:&nbsp;&nbsp;<input type="text" name="name">&nbsp;&nbsp;&nbsp;&nbsp;
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</form> </form>

View File

@@ -7,8 +7,9 @@
<table border="0" cellspacing="0" cellpadding="0" width="100%"> <table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr> <tr>
<td align="right" width="50%"> <td align="right" width="50%">
<form action="{{ getLink('guilds') }}?action=kick_player&guild={{ guild_name }}&name={{ player_name }}&todo=save" method="post"> <form action="{{ getLink('guilds') }}?action=kick_player&guild={{ guild_name }}&name={{ player_name }}" method="post">
{{ csrf() }} {{ csrf() }}
<input type="hidden" name="todo" value="save" />
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</form> </form>
</td> </td>

View File

@@ -1,5 +1,6 @@
<form action="{{ getLink('guilds') }}?action=leave&guild={{ guild_name }}&todo=save" METHOD="post"> <form action="{{ getLink('guilds') }}?action=leave&guild={{ guild_name }}" METHOD="post">
{{ csrf() }} {{ csrf() }}
<input type="hidden" name="todo" value="save" />
<table border="0" cellspacing="1" cellpadding="4" width="100%"> <table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor="{{ config.vdarkborder }}"> <tr bgcolor="{{ config.vdarkborder }}">
<td class="white"><b>Leave guild</b></td></tr> <td class="white"><b>Leave guild</b></td></tr>

View File

@@ -101,7 +101,12 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth
{% set i = 0 %} {% set i = 0 %}
{% for rank in rank_list %} {% for rank in rank_list %}
<tr bgcolor="{{ getStyle(i) }}"> <tr bgcolor="{{ getStyle(i) }}">
<td align="center">{{ rank.getId() }} // <a href="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=delete_rank&rankid={{ rank.getId() }}" border="0"><img src="/images/news/delete.png" border="0" alt="Delete Rank"></a> <td align="center">{{ rank.getId() }} //
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=delete_rank" method="post" style="display: inline;">
{{ csrf() }}
<input type="hidden" name="rankid" value="{{ rank.getId() }}" />
<input type="image" src="/images/news/delete.png" border="0" alt="Delete" />
</form>
</td> </td>
<td> <td>
<input type="text" name="{{ rank.getId() }}_name" value="{{ rank.getName() }}" size="35"/> <input type="text" name="{{ rank.getId() }}_name" value="{{ rank.getName() }}" size="35"/>

View File

@@ -1,8 +1,11 @@
{{ hook('HOOK_ACCOUNT_LOGIN_BEFORE_PAGE') }} {{ hook('HOOK_ACCOUNT_LOGIN_BEFORE_PAGE') }}
<form action="{{ getLink('account/manage') }}" method="post" style="margin: 0px; padding: 0px;"> <form action="{{ getLink('account/manage') }}" method="post" style="margin: 0; padding: 0;">
{{ csrf() }}
{% if redirect is not null %} {% if redirect is not null %}
<input type="hidden" name="redirect" value="{{ redirect }}" /> <input type="hidden" name="redirect" value="{{ redirect }}" />
{% endif %} {% endif %}
<div class="TableContainer" > <div class="TableContainer" >
<div class="CaptionContainer" > <div class="CaptionContainer" >
<div class="CaptionInnerContainer" > <div class="CaptionInnerContainer" >