mirror of
https://github.com/slawkens/myaac.git
synced 2025-04-26 09:19:22 +02:00
* ask user for timezone on install
* remember status of the installation * moved clients list to the new file * verify if client and timezone is correct on install
This commit is contained in:
parent
4d690992ac
commit
6528a4a60c
2
TODO
2
TODO
@ -31,7 +31,7 @@ At any time between (version not specified):
|
||||
* update account.management page to be more realistic (like on tibia.com)
|
||||
* update guilds page to be more realistic (like on tibia.com)
|
||||
* possibility to add extra cache engines with plugins
|
||||
* preferably configurable (enable/disable) forum TinyMCE editor
|
||||
* new cache engine - plain php, is good with pure php 7.0+ and opcache
|
||||
* preferably configurable (enable/disable) forum TinyMCE editor
|
||||
* OTAdmin support in Admin Panel
|
||||
* database towns table support for TFS 1.3
|
@ -5,6 +5,7 @@ require('../common.php');
|
||||
require(SYSTEM . 'functions.php');
|
||||
require(BASE . 'install/includes/functions.php');
|
||||
require(BASE . 'install/includes/locale.php');
|
||||
require(SYSTEM . 'clients.conf.php');
|
||||
|
||||
if(file_exists(BASE . 'config.local.php'))
|
||||
require(BASE . 'config.local.php');
|
||||
@ -19,20 +20,39 @@ $twig = new Twig_Environment($twig_loader, array(
|
||||
'auto_reload' => true
|
||||
));
|
||||
|
||||
if(isset($_POST['vars']))
|
||||
{
|
||||
foreach($_POST['vars'] as $key => $value)
|
||||
$_SESSION['var_' . $key] = $value;
|
||||
}
|
||||
|
||||
// step
|
||||
// load installation status
|
||||
$step = isset($_POST['step']) ? $_POST['step'] : 'welcome';
|
||||
|
||||
$install_status = array();
|
||||
if(file_exists(CACHE . 'install.txt')) {
|
||||
$install_status = unserialize(file_get_contents(CACHE . 'install.txt'));
|
||||
|
||||
if(!isset($_POST['step'])) {
|
||||
$step = isset($install_status['step']) ? $install_status['step'] : '';
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_POST['vars']))
|
||||
{
|
||||
foreach($_POST['vars'] as $key => $value) {
|
||||
$_SESSION['var_' . $key] = $value;
|
||||
$install_status[$key] = $value;
|
||||
}
|
||||
}
|
||||
else {
|
||||
foreach($install_status as $key => $value) {
|
||||
$_SESSION['var_' . $key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
// step verify
|
||||
$steps = array(1 => 'welcome', 2 => 'license', 3 => 'requirements', 4 => 'config', 5 => 'database', 6 => 'admin', 7 => 'finish');
|
||||
if(!in_array($step, $steps)) // check if step is valid
|
||||
die('ERROR: Unknown step.');
|
||||
|
||||
$install_status['step'] = $step;
|
||||
$errors = array();
|
||||
|
||||
if($step == 'database') {
|
||||
foreach($_SESSION as $key => $value) {
|
||||
if(strpos($key, 'var_') === false || strpos($key, 'account') !== false || strpos($key, 'password') !== false) {
|
||||
@ -40,34 +60,40 @@ if($step == 'database') {
|
||||
}
|
||||
|
||||
$key = str_replace('var_', '', $key);
|
||||
if($key != 'usage' && empty($value))
|
||||
{
|
||||
|
||||
if($key != 'usage' && empty($value)) {
|
||||
$errors[] = $locale['please_fill_all'];
|
||||
break;
|
||||
}
|
||||
else if($key == 'server_path')
|
||||
{
|
||||
else if($key == 'server_path') {
|
||||
$config['server_path'] = $value;
|
||||
|
||||
// take care of trailing slash at the end
|
||||
if($config['server_path'][strlen($config['server_path']) - 1] != '/')
|
||||
if($config['server_path'][strlen($config['server_path']) - 1] != '/') {
|
||||
$config['server_path'] .= '/';
|
||||
}
|
||||
|
||||
if(!file_exists($config['server_path'] . 'config.lua')) {
|
||||
$errors[] = $locale['step_database_error_config'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if($key == 'mail_admin' && !Validator::email($value))
|
||||
{
|
||||
else if($key == 'mail_admin' && !Validator::email($value)) {
|
||||
$errors[] = $locale['step_config_mail_admin_error'];
|
||||
break;
|
||||
}
|
||||
else if($key == 'mail_address' && !Validator::email($value))
|
||||
{
|
||||
else if($key == 'mail_address' && !Validator::email($value)) {
|
||||
$errors[] = $locale['step_config_mail_address_error'];
|
||||
break;
|
||||
}
|
||||
else if($key == 'timezone' && !in_array($value, DateTimeZone::listIdentifiers())) {
|
||||
$errors[] = $locale['step_config_timezone_error'];
|
||||
break;
|
||||
}
|
||||
else if($key == 'client' && !in_array($value, $config['clients'])) {
|
||||
$errors[] = $locale['step_config_client_error'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($errors)) {
|
||||
@ -117,6 +143,10 @@ else if($step == 'finish') {
|
||||
}
|
||||
}
|
||||
|
||||
if(empty($errors)) {
|
||||
file_put_contents(CACHE . 'install.txt', serialize($install_status));
|
||||
}
|
||||
|
||||
$error = false;
|
||||
|
||||
clearstatcache();
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
if(isset($config['installed']) && $config['installed'] && !isset($_SESSION['saved'])) {
|
||||
if(isset($config['installed']) && $config['installed'] && !isset($_SESSION['saved']) && !isset($install_status['step'])) {
|
||||
echo '<p class="warning">' . $locale['already_installed'] . '</p>';
|
||||
}
|
||||
else {
|
||||
|
@ -1,74 +1,8 @@
|
||||
<?php
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
||||
$clients_list = array(
|
||||
710,
|
||||
740,
|
||||
750,
|
||||
760,
|
||||
770,
|
||||
772,
|
||||
780,
|
||||
792,
|
||||
800,
|
||||
810,
|
||||
821,
|
||||
822,
|
||||
831,
|
||||
840,
|
||||
841,
|
||||
842,
|
||||
850,
|
||||
852,
|
||||
853,
|
||||
854,
|
||||
855,
|
||||
857,
|
||||
860,
|
||||
870,
|
||||
|
||||
900,
|
||||
910,
|
||||
920,
|
||||
930,
|
||||
940,
|
||||
942,
|
||||
944,
|
||||
946,
|
||||
950,
|
||||
952,
|
||||
953,
|
||||
954,
|
||||
960,
|
||||
970,
|
||||
980,
|
||||
|
||||
1000,
|
||||
1010,
|
||||
1021,
|
||||
1031,
|
||||
1034,
|
||||
1041,
|
||||
1050,
|
||||
1053,
|
||||
1054,
|
||||
1058,
|
||||
1075,
|
||||
1077,
|
||||
1079,
|
||||
1080,
|
||||
1090,
|
||||
1093,
|
||||
1094,
|
||||
1095,
|
||||
1096,
|
||||
1097,
|
||||
1098,
|
||||
1100,
|
||||
);
|
||||
|
||||
$clients = array();
|
||||
foreach($clients_list as $client) {
|
||||
foreach($config['clients'] as $client) {
|
||||
$client_version = (string)($client / 100);
|
||||
if(strpos($client_version, '.') == false)
|
||||
$client_version .= '.0';
|
||||
@ -78,6 +12,7 @@ foreach($clients_list as $client) {
|
||||
|
||||
echo $twig->render('install.config.html.twig', array(
|
||||
'clients' => $clients,
|
||||
'timezones' => DateTimeZone::listIdentifiers(),
|
||||
'locale' => $locale,
|
||||
'session' => $_SESSION,
|
||||
'errors' => isset($errors) ? $errors : null,
|
||||
|
@ -15,6 +15,10 @@ if(!$error) {
|
||||
$content .= PHP_EOL;
|
||||
$content .= '// place for your configuration directives, so you can later easily update myaac';
|
||||
$content .= PHP_EOL;
|
||||
$content .= '$config[\'installed\'] = true;';
|
||||
$content .= PHP_EOL;
|
||||
$content .= '$config[\'mail_enabled\'] = true;';
|
||||
$content .= PHP_EOL;
|
||||
foreach($_SESSION as $key => $value)
|
||||
{
|
||||
if(strpos($key, 'var_') !== false)
|
||||
@ -23,14 +27,14 @@ if(!$error) {
|
||||
{
|
||||
$value = str_replace("\\", "/", $value);
|
||||
if($value[strlen($value) - 1] != '/')
|
||||
$value .= "/";
|
||||
$value .= '/';
|
||||
}
|
||||
|
||||
if($key == 'var_usage') {
|
||||
$content .= '$config[\'anonymous_usage_statistics\'] = ' . ((int)$value == 1 ? 'true' : 'false') . ';';
|
||||
$content .= PHP_EOL;
|
||||
}
|
||||
else if($key != 'var_account' && $key != 'var_account_id' && $key != 'var_password') {
|
||||
else if($key != 'var_account' && $key != 'var_account_id' && $key != 'var_password' && $key != 'var_step') {
|
||||
$content .= '$config[\'' . str_replace('var_', '', $key) . '\'] = \'' . $value . '\';';
|
||||
$content .= PHP_EOL;
|
||||
}
|
||||
@ -224,11 +228,6 @@ if(!$error) {
|
||||
}
|
||||
|
||||
if(!$error) {
|
||||
$content .= '$config[\'installed\'] = true;';
|
||||
$content .= PHP_EOL;
|
||||
|
||||
$content .= '$config[\'mail_enabled\'] = true;';
|
||||
$content .= PHP_EOL;
|
||||
if(!Validator::email($_SESSION['var_mail_admin'])) {
|
||||
error($locale['step_config_mail_admin_error']);
|
||||
$error = true;
|
||||
|
@ -235,6 +235,9 @@ else {
|
||||
unset($_SESSION[$key]);
|
||||
}
|
||||
unset($_SESSION['saved']);
|
||||
if(file_exists(CACHE . 'install.txt')) {
|
||||
unlink(CACHE . 'install.txt');
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
78
system/clients.conf.php
Normal file
78
system/clients.conf.php
Normal file
@ -0,0 +1,78 @@
|
||||
<?php
|
||||
/**
|
||||
* List of clients
|
||||
*
|
||||
* @package MyAAC
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
||||
$config['clients'] = array(
|
||||
710,
|
||||
740,
|
||||
750,
|
||||
760,
|
||||
770,
|
||||
772,
|
||||
780,
|
||||
792,
|
||||
|
||||
800,
|
||||
810,
|
||||
821,
|
||||
822,
|
||||
831,
|
||||
840,
|
||||
841,
|
||||
842,
|
||||
850,
|
||||
852,
|
||||
853,
|
||||
854,
|
||||
855,
|
||||
857,
|
||||
860,
|
||||
870,
|
||||
|
||||
900,
|
||||
910,
|
||||
920,
|
||||
930,
|
||||
940,
|
||||
942,
|
||||
944,
|
||||
946,
|
||||
950,
|
||||
952,
|
||||
953,
|
||||
954,
|
||||
960,
|
||||
970,
|
||||
980,
|
||||
|
||||
1000,
|
||||
1010,
|
||||
1021,
|
||||
1031,
|
||||
1034,
|
||||
1041,
|
||||
1050,
|
||||
1053,
|
||||
1054,
|
||||
1058,
|
||||
1075,
|
||||
1077,
|
||||
1079,
|
||||
1080,
|
||||
1090,
|
||||
1093,
|
||||
1094,
|
||||
1095,
|
||||
1096,
|
||||
1097,
|
||||
1098,
|
||||
1100,
|
||||
);
|
||||
?>
|
@ -14,8 +14,7 @@ if(file_exists(BASE . 'config.local.php')) // user customizations
|
||||
require(BASE . 'config.local.php');
|
||||
|
||||
if(!isset($config['installed']) || !$config['installed']) {
|
||||
header('Location: ' . BASE_URL);
|
||||
die('AAC has not been installed yet or there was error during installation. Please install again.');
|
||||
die('MyAAC has not been installed yet or there was error during installation. Please install again.');
|
||||
}
|
||||
|
||||
date_default_timezone_set($config['date_timezone']);
|
||||
|
@ -48,8 +48,12 @@ $locale['step_config_mail_admin_error'] = 'Admin E-Mail is not correct.';
|
||||
$locale['step_config_mail_address'] = 'Server E-Mail';
|
||||
$locale['step_config_mail_address_desc'] = 'Address which will be used for outgoing emails (from:), for example no-reply@your-server.org';
|
||||
$locale['step_config_mail_address_error'] = 'Server E-Mail is not correct.';
|
||||
$locale['step_config_timezone'] = 'Timezone';
|
||||
$locale['step_config_timezone_desc'] = 'Used for date functions';
|
||||
$locale['step_config_timezone_error'] = 'Timezone is not correct.';
|
||||
$locale['step_config_client'] = 'Client version';
|
||||
$locale['step_config_client_desc'] = 'Used for download page and some templates';
|
||||
$locale['step_config_client_error'] = 'Client is not correct.';
|
||||
$locale['step_config_usage'] = 'Usage Statistics';
|
||||
$locale['step_config_usage_desc'] = 'Allow MyAAC to report anonymous usage statistics? The data is sent only once per 30 days and is fully confidential.';
|
||||
|
||||
|
@ -15,6 +15,22 @@
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
<tr>
|
||||
<td>
|
||||
<label for="vars_date_timezone">
|
||||
<span>{{ locale.step_config_timezone }}</span>
|
||||
</label>
|
||||
<br/>
|
||||
<select name="vars[date_timezone]" id="vars_date_timezone">
|
||||
{% for timezone in timezones %}
|
||||
<option value="{{ timezone }}"{% if (session['var_date_timezone'] is not null and session['var_date_timezone'] == timezone) or (session['var_date_timezone'] is null and timezone == 'Europe/Berlin') %} selected{% endif %}>{{ timezone }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<em>{{ locale.step_config_timezone_desc }}</em>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="vars_client">
|
||||
|
Loading…
x
Reference in New Issue
Block a user