Move forum config to settings

This commit is contained in:
slawkens 2023-07-20 16:36:59 +02:00
parent a7b8ccaee2
commit 55a5ccdd1e
15 changed files with 128 additions and 44 deletions

View File

@ -169,15 +169,6 @@ $config = array(
// support/system // support/system
'bug_report' => true, // this configurable has no effect, its always enabled 'bug_report' => true, // this configurable has no effect, its always enabled
// forum
'forum' => 'site', // link to the server forum, set to "site" if you want to use build in forum system, otherwise leave empty if you aren't going to use any forum
'forum_level_required' => 0, // level required to post, 0 to disable
'forum_post_interval' => 30, // in seconds
'forum_posts_per_page' => 20,
'forum_threads_per_page' => 20,
// uncomment to force use table for forum
//'forum_table_prefix' => 'z_', // what forum mysql table to use, z_ (for gesior old forum) or myaac_ (for myaac)
// last kills // last kills
'last_kills_limit' => 50, // max. number of deaths shown on the last kills page 'last_kills_limit' => 50, // max. number of deaths shown on the last kills page

View File

@ -176,8 +176,9 @@ if(setting('core.backward_support')) {
$config['site']['serverinfo_page'] = true; $config['site']['serverinfo_page'] = true;
$config['site']['screenshot_page'] = true; $config['site']['screenshot_page'] = true;
if($config['forum'] != '') $forumSetting = setting('core.forum');
$config['forum_link'] = (strtolower($config['forum']) === 'site' ? getLink('forum') : $config['forum']); if($forumSetting != '')
$config['forum_link'] = (strtolower($forumSetting) === 'site' ? getLink('forum') : $forumSetting);
foreach($status as $key => $value) foreach($status as $key => $value)
$config['status']['serverStatus_' . $key] = $value; $config['status']['serverStatus_' . $key] = $value;

View File

@ -32,6 +32,7 @@ $deprecatedConfig = [
'team_display_world' => 'team_world', 'team_display_world' => 'team_world',
'team_display_lastlogin' => 'team_lastlogin', 'team_display_lastlogin' => 'team_lastlogin',
'multiworld', 'multiworld',
'forum',
]; ];
foreach ($deprecatedConfig as $key => $value) { foreach ($deprecatedConfig as $key => $value) {

View File

@ -10,7 +10,7 @@
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
$configForumTablePrefix = config('forum_table_prefix'); $configForumTablePrefix = setting('core.forum_table_prefix');
if(null !== $configForumTablePrefix && !empty(trim($configForumTablePrefix))) { if(null !== $configForumTablePrefix && !empty(trim($configForumTablePrefix))) {
if(!in_array($configForumTablePrefix, array('myaac_', 'z_'))) { if(!in_array($configForumTablePrefix, array('myaac_', 'z_'))) {
throw new RuntimeException('Invalid value for forum_table_prefix in config.php. Can be only: "myaac_" or "z_".'); throw new RuntimeException('Invalid value for forum_table_prefix in config.php. Can be only: "myaac_" or "z_".');
@ -47,7 +47,7 @@ class Forum
return return
$db->query( $db->query(
'SELECT `id` FROM `players` WHERE `account_id` = ' . $db->quote($account->getId()) . 'SELECT `id` FROM `players` WHERE `account_id` = ' . $db->quote($account->getId()) .
' AND `level` >= ' . $db->quote($config['forum_level_required']) . ' AND `level` >= ' . $db->quote(setting('core.forum_level_required')) .
' LIMIT 1')->rowCount() > 0; ' LIMIT 1')->rowCount() > 0;
} }

View File

@ -10,7 +10,11 @@
*/ */
defined('MYAAC') or exit; defined('MYAAC') or exit;
require __DIR__ . '/forum/base.php'; $ret = require __DIR__ . '/forum/base.php';
if ($ret === false) {
return;
}
require __DIR__ . '/forum/admin.php'; require __DIR__ . '/forum/admin.php';
$errors = []; $errors = [];

View File

@ -11,22 +11,24 @@
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
$title = 'Forum'; $title = 'Forum';
if(strtolower($config['forum']) != 'site') { require_once LIBS . 'forum.php';
if($config['forum'] != '') {
header('Location: ' . $config['forum']); $forumSetting = setting('core.forum');
if(strtolower($forumSetting) != 'site') {
if($forumSetting != '') {
header('Location: ' . $forumSetting);
exit; exit;
} }
echo 'Forum is disabled on this site.'; echo 'Forum is disabled on this site.';
return; return false;
} }
if(!$logged) { if(!$logged) {
echo 'You are not logged in. <a href="?subtopic=accountmanagement&redirect=' . BASE_URL . urlencode('?subtopic=forum') . '">Log in</a> to post on the forum.<br /><br />'; echo 'You are not logged in. <a href="?subtopic=accountmanagement&redirect=' . BASE_URL . urlencode('?subtopic=forum') . '">Log in</a> to post on the forum.<br /><br />';
return false;
} }
require_once LIBS . 'forum.php';
$sections = array(); $sections = array();
foreach(getForumBoards() as $section) { foreach(getForumBoards() as $section) {
$sections[$section['id']] = array( $sections[$section['id']] = array(

View File

@ -10,7 +10,10 @@
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; $ret = require __DIR__ . '/base.php';
if ($ret === false) {
return;
}
if(Forum::canPost($account_logged)) if(Forum::canPost($account_logged))
{ {
@ -75,7 +78,7 @@ if(Forum::canPost($account_logged))
$char_id = $thread['author_guid']; $char_id = $thread['author_guid'];
$db->query("UPDATE `" . FORUM_TABLE_PREFIX . "forum` SET `author_guid` = ".(int) $char_id.", `post_text` = ".$db->quote($text).", `post_topic` = ".$db->quote($post_topic).", `post_smile` = ".$smile.", `post_html` = ".$html.", `last_edit_aid` = ".(int) $account_logged->getId().",`edit_date` = ".time()." WHERE `id` = ".(int) $thread['id']); $db->query("UPDATE `" . FORUM_TABLE_PREFIX . "forum` SET `author_guid` = ".(int) $char_id.", `post_text` = ".$db->quote($text).", `post_topic` = ".$db->quote($post_topic).", `post_smile` = ".$smile.", `post_html` = ".$html.", `last_edit_aid` = ".(int) $account_logged->getId().",`edit_date` = ".time()." WHERE `id` = ".(int) $thread['id']);
$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`.`post_date` <= ".$thread['post_date']." AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".(int) $thread['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`.`post_date` <= ".$thread['post_date']." AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".(int) $thread['first_post'])->fetch();
$_page = (int) ceil($post_page['posts_count'] / $config['forum_threads_per_page']) - 1; $_page = (int) ceil($post_page['posts_count'] / setting('core.forum_threads_per_page')) - 1;
header('Location: ' . getForumThreadLink($thread['first_post'], $_page)); header('Location: ' . getForumThreadLink($thread['first_post'], $_page));
echo '<br />Thank you for editing post.<br /><a href="' . getForumThreadLink($thread['first_post'], $_page) . '">GO BACK TO LAST THREAD</a>'; echo '<br />Thank you for editing post.<br /><a href="' . getForumThreadLink($thread['first_post'], $_page) . '">GO BACK TO LAST THREAD</a>';
} }
@ -117,6 +120,6 @@ if(Forum::canPost($account_logged))
} }
} }
else { else {
$errors[] = "Your account is banned, deleted or you don't have any player with level " . $config['forum_level_required'] . " on your account. You can't post."; $errors[] = "Your account is banned, deleted or you don't have any player with level " . setting('core.forum_level_required') . " on your account. You can't post.";
displayErrorBoxWithBackButton($errors, getLink('forum')); displayErrorBoxWithBackButton($errors, getLink('forum'));
} }

View File

@ -10,7 +10,10 @@
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; $ret = require __DIR__ . '/base.php';
if ($ret === false) {
return;
}
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.';

View File

@ -10,7 +10,10 @@
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; $ret = require __DIR__ . '/base.php';
if ($ret === false) {
return;
}
if(!$logged) { if(!$logged) {
$extra_url = ''; $extra_url = '';
@ -81,8 +84,8 @@ if(Forum::canPost($account_logged)) {
$query = $query->fetch(); $query = $query->fetch();
$last_post = $query['post_date']; $last_post = $query['post_date'];
} }
if($last_post+$config['forum_post_interval']-time() > 0 && !Forum::isModerator()) if($last_post+setting('core.forum_post_interval')-time() > 0 && !Forum::isModerator())
$errors[] = 'You can post one time per '.$config['forum_post_interval'].' seconds. Next post after '.($last_post+$config['forum_post_interval']-time()).' second(s).'; $errors[] = 'You can post one time per ' . setting('core.forum_post_interval') . ' seconds. Next post after '.($last_post + setting('core.forum_post_interval')-time()).' second(s).';
} }
if(count($errors) == 0) { if(count($errors) == 0) {
@ -90,7 +93,7 @@ if(Forum::canPost($account_logged)) {
Forum::add_post($thread['id'], $thread['section'], $account_logged->getId(), $char_id, $text, $post_topic, $smile, $html); Forum::add_post($thread['id'], $thread['section'], $account_logged->getId(), $char_id, $text, $post_topic, $smile, $html);
$db->query("UPDATE `" . FORUM_TABLE_PREFIX . "forum` SET `replies`=`replies`+1, `last_post`=".time()." WHERE `id` = ".$thread_id); $db->query("UPDATE `" . FORUM_TABLE_PREFIX . "forum` SET `replies`=`replies`+1, `last_post`=".time()." WHERE `id` = ".$thread_id);
$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`.`post_date` <= ".time()." AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".(int) $thread['id'])->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`.`post_date` <= ".time()." AND `" . FORUM_TABLE_PREFIX . "forum`.`first_post` = ".(int) $thread['id'])->fetch();
$_page = (int) ceil($post_page['posts_count'] / $config['forum_threads_per_page']) - 1; $_page = (int) ceil($post_page['posts_count'] / setting('core.forum_threads_per_page')) - 1;
header('Location: ' . getForumThreadLink($thread_id, $_page)); header('Location: ' . getForumThreadLink($thread_id, $_page));
echo '<br />Thank you for posting.<br /><a href="' . getForumThreadLink($thread_id, $_page) . '">GO BACK TO LAST THREAD</a>'; echo '<br />Thank you for posting.<br /><a href="' . getForumThreadLink($thread_id, $_page) . '">GO BACK TO LAST THREAD</a>';
} }
@ -131,7 +134,7 @@ if(Forum::canPost($account_logged)) {
} }
} }
else { else {
$errors[] = "Your account is banned, deleted or you don't have any player with level " . config('forum_level_required') . " on your account. You can't post."; $errors[] = "Your account is banned, deleted or you don't have any player with level " . setting('core.forum_level_required') . " on your account. You can't post.";
displayErrorBoxWithBackButton($errors, getLink('forum')); displayErrorBoxWithBackButton($errors, getLink('forum'));
} }

View File

@ -10,7 +10,10 @@
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; $ret = require __DIR__ . '/base.php';
if ($ret === false) {
return;
}
if(Forum::canPost($account_logged)) { if(Forum::canPost($account_logged)) {
$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();
@ -67,8 +70,8 @@ if(Forum::canPost($account_logged)) {
$last_post = $query['post_date']; $last_post = $query['post_date'];
} }
if ($last_post + config('forum_post_interval') - time() > 0 && !Forum::isModerator()) if ($last_post + setting('core.forum_post_interval') - time() > 0 && !Forum::isModerator())
$errors[] = 'You can post one time per ' . config('forum_post_interval') . ' seconds. Next post after ' . ($last_post + config('forum_post_interval') - time()) . ' second(s).'; $errors[] = 'You can post one time per ' . setting('core.forum_post_interval') . ' seconds. Next post after ' . ($last_post + setting('core.forum_post_interval') - time()) . ' second(s).';
} }
if (count($errors) == 0) { if (count($errors) == 0) {
@ -113,6 +116,6 @@ if(Forum::canPost($account_logged)) {
} }
} }
else { else {
$errors[] = 'Your account is banned, deleted or you don\'t have any player with level '.$config['forum_level_required'].' on your account. You can\'t post.'; $errors[] = 'Your account is banned, deleted or you don\'t have any player with level '.setting('core.forum_level_required').' on your account. You can\'t post.';
displayErrorBoxWithBackButton($errors, getLink('forum')); displayErrorBoxWithBackButton($errors, getLink('forum'));
} }

