diff --git a/index.php b/index.php
index c5fe145a..fe882b04 100644
--- a/index.php
+++ b/index.php
@@ -1,431 +1,431 @@
-
- * @copyright 2017 MyAAC
- * @link http://my-aac.org
- */
-
-// uncomment if your php.ini have display_errors disabled and you want to see errors
-// ini_set('display_errors', 1);
-// ini_set('display_startup_errors', 1);
-// error_reporting(E_ALL);
-
-require_once('common.php');
-require_once(SYSTEM . 'functions.php');
-
-$uri = $_SERVER['REQUEST_URI'];
-
-$tmp = BASE_DIR;
-if(!empty($tmp))
- $uri = str_replace(BASE_DIR . '/', '', $uri);
-else
- $uri = str_replace_first('/', '', $uri);
-
-$uri = str_replace(array('index.php/', '?'), '', $uri);
-define('URI', $uri);
-
-if(preg_match("/^[A-Za-z0-9-_%\'+]+\.png$/i", $uri)) {
- $tmp = explode('.', $uri);
- $_REQUEST['name'] = urldecode($tmp[0]);
-
- chdir(TOOLS . 'signature');
- include(TOOLS . 'signature/index.php');
- exit();
-}
-else if(preg_match("/^(.*)\.(gif|jpg|png|jpeg|tiff|bmp|css|js|less|map|html|php|zip|rar|gz|ttf|woff|ico)$/i", $_SERVER['REQUEST_URI'])) {
- header("HTTP/1.0 404 Not Found");
- exit;
-}
-
-require_once(BASE . 'config.local.php');
-if(file_exists(BASE . 'install') && (!isset($config['installed']) || !$config['installed']))
-{
- header('Location: ' . BASE_URL . 'install/');
- die('Setup detected that install/ directory exists. Please visit this url to start MyAAC Installation.
Delete install/ directory if you already installed MyAAC.
Remember to REFRESH this page when you\'re done!');
-}
-
-$found = false;
-if(empty($uri) || isset($_REQUEST['template'])) {
- $_REQUEST['p'] = 'news';
- $found = true;
-}
-else {
- $tmp = strtolower($uri);
- if(!preg_match('/[^A-z0-9_\-]/', $uri) && file_exists(SYSTEM . 'pages/' . $tmp . '.php')) {
- $_REQUEST['p'] = $uri;
- $found = true;
- }
- else {
- $rules = array(
- '/^account\/manage\/?$/' => array('subtopic' => 'accountmanagement'),
- '/^account\/create\/?$/' => array('subtopic' => 'createaccount'),
- '/^account\/lost\/?$/' => array('subtopic' => 'lostaccount'),
- '/^account\/logout\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'logout'),
- '/^account\/password\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_password'),
- '/^account\/register\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'register'),
- '/^account\/register\/new\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'register_new'),
- '/^account\/email\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_email'),
- '/^account\/info\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_info'),
- '/^account\/character\/create\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'create_character'),
- '/^account\/character\/name\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_name'),
- '/^account\/character\/sex\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_sex'),
- '/^account\/character\/delete\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'delete_character'),
- '/^account\/character\/comment\/[A-Za-z0-9-_%+\']+\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_comment', 'name' => '$3'),
- '/^account\/character\/comment\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_comment'),
- '/^account\/confirm_email\/[A-Za-z0-9-_]+\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'confirm_email', 'v' => '$2'),
- '/^characters\/[A-Za-z0-9-_%+\']+$/' => array('subtopic' => 'characters', 'name' => '$1'),
- '/^changelog\/[0-9]+\/?$/' => array('subtopic' => 'changelog', 'page' => '$1'),
- '/^commands\/add\/?$/' => array('subtopic' => 'commands', 'action' => 'add'),
- '/^commands\/edit\/?$/' => array('subtopic' => 'commands', 'action' => 'edit'),
- '/^faq\/add\/?$/' => array('subtopic' => 'faq', 'action' => 'add'),
- '/^faq\/edit\/?$/' => array('subtopic' => 'faq', 'action' => 'edit'),
- '/^forum\/add_board\/?$/' => array('subtopic' => 'forum', 'action' => 'add_board'),#
- '/^forum\/edit_board\/?$/' => array('subtopic' => 'forum', 'action' => 'edit_board'),
- '/^forum\/board\/[0-9]+\/?$/' => array('subtopic' => 'forum', 'action' => 'show_board', 'id' => '$2'),
- '/^forum\/board\/[0-9]+\/[0-9]+\/?$/' => array('subtopic' => 'forum', 'action' => 'show_board', 'id' => '$2', 'page' => '$3'),
- '/^forum\/thread\/[0-9]+\/?$/' => array('subtopic' => 'forum', 'action' => 'show_thread', 'id' => '$2'),
- '/^forum\/thread\/[0-9]+\/[0-9]+\/?$/' => array('subtopic' => 'forum', 'action' => 'show_thread', 'id' => '$2', 'page' => '$3'),
- '/^gallery\/add\/?$/' => array('subtopic' => 'gallery', 'action' => 'add'),
- '/^gallery\/edit\/?$/' => array('subtopic' => 'gallery', 'action' => 'edit'),
- '/^gallery\/[0-9]+\/?$/' => array('subtopic' => 'gallery', 'image' => '$1'),
- '/^gifts\/history\/?$/' => array('subtopic' => 'gifts', 'action' => 'show_history'),
- '/^guilds\/[A-Za-z0-9-_%+\']+$/' => array('subtopic' => 'guilds', 'action' => 'show', 'guild' => '$1'),
- '/^highscores\/[A-Za-z0-9-_]+\/[A-Za-z0-9-_]+\/[0-9]+\/?$/' => array('subtopic' => 'highscores', 'list' => '$1', 'vocation' => '$2', 'page' => '$3'),
- '/^highscores\/[A-Za-z0-9-_]+\/[0-9]+\/?$/' => array('subtopic' => 'highscores', 'list' => '$1', 'page' => '$2'),
- '/^highscores\/[A-Za-z0-9-_]+\/[A-Za-z0-9-_]+\/?$/' => array('subtopic' => 'highscores', 'list' => '$1', 'vocation' => '$2'),
- '/^highscores\/[A-Za-z0-9-_\']+\/?$/' => array('subtopic' => 'highscores', 'list' => '$1'),
- '/^news\/add\/?$/' => array('subtopic' => 'news', 'action' => 'add'),
- '/^news\/edit\/?$/' => array('subtopic' => 'news', 'action' => 'edit'),
- '/^news\/archive\/?$/' => array('subtopic' => 'newsarchive'),
- '/^news\/archive\/[0-9]+\/?$/' => array('subtopic' => 'newsarchive', 'id' => '$2'),
- '/^polls\/[0-9]+\/?$/' => array('subtopic' => 'polls', 'id' => '$1'),
- '/^spells\/[A-Za-z0-9-_%]+\/[A-Za-z0-9-_]+\/?$/' => array('subtopic' => 'spells', 'vocation' => '$1', 'order' => '$2'),
- '/^gifts\/history\/?$/' => array('subtopic' => 'gifts', 'action' => 'show_history'),
- );
-
- foreach($rules as $rule => $redirect) {
- if (preg_match($rule, $uri)) {
- $tmp = explode('/', $uri);
- foreach($redirect as $key => $value) {
-
- if(strpos($value, '$') !== false) {
- $value = str_replace('$' . $value[1], $tmp[$value[1]], $value);
- }
-
- $_REQUEST[$key] = $value;
- $_GET[$key] = $value;
- }
-
- $found = true;
- break;
- }
- }
- }
-}
-
-// define page visited, so it can be used within events system
-$page = isset($_REQUEST['subtopic']) ? $_REQUEST['subtopic'] : (isset($_REQUEST['p']) ? $_REQUEST['p'] : '');
-if(empty($page) || !preg_match('/^[A-z0-9\_\-]+$/', $page)) {
- $tmp = URI;
- if(!empty($tmp)) {
- $page = $tmp;
- }
- else {
- if(!$found)
- $page = '404';
- else
- $page = 'news';
- }
-}
-
-$page = strtolower($page);
-define('PAGE', $page);
-
-$template_place_holders = array();
-
-require_once(SYSTEM . 'init.php');
-require_once(SYSTEM . 'template.php');
-require_once(SYSTEM . 'login.php');
-require_once(SYSTEM . 'status.php');
-
-$twig->addGlobal('config', $config);
-$twig->addGlobal('status', $status);
-
-// database migrations
-$tmp = '';
-if(fetchDatabaseConfig('database_version', $tmp)) { // we got version
- $tmp = (int)$tmp;
- if($tmp < DATABASE_VERSION) { // import if older
- for($i = $tmp + 1; $i <= DATABASE_VERSION; $i++) {
- require(SYSTEM . 'migrations/' . $i . '.php');
- updateDatabaseConfig('database_version', $i);
- }
- }
-}
-else { // register first version
- registerDatabaseConfig('database_version', 0);
- for($i = 1; $i <= DATABASE_VERSION; $i++) {
- require(SYSTEM . 'migrations/' . $i . '.php');
- updateDatabaseConfig('database_version', $i);
- }
-}
-
-// event system
-require_once(SYSTEM . 'hooks.php');
-$hooks = new Hooks();
-$hooks->load();
-$hooks->trigger(HOOK_STARTUP);
-
-// anonymous usage statistics
-// sent only when user agrees
-if(isset($config['anonymous_usage_statistics']) && $config['anonymous_usage_statistics']) {
- $report_time = 30 * 24 * 60 * 60; // report one time per 30 days
- $should_report = true;
-
- $value = '';
- if($cache->enabled() && $cache->fetch('last_usage_report', $value)) {
- $should_report = time() > (int)$value + $report_time;
- }
- else {
- $value = '';
- if(fetchDatabaseConfig('last_usage_report', $value)) {
- $should_report = time() > (int)$value + $report_time;
- if($cache->enabled()) {
- $cache->set('last_usage_report', $value);
- }
- }
- else {
- registerDatabaseConfig('last_usage_report', time() - ($report_time - (7 * 24 * 60 * 60))); // first report after a week
- $should_report = false;
- }
- }
-
- if($should_report) {
- require_once(LIBS . 'usage_statistics.php');
- Usage_Statistics::report();
-
- updateDatabaseConfig('last_usage_report', time());
- if($cache->enabled()) {
- $cache->set('last_usage_report', time());
- }
- }
-}
-
-if($config['views_counter'])
- require_once(SYSTEM . 'counter.php');
-
-if($config['visitors_counter'])
-{
- require_once(SYSTEM . 'libs/visitors.php');
- $visitors = new Visitors($config['visitors_counter_ttl']);
-}
-
-// page content loading
-if(!isset($content[0]))
- $content = '';
-$load_it = true;
-
-// check if site has been closed
-$site_closed = false;
-if(fetchDatabaseConfig('site_closed', $site_closed)) {
- $site_closed = ($site_closed == 1);
- if($site_closed) {
- if(!admin())
- {
- $title = getDatabaseConfig('site_closed_title');
- $content .= '
' . getDatabaseConfig('site_closed_message') . '
Site is under maintenance (closed mode). Only privileged users can see it.
'; - - if($config['backward_support']) - require(SYSTEM . 'compat_pages.php'); - - $ignore = false; - - $logged_access = 1; - if($logged && $account_logged && $account_logged->isLoaded()) { - $logged_access = $account_logged->getAccess(); - } - - $query = - $db->query( - 'SELECT `id`, `title`, `body`, `php`, `hidden`' . - ' FROM `' . TABLE_PREFIX . 'pages`' . - ' WHERE `name` LIKE ' . $db->quote($page) . ' AND `hidden` != 1 AND `access` <= ' . $db->quote($logged_access)); - if($query->rowCount() > 0) // found page - { - $ignore = true; - $query = $query->fetch(); - $title = $query['title']; - - if($query['php'] == '1') // execute it as php code - { - $tmp = substr($query['body'], 0, 10); - if(($pos = strpos($tmp, ' $errno, 'errstr' => $errstr); - } - set_error_handler('error_handler'); - - ob_start(); - eval($tmp); - $content .= ob_get_contents(); - ob_end_clean(); - - restore_error_handler(); - if(isset($php_errors[0]) && superAdmin()) { - var_dump($php_errors); - } - } - else - $content .= $query['body']; // plain html - - if(hasFlag(FLAG_CONTENT_PAGES) || superAdmin()) { - $content = $twig->render('admin.pages.links.html.twig', array( - 'page' => array('id' => $query['id'], 'hidden' => $query['hidden']) - )) . $content; - } - } - else - { - $file = SYSTEM . 'pages/' . $page . '.php'; - if(!@file_exists($file)) - { - $page = '404'; - $file = SYSTEM . 'pages/404.php'; - } - } - - ob_start(); - if($hooks->trigger(HOOK_BEFORE_PAGE)) { - if(!$ignore) - require($file); - } - - if($config['backward_support'] && isset($main_content[0])) - $content .= $main_content; - - $content .= ob_get_contents(); - ob_end_clean(); - $hooks->trigger(HOOK_AFTER_PAGE); -} - -if($config['backward_support']) { - $main_content = $content; - if(!isset($title)) - $title = ucfirst($page); - - $topic = $title; -} - -$title_full = (isset($title) ? $title . $config['title_separator'] : '') . $config['lua']['serverName']; -if(file_exists($template_path . '/index.php')) - require($template_path . '/index.php'); -else if(file_exists($template_path . '/template.php')) // deprecated - require($template_path . '/template.php'); -else if($config['backward_support'] && file_exists($template_path . '/layout.php')) -{ - require($template_path . '/layout.php'); -} -else -{ - // TODO: save more info to log file - die('ERROR: Cannot load template.'); -} - -echo '' . "\n"; -if(($config['debug_level'] & 1) == 1) - echo ''; - -if(($config['debug_level'] & 2) == 2) - echo "\n" . ''; - -if(($config['debug_level'] & 4) == 4 && function_exists('memory_get_peak_usage')) - echo "\n" . ''; - -$hooks->trigger(HOOK_FINISH); -?> + + * @copyright 2017 MyAAC + * @link http://my-aac.org + */ + +// uncomment if your php.ini have display_errors disabled and you want to see errors +// ini_set('display_errors', 1); +// ini_set('display_startup_errors', 1); +// error_reporting(E_ALL); + +require_once('common.php'); +require_once(SYSTEM . 'functions.php'); + +$uri = $_SERVER['REQUEST_URI']; + +$tmp = BASE_DIR; +if(!empty($tmp)) + $uri = str_replace(BASE_DIR . '/', '', $uri); +else + $uri = str_replace_first('/', '', $uri); + +$uri = str_replace(array('index.php/', '?'), '', $uri); +define('URI', $uri); + +if(preg_match("/^[A-Za-z0-9-_%\'+]+\.png$/i", $uri)) { + $tmp = explode('.', $uri); + $_REQUEST['name'] = urldecode($tmp[0]); + + chdir(TOOLS . 'signature'); + include(TOOLS . 'signature/index.php'); + exit(); +} +else if(preg_match("/^(.*)\.(gif|jpg|png|jpeg|tiff|bmp|css|js|less|map|html|php|zip|rar|gz|ttf|woff|ico)$/i", $_SERVER['REQUEST_URI'])) { + header("HTTP/1.0 404 Not Found"); + exit; +} + +require_once(BASE . 'config.local.php'); +if(file_exists(BASE . 'install') && (!isset($config['installed']) || !$config['installed'])) +{ + header('Location: ' . BASE_URL . 'install/'); + die('Setup detected that install/ directory exists. Please visit this url to start MyAAC Installation.' . getDatabaseConfig('site_closed_message') . '
Site is under maintenance (closed mode). Only privileged users can see it.
'; + + if($config['backward_support']) + require(SYSTEM . 'compat_pages.php'); + + $ignore = false; + + $logged_access = 1; + if($logged && $account_logged && $account_logged->isLoaded()) { + $logged_access = $account_logged->getAccess(); + } + + $query = + $db->query( + 'SELECT `id`, `title`, `body`, `php`, `hidden`' . + ' FROM `' . TABLE_PREFIX . 'pages`' . + ' WHERE `name` LIKE ' . $db->quote($page) . ' AND `hidden` != 1 AND `access` <= ' . $db->quote($logged_access)); + if($query->rowCount() > 0) // found page + { + $ignore = true; + $query = $query->fetch(); + $title = $query['title']; + + if($query['php'] == '1') // execute it as php code + { + $tmp = substr($query['body'], 0, 10); + if(($pos = strpos($tmp, ' $errno, 'errstr' => $errstr); + } + set_error_handler('error_handler'); + + ob_start(); + eval($tmp); + $content .= ob_get_contents(); + ob_end_clean(); + + restore_error_handler(); + if(isset($php_errors[0]) && superAdmin()) { + var_dump($php_errors); + } + } + else + $content .= $query['body']; // plain html + + if(hasFlag(FLAG_CONTENT_PAGES) || superAdmin()) { + $content = $twig->render('admin.pages.links.html.twig', array( + 'page' => array('id' => $query['id'], 'hidden' => $query['hidden']) + )) . $content; + } + } + else + { + $file = SYSTEM . 'pages/' . $page . '.php'; + if(!@file_exists($file)) + { + $page = '404'; + $file = SYSTEM . 'pages/404.php'; + } + } + + ob_start(); + if($hooks->trigger(HOOK_BEFORE_PAGE)) { + if(!$ignore) + require($file); + } + + if($config['backward_support'] && isset($main_content[0])) + $content .= $main_content; + + $content .= ob_get_contents(); + ob_end_clean(); + $hooks->trigger(HOOK_AFTER_PAGE); +} + +if($config['backward_support']) { + $main_content = $content; + if(!isset($title)) + $title = ucfirst($page); + + $topic = $title; +} + +$title_full = (isset($title) ? $title . $config['title_separator'] : '') . $config['lua']['serverName']; +if(file_exists($template_path . '/index.php')) + require($template_path . '/index.php'); +else if(file_exists($template_path . '/template.php')) // deprecated + require($template_path . '/template.php'); +else if($config['backward_support'] && file_exists($template_path . '/layout.php')) +{ + require($template_path . '/layout.php'); +} +else +{ + // TODO: save more info to log file + die('ERROR: Cannot load template.'); +} + +echo base64_decode('PCEtLSBQb3dlcmVkIGJ5IE15QUFDIDo6IGh0dHBzOi8vd3d3Lm15LWFhYy5vcmcvIC0tPg==') . PHP_EOL; +if(($config['debug_level'] & 1) == 1) + echo ''; + +if(($config['debug_level'] & 2) == 2) + echo "\n" . ''; + +if(($config['debug_level'] & 4) == 4 && function_exists('memory_get_peak_usage')) + echo "\n" . ''; + +$hooks->trigger(HOOK_FINISH); +?> diff --git a/install/template/template.php b/install/template/template.php index e5422831..5c582703 100644 --- a/install/template/template.php +++ b/install/template/template.php @@ -8,7 +8,7 @@