mirror of
https://github.com/slawkens/myaac.git
synced 2025-04-26 09:19:22 +02:00

* updated forum links to use friendly_urls * some more info will be shown when cannot connect to database * show more error infos when creating character * fixed forum link on newses * fixed spells loading when there's vocation name instead of id * fixed bug when you have changed template but it doesn't exist anymore * fixed vocations with promotion loading * fixed support for gesior pages and templates * added function OTS_Acount:getGroupId()
1 line
6.4 KiB
PHP
1 line
6.4 KiB
PHP
<?php
|
|
/**
|
|
* Project: MyAAC
|
|
* Automatic Account Creator for Open Tibia Servers
|
|
* File: index.php
|
|
*
|
|
* This is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This software is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*
|
|
* @package MyAAC
|
|
* @author Slawkens <slawkens@gmail.com>
|
|
* @copyright 2017 MyAAC
|
|
* @version 0.0.1
|
|
* @link http://my-aac.org
|
|
*/
|
|
|
|
require_once('common.php');
|
|
require_once(BASE . 'config.local.php');
|
|
|
|
if(file_exists(BASE . 'install') && (!isset($config['installed']) || !$config['installed']))
|
|
{
|
|
header('Location: ' . BASE_DIR . '/install/');
|
|
die('Setup detected that <b>install/</b> directory exists. Please visit <a href="' . BASE_DIR . '/install">this</a> url to start MyAAC Installation.<br/>Delete <b>install/</b> directory if you already installed MyAAC.<br/>Remember to REFRESH this page when you\'re done!');
|
|
}
|
|
|
|
// define page visited, so it can be used within events system
|
|
$page = isset($_REQUEST['subtopic']) ? $_REQUEST['subtopic'] : (isset($_GET['p']) ? $_GET['p'] : '');
|
|
if(empty($page) || preg_match('/[^A-z0-9_\-]/', $page))
|
|
$page = 'news';
|
|
|
|
$page = strtolower($page);
|
|
define('PAGE', $page);
|
|
|
|
$template_place_holders = array();
|
|
|
|
// event system
|
|
require_once(SYSTEM . 'events.php');
|
|
$events = new Events();
|
|
$events->trigger('STARTUP');
|
|
|
|
require_once(SYSTEM . 'functions.php');
|
|
require_once(SYSTEM . 'init.php');
|
|
require_once(SYSTEM . 'login.php');
|
|
require_once(SYSTEM . 'status.php');
|
|
require_once(SYSTEM . 'template.php');
|
|
|
|
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
|
|
if($config['site_closed'])
|
|
{
|
|
if(!admin())
|
|
{
|
|
$title = $config['site_closed_title'];
|
|
$content .= $config['site_closed_message'];
|
|
$load_it = false;
|
|
}
|
|
|
|
if(!$logged)
|
|
{
|
|
ob_start();
|
|
require(SYSTEM . 'pages/accountmanagement.php');
|
|
$content .= ob_get_contents();
|
|
ob_end_clean();
|
|
$load_it = false;
|
|
}
|
|
}
|
|
|
|
if($config['backward_support']) {
|
|
// backward support for gesior
|
|
define('INITIALIZED', true);
|
|
$SQL = $db;
|
|
$layout_header = template_header();
|
|
$layout_name = $template_path;
|
|
$main_content = $content;
|
|
$config['access_admin_panel'] = 2;
|
|
$group_id_of_acc_logged = 0;
|
|
if($logged && $account_logged)
|
|
$group_id_of_acc_logged = $account_logged->getGroupId();
|
|
|
|
$config['site'] = &$config;
|
|
$config['server'] = &$config['lua'];
|
|
//$config['gifts_system'] = ($config['site']['shop_system'] == 1);
|
|
$config['site']['shop_system'] = $config['gifts_system'];
|
|
|
|
$config['serverinfo_page'] = 1;
|
|
$config['download_page'] = 1;
|
|
|
|
if($config['forum'] != '')
|
|
$config['forum_link'] = (strtolower($config['forum']) == 'site' ? internalLayoutLink('forum') : $config['forum']);
|
|
}
|
|
|
|
if($load_it)
|
|
{
|
|
if($config['site_closed'] && admin())
|
|
$content .= '<p class="note">Site is under maintenance (closed mode). Only privileged users can see it.</p>';
|
|
|
|
if($config['backward_support'])
|
|
require(SYSTEM . 'compat_pages.php');
|
|
|
|
$ignore = false;
|
|
$file = SYSTEM . 'pages/' . $page . '.php';
|
|
if(!@file_exists($file))
|
|
{
|
|
$logged_access = 0;
|
|
if($logged && $account_logged && $account_logged->isLoaded()) {
|
|
$logged_access = $account_logged->getAccess();
|
|
}
|
|
|
|
$query =
|
|
$db->query(
|
|
'SELECT `title`, `body`, `php`' .
|
|
' 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, '<?php')) !== false) {
|
|
$tmp = preg_replace('/<\?php/', '', $query['body'], 1);
|
|
}
|
|
else if(($pos = strpos($tmp, '<?')) !== false) {
|
|
$tmp = preg_replace('/<\?/', '', $query['body'], 1);
|
|
}
|
|
else
|
|
$tmp = $query['body'];
|
|
|
|
$php_errors = array();
|
|
function error_handler($errno, $errstr) {
|
|
global $php_errors;
|
|
$php_errors[] = array('errno' => $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
|
|
}
|
|
else
|
|
{
|
|
$page = '404';
|
|
$file = SYSTEM . 'pages/404.php';
|
|
}
|
|
}
|
|
|
|
ob_start();
|
|
if($events->trigger('BEFORE_PAGE'))
|
|
{
|
|
if(!$ignore)
|
|
require($file);
|
|
}
|
|
|
|
if($config['backward_support'] && isset($main_content))
|
|
$content .= $main_content;
|
|
|
|
$content .= ob_get_contents();
|
|
ob_end_clean();
|
|
$events->trigger('AFTER_PAGE');
|
|
}
|
|
|
|
$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 '<!-- MyAAC ' . MYAAC_VERSION . ' :: http://www.my-aac.org/ -->' . "\n";
|
|
if(($config['debug_level'] & 1) == 1)
|
|
echo '<!-- Generated in :: ' . round(microtime(true) - START_TIME, 4) . ' -->';
|
|
|
|
if(($config['debug_level'] & 2) == 2)
|
|
echo "\n" . '<!-- Queries done :: ' . $db->queries() . ' -->';
|
|
|
|
if(($config['debug_level'] & 4) == 4 && function_exists('memory_get_peak_usage'))
|
|
echo "\n" . '<!-- Peak memory usage: ' . convert_bytes(memory_get_peak_usage(true)) . ' -->';
|
|
|
|
$events->trigger('FINISH');
|
|
?>
|