From 0a82f306f6f38ece9bcc33b3010b0c83f4bd6308 Mon Sep 17 00:00:00 2001 From: slawkens Date: Tue, 10 Oct 2017 15:32:59 +0200 Subject: [PATCH] * moved admin pages to twig * edited account.management.html.twig to fit modern templates, tibiacom have its own template * sample characters are now assigned to admin account and have group_id 4 to not be shown on highscores * fixed database pages loading * added require.database plugin option, which will prove if DATABASE_VERSION is enough --- index.php | 19 +- install/steps/finish.php | 10 +- system/libs/pot/OTS_Account.php | 3 + system/login.php | 1 + system/pages/accountmanagement.php | 34 +- system/pages/admin/pages.php | 166 +---- system/pages/admin/plugins.php | 16 +- system/templates/account.management.html.twig | 618 +++--------------- system/templates/admin.pages.form.html.twig | 107 +++ system/templates/admin.pages.html.twig | 27 + .../tibiacom/account.management.html.twig | 531 +++++++++++++++ 11 files changed, 837 insertions(+), 695 deletions(-) create mode 100644 system/templates/admin.pages.form.html.twig create mode 100644 system/templates/admin.pages.html.twig create mode 100644 templates/tibiacom/account.management.html.twig diff --git a/index.php b/index.php index 0ba8d6f6..2aedfeb8 100644 --- a/index.php +++ b/index.php @@ -50,11 +50,14 @@ else $uri = str_replace(array('index.php/', '?'), '', $uri); $uri = strtolower($uri); +$found = false; if(empty($uri) || isset($_REQUEST['template'])) { $_REQUEST['p'] = 'news'; + $found = true; } else if(file_exists(SYSTEM . 'pages/' . $uri . '.php')) { $_REQUEST['p'] = $uri; + $found = true; } else { $rules = array( @@ -100,7 +103,6 @@ else { exit(); } - $found = false; foreach($rules as $rule => $redirect) { if (preg_match($rule, $uri)) { $tmp = explode('/', $uri); @@ -118,15 +120,18 @@ else { } } - if(!$found) { - $_REQUEST['p'] = '404'; - } + if(!$found) + $_REQUEST['p'] = $uri; } // 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)) - $page = 'news'; +if(empty($page) || preg_match('/[^A-z0-9_\-]/', $page)) { + if(!$found) + $page = '404'; + else + $page = 'news'; +} $page = strtolower($page); define('PAGE', $page); @@ -306,7 +311,7 @@ if($load_it) else { $file = SYSTEM . 'pages/' . $page . '.php'; - if(!@file_exists($file)) + if(!@file_exists($file) && !$found) { $page = '404'; $file = SYSTEM . 'pages/404.php'; diff --git a/install/steps/finish.php b/install/steps/finish.php index a8c590f4..ab4e7c94 100644 --- a/install/steps/finish.php +++ b/install/steps/finish.php @@ -146,31 +146,31 @@ INSERT INTO `myaac_news` (`id`, `type`, `date`, `category`, `title`, `body`, `pl $query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Rook Sample')); if($query->rowCount() == 0) { - if(!query($insert_into_players . "(null, 'Rook Sample', 1, 1, 1, 0, 150, 150, 4200, 118, 114, 38, 57, 130, 0, 0, 0, 0, 100, 11, 2200, 1298, 7, '', 400, 1, 1255179613, 2453925456, 1, 1255179614, 0, 0, UNIX_TIMESTAMP(), 1, '');")) + if(!query($insert_into_players . "(null, 'Rook Sample', 4, " . $_SESSION['account'] . ", 1, 0, 150, 150, 4200, 118, 114, 38, 57, 130, 0, 0, 0, 0, 100, 11, 2200, 1298, 7, '', 400, 1, 1255179613, 2453925456, 1, 1255179614, 0, 0, UNIX_TIMESTAMP(), 1, '');")) $success = false; } $query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Sorcerer Sample')); if($query->rowCount() == 0) { - if(!query($insert_into_players . "(null, 'Sorcerer Sample', 1, 1, 8, 1, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179571, 2453925456, 1, 1255179612, 0, 0, UNIX_TIMESTAMP(), 1, '');")) + if(!query($insert_into_players . "(null, 'Sorcerer Sample', 4, " . $_SESSION['account'] . ", 8, 1, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179571, 2453925456, 1, 1255179612, 0, 0, UNIX_TIMESTAMP(), 1, '');")) $success = false; } $query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Druid Sample')); if($query->rowCount() == 0) { - if(!query($insert_into_players . "(null, 'Druid Sample', 1, 1, 8, 2, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179655, 2453925456, 1, 1255179658, 0, 0, UNIX_TIMESTAMP(), 1, '');")) + if(!query($insert_into_players . "(null, 'Druid Sample', 4, " . $_SESSION['account'] . ", 8, 2, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179655, 2453925456, 1, 1255179658, 0, 0, UNIX_TIMESTAMP(), 1, '');")) $success = false; } $query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Paladin Sample')); if($query->rowCount() == 0) { - if(!query($insert_into_players . "(null, 'Paladin Sample', 1, 1, 8, 3, 185, 185, 4200, 118, 114, 38, 57, 129, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179854, 2453925456, 1, 1255179858, 0, 0, UNIX_TIMESTAMP(), 1, '');")) + if(!query($insert_into_players . "(null, 'Paladin Sample', 4, " . $_SESSION['account'] . ", 8, 3, 185, 185, 4200, 118, 114, 38, 57, 129, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179854, 2453925456, 1, 1255179858, 0, 0, UNIX_TIMESTAMP(), 1, '');")) $success = false; } $query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Knight Sample')); if($query->rowCount() == 0) { - if(!query($insert_into_players . "(null, 'Knight Sample', 1, 1, 8, 4, 185, 185, 4200, 118, 114, 38, 57, 131, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179620, 2453925456, 1, 1255179654, 0, 0, UNIX_TIMESTAMP(), 1, '');")) + if(!query($insert_into_players . "(null, 'Knight Sample', 4, " . $_SESSION['account'] . ", 8, 4, 185, 185, 4200, 118, 114, 38, 57, 131, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179620, 2453925456, 1, 1255179654, 0, 0, UNIX_TIMESTAMP(), 1, '');")) $success = false; } diff --git a/system/libs/pot/OTS_Account.php b/system/libs/pot/OTS_Account.php index 6f6b0bf4..d32e38ce 100644 --- a/system/libs/pot/OTS_Account.php +++ b/system/libs/pot/OTS_Account.php @@ -334,6 +334,9 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable throw new E_OTS_NotLoaded(); } + if($this->data['lastday'] == 0) + return 0; + return round(($this->data['lastday'] - time()) / (24 * 60 * 60), 3); //return $this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday'])); } diff --git a/system/login.php b/system/login.php index d5375e6b..b5a850f0 100644 --- a/system/login.php +++ b/system/login.php @@ -138,6 +138,7 @@ else if($logged) { $logged_flags = $account_logged->getWebFlags(); + $twig->addGlobal('logged', true); $twig->addGlobal('account_logged', $account_logged); } } diff --git a/system/pages/accountmanagement.php b/system/pages/accountmanagement.php index 8511d4c4..afe2bdf0 100644 --- a/system/pages/accountmanagement.php +++ b/system/pages/accountmanagement.php @@ -64,7 +64,7 @@ $errors = array(); else { if($config['generate_new_reckey'] && $config['mail_enabled']) - $account_registered = 'Yes ( Buy new Recovery Key )'; + $account_registered = 'Yes ( Buy new Recovery Key )'; else $account_registered = 'Yes'; } @@ -105,18 +105,6 @@ $errors = array(); $players = array(); $account_players = $account_logged->getPlayersList(); $account_players->orderBy('id'); - //show list of players on account - foreach($account_players as $player) - { - $players[] = array( - 'name' => $player->getName(), - 'name_encoded' => urlencode($player->getName()), - 'deleted' => $player->isDeleted(), - 'level' => $player->getLevel(), - 'vocation' => $config['vocations'][$player->getVocation()], - 'online' => $player->isOnline() - ); - } echo $twig->render('account.management.html.twig', array( 'welcome_message' => $welcome_message, @@ -133,7 +121,7 @@ $errors = array(); 'account_rlname' => $account_rlname, 'account_location' => $account_location, 'actions' => $actions, - 'players' => $players + 'players' => $account_players )); } //########### CHANGE PASSWORD ########## @@ -147,31 +135,31 @@ $errors = array(); else { if(empty($new_password) || empty($new_password2) || empty($old_password)){ - $show_msgs[] = "Please fill in form."; + $errors[] = "Please fill in form."; } $password_strlen = strlen($new_password); if($new_password != $new_password2) { - $show_msgs[] = "The new passwords do not match!"; + $errors[] = "The new passwords do not match!"; } else if($password_strlen < 8) { - $show_msgs[] = "New password minimal length is 8 characters."; + $errors[] = "New password minimal length is 8 characters."; } else if($password_strlen > 32) { - $show_msgs[] = "New password maximal length is 32 characters."; + $errors[] = "New password maximal length is 32 characters."; } - if(empty($show_msgs)) { + if(empty($errors)) { if(!check_password($new_password)) { - $show_msgs[] = "New password contains illegal chars (a-z, A-Z and 0-9 only!). Minimum password length is 7 characters and maximum 32."; + $errors[] = "New password contains illegal chars (a-z, A-Z and 0-9 only!). Minimum password length is 7 characters and maximum 32."; } $old_password = encrypt(($config_salt_enabled ? $account_logged->getCustomField('salt') : '') . $old_password); if($old_password != $account_logged->getPassword()) { - $show_msgs[] = "Current password is incorrect!"; + $errors[] = "Current password is incorrect!"; } } - if(!empty($show_msgs)){ + if(!empty($errors)){ //show errors - echo $twig->render('error_box.html.twig', array('errors' => $show_msg)); + echo $twig->render('error_box.html.twig', array('errors' => $errors)); //show form echo $twig->render('account.change_password.html.twig'); diff --git a/system/pages/admin/pages.php b/system/pages/admin/pages.php index c41c62a6..85181857 100644 --- a/system/pages/admin/pages.php +++ b/system/pages/admin/pages.php @@ -26,7 +26,7 @@ $access = 0; if(!empty($action)) { if($action == 'delete' || $action == 'edit' || $action == 'hide') - $id = $_REQUEST['id']; + $id = $_REQUEST['id']; if(isset($_REQUEST['name'])) $name = $_REQUEST['name']; @@ -83,147 +83,35 @@ if(!empty($action)) if(!empty($errors)) echo $twig->render('error_box.html.twig', array('errors' => $errors)); } -?> - - - - - -
- - - - - - - - - - -
page
- - - - - - - - - - - - - - - - - - - - - - - - - -
Link/name:
Title:
PHP:/>
Content: - - -
- [Hide] - [Show] - -
Access: - -
- -
-
-
- - - - - - -query('SELECT * FROM ' . $db->tableName(TABLE_PREFIX . 'pages')); -$i = 0; -foreach($pages as $_page): ?> - - - - - - -
NameTitleOptions
- - - Edit - - - - Delete - - - - - -
+$pages = array(); +foreach($query as $_page) { + $pages[] = array( + 'link' => getFullLink($_page['name'], $_page['name']), + 'title' => substr($_page['title'], 0, 20), + 'id' => $_page['id'], + 'hidden' => $_page['hidden'] + ); +} + +echo $twig->render('admin.pages.form.html.twig', array( + 'action' => $action, + 'id' => $action == 'edit' ? $id : null, + 'name' => $name, + 'title' => $p_title, + 'php' => $php, + 'body' => isset($body) ? htmlentities($body, ENT_COMPAT, 'UTF-8') : '', + 'groups' => $groups->getGroups(), + 'access' => $access +)); + +echo $twig->render('admin.pages.html.twig', array( + 'pages' => $pages +)); -select(TABLE_PREFIX . 'pages', array('name' => $name)); if($query === false) - $db->insert(TABLE_PREFIX . 'pages', array('name' => $name, 'title' => $title, 'body' => $body, 'player_id' => $player_id, 'php' => $php, 'access' => $access)); + $db->insert(TABLE_PREFIX . 'pages', array('name' => $name, 'title' => $title, 'body' => $body, 'player_id' => $player_id, 'php' => $php ? '1' : '0', 'access' => $access)); else $errors[] = 'Page with this words already exists.'; } diff --git a/system/pages/admin/plugins.php b/system/pages/admin/plugins.php index a9bab2e1..9085e853 100644 --- a/system/pages/admin/plugins.php +++ b/system/pages/admin/plugins.php @@ -132,21 +132,29 @@ else if(isset($_FILES["plugin"]["name"])) if(isset($plugin['require'])) { $require = $plugin['require']; - $require_myaac = $require['myaac']; - if(isset($require_myaac)) { + if(isset($require['myaac'])) { + $require_myaac = $require['myaac']; if(version_compare(MYAAC_VERSION, $require_myaac, '<')) { warning("This plugin requires MyAAC version " . $require_myaac . ", you're using version " . MYAAC_VERSION . " - please update."); $continue = false; } } - $require_php = $require['php']; - if(isset($require_php)) { + if(isset($require['php'])) { + $require_php = $require['php']; if(version_compare(phpversion(), $require_php, '<')) { warning("This plugin requires PHP version " . $require_php . ", you're using version " . phpversion() . " - please update."); $continue = false; } } + + if(isset($require['database'])) { + $require_database = $require['database']; + if($require_database < DATABASE_VERSION) { + warning("This plugin requires database version " . $require_database . ", you're using version " . DATABASE_VERSION . " - please update."); + $continue = false; + } + } } if($continue) { diff --git a/system/templates/account.management.html.twig b/system/templates/account.management.html.twig index 070b385f..30f042d5 100644 --- a/system/templates/account.management.html.twig +++ b/system/templates/account.management.html.twig @@ -1,531 +1,115 @@ -
-
-
-
-
-
-
-
- - - - - -
- - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - - - - -
- - {{ welcome_message }}
-
-
+

My account

+

Welcome to your account page, {{ account }}
+ You have {{ account_logged.getPremDays() }} days remaining premium account.

+ {# if account dont have recovery key show hint #} {% if recovery_key is empty %} -
-
-
-
-
-
-
-
- - - - - -
Hint:You can register your account for increased protection. Click on "Register Account" and get your free recovery key today!
-
- - - - - - -
-
-
-
-
-
-
-
-
-
-
+
+ You can register your account for increased protection. Click on "Register Account" and get your free recovery key today!
+
+ +

{% endif %} {% if email_request %} -
-
-
-
-
-
-
-
- - - - - -
Note:A request has been submitted to change the email address of this account to {{ email_new }}. After {{ email_new_time|date("j F Y, G:i:s") }} you can accept the new email address and finish the process. Please cancel the request if you do not want your email address to be changed! Also cancel the request if you have no access to the new email address!
-
- - - - - - -
-
-
-
-
-
-
-
-
-
+
+ A request has been submitted to change the email address of this account to {{ email_new }}. After {{ email_new_time|date("j F Y, G:i:s") }} you can accept the new email address and finish the process. Please cancel the request if you do not want your email address to be changed! Also cancel the request if you have no access to the new email address! + +
+ +
-


{% endif %} - -
-
- - - -
-
-
- -
-
- - - - -
General Information
- - - - -
-
- - - -
-
- - - - - - - -
-
-
-
-
-
- - - - - - - - - - - - - - - - - - {% autoescape false %} - - - - - - - - - {% endautoescape %} -
Account {% if constant('USE_ACCOUNT_NAME') %}Name{% else %}Number{% endif %}:{{ account }}
Email Address:{{ account_email ~ email_change}}
Created:{{ account_created|date("j F Y, G:i:s") }}
Last Login:{{ "now"|date("j F Y, G:i:s") }}
Account Status:{{ account_status }}
Registered:{{ account_registered }}
-
-
-
-
-
-
-
-
- - - - - - {# show button "register account" #} - {% if recovery_key is empty %} - - {% endif %} - -
- - - - - - -
-
-
-
-
- - - - - - -
- - -
-
-
-
- - - - - - -
-
-
-
-
-
-
-
-
+

General Information

+ + + + + + + + + + + + + + + + + + {% autoescape false %} + + + + + + + + + {% endautoescape %} +
Account {% if constant('USE_ACCOUNT_NAME') %}Name{% else %}Number{% endif %}:{{ account }}
Email Address:{{ account_email ~ email_change}}
Created:{{ account_created|date("j F Y, G:i:s") }}
Last Login:{{ "now"|date("j F Y, G:i:s") }}
Account Status:{{ account_status }}
Registered:{{ account_registered }}

- -
-
- - - -
-
-
- -
-
- - - - -
Public Information
- - - - -
-
- - - -
-
- - - - -
-
-
-
-
-
- - - - - -
- - - - - - - - - -
Real Name:{{ account_rlname }}
Location:{{ account_location }}
-
- - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+

Action Log

+ + + + + {% autoescape false %} + {% set i = 0 %} + {% for action in actions %} + {% set i = i + 1 %} + + + + + + {% endfor %} + {% endautoescape %} +
ActionDateIP
{{ action.action }}{{ action.date|date("jS F Y H:i:s") }}{{ action.ip }}

- -
-
- - - -
-
-
- -
-
- - - - -
Account logs
- - - - -
-
- - +

Character list: {{ players|length }} characters.

+
-
- - - - - -
-
-
-
-
-
- - - - - - - {% autoescape false %} - {% set i = 0 %} - {% for action in actions %} - {% set i = i + 1 %} - - - - - - {% endfor %} - {% endautoescape %} -
ActionDateIP
{{ action.action }}{{ action.date|date("jS F Y H:i:s") }}{{ action.ip }}
-
-
-
-
-
-
-
-
-
-
-
-
+ + + + {% set i = 0 %} + {% for player in players %} + {% set i = i + 1 %} + + -
NameLevelVocationTownLast loginStatusHideEdit
{{ player.getName() }}{{ player.getLevel() }}{{ config.vocations[player.getVocation()] }}{{ config.towns[player.getTownId()] }}{% if player.getLastLogin() > 0 %}{{ player.getLastLogin|date('d F Y (H:i)') }}{% else %}Never.{% endif %}{% if player.isOnline() %}ONLINE{% else %}Offline{% endif %}{% if player.isHidden() %}Hidden{% else %}Visible{% endif %}[Edit]
-
+ {% endfor %} +
- -
-
- - - -
-
-
- -
-
- - - - -
Characters
- - - - -
-
- - - -
-
- - - - - - - -
-
-
-
-
-
- - - - - - - - {% set i = 0 %} - {% for player in players %} - {% set i = i + 1 %} - - - - {% if player.online %} - - {% else %} - - {% endif %} - - - {% endfor %} -
NameLevelStatus 
- {{ i }}. {{ player.name }}{% if player.deleted %} [ DELETED ] {% endif %} - - {{ player.level }} {{ player.vocation }} - OnlineOffline[Edit]
-
-
-
-
-
-
-
-
- - - - {% if config.account_change_character_name %} - - {% endif %} - {% if config.account_change_character_sex %} - - {% endif %} - - - -
- - - - - - -
-
-
-
-
- - - - - - -
-
-
-
- - - - - - -
-
-
-
- - - - - - -
-
-
-
-
-
-
-
-
-

\ No newline at end of file + + + + {% if config.account_change_character_name %} + + {% endif %} + {% if config.account_change_character_sex %} + + {% endif %} + + +
+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
\ No newline at end of file diff --git a/system/templates/admin.pages.form.html.twig b/system/templates/admin.pages.form.html.twig new file mode 100644 index 00000000..59a83681 --- /dev/null +++ b/system/templates/admin.pages.form.html.twig @@ -0,0 +1,107 @@ +{% set use_tinymce = false %} + + +{% if use_tinymce %} + + + +{% endif %} +
+ {% if action == 'edit' %} + + {% endif %} + + + + + + + +
{% if action == 'edit' %}Edit{% else %}Add{% endif %} page
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Link/name:
Title:
PHP:
Content: + + {% if use_tinymce %} +
+ [Hide] + [Show] + {% endif %} +
Access: + +
+ +
+
+
\ No newline at end of file diff --git a/system/templates/admin.pages.html.twig b/system/templates/admin.pages.html.twig new file mode 100644 index 00000000..57aa3aef --- /dev/null +++ b/system/templates/admin.pages.html.twig @@ -0,0 +1,27 @@ + + + + + + + {% for page in pages %} + + + + + + {% endfor %} +
NameTitleOptions
{{ page.link|raw }}{{ page.title }} + + + Edit + + + + Delete + + + + {% if page.hidden != 1 %}Hide{% else %}Show{% endif %} + +
\ No newline at end of file diff --git a/templates/tibiacom/account.management.html.twig b/templates/tibiacom/account.management.html.twig new file mode 100644 index 00000000..e6971358 --- /dev/null +++ b/templates/tibiacom/account.management.html.twig @@ -0,0 +1,531 @@ +
+
+
+
+
+
+
+
+ + + + + +
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + +
+ + {{ welcome_message }}
+
+
+{# if account dont have recovery key show hint #} +{% if recovery_key is empty %} +
+
+
+
+
+
+
+
+ + + + + +
Hint:You can register your account for increased protection. Click on "Register Account" and get your free recovery key today!
+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+{% endif %} + +{% if email_request %} +
+
+
+
+
+
+
+
+ + + + + +
Note:A request has been submitted to change the email address of this account to {{ email_new }}. After {{ email_new_time|date("j F Y, G:i:s") }} you can accept the new email address and finish the process. Please cancel the request if you do not want your email address to be changed! Also cancel the request if you have no access to the new email address!
+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+

+{% endif %} + +
+
+ + + +
+
+
+ +
+
+ + + + +
General Information
+ + + + +
+
+ + + +
+
+ + + + + + + +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + {% autoescape false %} + + + + + + + + + {% endautoescape %} +
Account {% if constant('USE_ACCOUNT_NAME') %}Name{% else %}Number{% endif %}:{{ account }}
Email Address:{{ account_email ~ email_change}}
Created:{{ account_created|date("j F Y, G:i:s") }}
Last Login:{{ "now"|date("j F Y, G:i:s") }}
Account Status:{{ account_status }}
Registered:{{ account_registered }}
+
+
+
+
+
+
+
+
+ + + + + + {# show button "register account" #} + {% if recovery_key is empty %} + + {% endif %} + +
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + +
+
+
+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+ +
+
+ + + +
+
+
+ +
+
+ + + + +
Public Information
+ + + + +
+
+ + + +
+
+ + + + +
+
+
+
+
+
+ + + + + +
+ + + + + + + + + +
Real Name:{{ account_rlname }}
Location:{{ account_location }}
+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + + +
+
+
+ +
+
+ + + + +
Account logs
+ + + + +
+
+ + + +
+
+ + + + + +
+
+
+
+
+
+ + + + + + + {% autoescape false %} + {% set i = 0 %} + {% for action in actions %} + {% set i = i + 1 %} + + + + + + {% endfor %} + {% endautoescape %} +
ActionDateIP
{{ action.action }}{{ action.date|date("jS F Y H:i:s") }}{{ action.ip }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + + +
+
+
+ +
+
+ + + + +
Characters
+ + + + +
+
+ + + +
+
+ + + + + + + +
+
+
+
+
+
+ + + + + + + + {% set i = 0 %} + {% for player in players %} + {% set i = i + 1 %} + + + + {% if player.isOnline() %} + + {% else %} + + {% endif %} + + + {% endfor %} +
NameLevelStatus 
+ {{ i }}. {{ player.getName() }}{% if player.isDeleted() %} [ DELETED ] {% endif %} + + {{ player.getLevel() }} {{ config.vocations[player.getVocation()] }} + OnlineOffline[Edit]
+
+
+
+
+
+
+
+
+ + + + {% if config.account_change_character_name %} + + {% endif %} + {% if config.account_change_character_sex %} + + {% endif %} + + + +
+ + + + + + +
+
+
+
+
+ + + + + + +
+
+
+
+ + + + + + +
+
+
+
+ + + + + + +
+
+
+
+
+
+
+
+
+

\ No newline at end of file