View File

@ -10,7 +10,10 @@
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; $ret = require __DIR__ . '/base.php';
if ($ret === false) {
return;
}
if(Forum::isModerator()) { if(Forum::isModerator()) {
$id = (int) $_REQUEST['id']; $id = (int) $_REQUEST['id'];
@ -23,7 +26,7 @@ if(Forum::isModerator()) {
} }
else { else {
$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'] / $config['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'], (int) $_page));
} }

View File

@ -10,7 +10,10 @@
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; $ret = require __DIR__ . '/base.php';
if ($ret === false) {
return;
}
$links_to_pages = ''; $links_to_pages = '';
$section_id = isset($_REQUEST['id']) ? (int) $_REQUEST['id'] : null; $section_id = isset($_REQUEST['id']) ? (int) $_REQUEST['id'] : null;
@ -29,7 +32,7 @@ if(!Forum::hasAccess($section_id)) {
$_page = (int) (isset($_REQUEST['page']) ? $_REQUEST['page'] : 0); $_page = (int) (isset($_REQUEST['page']) ? $_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'] / $config['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)
$links_to_pages .= '<a href="' . getForumBoardLink($section_id, $i) . '">'.($i + 1).'</a> '; $links_to_pages .= '<a href="' . getForumBoardLink($section_id, $i) . '">'.($i + 1).'</a> ';
else else
@ -44,7 +47,7 @@ if(!$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 ".$config['forum_threads_per_page']." OFFSET ".($_page * $config['forum_threads_per_page']))->fetchAll(); $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();
if(isset($last_threads[0])) { if(isset($last_threads[0])) {
echo '<table width="100%"> echo '<table width="100%">

View File

@ -10,7 +10,10 @@
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
require __DIR__ . '/base.php'; $ret = require __DIR__ . '/base.php';
if ($ret === false) {
return;
}
$links_to_pages = ''; $links_to_pages = '';
$thread_id = (int) $_REQUEST['id']; $thread_id = (int) $_REQUEST['id'];
@ -30,14 +33,14 @@ if(!Forum::hasAccess($thread_starter['section'])) {
} }
$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` = ".(int) $thread_id)->fetch();
for($i = 0; $i < $posts_count['posts_count'] / $config['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> ';
else else
$links_to_pages .= '<b>'.($i + 1).' </b>'; $links_to_pages .= '<b>'.($i + 1).' </b>';
} }
$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 ".$config['forum_posts_per_page']." OFFSET ".($_page * $config['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` = ".(int) $thread_id);

View File

@ -542,6 +542,69 @@ Sent by MyAAC,<br/>
'type' => 'category', 'type' => 'category',
'title' => 'Pages', 'title' => 'Pages',
], ],
[
'type' => 'section',
'title' => 'Forum'
],
'forum' => [
'name' => 'Forum',
'type' => 'text',
'desc' => 'Do you want to use built-in forum feature? Enter <strong>"site"</strong> if you want to use built-in forum feature, if you want use custom forum - enter URL here, otherwise leave empty (to disable)',
'default' => 'site',
],
'forum_level_required' => [
'name' => 'Forum Level Required',
'type' => 'number',
'desc' => 'Level required to post on forum. 0 to disable',
'min' => 0,
'max' => 99999999999,
'default' => 0,
'show_if' => [
'forum', '=', 'site',
],
],
'forum_post_interval' => [
'name' => 'Forum Post Interval',
'type' => 'number',
'desc' => 'How often user can post on forum, in seconds',
'min' => 0,
'max' => 99999999999,
'default' => 30,
'show_if' => [
'forum', '=', 'site',
],
],
'forum_posts_per_page' => [
'name' => 'Forum Posts per Page',
'type' => 'number',
'desc' => 'How many posts per page',
'min' => 0,
'max' => 99999999999,
'default' => 20,
'show_if' => [
'forum', '=', 'site',
],
],
'forum_threads_per_page' => [
'name' => 'Forum Threads per Page',
'type' => 'number',
'desc' => 'How many threads per page',
'min' => 0,
'max' => 99999999999,
'default' => 20,
'show_if' => [
'forum', '=', 'site',
],
],
'forum_table_prefix' => [
'name' => 'Forum Table Prefix',
'type' => 'text',
'desc' => 'What forum mysql table to use, z_ (for gesior old forum) or myaac_ (for myaac)',
'default' => 'myaac_',
'show_if' => [
'forum', '=', 'site',
],
],
[ [
'type' => 'section', 'type' => 'section',
'title' => 'Online Page' 'title' => 'Online Page'

View File

@ -111,12 +111,13 @@ $template['link_screenshots'] = getLink('gallery');
$template['link_movies'] = getLink('videos'); $template['link_movies'] = getLink('videos');
$template['link_gifts_history'] = getLink('gifts', 'history'); $template['link_gifts_history'] = getLink('gifts', 'history');
if($config['forum'] != '') $forumSetting = setting('core.forum');
if($forumSetting != '')
{ {
if(strtolower($config['forum']) == 'site') if(strtolower($forumSetting) == 'site')
$template['link_forum'] = "<a href='" . getLink('forum') . "'>"; $template['link_forum'] = "<a href='" . getLink('forum') . "'>";
else else
$template['link_forum'] = "<a href='" . $config['forum'] . "' target='_blank'>"; $template['link_forum'] = "<a href='" . $forumSetting . "' target='_blank'>";
} }
$twig->addGlobal('template_path', $template_path); $twig->addGlobal('template_path', $template_path);