mirror of
https://github.com/Znote/ZnoteAAC.git
synced 2025-04-26 01:09:22 +02:00
1112 lines
44 KiB
PHP
1112 lines
44 KiB
PHP
|
|
<?php require_once 'engine/init.php'; include 'layout/overall/header.php';
|
|
protect_page();
|
|
error_reporting(E_ALL ^ E_NOTICE);
|
|
if (!$config['forum']['enabled']) admin_only($user_data);
|
|
/* -------------------------------
|
|
--- Znote AAC forum ---
|
|
-------------------------------
|
|
Created by Znote.
|
|
Version 1.4.
|
|
|
|
Changelog (1.0 --> 1.2):
|
|
- Updated to the new date/clock time system
|
|
- Bootstrap design support.
|
|
|
|
Changelog (1.2 --> 1.3):
|
|
- Show character outfit as avatar
|
|
- Show in-game position
|
|
|
|
Changelog (1.3 -> 1.4):
|
|
- Fix SQL query error when editing Board name.
|
|
*/
|
|
// BBCODE support:
|
|
function TransformToBBCode($string) {
|
|
$tags = array(
|
|
'[center]{$1}[/center]' => '<center>$1</center>',
|
|
'[b]{$1}[/b]' => '<b>$1</b>',
|
|
'[img]{$1}[/img]' => '<a href="$1" target="_BLANK"><img src="$1" alt="image" style="width: 100%"></a>',
|
|
'[link]{$1}[/link]' => '<a href="$1">$1</a>',
|
|
'[link={$1}]{$2}[/link]' => '<a href="$1" target="_BLANK">$2</a>',
|
|
'[url={$1}]{$2}[/url]' => '<a href="$1" target="_BLANK">$2</a>',
|
|
'[color={$1}]{$2}[/color]' => '<font color="$1">$2</font>',
|
|
'[*]{$1}[/*]' => '<li>$1</li>',
|
|
'[youtube]{$1}[/youtube]' => '<div class="youtube"><div class="aspectratio"><iframe src="//www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe></div></div>',
|
|
);
|
|
|
|
foreach ($tags as $tag => $value) {
|
|
$code = preg_replace('/placeholder([0-9]+)/', '(.*?)', preg_quote(preg_replace('/\{\$([0-9]+)\}/', 'placeholder$1', $tag), '/'));
|
|
$string = preg_replace('/'.$code.'/i', $value, $string);
|
|
if (strpos($string, "<a href=") !== false) {
|
|
if (strpos($string, "http") === false) {
|
|
$string = substr_replace($string, "//", 9, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
return $string;
|
|
}
|
|
Function PlayerHaveAccess($yourChars, $playerName){
|
|
$access = false;
|
|
foreach($yourChars as $char) {
|
|
if ($char['name'] == $playerName) $access = true;
|
|
}
|
|
return $access;
|
|
}
|
|
|
|
// Start page init
|
|
$admin = is_admin($user_data);
|
|
if ($admin) $yourChars = mysql_select_multi("SELECT `id`, `name`, `group_id` FROM `players` WHERE `level`>='1' AND `account_id`='". $user_data['id'] ."';");
|
|
else $yourChars = mysql_select_multi("SELECT `id`, `name`, `group_id` FROM `players` WHERE `level`>='". $config['forum']['level'] ."' AND `account_id`='". $user_data['id'] ."';");
|
|
if (!$yourChars) $yourChars = array();
|
|
$charCount = count($yourChars);
|
|
$yourAccess = accountAccess($user_data['id'], $config['ServerEngine']);
|
|
if ($admin) {
|
|
if (!empty($_POST)) {
|
|
$guilds = mysql_select_multi("SELECT `id`, `name` FROM `guilds` ORDER BY `name`;");
|
|
$guilds[] = array('id' => '0', 'name' => 'No guild');
|
|
}
|
|
$yourAccess = 100;
|
|
}
|
|
|
|
// Your characters, indexed by char_id
|
|
$charData = array();
|
|
foreach ($yourChars as $char) {
|
|
$charData[$char['id']] = $char;
|
|
if (get_character_guild_rank($char['id']) > 0) {
|
|
$guild = get_player_guild_data($char['id']);
|
|
$charData[$char['id']]['guild'] = $guild['guild_id'];
|
|
$charData[$char['id']]['guild_rank'] = $guild['rank_level'];
|
|
} else $charData[$char['id']]['guild'] = '0';
|
|
}
|
|
$cooldownw = array(
|
|
$user_znote_data['cooldown'],
|
|
time(),
|
|
$user_znote_data['cooldown'] - time()
|
|
);
|
|
|
|
/////////////////
|
|
// Guild Leader & admin
|
|
$leader = false;
|
|
foreach($charData as $char) {
|
|
if ($char['guild'] > 0 && $char['guild_rank'] == 3) $leader = true;
|
|
}
|
|
if ($admin && !empty($_POST) || $leader && !empty($_POST)) {
|
|
$admin_thread_delete = getValue($_POST['admin_thread_delete']);
|
|
$admin_thread_close = getValue($_POST['admin_thread_close']);
|
|
$admin_thread_open = getValue($_POST['admin_thread_open']);
|
|
$admin_thread_sticky = getValue($_POST['admin_thread_sticky']);
|
|
$admin_thread_unstick = getValue($_POST['admin_thread_unstick']);
|
|
$admin_thread_id = getValue($_POST['admin_thread_id']);
|
|
|
|
// delete thread
|
|
if ($admin_thread_delete !== false) {
|
|
$admin_thread_id = (int)$admin_thread_id;
|
|
$access = false;
|
|
if (!$admin) {
|
|
$thread = mysql_select_single("SELECT `forum_id` FROM `znote_forum_threads` WHERE `id`='$admin_thread_id';");
|
|
$forum = mysql_select_single("SELECT `guild_id` FROM `znote_forum` WHERE `id`='". $thread['forum_id'] ."';");
|
|
foreach($charData as $char) if ($char['guild'] == $forum['guild_id'] && $char['guild_rank'] == 3) $access = true;
|
|
} else $access = true;
|
|
|
|
if ($access) {
|
|
// Delete all associated posts
|
|
mysql_delete("DELETE FROM `znote_forum_posts` WHERE `thread_id`='$admin_thread_id';");
|
|
// Delete thread itself
|
|
mysql_delete("DELETE FROM `znote_forum_threads` WHERE `id`='$admin_thread_id' LIMIT 1;");
|
|
echo '<h1>Thread and all associated posts deleted.</h1>';
|
|
} else echo '<p><b><font color="red">Permission denied.</font></b></p>';
|
|
}
|
|
|
|
// Close thread
|
|
if ($admin_thread_close !== false) {
|
|
$admin_thread_id = (int)$admin_thread_id;
|
|
$access = false;
|
|
if (!$admin) {
|
|
$thread = mysql_select_single("SELECT `forum_id` FROM `znote_forum_threads` WHERE `id`='$admin_thread_id';");
|
|
$forum = mysql_select_single("SELECT `guild_id` FROM `znote_forum` WHERE `id`='". $thread['forum_id'] ."';");
|
|
foreach($charData as $char) if ($char['guild'] == $forum['guild_id'] && $char['guild_rank'] == 3) $access = true;
|
|
} else $access = true;
|
|
if ($access) {
|
|
mysql_update("UPDATE `znote_forum_threads` SET `closed`='1' WHERE `id`='$admin_thread_id' LIMIT 1;");
|
|
//die("UPDATE `znote_forum_threads` SET `closed`='1' WHERE `id`='$admin_thread_id' LIMIT 1;");
|
|
echo '<h1>Thread has been closed.</h1>';
|
|
} else echo '<p><b><font color="red">Permission denied.</font></b></p>';
|
|
}
|
|
|
|
// open thread
|
|
if ($admin_thread_open !== false) {
|
|
$admin_thread_id = (int)$admin_thread_id;
|
|
$access = false;
|
|
if (!$admin) {
|
|
$thread = mysql_select_single("SELECT `forum_id` FROM `znote_forum_threads` WHERE `id`='$admin_thread_id';");
|
|
$forum = mysql_select_single("SELECT `guild_id` FROM `znote_forum` WHERE `id`='". $thread['forum_id'] ."';");
|
|
foreach($charData as $char) if ($char['guild'] == $forum['guild_id'] && $char['guild_rank'] == 3) $access = true;
|
|
} else $access = true;
|
|
if ($access) {
|
|
mysql_update("UPDATE `znote_forum_threads` SET `closed`='0' WHERE `id`='$admin_thread_id' LIMIT 1;");
|
|
echo '<h1>Thread has been opened.</h1>';
|
|
} else echo '<p><b><font color="red">Permission denied.</font></b></p>';
|
|
}
|
|
|
|
// stick thread
|
|
if ($admin_thread_sticky !== false) {
|
|
$admin_thread_id = (int)$admin_thread_id;
|
|
$access = false;
|
|
if (!$admin) {
|
|
$thread = mysql_select_single("SELECT `forum_id` FROM `znote_forum_threads` WHERE `id`='$admin_thread_id';");
|
|
$forum = mysql_select_single("SELECT `guild_id` FROM `znote_forum` WHERE `id`='". $thread['forum_id'] ."';");
|
|
foreach($charData as $char) if ($char['guild'] == $forum['guild_id'] && $char['guild_rank'] == 3) $access = true;
|
|
} else $access = true;
|
|
if ($access) {
|
|
mysql_update("UPDATE `znote_forum_threads` SET `sticky`='1' WHERE `id`='$admin_thread_id' LIMIT 1;");
|
|
echo '<h1>Thread has been sticked.</h1>';
|
|
} else echo '<p><b><font color="red">Permission denied.</font></b></p>';
|
|
}
|
|
|
|
// unstick thread
|
|
if ($admin_thread_unstick !== false) {
|
|
$admin_thread_id = (int)$admin_thread_id;
|
|
$access = false;
|
|
if (!$admin) {
|
|
$thread = mysql_select_single("SELECT `forum_id` FROM `znote_forum_threads` WHERE `id`='$admin_thread_id';");
|
|
$forum = mysql_select_single("SELECT `guild_id` FROM `znote_forum` WHERE `id`='". $thread['forum_id'] ."';");
|
|
foreach($charData as $char) if ($char['guild'] == $forum['guild_id'] && $char['guild_rank'] == 3) $access = true;
|
|
} else $access = true;
|
|
if ($access) {
|
|
mysql_update("UPDATE `znote_forum_threads` SET `sticky`='0' WHERE `id`='$admin_thread_id' LIMIT 1;");
|
|
echo '<h1>Thread has been unsticked.</h1>';
|
|
} else echo '<p><b><font color="red">Permission denied.</font></b></p>';
|
|
}
|
|
}
|
|
|
|
/////////////////
|
|
// ADMIN FUNCT
|
|
if ($admin && !empty($_POST)) {
|
|
$admin_post_id = getValue($_POST['admin_post_id']);
|
|
$admin_post_delete = getValue($_POST['admin_post_delete']);
|
|
|
|
$admin_category_delete = getValue($_POST['admin_category_delete']);
|
|
$admin_category_edit = getValue($_POST['admin_category_edit']);
|
|
$admin_category_id = getValue($_POST['admin_category_id']);
|
|
|
|
$admin_update_category = getValue($_POST['admin_update_category']);
|
|
$admin_category_name = getValue($_POST['admin_category_name']);
|
|
|
|
$admin_category_access = getValue($_POST['admin_category_access']);
|
|
$admin_category_closed = getValue($_POST['admin_category_closed']);
|
|
$admin_category_hidden = getValue($_POST['admin_category_hidden']);
|
|
$admin_category_guild_id = getValue($_POST['admin_category_guild_id']);
|
|
|
|
if ($admin_category_access === false) $admin_category_access = 0;
|
|
if ($admin_category_closed === false) $admin_category_closed = 0;
|
|
if ($admin_category_hidden === false) $admin_category_hidden = 0;
|
|
if ($admin_category_guild_id === false) $admin_category_guild_id = 0;
|
|
|
|
$admin_board_create_name = getValue($_POST['admin_board_create_name']);
|
|
$admin_board_create_access = getValue($_POST['admin_board_create_access']);
|
|
$admin_board_create_closed = getValue($_POST['admin_board_create_closed']);
|
|
$admin_board_create_hidden = getValue($_POST['admin_board_create_hidden']);
|
|
$admin_board_create_guild_id = getValue($_POST['admin_board_create_guild_id']);
|
|
|
|
if ($admin_board_create_access === false) $admin_board_create_access = 0;
|
|
if ($admin_board_create_closed === false) $admin_board_create_closed = 0;
|
|
if ($admin_board_create_hidden === false) $admin_board_create_hidden = 0;
|
|
if ($admin_board_create_guild_id === false) $admin_board_create_guild_id = 0;
|
|
|
|
// Create board
|
|
if ($admin_board_create_name !== false) {
|
|
|
|
// Insert data
|
|
mysql_insert("INSERT INTO `znote_forum` (`name`, `access`, `closed`, `hidden`, `guild_id`)
|
|
VALUES ('$admin_board_create_name',
|
|
'$admin_board_create_access',
|
|
'$admin_board_create_closed',
|
|
'$admin_board_create_hidden',
|
|
'$admin_board_create_guild_id');");
|
|
echo '<h1>Board has been created.</h1>';
|
|
}
|
|
|
|
//////////////////
|
|
// update category
|
|
if ($admin_update_category !== false) {
|
|
$admin_category_id = (int)$admin_category_id;
|
|
|
|
// Update the category
|
|
mysql_update("UPDATE `znote_forum` SET
|
|
`name`='$admin_category_name',
|
|
`access`='$admin_category_access',
|
|
`closed`='$admin_category_closed',
|
|
`hidden`='$admin_category_hidden',
|
|
`guild_id`='$admin_category_guild_id'
|
|
WHERE `id`='$admin_category_id' LIMIT 1;");
|
|
echo '<h1>Board has been updated successfully.</h1>';
|
|
}
|
|
|
|
//////////////////
|
|
// edit category
|
|
if ($admin_category_edit !== false) {
|
|
$admin_category_id = (int)$admin_category_id;
|
|
$category = mysql_select_single("SELECT `id`, `name`, `access`, `closed`, `hidden`, `guild_id`
|
|
FROM `znote_forum` WHERE `id`='$admin_category_id' LIMIT 1;");
|
|
if ($category !== false) {
|
|
?>
|
|
<form action="" method="post">
|
|
<input type="hidden" name="admin_category_id" value="<?php echo $category['id']; ?>">
|
|
<table class="updateTable table table-striped">
|
|
<tr>
|
|
<td><label for="admin_category_name">Board name:</label></td>
|
|
<td><input name="admin_category_name" value="<?php echo $category['name']; ?>" class="span12"></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td><label for="admin_category_access">Required Access:</label></td>
|
|
<td>
|
|
<select name="admin_category_access" class="span12">
|
|
<?php
|
|
foreach($config['ingame_positions'] as $access => $name) {
|
|
if ($access == $category['access']) echo "<option value='$access' selected>$name</option>";
|
|
else echo "<option value='$access'>$name</option>";
|
|
}
|
|
?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><label for="admin_category_closed">Closed:</label></td>
|
|
<td>
|
|
<select name="admin_category_closed" class="span12">
|
|
<?php
|
|
if ($category['closed'] == 1) echo '<option value="1" selected>Yes</option>';
|
|
else echo '<option value="1">Yes</option>';
|
|
if ($category['closed'] == 0) echo '<option value="0" selected>No</option>';
|
|
else echo '<option value="0">No</option>';
|
|
?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><label for="admin_category_hidden">Hidden:</label></td>
|
|
<td>
|
|
<select name="admin_category_hidden" class="span12">
|
|
<?php
|
|
if ($category['hidden'] == 1) echo '<option value="1" selected>Yes</option>';
|
|
else echo '<option value="1">Yes</option>';
|
|
if ($category['hidden'] == 0) echo '<option value="0" selected>No</option>';
|
|
else echo '<option value="0">No</option>';
|
|
?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><label for="admin_category_guild_id">Guild id:</label></td>
|
|
<td>
|
|
<select name="admin_category_guild_id" class="span12">
|
|
<?php foreach($guilds as $guild) {
|
|
if ($category['guild_id'] == $guild['id']) echo "<option value='". $guild['id'] ."' selected>". $guild['name'] ."</option>";
|
|
else echo "<option value='". $guild['id'] ."'>". $guild['name'] ."</option>";
|
|
} ?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2"><input type="submit" name="admin_update_category" value="Update Board" style="width: 100%; height: 30px;" class="btn btn-success"></td>
|
|
</tr>
|
|
</table>
|
|
</form>
|
|
<?php
|
|
} else echo '<h2>Category not found.</h2>';
|
|
|
|
}
|
|
|
|
// delete category
|
|
if ($admin_category_delete !== false) {
|
|
$admin_category_id = (int)$admin_category_id;
|
|
|
|
// find all threads in category
|
|
$threads = mysql_select_multi("SELECT `id` FROM `znote_forum_threads` WHERE `forum_id`='$admin_category_id';");
|
|
|
|
// Then loop through all threads, and delete all associated posts:
|
|
foreach($threads as $thread) {
|
|
mysql_delete("DELETE FROM `znote_forum_posts` WHERE `thread_id`='". $thread['id'] ."';");
|
|
}
|
|
// Then delete all threads
|
|
mysql_delete("DELETE FROM `znote_forum_threads` WHERE `forum_id`='$admin_category_id';");
|
|
// Then delete the category
|
|
mysql_delete("DELETE FROM `znote_forum` WHERE `id`='$admin_category_id' LIMIT 1;");
|
|
echo '<h1>Board, associated threads and all their associated posts deleted.</h1>';
|
|
}
|
|
|
|
// delete post
|
|
if ($admin_post_delete !== false) {
|
|
$admin_post_id = (int)$admin_post_id;
|
|
|
|
// Delete the post
|
|
mysql_delete("DELETE FROM `znote_forum_posts` WHERE `id`='$admin_post_id' LIMIT 1;");
|
|
echo '<h1>Post has been deleted.</h1>';
|
|
}
|
|
}
|
|
// End admin function
|
|
|
|
// Fetching get values
|
|
if (!empty($_GET)) {
|
|
$getCat = getValue($_GET['cat']);
|
|
$getForum = getValue($_GET['forum']);
|
|
$getThread = getValue($_GET['thread']);
|
|
|
|
$new_thread_category = getValue($_POST['new_thread_category']);
|
|
$new_thread_cid = getValue($_POST['new_thread_cid']);
|
|
|
|
$create_thread_cid = getValue($_POST['create_thread_cid']);
|
|
$create_thread_title = getValue($_POST['create_thread_title']);
|
|
$create_thread_text = getValue($_POST['create_thread_text']);
|
|
$create_thread_category = getValue($_POST['create_thread_category']);
|
|
|
|
$update_thread_id = getValue($_POST['update_thread_id']);
|
|
$update_thread_title = getValue($_POST['update_thread_title']);
|
|
$update_thread_text = getValue($_POST['update_thread_text']);
|
|
|
|
$edit_thread = getValue($_POST['edit_thread']);
|
|
$edit_thread_id = getValue($_POST['edit_thread_id']);
|
|
|
|
$reply_thread = getValue($_POST['reply_thread']);
|
|
$reply_text = getValue($_POST['reply_text']);
|
|
$reply_cid = getValue($_POST['reply_cid']);
|
|
|
|
$edit_post = getValue($_POST['edit_post']);
|
|
$edit_post_id = getValue($_POST['edit_post_id']);
|
|
|
|
$update_post_id = getValue($_POST['update_post_id']);
|
|
$update_post_text = getValue($_POST['update_post_text']);
|
|
|
|
/////////////////////
|
|
// When you are POSTING in an existing thread
|
|
if ($reply_thread !== false && $reply_text !== false && $reply_cid !== false) {
|
|
$reply_cid = (int)$reply_cid;
|
|
|
|
if ($user_znote_data['cooldown'] < time()) {
|
|
user_update_znote_account(array('cooldown'=>(time() + $config['forum']['cooldownPost'])));
|
|
|
|
$thread = mysql_select_single("SELECT `closed` FROM `znote_forum_threads` WHERE `id`='$reply_thread' LIMIT 1;");
|
|
|
|
if ($thread['closed'] == 1 && $admin === false) $access = false;
|
|
else $access = true;
|
|
|
|
if ($access) {
|
|
mysql_insert("INSERT INTO `znote_forum_posts` (`thread_id`, `player_id`, `player_name`, `text`, `created`, `updated`) VALUES ('$reply_thread', '$reply_cid', '". $charData[$reply_cid]['name'] ."', '$reply_text', '". time() ."', '". time() ."');");
|
|
if ($config['forum']['newPostsBumpThreads']) mysql_update("UPDATE `znote_forum_threads` SET `updated`='". time() ."' WHERE `id`='$reply_thread';");
|
|
} else echo '<p><b><font color="red">You don\'t have permission to post on this thread. [Thread: Closed]</font></b></p>';
|
|
} else {
|
|
?>
|
|
<font class="forumCooldown" color="red">Antispam: You need to wait <?php echo ($user_znote_data['cooldown'] - time()); ?> seconds before you can create or post.</font>
|
|
<?php
|
|
}
|
|
}
|
|
|
|
/////////////////////
|
|
// When you ARE creating new thread
|
|
if ($create_thread_cid !== false && $create_thread_title !== false && $create_thread_text !== false && $create_thread_category !== false) {
|
|
if ($user_znote_data['cooldown'] < time()) {
|
|
user_update_znote_account(array('cooldown'=>(time() + $config['forum']['cooldownCreate'])));
|
|
|
|
$category = mysql_select_single("SELECT `access`, `closed`, `guild_id` FROM `znote_forum` WHERE `id`='$create_thread_category' LIMIT 1;");
|
|
if ($category !== false) {
|
|
$access = true;
|
|
if (!$admin) {
|
|
if ($category['access'] > $yourAccess) $access = false;
|
|
if ($category['guild_id'] > 0) {
|
|
$status = false;
|
|
foreach($charData as $char) {
|
|
if ($char['guild'] == $category['guild_id']) $status = true;
|
|
}
|
|
if (!$status) $access = false;
|
|
}
|
|
if ($category['closed'] > 0) $access = false;
|
|
}
|
|
|
|
if ($access) {
|
|
mysql_insert("INSERT INTO `znote_forum_threads`
|
|
(`forum_id`, `player_id`, `player_name`, `title`, `text`, `created`, `updated`, `sticky`, `hidden`, `closed`)
|
|
VALUES (
|
|
'$create_thread_category',
|
|
'$create_thread_cid',
|
|
'". $charData[$create_thread_cid]['name'] ."',
|
|
'$create_thread_title',
|
|
'$create_thread_text',
|
|
'". time() ."',
|
|
'". time() ."',
|
|
'0', '0', '0');");
|
|
SendGet(array('cat'=>$create_thread_category), 'forum.php');
|
|
} else echo '<p><b><font color="red">Permission to create thread denied.</font></b></p>';
|
|
} else echo 'Category does not exist.';
|
|
} else {
|
|
?>
|
|
<font class="forumCooldown" color="red">Antispam: You need to wait <?php echo ($user_znote_data['cooldown'] - time()); ?> seconds before you can create or post.</font>
|
|
<?php
|
|
}
|
|
}
|
|
|
|
/////////////////////
|
|
// When you ARE updating post
|
|
if ($update_post_id !== false && $update_post_text !== false) {
|
|
// Fetch the post data
|
|
$post = mysql_select_single("SELECT `id`, `player_name`, `text`, `thread_id` FROM `znote_forum_posts` WHERE `id`='$update_post_id' LIMIT 1;");
|
|
$thread = mysql_select_single("SELECT `closed` FROM `znote_forum_threads` WHERE `id`='". $post['thread_id'] ."' LIMIT 1;");
|
|
|
|
// Verify access
|
|
$access = PlayerHaveAccess($yourChars, $post['player_name']);
|
|
if ($thread !== false && $thread['closed'] == 1 && $admin === false) $access = false;
|
|
if ($admin) $access = true;
|
|
//if ($thread === false) $access = false;
|
|
|
|
if ($access) {
|
|
mysql_update("UPDATE `znote_forum_posts` SET `text`='$update_post_text', `updated`='". time() ."' WHERE `id`='$update_post_id';");
|
|
echo '<h1>post has been updated.</h1>';
|
|
} else echo "<p><font color='red'>Your permission to edit this post has been denied.</font></p>";
|
|
}
|
|
|
|
/////////////////////
|
|
// When you ARE updating thread
|
|
if ($update_thread_id !== false && $update_thread_title !== false && $update_thread_text !== false) {
|
|
// Fetch the thread data
|
|
$thread = mysql_select_single("SELECT `id`, `player_name`, `title`, `text`, `closed` FROM `znote_forum_threads` WHERE `id`='$update_thread_id' LIMIT 1;");
|
|
|
|
// Verify access
|
|
$access = PlayerHaveAccess($yourChars, $thread['player_name']);
|
|
if ($thread['closed'] == 1 && $admin === false) $access = false;
|
|
if ($admin) $access = true;
|
|
|
|
if ($access) {
|
|
mysql_update("UPDATE `znote_forum_threads` SET `title`='$update_thread_title', `text`='$update_thread_text' WHERE `id`='$update_thread_id';");
|
|
echo '<h1>Thread has been updated.</h1>';
|
|
} else echo "<p><font color='red'>Your permission to edit this thread has been denied.</font></p>";
|
|
}
|
|
|
|
/////////////////////
|
|
// When you want to edit a post
|
|
if ($edit_post_id !== false && $edit_post !== false) {
|
|
// Fetch the post data
|
|
$post = mysql_select_single("SELECT `id`, `thread_id`, `text`, `player_name` FROM `znote_forum_posts` WHERE `id`='$edit_post_id' LIMIT 1;");
|
|
$thread = mysql_select_single("SELECT `closed` FROM `znote_forum_threads` WHERE `id`='". $post['thread_id'] ."' LIMIT 1;");
|
|
// Verify access
|
|
$access = PlayerHaveAccess($yourChars, $post['player_name']);
|
|
if ($thread['closed'] == 1 && $admin === false) $access = false;
|
|
if ($admin) $access = true;
|
|
|
|
if ($access) {
|
|
?>
|
|
<h1>Edit Post</h1>
|
|
<form type="" method="post">
|
|
<input name="update_post_id" type="hidden" value="<?php echo $post['id']; ?>">
|
|
<textarea name="update_post_text" style="width: 610px; height: 300px"><?php echo $post['text']; ?></textarea><br>
|
|
<input type="submit" value="Update Post" class="btn btn-success">
|
|
</form>
|
|
<?php
|
|
} else echo '<p><b><font color="red">You don\'t have permission to edit this post.</font></b></p>';
|
|
} else
|
|
|
|
/////////////////////
|
|
// When you want to edit a thread
|
|
if ($edit_thread_id !== false && $edit_thread !== false) {
|
|
// Fetch the thread data
|
|
$thread = mysql_select_single("SELECT `id`, `title`, `text`, `player_name`, `closed` FROM `znote_forum_threads` WHERE `id`='$edit_thread_id' LIMIT 1;");
|
|
|
|
$access = PlayerHaveAccess($yourChars, $thread['player_name']);
|
|
if ($thread['closed'] == 1) $access = false;
|
|
if ($admin) $access = true;
|
|
|
|
if ($access) {
|
|
?>
|
|
<h1>Edit Thread</h1>
|
|
<form type="" method="post">
|
|
<input name="update_thread_id" type="hidden" value="<?php echo $thread['id']; ?>">
|
|
<input name="update_thread_title" type="text" value="<?php echo $thread['title']; ?>" style="width: 500px;"><br><br>
|
|
<textarea name="update_thread_text" style="width: 610px; height: 300px"><?php echo $thread['text']; ?></textarea><br>
|
|
<input type="submit" value="Update Thread" class="btn btn-success">
|
|
</form>
|
|
<?php
|
|
} else echo '<p><b><font color="red">Edit access denied.</font></b></p>';
|
|
} else
|
|
|
|
/////////////////////
|
|
// When you want to view a thread
|
|
if ($getThread !== false) {
|
|
$getThread = (int)$getThread;
|
|
$threadData = mysql_select_single("SELECT `id`, `forum_id`, `player_id`, `player_name`, `title`, `text`, `created`, `updated`, `sticky`, `hidden`, `closed` FROM `znote_forum_threads` WHERE `id`='$getThread' LIMIT 1;");
|
|
|
|
if ($threadData !== false) {
|
|
|
|
$category = mysql_select_single("SELECT `hidden`, `access`, `guild_id` FROM `znote_forum` WHERE `id`='". $threadData['forum_id'] ."' LIMIT 1;");
|
|
if ($category === false) die("Thread category does not exist.");
|
|
|
|
$access = true;
|
|
$leader = false;
|
|
if ($category['hidden'] == 1 || $category['access'] > 1 || $category['guild_id'] > 0) {
|
|
$access = false;
|
|
if ($category['hidden'] == 1) $access = PlayerHaveAccess($yourChars, $threadData['player_name']);
|
|
if ($category['access'] > 1 && $yourAccess >= $category['access']) $access = true;
|
|
foreach($charData as $char) {
|
|
if ($category['guild_id'] == $char['guild']) $access = true;
|
|
if ($char['guild_rank'] == 3) $leader = true;
|
|
}
|
|
if ($admin) $access = true;
|
|
}
|
|
|
|
|
|
if ($access) {
|
|
$threadPlayer = ($config['forum']['outfit_avatars'] || $config['forum']['player_position']) ? mysql_select_single("SELECT `id`, `group_id`, `sex`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons` FROM `players` WHERE `id`='".$threadData['player_id']."';") : false;
|
|
?>
|
|
<font>LinkMap: <a href="forum.php">Forum</a> - <a href="?cat=<?php echo $getCat; ?>"><?php echo $getForum; ?></a></font><br>
|
|
<font size="5" id="ThreadTitle">Viewing thread: <?php echo "<a href='?forum=". $getForum ."&cat=". $getCat ."&thread=". $threadData['id'] ."'>". $threadData['title'] ."</a>"; ?></font>
|
|
<table class="znoteTable ThreadTable table table-striped">
|
|
<tr class="yellow">
|
|
<th<?php if ($threadPlayer !== false) echo ' colspan="2"'; ?>>
|
|
<?php
|
|
echo getClock($threadData['created'], true);
|
|
if ($threadPlayer === false): ?>
|
|
- Created by:
|
|
<?php
|
|
echo "<a href='characterprofile.php?name=". $threadData['player_name'] ."'>". $threadData['player_name'] ."</a>";
|
|
endif;
|
|
?>
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<?php if ($threadPlayer !== false): ?>
|
|
<td class="avatar">
|
|
<a href='characterprofile.php?name=<?php echo $threadData['player_name']; ?>'><?php echo $threadData['player_name']; ?></a>
|
|
<?php if ($config['forum']['outfit_avatars']): ?>
|
|
<br><img src="<?php echo $config['show_outfits']['imageServer']; ?>?id=<?php echo $threadPlayer['looktype']; ?>&addons=<?php echo $threadPlayer['lookaddons']; ?>&head=<?php echo $threadPlayer['lookhead']; ?>&body=<?php echo $threadPlayer['lookbody']; ?>&legs=<?php echo $threadPlayer['looklegs']; ?>&feet=<?php echo $threadPlayer['lookfeet']; ?>" alt="img">
|
|
<?php endif; ?>
|
|
<?php if ($config['forum']['player_position']): ?>
|
|
<br><span><?php echo group_id_to_name($threadPlayer['group_id']); ?></span>
|
|
<?php endif; ?>
|
|
</td>
|
|
<?php endif; ?>
|
|
<td>
|
|
<p><?php echo nl2br(TransformToBBCode($threadData['text'])); ?></p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<hr class="bighr">
|
|
<?php
|
|
if ($admin || $leader) {
|
|
// PlayerHaveAccess($yourChars, $thread['player_name']) ||
|
|
// $yourChars
|
|
?>
|
|
<table class="adminTable table">
|
|
<tr>
|
|
<td>
|
|
<form action="" method="post">
|
|
<input type="hidden" name="admin_thread_id" value="<?php echo $threadData['id']; ?>">
|
|
<input type="submit" name="admin_thread_delete" value="Delete Thread" class="btn btn-danger">
|
|
</form>
|
|
</td>
|
|
<td>
|
|
<?php if ($threadData['closed'] == 0) { ?>
|
|
<form action="" method="post">
|
|
<input type="hidden" name="admin_thread_id" value="<?php echo $threadData['id']; ?>">
|
|
<input type="submit" name="admin_thread_close" value="Close Thread" class="btn btn-warning">
|
|
</form>
|
|
<?php } else { ?>
|
|
<form action="" method="post">
|
|
<input type="hidden" name="admin_thread_id" value="<?php echo $threadData['id']; ?>">
|
|
<input type="submit" name="admin_thread_open" value="Open Thread" class="btn btn-success">
|
|
</form>
|
|
<?php } ?>
|
|
</td>
|
|
<td>
|
|
<?php if ($threadData['sticky'] == 0) { ?>
|
|
<form action="" method="post">
|
|
<input type="hidden" name="admin_thread_id" value="<?php echo $threadData['id']; ?>">
|
|
<input type="submit" name="admin_thread_sticky" value="Stick thread" class="btn btn-info">
|
|
</form>
|
|
<?php } else { ?>
|
|
<form action="" method="post">
|
|
<input type="hidden" name="admin_thread_id" value="<?php echo $threadData['id']; ?>">
|
|
<input type="submit" name="admin_thread_unstick" value="Unstick thread" class="btn btn-primary">
|
|
</form>
|
|
<?php } ?>
|
|
</td>
|
|
<td>
|
|
<form action="" method="post">
|
|
<input type="hidden" name="edit_thread_id" value="<?php echo $threadData['id']; ?>">
|
|
<input type="submit" name="edit_thread" value="Edit Thread" class="btn btn-warning">
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
} else {
|
|
if ($threadData['closed'] == 0 && PlayerHaveAccess($yourChars, $threadData['player_name'])) {
|
|
?>
|
|
<table class="editThread">
|
|
<tr>
|
|
<td>
|
|
<form action="" method="post">
|
|
<input type="hidden" name="edit_thread_id" value="<?php echo $threadData['id']; ?>">
|
|
<input type="submit" name="edit_thread" value="Edit Thread" class="btn btn-info">
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
}
|
|
}
|
|
?>
|
|
<?php
|
|
// Display replies... (copy table above and edit each post)
|
|
$posts = mysql_select_multi("SELECT `id`, `player_id`, `player_name`, `text`, `created`, `updated` FROM `znote_forum_posts` WHERE `thread_id`='". $threadData['id'] ."' ORDER BY `created`;");
|
|
if ($posts !== false) {
|
|
// Load extra data (like outfit avatars?)
|
|
$players = array();
|
|
$extra = false;
|
|
if ($config['forum']['outfit_avatars'] || $config['forum']['player_position']) {
|
|
$extra = true;
|
|
|
|
foreach($posts as $post)
|
|
if (!isset($players[$post['player_id']]))
|
|
$players[$post['player_id']] = array();
|
|
|
|
$sql_players = mysql_select_multi("SELECT `id`, `group_id`, `sex`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons` FROM `players` WHERE `id` IN (".implode(',', array_keys($players)).");");
|
|
|
|
foreach ($sql_players as $player)
|
|
$players[$player['id']] = $player;
|
|
|
|
}
|
|
|
|
foreach($posts as $post) {
|
|
?>
|
|
<table class="znoteTable ThreadTable table table-striped">
|
|
<tr class="yellow">
|
|
<th<?php if ($extra) echo ' colspan="2"'; ?>>
|
|
<?php echo getClock($post['created'], true);
|
|
if (!$extra): ?>
|
|
- Posted by:
|
|
<?php echo "<a href='characterprofile.php?name=". $post['player_name'] ."'>". $post['player_name'] ."</a>";
|
|
endif; ?>
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<?php if ($extra): ?>
|
|
<td class="avatar">
|
|
<a href='characterprofile.php?name=<?php echo $post['player_name']; ?>'><?php echo $post['player_name']; ?></a>
|
|
<?php if ($config['forum']['outfit_avatars']): ?>
|
|
<br><img src="<?php echo $config['show_outfits']['imageServer']; ?>?id=<?php echo $players[$post['player_id']]['looktype']; ?>&addons=<?php echo $players[$post['player_id']]['lookaddons']; ?>&head=<?php echo $players[$post['player_id']]['lookhead']; ?>&body=<?php echo $players[$post['player_id']]['lookbody']; ?>&legs=<?php echo $players[$post['player_id']]['looklegs']; ?>&feet=<?php echo $players[$post['player_id']]['lookfeet']; ?>" alt="img">
|
|
<?php endif; ?>
|
|
<?php if ($config['forum']['player_position']): ?>
|
|
<br><span><?php echo group_id_to_name($players[$post['player_id']]['group_id']); ?></span>
|
|
<?php endif; ?>
|
|
</td>
|
|
<?php endif; ?>
|
|
<td>
|
|
<p><?php echo nl2br(TransformToBBCode($post['text'])); ?></p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<hr class="bighr">
|
|
<?php
|
|
if (PlayerHaveAccess($yourChars, $post['player_name']) || $admin) {
|
|
if ($admin) {
|
|
?>
|
|
<form action="" method="post" class="postButton">
|
|
<input type="hidden" name="admin_post_id" value="<?php echo $post['id']; ?>">
|
|
<input type="submit" name="admin_post_delete" value="Delete Post" class="btn btn-danger">
|
|
</form>
|
|
<?php
|
|
}
|
|
if ($threadData['closed'] == 0 || $admin) {
|
|
?>
|
|
<form action="" method="post" class="postButton">
|
|
<input type="hidden" name="edit_post_id" value="<?php echo $post['id']; ?>">
|
|
<input type="submit" name="edit_post" value="Edit Post" class="btn btn-info">
|
|
</form>
|
|
<?php
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Quick Reply
|
|
if ($charCount > 0) {
|
|
if ($threadData['closed'] == 0 || $yourAccess > 3) {
|
|
?>
|
|
<form action="" method="post">
|
|
<input name="reply_thread" type="hidden" value="<?php echo $threadData['id']; ?>"><br>
|
|
|
|
<p style="font-size: 13px; padding-left: 10px; padding-top: 10px; height: 5px; width: 600px; border-top: 1px solid black;"><b>[b]Bold Text[/b]</b>, [img]<a href="https://imgur.com/">Direct Image Link</a>[/img], [center]Centered Text[/center],<br> [link]<a href="https://youtube.com/" target="_BLANK">https://youtube.com/</a>[/link], [color=<font color="green">GREEN</font>]<font color="green">Green Text!</font>[/color], [*] - Dotted [/*]</p><br>
|
|
|
|
<textarea class="forumReply" name="reply_text" style="width: 610px; height: 150px"></textarea><br>
|
|
<select name="reply_cid" multiple="multiple">
|
|
<?php
|
|
foreach($yourChars as $char) {
|
|
echo "<option value='". $char['id'] ."'>". $char['name'] ."</option>";
|
|
}
|
|
?>
|
|
</select>
|
|
<input name="" type="submit" value="Post Reply" class="btn btn-primary">
|
|
</form>
|
|
<?php
|
|
} else echo '<p><b>You don\'t have permission to post on this thread. [Thread: Closed]</b></p>';
|
|
} else {
|
|
?><p>You must have a character on your account that is level <?php echo $config['forum']['level']; ?>+ to reply to this thread.</p><?php
|
|
}
|
|
} else echo "<p><font color='red'>Your permission to access this thread has been denied.</font></p>";
|
|
} else {
|
|
?>
|
|
<h1>Thread unavailable</h1>
|
|
<p>Thread is unavailable for you, or do not exist any more.
|
|
<?php
|
|
if ($_GET['cat'] > 0 && !empty($_GET['forum'])) {
|
|
$tmpCat = getValue($_GET['cat']);
|
|
$tmpCatName = getValue($_GET['forum']);
|
|
?>
|
|
<br><a href="forum.php?forum=<?php echo $tmpCatName; ?>&cat=<?php echo $tmpCat; ?>">Go back to: <?php echo $tmpCatName; ?></a></p>
|
|
<?php
|
|
} else {
|
|
?>
|
|
<br><a href="forum.php">Go back to Forum</a></p>
|
|
<?php
|
|
}
|
|
?>
|
|
<?php
|
|
}
|
|
|
|
} else
|
|
|
|
/////////////////////
|
|
// When you want to create a new thread
|
|
if ($new_thread_category !== false && $new_thread_cid !== false) {
|
|
// Verify we got access to this category
|
|
$category = mysql_select_single("SELECT `access`, `closed`, `guild_id` FROM `znote_forum` WHERE `id`='$new_thread_category' LIMIT 1;");
|
|
if ($category !== false) {
|
|
$access = true;
|
|
if (!$admin) {
|
|
if ($category['access'] > $yourAccess) $access = false;
|
|
if ($category['guild_id'] > 0) {
|
|
$status = false;
|
|
foreach($charData as $char) {
|
|
if ($char['guild'] == $category['guild_id']) $status = true;
|
|
}
|
|
if (!$status) $access = false;
|
|
}
|
|
if ($category['closed'] > 0) $access = false;
|
|
}
|
|
|
|
if ($access) {
|
|
?>
|
|
<h1>Create new thread</h1>
|
|
<form type="" method="post">
|
|
<input type="text" disabled value="<?php echo $charData[$new_thread_cid]['name']; ?>" style="width: 100px;">
|
|
<input name="create_thread_cid" type="hidden" value="<?php echo $new_thread_cid; ?>">
|
|
<input name="create_thread_category" type="hidden" value="<?php echo $new_thread_category; ?>">
|
|
<input name="create_thread_title" type="text" placeholder="Thread title" style="width: 500px;"><br><br>
|
|
<textarea name="create_thread_text" style="width: 610px; height: 300px" placeholder="Thread text"></textarea><br>
|
|
<input type="submit" value="Create Thread" class="btn btn-success">
|
|
</form>
|
|
<?php
|
|
} else echo '<p><b><font color="red">Permission to create thread denied.</font></b></p>';
|
|
}
|
|
} else
|
|
|
|
/////////////////////
|
|
// When category is specified
|
|
if ($getCat !== false) {
|
|
$getCat = (int)$getCat;
|
|
|
|
// Fetch category rules
|
|
$category = mysql_select_single("SELECT `name`, `access`, `closed`, `hidden`, `guild_id` FROM `znote_forum` WHERE `id`='$getCat' AND `access`<='$yourAccess' LIMIT 1;");
|
|
|
|
if ($category !== false && $category['guild_id'] > 0 && !$admin) {
|
|
$access = false;
|
|
foreach($charData as $char) if ($category['guild_id'] == $char['guild']) $access = true;
|
|
if ($access !== true) $category = false;
|
|
}
|
|
|
|
if ($category !== false) {
|
|
// TODO : Verify guild access
|
|
//foreach($charData)
|
|
echo "<h1><a href='forum.php'>Forum</a> Board: ". $category['name'] ."</h1>";
|
|
|
|
// Threads
|
|
// - id - forum_id - player_id - player_name - title - text - created - updated - sticky - hidden - closed
|
|
$threads = mysql_select_multi("SELECT `id`, `player_name`, `title`, `sticky`, `closed` FROM `znote_forum_threads` WHERE `forum_id`='$getCat' ORDER BY `sticky` DESC, `updated` DESC;");
|
|
|
|
///// HTML \\\\\
|
|
if ($threads !== false) {
|
|
?>
|
|
<table class="znoteTable table table-bordered table-striped table-hover" id="forumThreadTable">
|
|
<tr class="yellow">
|
|
<th width="80%">Title</th>
|
|
<th width="20%">By</th>
|
|
</tr>
|
|
<?php
|
|
foreach($threads as $thread) {
|
|
$access = true;
|
|
if ($category['hidden'] == 1) {
|
|
if (!$admin) $access = false;
|
|
$access = PlayerHaveAccess($yourChars, $thread['player_name']);
|
|
if ($yourAccess > 3) $access = true;
|
|
}
|
|
|
|
if ($access) {
|
|
?>
|
|
<tr class="special">
|
|
<?php
|
|
$url = url("forum.php?forum=". $category['name'] ."&cat=". $getCat ."&thread=". $thread['id']);
|
|
echo '<td onclick="javascript:window.location.href=\'' . $url . '\'">';
|
|
?>
|
|
<!--<td>-->
|
|
<?php
|
|
if ($thread['sticky'] == 1) echo $config['forum']['sticky'],' ';
|
|
if ($thread['closed'] == 1) echo $config['forum']['closed'],' ';
|
|
echo $thread['title'];
|
|
?>
|
|
</td>
|
|
<?php
|
|
$url = url("characterprofile.php?name=". $thread['player_name']);
|
|
echo '<td onclick="javascript:window.location.href=\'' . $url . '\'">';
|
|
?>
|
|
<!--<td>-->
|
|
<?php
|
|
echo $thread['player_name'];
|
|
?>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
}
|
|
?>
|
|
</table>
|
|
<?php
|
|
} else echo 'Board is empty, no threads exist yet.';
|
|
|
|
///////////
|
|
// Create thread button
|
|
if ($charCount > 0) {
|
|
if ($category['closed'] == 0 || $admin) {
|
|
?>
|
|
<form action="" method="post">
|
|
<input type="hidden" value="<?php echo $getCat; ?>" name="new_thread_category">
|
|
<select name="new_thread_cid" multiple="multiple">
|
|
<?php
|
|
foreach($yourChars as $char) {
|
|
echo "<option value='". $char['id'] ."'>". $char['name'] ."</option>";
|
|
}
|
|
?>
|
|
</select>
|
|
<input type="submit" value="Create new thread" class="btn btn-primary">
|
|
</form>
|
|
<?php
|
|
} else echo '<p>This board is closed.</p>';
|
|
} else echo "<p>You must have a character on your account that is level ". $config['forum']['level'] ."+ to create new threads.</p>";
|
|
} else echo "<p><font color='red'>Your permission to access this board has been denied.<br>If you are trying to access a Guild Board, you need level: ". $config['forum']['level'] ."+</font></p>";
|
|
|
|
}
|
|
} else {
|
|
|
|
//////////////////////
|
|
// No category specified, show list of available categories
|
|
if (!$admin) $categories = mysql_select_multi(
|
|
"SELECT `id`, `name`, `access`, `closed`, `hidden`, `guild_id` FROM `znote_forum` WHERE `access`<='$yourAccess' ORDER BY `name`;");
|
|
else $categories = mysql_select_multi("SELECT `id`, `name`, `access`, `closed`, `hidden`, `guild_id` FROM `znote_forum` ORDER BY `name`;");
|
|
|
|
$guildboard = false;
|
|
?>
|
|
<table class="znoteTable table table-striped table-hover" id="forumCategoryTable">
|
|
<tr class="yellow">
|
|
<th>Forum Boards</th>
|
|
<?php
|
|
$guild = false;
|
|
foreach($charData as $char) {
|
|
if ($char['guild'] > 0) $guild = true;
|
|
}
|
|
|
|
if ($admin || $guild) {
|
|
if (!isset($guilds)) {
|
|
$guilds = mysql_select_multi("SELECT `id`, `name` FROM `guilds` ORDER BY `name`;");
|
|
$guilds[] = array('id' => '0', 'name' => 'No guild');
|
|
}
|
|
$guildName = array();
|
|
foreach($guilds as $guild) {
|
|
$guildName[$guild['id']] = $guild['name'];
|
|
}
|
|
if ($admin) {
|
|
?>
|
|
<th>Edit</th>
|
|
<th>Delete</th>
|
|
<?php
|
|
}
|
|
}
|
|
?>
|
|
</tr>
|
|
<?php
|
|
if ($categories !== false) {
|
|
foreach ($categories as $category) {
|
|
$access = true;
|
|
if ($category['guild_id'] > 0) {
|
|
$guildboard[] = $category;
|
|
$access = false;
|
|
}
|
|
|
|
/*
|
|
if ($guild) {
|
|
foreach($charData as $char) {
|
|
if ($category['guild_id'] == $char['guild']) $access = true;
|
|
}
|
|
}
|
|
*/
|
|
if ($access) {
|
|
$url = url("forum.php?cat=". $category['id']);
|
|
echo '<tr class="special">';
|
|
echo '<td onclick="javascript:window.location.href=\'' . $url . '\'">';
|
|
if ($category['closed'] == 1) echo $config['forum']['closed'],' ';
|
|
if ($category['hidden'] == 1) echo $config['forum']['hidden'],' ';
|
|
if ($category['guild_id'] > 0) {
|
|
echo "[". $guildName[$category['guild_id']] ."] ";
|
|
}
|
|
echo $category['name'] ."</td>";
|
|
|
|
// Admin columns
|
|
if ($admin) {
|
|
?>
|
|
<td style="margin: 0px; padding: 0px; width: 100px;">
|
|
<form action="" method="post">
|
|
<input type="hidden" name="admin_category_id" value="<?php echo $category['id']; ?>">
|
|
<input type="submit" name="admin_category_edit" value="Edit" style="margin: 0px; padding: 0px; width: 50px; height: 22px;" class="btn btn-warning">
|
|
</form>
|
|
</td>
|
|
<td style="margin: 0px; padding: 0px; width: 100px;">
|
|
<form action="" method="post">
|
|
<input type="hidden" name="admin_category_id" value="<?php echo $category['id']; ?>">
|
|
<input type="submit" name="admin_category_delete" value="Delete" style="margin: 0px; padding: 0px; width: 75px; height: 22px;" class="btn btn-danger">
|
|
</form>
|
|
</td>
|
|
<?php
|
|
}
|
|
echo '</tr>';
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
</table>
|
|
<hr class="bighr">
|
|
<?php
|
|
if ($guildboard !== false && $guild || $guildboard !== false && $admin) {
|
|
//
|
|
?>
|
|
<table class="table table-striped table-hover znoteTable" id="forumCategoryTable">
|
|
<tr class="yellow">
|
|
<th>Guild Boards</th>
|
|
<?php
|
|
foreach($charData as $char) {
|
|
if ($char['guild'] > 0) $guild = true;
|
|
}
|
|
|
|
if ($admin || $guild) {
|
|
if (!isset($guilds)) {
|
|
$guilds = mysql_select_multi("SELECT `id`, `name` FROM `guilds` ORDER BY `name`;");
|
|
$guilds[] = array('id' => '0', 'name' => 'No guild');
|
|
}
|
|
$guildName = array();
|
|
foreach($guilds as $guild) {
|
|
$guildName[$guild['id']] = $guild['name'];
|
|
}
|
|
if ($admin) {
|
|
?>
|
|
<th width="100">Edit</th>
|
|
<th width="100">Delete</th>
|
|
<?php
|
|
}
|
|
}
|
|
?>
|
|
</tr>
|
|
<?php
|
|
$count = 0;
|
|
foreach ($guildboard as $board) {
|
|
$access = false;
|
|
foreach($charData as $char) {
|
|
if ($board['guild_id'] == $char['guild']) {
|
|
$access = true;
|
|
$count++;
|
|
}
|
|
}
|
|
if ($access || $admin) {
|
|
$url = url("forum.php?cat=". $board['id']);
|
|
echo '<tr class="special">';
|
|
echo '<td onclick="javascript:window.location.href=\'' . $url . '\'">';
|
|
if ($board['closed'] == 1) echo $config['forum']['closed'],' ';
|
|
if ($board['hidden'] == 1) echo $config['forum']['hidden'],' ';
|
|
if ($board['guild_id'] > 0) {
|
|
echo "[". $guildName[$board['guild_id']] ."] ";
|
|
}
|
|
echo $board['name'] ."</td>";
|
|
|
|
// Admin columns
|
|
if ($admin) {
|
|
?>
|
|
<td style="margin: 0px; padding: 0px; width: 100px;">
|
|
<form action="" method="post">
|
|
<input type="hidden" name="admin_category_id" value="<?php echo $board['id']; ?>">
|
|
<input type="submit" name="admin_category_edit" value="Edit" style="margin: 0px; padding: 0px; width: 50px; height: 22px;" class="btn btn-warning">
|
|
</form>
|
|
</td>
|
|
<td style="margin: 0px; padding: 0px; width: 100px;">
|
|
<form action="" method="post">
|
|
<input type="hidden" name="admin_category_id" value="<?php echo $board['id']; ?>">
|
|
<input type="submit" name="admin_category_delete" value="Delete" style="margin: 0px; padding: 0px; width: 75px; height: 22px;" class="btn btn-danger">
|
|
</form>
|
|
</td>
|
|
<?php
|
|
}
|
|
echo '</tr>';
|
|
}
|
|
}
|
|
if ($count == 0 && !$admin) echo '<tr><td>You don\'t have access to any guildboards.</td></tr>';
|
|
?>
|
|
</table>
|
|
<?php
|
|
}
|
|
if ($admin) {
|
|
?>
|
|
<h2>Create board:</h2>
|
|
<form action="" method="post">
|
|
<input type="text" name="admin_board_create_name" placeholder="Board name"><br><br>
|
|
|
|
Required access: <select name="admin_board_create_access">
|
|
<?php
|
|
foreach($config['ingame_positions'] as $access => $name) {
|
|
echo "<option value='$access'>$name</option>";
|
|
}
|
|
?>
|
|
</select><br><br>
|
|
|
|
Board closed: <select name="admin_board_create_closed">
|
|
<option value="0">No</option>
|
|
<option value="1">Yes</option>
|
|
</select><br>
|
|
|
|
Board hidden: <select name="admin_board_create_hidden">
|
|
<option value="0">No</option>
|
|
<option value="1">Yes</option>
|
|
</select><br><br>
|
|
|
|
Guild board: <select name="admin_board_create_guild_id">
|
|
<?php
|
|
foreach($guilds as $guild) {
|
|
if ($guild['id'] == 0) echo "<option value='". $guild['id'] ."' selected>". $guild['name'] ."</option>";
|
|
else echo "<option value='". $guild['id'] ."'>". $guild['name'] ."</option>";
|
|
}
|
|
?>
|
|
</select><br><br>
|
|
|
|
<input type="submit" value="Create Board" class="btn btn-primary">
|
|
</form>
|
|
<?php
|
|
}
|
|
|
|
}
|
|
|
|
|
|
include 'layout/overall/footer.php'; ?>
|