Compare commits

..

35 Commits

Author SHA1 Message Date
slawkens
e2bab4220b Fix composer install 2024-05-18 22:31:59 +02:00
slawkens
0b4c34a823 Update phpstan.yml 2024-05-18 22:20:00 +02:00
slawkens
c5aa9a4684 Do not include phpstan into release 2024-05-18 22:19:23 +02:00
slawkens
301afe190b Remove node_modules in release script 2024-05-18 22:01:41 +02:00
slawkens
c35cc83e4f They say composer.lock should be commited - let it be! 2024-05-18 22:01:30 +02:00
slawkens
3ba9d8f780 Fix date 2024-05-18 21:56:01 +02:00
slawkens
06f228509b Update release.sh 2024-05-18 21:53:41 +02:00
slawkens
39e682dfd2 htmlspecialchars seems to be better here (?) 2024-05-16 18:58:54 +02:00
slawkens
6f209440e0 Fix XSS in monsters.php, thanks to @gesior 2024-05-15 22:18:39 +02:00
slawkens
b2a1675de3 Fix if account_country is disabled 2024-04-16 13:32:34 +02:00
slawkens
163877d303 Update account.generate_recovery_key.html.twig 2024-04-16 11:38:10 +02:00
slawkens
a4d11c1a12 Rename variables 2024-04-16 10:45:34 +02:00
slawkens
8cf4e3da02 Fix change_info if account_country is disabled 2024-04-15 21:54:18 +02:00
slawkens
e0230c5237 Adjustments in success.html.twig 2024-04-15 21:47:21 +02:00
slawkens
127e03081c Support for subfolders in plugins/pages 2024-04-15 21:21:16 +02:00
slawkens
e9c6017e60 Fix forum table header text color 2024-04-15 20:35:53 +02:00
slawkens
d5915df37e Fix redirects in forum + polls 2024-04-14 16:06:57 +02:00
slawkens
eb0c2a7674 Post-fix redirect 2024-04-14 16:02:55 +02:00
slawkens
d225c2da26 Fix form id 2024-04-14 15:59:23 +02:00
slawkens
d95e280b9a Use tables headline for account.redirect.html.twig 2024-04-14 15:25:13 +02:00
slawkens
64387e085b Use tables headline for account.create.html.twig 2024-04-14 15:06:43 +02:00
slawkens
e1f507cf2d Extend timeout to fix broken workflow-runs 2024-04-12 15:15:23 +02:00
slawkens
c92a410209 Don't allow redirect to external website 2024-04-08 19:08:21 +02:00
slawkens
1186f94e21 Add Twig TypeCastingExtension 2024-04-08 10:08:48 +02:00
slawkens
f837b3133d deny vendor, composer.json, changelog.md etc. in nginx config sample 2024-04-06 19:51:34 +02:00
slawkens
9106f1e4ce Update CHANGELOG.md 2024-04-06 19:16:22 +02:00
slawkens
a62cfc5272 Update CHANGELOG.md 2024-04-06 15:08:39 +02:00
slawkens
6229736d07 getPlayerLink -> colored 2024-04-01 23:40:53 +02:00
slawkens
6807339056 Colored (online/offline) player links 2024-04-01 23:33:00 +02:00
slawkens
ffaa0729ac Add player->getOutfit function 2024-04-01 23:19:12 +02:00
slawkens
03cc09b8c7 Adjust submit button 2024-04-01 23:10:00 +02:00
slawkens
6d4724f4f4 Squashed commit of the following:
commit da18629d16
Author: slawkens <slawkens@gmail.com>
Date:   Mon Apr 1 21:53:53 2024 +0200

    Fixes to tables headline

commit 41c3d9ad21
Author: slawkens <slawkens@gmail.com>
Date:   Sun Mar 31 13:59:25 2024 +0200

    [WIP] Tables headline
2024-04-01 21:54:53 +02:00
slawkens
2afe0c1185 Fill up the equipment variable no matter of config 2024-03-28 21:25:43 +01:00
slawkens
6334f3f4fa Fix admin-lte scripts includes 2024-02-23 17:01:49 +01:00
Slawomir Boczek
fe7ad61abe phpstan support (#250)
* phpstan v1 + workflow

* Fix intend

* More fixes

* Update phpstan.neon

* phpstan level 2

* Move errors ignoring into phpstan.neon

* phpstan level 3

* Don't ignore templates folder

* Something from level 4

* Update phpstan.neon
2024-02-18 14:59:25 +01:00
61 changed files with 5061 additions and 2459 deletions

View File

@@ -36,9 +36,8 @@ jobs:
with: with:
path: ${{ steps.composer-cache.outputs.dir }} path: ${{ steps.composer-cache.outputs.dir }}
# Use composer.json for key, if composer.lock is not committed. # Use composer.json for key, if composer.lock is not committed.
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
#key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
- name: "Install composer dependencies" - name: "Install composer dependencies"
run: "composer install" run: "composer install"

1
.gitignore vendored
View File

@@ -7,7 +7,6 @@ Thumbs.db
# composer # composer
composer.phar composer.phar
composer.lock
vendor vendor
# npm # npm

View File

@@ -1,6 +1,6 @@
# Changelog # Changelog
## [1.0-beta - 02.02.2024] ## [1.0-beta - 18.05.2024]
Minimum PHP version for this release is 8.1. Minimum PHP version for this release is 8.1.
@@ -22,7 +22,7 @@ Minimum PHP version for this release is 8.1.
* list of open source libraries used in project page * list of open source libraries used in project page
* auto-loading of themes, commands & pages from plugins/ folder. You need just to place them in correct folder and they will be loaded automatically - this allows better customization, without interfering with core AAC folders. This will allow in the future automatic updates for plugins as well the AAC as whole. * auto-loading of themes, commands & pages from plugins/ folder. You need just to place them in correct folder and they will be loaded automatically - this allows better customization, without interfering with core AAC folders. This will allow in the future automatic updates for plugins as well the AAC as whole.
* config.php moved to Admin Panel -> Settings page * config.php moved to Admin Panel -> Settings page
* new console script: aac (comes from MyAAC) - using symfony/console * new console script: aac - using symfony/console
* usage: `php aac` (will list all commands by default) * usage: `php aac` (will list all commands by default)
* example: `php aac cache:clear` * example: `php aac cache:clear`
* example: `php aac plugin:install theme-example.zip` * example: `php aac plugin:install theme-example.zip`
@@ -46,7 +46,7 @@ Minimum PHP version for this release is 8.1.
* phpdebug bar (http://phpdebugbar.com/). Activated if env == 'dev', can be also activated in production by enabling "enable_debugbar" in local config * phpdebug bar (http://phpdebugbar.com/). Activated if env == 'dev', can be also activated in production by enabling "enable_debugbar" in local config
### Changed ### Changed
* Composer is now used for external libraries like: Twig, PHPMailer, fast-route etc. * Composer and NPM is now used for external libraries like: Twig, PHPMailer, fast-route, jQuery, Bootstrap etc.
* mail support is disabled on fresh install, can be manually enabled by user * mail support is disabled on fresh install, can be manually enabled by user
* disable add php pages in admin panel for security. Option to disable plugins upload * disable add php pages in admin panel for security. Option to disable plugins upload
* visitors counter shows now user browser, and also if its bot * visitors counter shows now user browser, and also if its bot

View File

@@ -404,6 +404,7 @@ else if (isset($_REQUEST['search'])) {
autocomplete="off" maxlength="20" autocomplete="off" maxlength="20"
value="<?php echo $account->getLocation(); ?>"/> value="<?php echo $account->getLocation(); ?>"/>
</div> </div>
<?php if(setting('core.account_country')): ?>
<div class="col-12 col-sm-12 col-lg-4"> <div class="col-12 col-sm-12 col-lg-4">
<label for="rl_country">Country:</label> <label for="rl_country">Country:</label>
<select name="rl_country" id="rl_country" class="form-control"> <select name="rl_country" id="rl_country" class="form-control">
@@ -412,6 +413,7 @@ else if (isset($_REQUEST['search'])) {
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
</div> </div>
<?php endif; ?>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<div class="col-12 col-sm-12 col-lg-6"> <div class="col-12 col-sm-12 col-lg-6">

View File

@@ -6,7 +6,7 @@
<?php echo template_header(true); ?> <?php echo template_header(true); ?>
<title><?php echo (isset($title) ? $title . ' - ' : '') . $config['lua']['serverName'];?></title> <title><?php echo (isset($title) ? $title . ' - ' : '') . $config['lua']['serverName'];?></title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<?php echo BASE_URL; ?>tools/ext/admin-lte/css/adminlte.min.css"> <link rel="stylesheet" href="<?php echo BASE_URL; ?>tools/css/adminlte.min.css">
<link rel="stylesheet" href="<?php echo BASE_URL; ?>tools/css/font-awesome.min.css"> <link rel="stylesheet" href="<?php echo BASE_URL; ?>tools/css/font-awesome.min.css">
<?php if (isset($use_datatable)) { ?> <?php if (isset($use_datatable)) { ?>
<link rel="stylesheet" href="<?php echo BASE_URL; ?>tools/css/datatables.bs.min.css"> <link rel="stylesheet" href="<?php echo BASE_URL; ?>tools/css/datatables.bs.min.css">
@@ -197,7 +197,7 @@ if ($logged && admin()) {
<script src="<?php echo BASE_URL; ?>tools/js/datatables.min.js"></script> <script src="<?php echo BASE_URL; ?>tools/js/datatables.min.js"></script>
<script src="<?php echo BASE_URL; ?>tools/js/datatables.bs.min.js"></script> <script src="<?php echo BASE_URL; ?>tools/js/datatables.bs.min.js"></script>
<?php } ?> <?php } ?>
<script src="<?php echo BASE_URL; ?>tools/ext/admin-lte/js/adminlte.min.js"></script> <script src="<?php echo BASE_URL; ?>tools/js/adminlte.min.js"></script>
<?php $hooks->trigger(HOOK_ADMIN_BODY_END); ?> <?php $hooks->trigger(HOOK_ADMIN_BODY_END); ?>
</body> </body>
</html> </html>

View File

@@ -15,11 +15,12 @@
"illuminate/database": "^10.18", "illuminate/database": "^10.18",
"peppeocchi/php-cron-scheduler": "4.*", "peppeocchi/php-cron-scheduler": "4.*",
"symfony/console": "^6.4", "symfony/console": "^6.4",
"symfony/string": "^6.4" "symfony/string": "^6.4",
"symfony/var-dumper": "^6.4",
"filp/whoops": "^2.15",
"maximebf/debugbar": "dev-master"
}, },
"require-dev": { "require-dev": {
"filp/whoops": "^2.15",
"maximebf/debugbar": "dev-master",
"phpstan/phpstan": "^1.10" "phpstan/phpstan": "^1.10"
}, },
"autoload": { "autoload": {

2922
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -67,7 +67,7 @@ describe('Install MyAAC', () => {
cy.get('form').submit() cy.get('form').submit()
cy.contains('[class="alert alert-success"]', 'Congratulations', { timeout: 30000 }).should('be.visible') cy.contains('[class="alert alert-success"]', 'Congratulations', { timeout: 60000 }).should('be.visible')
cy.wait(2000); cy.wait(2000);

View File

@@ -22,7 +22,7 @@ describe('Create Account Page', () => {
cy.get('#vocation1').check() cy.get('#vocation1').check()
cy.get('#accept_rules').check() cy.get('#accept_rules').check()
cy.get('#createaccount').submit() cy.get('#form').submit()
// no errors please // no errors please
cy.contains('The Following Errors Have Occurred:').should('not.exist') cy.contains('The Following Errors Have Occurred:').should('not.exist')

View File

@@ -13,9 +13,16 @@ server {
return 404; return 404;
} }
# block .htaccess location /vendor {
location ~ /\.ht {
deny all; deny all;
return 404;
}
# block .htaccess, CHANGELOG.md, composer.json etc.
# this is to prevent finding software versions
location ~\.(ht|md|json|dist)$ {
deny all;
return 404;
} }
# block git files and folders # block git files and folders

View File

@@ -38,7 +38,11 @@ if [ $1 = "prepare" ]; then
cd $dir || exit cd $dir || exit
# dependencies # dependencies
composer install --prefer-dist --optimize-autoloader composer install --no-dev --prefer-dist --optimize-autoloader
npm install
# node_modules is useless, we already have copy in tools/ext
rm -R node_modules
echo "Now you can make changes to $dir. When you are ready, type 'release.sh pack'" echo "Now you can make changes to $dir. When you are ready, type 'release.sh pack'"
exit exit

View File

@@ -87,18 +87,29 @@ function getForumBoardLink($board_id, $page = NULL): string {
return BASE_URL . (setting('core.friendly_urls') ? '' : 'index.php/') . 'forum/board/' . (int)$board_id . (isset($page) ? '/' . $page : ''); return BASE_URL . (setting('core.friendly_urls') ? '' : 'index.php/') . 'forum/board/' . (int)$board_id . (isset($page) ? '/' . $page : '');
} }
function getPlayerLink($name, $generate = true): string function getPlayerLink($name, $generate = true, bool $colored = false): string
{
if(is_numeric($name))
{ {
$player = new OTS_Player(); $player = new OTS_Player();
if(is_numeric($name)) {
$player->load((int)$name); $player->load((int)$name);
if($player->isLoaded()) }
$name = $player->getName(); else {
$player->find($name);
} }
if (!$player->isLoaded()) {
return '(error)';
}
$name = $player->getName();
$url = BASE_URL . (setting('core.friendly_urls') ? '' : 'index.php/') . 'characters/' . urlencode($name); $url = BASE_URL . (setting('core.friendly_urls') ? '' : 'index.php/') . 'characters/' . urlencode($name);
if ($colored) {
$name = '<span style="color: ' . ($player->isOnline() ? 'green' : 'red') . ';">' . $name . '</span>';
}
if(!$generate) return $url; if(!$generate) return $url;
return generateLink($url, $name); return generateLink($url, $name);
} }
@@ -1623,7 +1634,7 @@ function removeIfFirstSlash(&$text) {
}; };
function escapeHtml($html) { function escapeHtml($html) {
return htmlentities($html, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); return htmlspecialchars($html);
} }
function getGuildNameById($id) function getGuildNameById($id)

View File

@@ -1229,6 +1229,13 @@ class OTS_Player extends OTS_Row_DAO
$this->data['direction'] = (int) $direction; $this->data['direction'] = (int) $direction;
} }
public function getOutfit(): string
{
$hasLookAddons = $this->db->hasColumn('players', 'lookaddons');
return setting('core.outfit_images_url') . '?id=' . $this->getLookType() . ($hasLookAddons ? '&addons=' . $this->getLookAddons() : '') . '&head=' . $this->getLookHead() . '&body=' . $this->getLookBody() . '&legs=' . $this->getLookLegs() . '&feet=' . $this->getLookFeet();
}
/** /**
* Body color. * Body color.
* *

View File

@@ -22,11 +22,5 @@ if(isset($account_logged) && $account_logged->isLoaded()) {
$logged = false; $logged = false;
unset($account_logged); unset($account_logged);
if(isset($_REQUEST['redirect']))
{
header('Location: ' . urldecode($_REQUEST['redirect']));
exit;
}
} }
} }

View File

@@ -26,12 +26,13 @@ if(setting('core.account_country'))
$account = Account::find($account_logged->getId()); $account = Account::find($account_logged->getId());
$show_form = true; $show_form = true;
$new_rlname = isset($_POST['info_rlname']) ? htmlspecialchars(stripslashes($_POST['info_rlname'])) : NULL; $new_rlname = isset($_POST['info_rlname']) ? htmlspecialchars(stripslashes($_POST['info_rlname'])) : '';
$new_location = isset($_POST['info_location']) ? htmlspecialchars(stripslashes($_POST['info_location'])) : NULL; $new_location = isset($_POST['info_location']) ? htmlspecialchars(stripslashes($_POST['info_location'])) : '';
$new_country = isset($_POST['info_country']) ? htmlspecialchars(stripslashes($_POST['info_country'])) : NULL; $new_country = isset($_POST['info_country']) ? htmlspecialchars(stripslashes($_POST['info_country'])) : '';
if(isset($_POST['changeinfosave']) && $_POST['changeinfosave'] == 1) { if(isset($_POST['changeinfosave']) && $_POST['changeinfosave'] == 1) {
if(!isset($config['countries'][$new_country])) if(setting('core.account_country') && !isset($config['countries'][$new_country])) {
$errors[] = 'Country is not correct.'; $errors[] = 'Country is not correct.';
}
if(empty($errors)) { if(empty($errors)) {
//save data from form //save data from form
@@ -39,7 +40,14 @@ if(isset($_POST['changeinfosave']) && $_POST['changeinfosave'] == 1) {
$account->location = $new_location; $account->location = $new_location;
$account->country = $new_country; $account->country = $new_country;
$account->save(); $account->save();
$account_logged->logAction('Changed Real Name to <b>' . $new_rlname . '</b>, Location to <b>' . $new_location . '</b> and Country to <b>' . $config['countries'][$new_country] . '</b>.');
$log = 'Changed Real Name to <b>' . $new_rlname . '</b>, Location to <b>' . $new_location . '</b>';
if(setting('core.account_country')) {
$log .= ' and Country to <b>' . $config['countries'][$new_country] . '</b>';
}
$log .= '.';
$account_logged->logAction($log);
$twig->display('success.html.twig', array( $twig->display('success.html.twig', array(
'title' => 'Public Information Changed', 'title' => 'Public Information Changed',
'description' => 'Your public information has been changed.' 'description' => 'Your public information has been changed.'

View File

@@ -22,6 +22,12 @@ if(isset($_REQUEST['redirect']))
{ {
$redirect = urldecode($_REQUEST['redirect']); $redirect = urldecode($_REQUEST['redirect']);
// should never happen, unless hacker modify the URL
if (!str_contains($redirect, BASE_URL)) {
error('Fatal error: Cannot redirect outside the website.');
return;
}
$twig->display('account.redirect.html.twig', array( $twig->display('account.redirect.html.twig', array(
'redirect' => $redirect 'redirect' => $redirect
)); ));

View File

@@ -12,6 +12,12 @@ defined('MYAAC') or die('Direct access not allowed!');
$redirect = urldecode($_REQUEST['redirect']); $redirect = urldecode($_REQUEST['redirect']);
// should never happen, unless hacker modify the URL
if (!str_contains($redirect, BASE_URL)) {
error('Fatal error: Cannot redirect outside the website.');
return;
}
$twig->display('account.redirect.html.twig', array( $twig->display('account.redirect.html.twig', array(
'redirect' => $redirect 'redirect' => $redirect
)); ));

View File

@@ -199,7 +199,7 @@ if($player->isLoaded() && !$player->isDeleted())
unset($storage); unset($storage);
} }
if($config['characters']['equipment'] && $db->hasTable('player_items') && $db->hasColumn('player_items', 'pid') && $db->hasColumn('player_items', 'sid') && $db->hasColumn('player_items', 'itemtype')) { if($db->hasTable('player_items') && $db->hasColumn('player_items', 'pid') && $db->hasColumn('player_items', 'sid') && $db->hasColumn('player_items', 'itemtype')) {
$eq_sql = $db->query('SELECT `pid`, `itemtype` FROM player_items WHERE player_id = '.$player->getId().' AND (`pid` >= 1 and `pid` <= 10)'); $eq_sql = $db->query('SELECT `pid`, `itemtype` FROM player_items WHERE player_id = '.$player->getId().' AND (`pid` >= 1 and `pid` <= 10)');
$equipment = array(); $equipment = array();
foreach($eq_sql as $eq) foreach($eq_sql as $eq)

View File

@@ -19,7 +19,7 @@ if ($ret === false) {
} }
if(!$logged) { if(!$logged) {
echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . BASE_URL . urlencode(getLink('forum')) . '">Log in</a> to post on the forum.<br /><br />'; echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . urlencode(getLink('forum')) . '">Log in</a> to post on the forum.<br /><br />';
return; return;
} }

View File

@@ -19,7 +19,7 @@ if ($ret === false) {
} }
if(!$logged) { if(!$logged) {
echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . BASE_URL . urlencode(getLink('forum')) . '">Log in</a> to post on the forum.<br /><br />'; echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . urlencode(getLink('forum')) . '">Log in</a> to post on the forum.<br /><br />';
return; return;
} }

View File

@@ -24,7 +24,7 @@ if(!$logged) {
$extra_url = '?action=new_post&thread_id=' . $_GET['thread_id']; $extra_url = '?action=new_post&thread_id=' . $_GET['thread_id'];
} }
echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . BASE_URL . urlencode(getLink('forum') . $extra_url) . '">Log in</a> to post on the forum.<br /><br />'; echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . urlencode(getLink('forum') . $extra_url) . '">Log in</a> to post on the forum.<br /><br />';
return; return;
} }

View File

@@ -24,7 +24,7 @@ if(!$logged) {
$extra_url = '?action=new_thread&section_id=' . $_GET['section_id']; $extra_url = '?action=new_thread&section_id=' . $_GET['section_id'];
} }
echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . BASE_URL . urlencode(getLink('forum') . $extra_url) . '">Log in</a> to post on the forum.<br /><br />'; echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . urlencode(getLink('forum') . $extra_url) . '">Log in</a> to post on the forum.<br /><br />';
return; return;
} }

View File

@@ -19,7 +19,7 @@ if ($ret === false) {
} }
if(!$logged) { if(!$logged) {
echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . BASE_URL . urlencode(getLink('forum')) . '">Log in</a> to post on the forum.<br /><br />'; echo 'You are not logged in. <a href="' . getLink('account/manage') . '?redirect=' . urlencode(getLink('forum')) . '">Log in</a> to post on the forum.<br /><br />';
return; return;
} }

View File

@@ -60,7 +60,7 @@ foreach($posts as &$post) {
} }
if($config['characters']['outfit']) { if($config['characters']['outfit']) {
$post['outfit'] = setting('core.outfit_images_url') . '?id=' . $player->getLookType() . ($lookaddons ? '&addons=' . $player->getLookAddons() : '') . '&head=' . $player->getLookHead() . '&body=' . $player->getLookBody() . '&legs=' . $player->getLookLegs() . '&feet=' . $player->getLookFeet(); $post['outfit'] = $player->getOutfit();
} }
$groupName = ''; $groupName = '';

View File

@@ -79,7 +79,7 @@ if (isset($monster['name'])) {
)); ));
} else { } else {
echo "Monster with name <b>" . $monster_name . "</b> doesn't exist."; echo "Monster with name <b>" . htmlspecialchars($monster_name) . "</b> doesn't exist.";
} }
// back button // back button

View File

@@ -51,7 +51,7 @@ function getColorByPercent($percent)
if($logged) if($logged)
echo $link.'?id='.$poll['id']; echo $link.'?id='.$poll['id'];
else else
echo getLink('account/manage') . '?redirect=' . BASE_URL . urlencode($link.'?id='.$poll['id']); echo getLink('account/manage') . '?redirect=' . urlencode($link.'?id='.$poll['id']);
echo '">'.$poll['question'] . '</a> echo '">'.$poll['question'] . '</a>
</td> </td>
@@ -80,7 +80,7 @@ function getColorByPercent($percent)
if($logged) if($logged)
echo $link.'?id='.$poll['id']; echo $link.'?id='.$poll['id'];
else else
echo getLink('account/manage') . '?redirect=' . BASE_URL . urlencode($link.'?id='.$poll['id']); echo getLink('account/manage') . '?redirect=' . urlencode($link.'?id='.$poll['id']);
echo '">'.$poll['question'] . '</a> echo '">'.$poll['question'] . '</a>
</td> </td>

View File

@@ -23,6 +23,9 @@ class Plugins {
$routes = []; $routes = [];
foreach(self::getAllPluginsJson() as $plugin) { foreach(self::getAllPluginsJson() as $plugin) {
//
// Get all plugins/*/pages/*.php pages
//
$pluginPages = glob(PLUGINS . $plugin['filename'] . '/pages/*.php'); $pluginPages = glob(PLUGINS . $plugin['filename'] . '/pages/*.php');
foreach ($pluginPages as $file) { foreach ($pluginPages as $file) {
$file = str_replace(PLUGINS, 'plugins/', $file); $file = str_replace(PLUGINS, 'plugins/', $file);
@@ -31,6 +34,22 @@ class Plugins {
$routes[] = [['get', 'post'], $name, $file, 1000]; $routes[] = [['get', 'post'], $name, $file, 1000];
} }
//
// Get all plugins/*/pages/subFolder/*.php pages
//
$pluginPagesSubFolders = glob(PLUGINS . $plugin['filename'] . '/pages/*', GLOB_ONLYDIR);
foreach ($pluginPagesSubFolders as $folder) {
$folderName = pathinfo($folder, PATHINFO_FILENAME);
$subFiles = glob(PLUGINS . $plugin['filename'] . '/pages/' . $folderName . '/*.php');
foreach ($subFiles as $file) {
$file = str_replace(PLUGINS, 'plugins/', $file);
$name = $folderName . '/' . pathinfo($file, PATHINFO_FILENAME);
$routes[] = [['get', 'post'], $name, $file, 1000];
}
}
$warningPreTitle = 'Plugin: ' . $plugin['name'] . ' - '; $warningPreTitle = 'Plugin: ' . $plugin['name'] . ' - ';
if (isset($plugin['routes'])) { if (isset($plugin['routes'])) {

View File

@@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
namespace MyAAC\Twig\Extension;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
final class TypeCastingExtension extends AbstractExtension
{
/** @return array<int, TwigFilter> */
public function getFilters(): array
{
return [
new TwigFilter('int', function ($value) {
return (int)$value;
}),
new TwigFilter('float', function ($value) {
return (float)$value;
}),
new TwigFilter('string', function ($value) {
return (string)$value;
}),
new TwigFilter('bool', function ($value) {
return (bool)$value;
}),
new TwigFilter('array', function (object $value) {
return (array)$value;
}),
new TwigFilter('object', function (array $value) {
return (object)$value;
}),
];
}
}

View File

@@ -1,42 +1,25 @@
Here you can tell other players about yourself. This information will be displayed alongside the data of your characters. If you do not want to fill in a certain field, just leave it blank.<br/><br/> Here you can tell other players about yourself. This information will be displayed alongside the data of your characters. If you do not want to fill in a certain field, just leave it blank.<br/><br/>
<form action="{{ getLink('account/info') }}" method="post"> {% set title = 'Change Public Information' %}
{{ csrf() }} {% set background = config('darkborder') %}
<div class="TableContainer" > {% set content %}
<table class="Table1" cellpadding="0" cellspacing="0" >
<div class="CaptionContainer" >
<div class="CaptionInnerContainer" >
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span>
<div class="Text" >Change Public Information</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer" >
<table style="width: 100%;" > <table style="width: 100%;" >
<tr> <tr>
<td class="LabelV">Real Name:</td> <td class="LabelV">Real Name:</td>
<td style="width:90%;" > <td style="width:90%;" >
<input name="info_rlname" value="{{ account_rlname }}" size="30" maxlength="50" > <input form="form" name="info_rlname" value="{{ account_rlname }}" size="30" maxlength="50" >
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="LabelV" >Location:</td> <td class="LabelV" >Location:</td>
<td> <td>
<input name="info_location" value="{{ account_location }}" size="30" maxlength="50" > <input form="form" name="info_location" value="{{ account_location }}" size="30" maxlength="50" >
</td> </td>
</tr> </tr>
{% if setting('core.account_country') %} {% if setting('core.account_country') %}
<tr> <tr>
<td class="LabelV">Country:</td> <td class="LabelV">Country:</td>
<td> <td>
<select name="info_country" id="account_country"> <select form="form" name="info_country" id="account_country">
{% for code, country in countries %} {% for code, country in countries %}
<option value="{{ code}}"{% if account_country == code %} selected{% endif %}>{{ country }} </option> <option value="{{ code}}"{% if account_country == code %} selected{% endif %}>{{ country }} </option>
{% endfor %} {% endfor %}
@@ -67,11 +50,8 @@ Here you can tell other players about yourself. This information will be display
</tr> </tr>
{% endif %} {% endif %}
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<table width="100%"> <table width="100%">
<tr align="center"> <tr align="center">
@@ -79,23 +59,25 @@ Here you can tell other players about yourself. This information will be display
<table border="0" cellspacing="0" cellpadding="0" > <table border="0" cellspacing="0" cellpadding="0" >
<tr> <tr>
<td style="border:0px;" > <td style="border:0px;" >
<form id="form" action="{{ getLink('account/info') }}" method="post">
{{ csrf() }}
<input type="hidden" name="changeinfosave" value="1"> <input type="hidden" name="changeinfosave" value="1">
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</form>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
<td> <td>
</form>
<table border="0" cellspacing="0" cellpadding="0" > <table border="0" cellspacing="0" cellpadding="0" >
<form action="{{ getLink('account/manage') }}" method="post" >
{{ csrf() }}
<tr> <tr>
<td style="border:0px;" > <td style="border:0px;" >
<form action="{{ getLink('account/manage') }}" method="post" >
{{ csrf() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</td>
</tr>
</form> </form>
</td>
</tr>
</table> </table>
</td> </td>
</tr> </tr>

View File

@@ -1,31 +1,14 @@
Please enter your password and the new email address. Make sure that you enter a valid email address which you have access to. <br/><b>For security reasons, the actual change will be finalised after a waiting period of {{ setting('core.account_mail_change') }} days.</b><br/><br/> Please enter your password and the new email address. Make sure that you enter a valid email address which you have access to. <br/><b>For security reasons, the actual change will be finalised after a waiting period of {{ setting('core.account_mail_change') }} days.</b><br/><br/>
<form action="{{ getLink('account/email') }}" method="post"> {% set title = 'Change Email Address' %}
{{ csrf() }} {% set background = config('darkborder') %}
<div class="TableContainer"> {% set content %}
<table class="Table1" cellpadding="0" cellspacing="0">
<div class="CaptionContainer">
<div class="CaptionInnerContainer" >
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Change Email Address</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tr> <tr>
<td class="LabelV" > <td class="LabelV" >
<span>New Email Address:</span> <span>New Email Address:</span>
</td> </td>
<td style="width:90%;"> <td style="width:90%;">
<input name="new_email" value="{% if new_email is defined %}{{ new_email }}{% endif %}" size="30" maxlength="50" autofocus/> <input form="form" name="new_email" value="{% if new_email is defined %}{{ new_email }}{% endif %}" size="30" maxlength="50" autofocus/>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -33,15 +16,12 @@ Please enter your password and the new email address. Make sure that you enter a
<span >Password:</span> <span >Password:</span>
</td> </td>
<td> <td>
<input type="password" name="password" size="30" maxlength="29"> <input form="form" type="password" name="password" size="30" maxlength="29">
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<table style="width:100%;"> <table style="width:100%;">
<tr align="center"> <tr align="center">
@@ -49,13 +29,15 @@ Please enter your password and the new email address. Make sure that you enter a
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form id="form" action="{{ getLink('account/email') }}" method="post">
{{ csrf() }}
<input type="hidden" name="changeemailsave" value="1"/> <input type="hidden" name="changeemailsave" value="1"/>
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</form>
</td> </td>
<tr> <tr>
</table> </table>
</td> </td>
</form>
<td> <td>
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post"> <form action="{{ getLink('account/manage') }}" method="post">

View File

@@ -1,31 +1,14 @@
To change a name of character select player and choose a new name.<br/> To change a name of character select player and choose a new name.<br/>
<span style="color: red">Change name cost {{ setting('core.account_change_character_name_price') }} {{ setting('core.donate_column') == 'coins' ? 'coins' : 'premium points' }}. You have {{ points }} {{ setting('core.donate_column') == 'coins' ? 'coins' : 'premium points' }}.</span><br/><br/> <span style="color: red">Change name cost {{ setting('core.account_change_character_name_price') }} {{ setting('core.donate_column') == 'coins' ? 'coins' : 'premium points' }}. You have {{ points }} {{ setting('core.donate_column') == 'coins' ? 'coins' : 'premium points' }}.</span><br/><br/>
<form action="{{ getLink('account/character/name') }}" method="post">
{{ csrf() }} {% set title = 'Change Name' %}
<input type="hidden" name="changenamesave" value="1"> {% set background = config('darkborder') %}
<div class="TableContainer"> {% set content %}
<table class="Table1" cellpadding="0" cellspacing="0">
<div class="CaptionContainer">
<div class="CaptionInnerContainer" >
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Change Name</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer" >
<table style="width:100%;" > <table style="width:100%;" >
<tr> <tr>
<td class="LabelV" ><span>Character:</span></td> <td class="LabelV" ><span>Character:</span></td>
<td style="width:90%;" > <td style="width:90%;" >
<select name="player_id"> <select form="form" name="player_id">
{% for player in account_logged.getPlayersList(false) %} {% for player in account_logged.getPlayersList(false) %}
<option value="{{ player.getId() }}">{{ player.getName() }}</option> <option value="{{ player.getId() }}">{{ player.getName() }}</option>
{% endfor %} {% endfor %}
@@ -35,7 +18,7 @@ To change a name of character select player and choose a new name.<br/>
<tr> <tr>
<td class="LabelV" ><span>New Name:</span></td> <td class="LabelV" ><span>New Name:</span></td>
<td> <td>
<input type="text" name="name" id="character_name" size="25" maxlength="25" > <input form="form" type="text" name="name" id="character_name" size="25" maxlength="25" >
<img id="character_indicator" src="images/global/general/{% if not save or errors|length > 0 %}n{% endif %}ok.gif" /> <img id="character_indicator" src="images/global/general/{% if not save or errors|length > 0 %}n{% endif %}ok.gif" />
<br/> <br/>
<span style="font-size: 10px"> <span style="font-size: 10px">
@@ -44,11 +27,8 @@ To change a name of character select player and choose a new name.<br/>
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<table style="width:100%" > <table style="width:100%" >
<tr align="center"> <tr align="center">
@@ -56,22 +36,25 @@ To change a name of character select player and choose a new name.<br/>
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form id="form" action="{{ getLink('account/character/name') }}" method="post">
{{ csrf() }}
<input type="hidden" name="changenamesave" value="1">
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</form>
</td> </td>
</tr> </tr>
</form>
</table> </table>
</td> </td>
<td> <td>
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</form>
</td> </td>
</tr> </tr>
</form>
</table> </table>
</td> </td>
</tr> </tr>

View File

@@ -1,32 +1,15 @@
Please enter your current password and a new password. For your security, please enter the new password twice.<br/> Please enter your current password and a new password. For your security, please enter the new password twice.<br/>
<br/> <br/>
<form action="{{ getLink('account/password') }}" method="post"> {% set title = 'Change Password' %}
{{ csrf() }} {% set background = config('darkborder') %}
<div class="TableContainer"> {% set content %}
<table class="Table1" cellpadding="0" cellspacing="0">
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Change Password</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tr> <tr>
<td class="LabelV"> <td class="LabelV">
<span>New Password:</span> <span>New Password:</span>
</td> </td>
<td style="width:90%;"> <td style="width:90%;">
<input type="password" name="newpassword" size="30" maxlength="29"> <input form="form" type="password" name="newpassword" size="30" maxlength="29">
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -34,7 +17,7 @@ Please enter your current password and a new password. For your security, please
<span>New Password Again:</span> <span>New Password Again:</span>
</td> </td>
<td> <td>
<input type="password" name="newpassword_confirm" size="30" maxlength="29"> <input form="form" type="password" name="newpassword_confirm" size="30" maxlength="29">
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -42,15 +25,12 @@ Please enter your current password and a new password. For your security, please
<span>Current Password:</span> <span>Current Password:</span>
</td> </td>
<td> <td>
<input type="password" name="oldpassword" size="30" maxlength="29"> <input form="form" type="password" name="oldpassword" size="30" maxlength="29">
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<table style="width:100%;"> <table style="width:100%;">
<tr align="center"> <tr align="center">
@@ -58,22 +38,24 @@ Please enter your current password and a new password. For your security, please
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form id="form" action="{{ getLink('account/password') }}" method="post">
{{ csrf() }}
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</form>
</td> </td>
<tr> <tr>
</table> </table>
</td> </td>
</form>
<td> <td>
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</td>
</tr>
</form> </form>
</td>
</tr>
</table> </table>
</td> </td>
</tr> </tr>

View File

@@ -1,31 +1,14 @@
To change a sex of character select player and choose a new sex.<br/> To change a sex of character select player and choose a new sex.<br/>
<span style="color: red">Change sex cost {{ setting('core.account_change_character_sex_price') }} {{ setting('core.donate_column') == 'coins' ? 'coins' : 'premium points' }}. You have {{ points }} {{ setting('core.donate_column') == 'coins' ? 'coins' : 'premium points' }}.</span><br/><br/> <span style="color: red">Change sex cost {{ setting('core.account_change_character_sex_price') }} {{ setting('core.donate_column') == 'coins' ? 'coins' : 'premium points' }}. You have {{ points }} {{ setting('core.donate_column') == 'coins' ? 'coins' : 'premium points' }}.</span>
<form action="{{ getLink('account/character/sex') }}" method="post"> <br/><br/>
{{ csrf() }} {% set title = 'Change sex' %}
<input type="hidden" name="changesexsave" value="1"/> {% set background = config('darkborder') %}
<div class="TableContainer"> {% set content %}
<table class="Table1" cellpadding="0" cellspacing="0">
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Change sex</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;" > <table style="width:100%;" >
<tr> <tr>
<td class="LabelV" ><span >Character:</td> <td class="LabelV" ><span>Character:</span></td>
<td style="width:90%;" > <td style="width:90%;" >
<select name="player_id"> <select form="form" name="player_id">
{% for player in players %} {% for player in players %}
<option value="{{ player.getId() }}">{{ player.getName() }}</option> <option value="{{ player.getId() }}">{{ player.getName() }}</option>
{% endfor %} {% endfor %}
@@ -33,9 +16,9 @@ To change a sex of character select player and choose a new sex.<br/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="LabelV" ><span >New Sex:</td> <td class="LabelV" ><span>New Sex:</span></td>
<td> <td>
<select name="new_sex"> <select form="form" name="new_sex">
{% for id, gender in config.genders %} {% for id, gender in config.genders %}
<option value="{{ id }}"{% if player_sex == id %} selected{% endif %}>{{ gender }}</option> <option value="{{ id }}"{% if player_sex == id %} selected{% endif %}>{{ gender }}</option>
{% endfor %} {% endfor %}
@@ -43,11 +26,9 @@ To change a sex of character select player and choose a new sex.<br/>
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<table style="width:100%"> <table style="width:100%">
<tr align="center"> <tr align="center">
@@ -55,23 +36,25 @@ To change a sex of character select player and choose a new sex.<br/>
<table border="0" cellspacing="0" cellpadding="0" > <table border="0" cellspacing="0" cellpadding="0" >
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form id="form" action="{{ getLink('account/character/sex') }}" method="post">
{{ csrf() }}
<input type="hidden" name="changesexsave" value="1"/>
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</form>
</td> </td>
</tr> </tr>
<tr>
</form>
</table> </table>
</td> </td>
<td> <td>
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</td>
</tr>
</form> </form>
</td>
</tr>
</table> </table>
</td> </td>
</tr> </tr>

View File

@@ -1,24 +1,8 @@
{{ hook('HOOK_ACCOUNT_CREATE_BEFORE_FORM') }} {{ hook('HOOK_ACCOUNT_CREATE_BEFORE_FORM') }}
<form action="{{ getLink('account/create') }}" method="post" id="createaccount"> {% set title = 'Create ' ~ config.lua.serverName ~ ' Account' %}
{{ csrf() }} {% set background = config('darkborder') %}
<div class="TableContainer" > {% set tableClass = 'Table5' %}
<table class="Table5" cellpadding="0" cellspacing="0" > {% set content %}
<div class="CaptionContainer" >
<div class="CaptionInnerContainer" >
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span>
<div class="Text" >Create {{ config.lua.serverName }} Account</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer" >
<table style="width:100%;" > <table style="width:100%;" >
{{ hook('HOOK_ACCOUNT_CREATE_BEFORE_BOXES') }} {{ hook('HOOK_ACCOUNT_CREATE_BEFORE_BOXES') }}
<tr> <tr>
@@ -40,7 +24,7 @@
{% endif %} {% endif %}
</td> </td>
<td> <td>
<input type="text" name="account" id="account_input" size="30" maxlength="{% if constant('USE_ACCOUNT_NAME') %}30{% else %}10{% endif %}" value="{{ account }}" autofocus/> <input form="form" type="text" name="account" id="account_input" size="30" maxlength="{% if constant('USE_ACCOUNT_NAME') %}30{% else %}10{% endif %}" value="{{ account }}" autofocus/>
<img id="account_indicator" src="images/global/general/{% if not save or errors.account is defined %}n{% endif %}ok.gif" style="display: none;" /> <img id="account_indicator" src="images/global/general/{% if not save or errors.account is defined %}n{% endif %}ok.gif" style="display: none;" />
</td> </td>
</tr> </tr>
@@ -52,7 +36,7 @@
<span{% if errors.email is defined %} class="red"{% endif %}>Email Address:</span> <span{% if errors.email is defined %} class="red"{% endif %}>Email Address:</span>
</td> </td>
<td> <td>
<input type="text" name="email" id="email" size="30" maxlength="50" value="{{ email }}" /> <input form="form" type="text" name="email" id="email" size="30" maxlength="50" value="{{ email }}" />
<img id="email_indicator" src="images/global/general/{% if not save or errors.email is defined %}n{% endif %}ok.gif" style="display: none;" /> <img id="email_indicator" src="images/global/general/{% if not save or errors.email is defined %}n{% endif %}ok.gif" style="display: none;" />
</td> </td>
</tr> </tr>
@@ -72,7 +56,7 @@
<span{% if errors.country[0] is defined %} class="red"{% endif %}>Country:</span> <span{% if errors.country[0] is defined %} class="red"{% endif %}>Country:</span>
</td> </td>
<td> <td>
<select name="country" id="account_country"> <select form="form" name="country" id="account_country">
{% for code, country_ in countries %} {% for code, country_ in countries %}
<option value="{{ code }}"{% if(country is defined and country == code) or (country is null and country_recognized == code) %}selected{% endif %}>{{ country_ }}</option> <option value="{{ code }}"{% if(country is defined and country == code) or (country is null and country_recognized == code) %}selected{% endif %}>{{ country_ }}</option>
{% endfor %} {% endfor %}
@@ -92,7 +76,7 @@
<span{% if errors.password is defined %} class="red"{% endif %}>Password:</span> <span{% if errors.password is defined %} class="red"{% endif %}>Password:</span>
</td> </td>
<td> <td>
<input type="password" name="password" id="password" value="" size="30" maxlength="29" /> <input form="form" type="password" name="password" id="password" value="" size="30" maxlength="29" />
<img id="password_indicator" src="images/global/general/{% if not save or errors.password is defined %}n{% endif %}ok.gif" style="display: none;" /> <img id="password_indicator" src="images/global/general/{% if not save or errors.password is defined %}n{% endif %}ok.gif" style="display: none;" />
</td> </td>
</tr> </tr>
@@ -105,7 +89,7 @@
<span{% if errors.password is defined %} class="red"{% endif %}>Repeat password:</span> <span{% if errors.password is defined %} class="red"{% endif %}>Repeat password:</span>
</td> </td>
<td> <td>
<input type="password" name="password_confirm" id="password_confirm" value="" size="30" maxlength="29" /> <input form="form" type="password" name="password_confirm" id="password_confirm" value="" size="30" maxlength="29" />
<img id="password_confirm_indicator" src="images/global/general/{% if not save or errors.password is defined %}n{% endif %}ok.gif" style="display: none;" /> <img id="password_confirm_indicator" src="images/global/general/{% if not save or errors.password is defined %}n{% endif %}ok.gif" style="display: none;" />
</td> </td>
</tr> </tr>
@@ -141,7 +125,7 @@
<span{% if errors.name is defined %} class="red"{% endif %}>Character Name:</span> <span{% if errors.name is defined %} class="red"{% endif %}>Character Name:</span>
</td> </td>
<td> <td>
<input id="character_name" name="name" size="{{ setting('core.create_character_name_max_length') }}" maxlength="{{ setting('core.create_character_name_max_length') }}" value="{{ name }}"/> <input form="form" id="character_name" name="name" size="{{ setting('core.create_character_name_max_length') }}" maxlength="{{ setting('core.create_character_name_max_length') }}" value="{{ name }}"/>
<img id="character_indicator" src="images/global/general/{% if not save or errors.name is defined %}n{% endif %}ok.gif" style="display: none;" /> <img id="character_indicator" src="images/global/general/{% if not save or errors.name is defined %}n{% endif %}ok.gif" style="display: none;" />
<br> <br>
</td> </td>
@@ -168,7 +152,7 @@
{% for id, gender in config.genders|reverse(true) %} {% for id, gender in config.genders|reverse(true) %}
{% set i = i + 1 %} {% set i = i + 1 %}
<span style="margin-right:15px;" class="OptionContainer"> <span style="margin-right:15px;" class="OptionContainer">
<input type="radio" name="sex" id="sex{{ i }}" value="{{ id }}"{% if sex is not null and sex == id %} checked="checked"{% endif %}> <input form="form" type="radio" name="sex" id="sex{{ i }}" value="{{ id }}"{% if sex is not null and sex == id %} checked="checked"{% endif %}>
<label for="sex{{ i }}">{{ gender|lower }}</label> <label for="sex{{ i }}">{{ gender|lower }}</label>
</span> </span>
{% endfor %} {% endfor %}
@@ -201,7 +185,7 @@
<td> <td>
{% for key, sample_char in config.character_samples %} {% for key, sample_char in config.character_samples %}
<span style="margin-right:15px;" class="OptionContainer"> <span style="margin-right:15px;" class="OptionContainer">
<input type="radio" name="vocation" id="vocation{{ key }}" value="{{ key }}" <input form="form" type="radio" name="vocation" id="vocation{{ key }}" value="{{ key }}"
{% if vocation is not null and vocation == key %} checked="checked"{% endif %}> {% if vocation is not null and vocation == key %} checked="checked"{% endif %}>
<label for="vocation{{ key }}">{{ config['vocations'][key] }}</label> <label for="vocation{{ key }}">{{ config['vocations'][key] }}</label>
</span> </span>
@@ -234,7 +218,7 @@
<td> <td>
{% for town_id in config.character_towns %} {% for town_id in config.character_towns %}
<span style="margin-right:15px;" class="OptionContainer"> <span style="margin-right:15px;" class="OptionContainer">
<input type="radio" name="town" id="town{{ town_id }}" value="{{ town_id }}" <input form="form" type="radio" name="town" id="town{{ town_id }}" value="{{ town_id }}"
{% if town is not null and town == town_id %} checked="checked"{% endif %}> {% if town is not null and town == town_id %} checked="checked"{% endif %}>
<label for="town{{ town_id }}">{{ config.towns[town_id] }}</label> <label for="town{{ town_id }}">{{ config.towns[town_id] }}</label>
</span> </span>
@@ -279,7 +263,7 @@
</tr> </tr>
<tr> <tr>
<td colspan="2" > <td colspan="2" >
<span><input type="checkbox" id="accept_rules" name="accept_rules" value="true"{% if accept_rules %}checked{% endif %}/> <label for="accept_rules">I agree to the <a href="?subtopic=rules" target="_blank">{{ config.lua.serverName }} Rules</a>.</label></span> <span><input form="form" type="checkbox" id="accept_rules" name="accept_rules" value="true"{% if accept_rules %}checked{% endif %}/> <label for="accept_rules">I agree to the <a href="?subtopic=rules" target="_blank">{{ config.lua.serverName }} Rules</a>.</label></span>
</td> </td>
</tr> </tr>
{% if errors.accept_rules is defined %} {% if errors.accept_rules is defined %}
@@ -303,11 +287,8 @@
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_BOXES') }} {{ hook('HOOK_ACCOUNT_CREATE_AFTER_BOXES') }}
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
{{ hook('HOOK_ACCOUNT_CREATE_BEFORE_SUBMIT_BUTTON') }} {{ hook('HOOK_ACCOUNT_CREATE_BEFORE_SUBMIT_BUTTON') }}
<table width="100%"> <table width="100%">
@@ -316,15 +297,17 @@
<table border="0" cellspacing="0" cellpadding="0" > <table border="0" cellspacing="0" cellpadding="0" >
<tr> <tr>
<td style="border:0px;" > <td style="border:0px;" >
<form id="form" action="{{ getLink('account/create') }}" method="post">
{{ csrf() }}
<input type="hidden" name="save" value="1" > <input type="hidden" name="save" value="1" >
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</td>
</tr>
</table>
</td>
</tr>
</table>
</form> </form>
</td>
</tr>
</table>
</td>
</tr>
</table>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_FORM') }} {{ hook('HOOK_ACCOUNT_CREATE_AFTER_FORM') }}
<script type="text/javascript" src="{{ constant('BASE_URL') }}tools/check_name.js"></script> <script type="text/javascript" src="{{ constant('BASE_URL') }}tools/check_name.js"></script>
<style> <style>

View File

@@ -6,9 +6,6 @@ In any case the name must not violate the naming conventions stated in the <a hr
<b><span style="color: red"> You have maximum number of characters per account on your account. Delete one before you make new.</span></b> <b><span style="color: red"> You have maximum number of characters per account on your account. Delete one before you make new.</span></b>
{% endif %} {% endif %}
<br/><br/> <br/><br/>
<form action="{{ getLink('account/character/create') }}" method="post">
{{ csrf() }}
<input type="hidden" name="save" value="1">
<div class="TableContainer"> <div class="TableContainer">
<table class="Table3" cellpadding="0" cellspacing="0"> <table class="Table3" cellpadding="0" cellspacing="0">
<div class="CaptionContainer"> <div class="CaptionContainer">
@@ -46,7 +43,7 @@ In any case the name must not violate the naming conventions stated in the <a hr
</tr> </tr>
<tr class="Odd"> <tr class="Odd">
<td> <td>
<input name="name" id="character_name" value="{{ name }}" size="{{ setting('core.create_character_name_max_length') }}" maxlength="{{ setting('core.create_character_name_max_length') }}" > <input form="form" name="name" id="character_name" value="{{ name }}" size="{{ setting('core.create_character_name_max_length') }}" maxlength="{{ setting('core.create_character_name_max_length') }}" >
<img id="character_indicator" src="images/global/general/{% if not save or errors.name is defined %}n{% endif %}ok.gif" /> <img id="character_indicator" src="images/global/general/{% if not save or errors.name is defined %}n{% endif %}ok.gif" />
<br/> <br/>
<span style="font-size: 10px"> <span style="font-size: 10px">
@@ -57,7 +54,7 @@ In any case the name must not violate the naming conventions stated in the <a hr
{% set i = 0 %} {% set i = 0 %}
{% for id, gender in config.genders|reverse(true) %} {% for id, gender in config.genders|reverse(true) %}
{% set i = i + 1 %} {% set i = i + 1 %}
<input type="radio" name="sex" id="sex{{ i }}" value="{{ id }}"{% if sex is not null and sex == id %} checked="checked"{% endif %} <input form="form" type="radio" name="sex" id="sex{{ i }}" value="{{ id }}"{% if sex is not null and sex == id %} checked="checked"{% endif %}
><label for="sex{{ i }}">{{ gender|lower }}</label><br/> ><label for="sex{{ i }}">{{ gender|lower }}</label><br/>
{% endfor %} {% endfor %}
</td> </td>
@@ -80,7 +77,7 @@ In any case the name must not violate the naming conventions stated in the <a hr
{% for key, sample_char in config.character_samples %} {% for key, sample_char in config.character_samples %}
<tr> <tr>
<td> <td>
<input type="radio" name="vocation" id="vocation{{ key }}" value="{{ key }}" <input form="form" type="radio" name="vocation" id="vocation{{ key }}" value="{{ key }}"
{% if vocation is not null and vocation == key %} checked="checked"{% endif %}> {% if vocation is not null and vocation == key %} checked="checked"{% endif %}>
<label for="vocation{{ key }}">{{ config['vocations'][key] }}</label> <label for="vocation{{ key }}">{{ config['vocations'][key] }}</label>
</td> </td>
@@ -101,7 +98,7 @@ In any case the name must not violate the naming conventions stated in the <a hr
{% for town_id in config.character_towns %} {% for town_id in config.character_towns %}
<tr> <tr>
<td> <td>
<input type="radio" name="town" id="town{{ town_id }}" value="{{ town_id }}" <input form="form" type="radio" name="town" id="town{{ town_id }}" value="{{ town_id }}"
{% if town is not null and town == town_id %} checked="checked"{% endif %}> {% if town is not null and town == town_id %} checked="checked"{% endif %}>
<label for="town{{ town_id }}">{{ config.towns[town_id] }}</label> <label for="town{{ town_id }}">{{ config.towns[town_id] }}</label>
</td> </td>
@@ -127,22 +124,25 @@ In any case the name must not violate the naming conventions stated in the <a hr
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form id="form" action="{{ getLink('account/character/create') }}" method="post">
{{ csrf() }}
<input type="hidden" name="save" value="1">
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</form>
</td> </td>
</tr> </tr>
</form>
</table> </table>
</td> </td>
<td> <td>
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</form>
</td> </td>
</tr> </tr>
</form>
</table> </table>
</td> </td>
</tr> </tr>

View File

@@ -1,44 +1,23 @@
To delete a character enter the name of the character and your password.<br/><br/> To delete a character enter the name of the character and your password.<br/><br/>
<form action="{{ getLink('account/character/delete') }}" method="post"> {% set title = 'Delete Character' %}
{{ csrf() }} {% set background = config('darkborder') %}
<input type="hidden" name="deletecharactersave" value="1"/> {% set content %}
<div class="TableContainer">
<table class="Table1" cellpadding="0" cellspacing="0" >
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Delete Character</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tr> <tr>
<td class="LabelV" ><span>Character Name:</span></td> <td class="LabelV" ><span>Character Name:</span></td>
<td style="width:90%;"> <td style="width:90%;">
<input name="delete_name" value="" size="30" maxlength="29"/> <input form="form" name="delete_name" value="" size="30" maxlength="29"/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="LabelV" ><span>Password:</span></td> <td class="LabelV" ><span>Password:</span></td>
<td> <td>
<input type="password" name="delete_password" size="30" maxlength="29"/> <input form="form" type="password" name="delete_password" size="30" maxlength="29"/>
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<table style="width:100%"> <table style="width:100%">
<tr align="center"> <tr align="center">
@@ -46,10 +25,13 @@ To delete a character enter the name of the character and your password.<br/><br
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form id="form" action="{{ getLink('account/character/delete') }}" method="post">
{{ csrf() }}
<input type="hidden" name="deletecharactersave" value="1"/>
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</td>
<tr>
</form> </form>
</td>
</tr>
</table> </table>
</td> </td>
<td> <td>

View File

@@ -1,37 +1,17 @@
To generate new recovery key for your account please enter your password.<br/> To generate new recovery key for your account please enter your password.<br/>
<span style="color: red"><b>New recovery key cost {{ setting('core.account_generate_new_reckey_price') }} Premium Points.</span> You have {{ points }} premium points. You will receive e-mail with this recovery key.</b><br/> <span style="color: red"><b>New recovery key cost {{ setting('core.account_generate_new_reckey_price') }} Premium Points</b>.</span> You have {{ points }} premium points. You will receive e-mail with this recovery key.
<form action="{{ getLink('account/register/new') }}" method="post"> <br/>
{{ csrf() }} {% set title = 'Generate recovery key' %}
<input type="hidden" name="registeraccountsave" value="1"> {% set background = config('darkborder') %}
<div class="TableContainer" > {% set content %}
<table class="Table1" cellpadding="0" cellspacing="0">
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Generate recovery key</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tr> <tr>
<td class="LabelV"><span>Password:</span></td> <td class="LabelV"><span>Password:</span></td>
<td><input type="password" name="reg_password" size="30" maxlength="29" ></td> <td><input form="form" type="password" name="reg_password" size="30" maxlength="29" ></td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<table style="width:100%"> <table style="width:100%">
<tr align="center"> <tr align="center">
@@ -39,22 +19,25 @@ To generate new recovery key for your account please enter your password.<br/>
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form id="form" action="{{ getLink('account/register/new') }}" method="post">
{{ csrf() }}
<input type="hidden" name="registeraccountsave" value="1">
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</form>
</td> </td>
</tr> </tr>
</form>
</table> </table>
</td> </td>
<td> <td>
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</td>
</tr>
</form> </form>
</td>
</tr>
</table> </table>
</td> </td>
</tr> </tr>

View File

@@ -1,40 +1,19 @@
To generate recovery key for your account please enter your password.<br/><br/> To generate recovery key for your account please enter your password.<br/><br/>
<form action="{{ getLink('account/register') }}" method="post"> {% set title = 'Generate recovery key' %}
{{ csrf() }} {% set background = config('darkborder') %}
<input type="hidden" name="registeraccountsave" value="1"/> {% set content %}
<div class="TableContainer">
<table class="Table1" cellpadding="0" cellspacing="0">
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Generate recovery key</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;" > <table style="width:100%;" >
<tr> <tr>
<td class="LabelV"> <td class="LabelV">
<span>Password:</span> <span>Password:</span>
</td> </td>
<td> <td>
<input type="password" name="reg_password" size="30" maxlength="29" autofocus/> <input form="form" type="password" name="reg_password" size="30" maxlength="29" autofocus/>
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<table style="width:100%"> <table style="width:100%">
<tr align="center"> <tr align="center">
@@ -42,12 +21,15 @@ To generate recovery key for your account please enter your password.<br/><br/>
<table border="0" cellspacing="0" cellpadding="0" > <table border="0" cellspacing="0" cellpadding="0" >
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form id="form" action="{{ getLink('account/register') }}" method="post">
{{ csrf() }}
<input type="hidden" name="registeraccountsave" value="1"/>
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</form>
</td> </td>
<tr> <tr>
</table> </table>
</td> </td>
</form>
<td> <td>
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post"> <form action="{{ getLink('account/manage') }}" method="post">

View File

@@ -1,28 +1,10 @@
<div class="TableContainer"> {% set title = 'Logout Successful' %}
<table class="Table1" cellpadding="0" cellspacing="0" > {% set background = config('darkborder') %}
<div class="CaptionContainer"> {% set content %}
<div class="CaptionInnerContainer" >
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"/></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"/></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"/></span>
<div class="Text">Logout Successful</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"/></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"/></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"/></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tr> <tr>
<td>You have logged out of your {{ config.serverName }} account. In order to view your account you need to <a href="{{ getLink('account/manage') }}" >log in</a> again.</td> <td>You have logged out of your {{ config.serverName }} account. In order to view your account you need to <a href="{{ getLink('account/manage') }}" >log in</a> again.</td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>

View File

@@ -1,31 +1,13 @@
<div class="TableContainer"> {% set title = 'Login Successful' %}
<table class="Table1" cellpadding="0" cellspacing="0"> {% set background = config('darkborder') %}
<div class="CaptionContainer"> {% set content %}
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span>
<div class="Text" >Login Successful</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;" > <table style="width:100%;" >
<tr> <tr>
<td>You have logged in.<br/>Press <a href="{{ redirect }}" >here</a> if you are not returned automatically.</td> <td>You have logged in.<br/>Press <a href="{{ redirect }}" >here</a> if you are not returned automatically.</td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<script language="javascript" type="text/javascript"> <script language="javascript" type="text/javascript">
// Automatic redirect // Automatic redirect

View File

@@ -39,7 +39,9 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="2" align="center"><input type="submit" value="Submit"/> <td colspan="2" align="center">
{{ include('buttons.submit.html.twig') }}
</td>
</tr> </tr>
</table> </table>
</td> </td>

View File

@@ -1,24 +1,26 @@
<b>Boards</b> <b>Boards</b>
<table width="100%"> <table width="100%">
<thead>
<tr bgcolor="{{ config.vdarkborder }}" class="white"> <tr bgcolor="{{ config.vdarkborder }}" class="white">
<td> <th>
<span style="font-size: 10px"><b>Board</b></span> <span style="font-size: 10px"><b>Board</b></span>
</td> </th>
<td> <th>
<span style="font-size: 10px"><b>Posts</b></span> <span style="font-size: 10px"><b>Posts</b></span>
</td> </th>
<td> <th>
<span style="font-size: 10px"><b>Threads</b></span> <span style="font-size: 10px"><b>Threads</b></span>
</td> </th>
<td align="center"> <th align="center">
<span style="font-size: 10px"><b>Last Post</b></span> <span style="font-size: 10px"><b>Last Post</b></span>
</td> </th>
{% if canEdit %} {% if canEdit %}
<td> <th>
<span style="font-size: 10px"><b>Options</b></span> <span style="font-size: 10px"><b>Options</b></span>
</td> </th>
{% endif %} {% endif %}
</tr> </tr>
</thead>
{% set i = 0 %} {% set i = 0 %}
{% for board in boards %} {% for board in boards %}
{% set i = i + 1 %} {% set i = i + 1 %}

View File

@@ -1,4 +1,9 @@
<div style="text-align:center"><h2>Change guild description</h2></div> {% set title = 'Change guild description' %}
{% set background = config('darkborder') %}
{% set content %}
<table style="width:100%;" >
<tr>
<td>
Here you can change description of your guild.<br/> Here you can change description of your guild.<br/>
<form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_description" method="post"> <form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_description" method="post">
{{ csrf() }} {{ csrf() }}
@@ -12,3 +17,8 @@ Here you can change description of your guild.<br/>
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</form> </form>
</div> </div>
</td>
</tr>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}

View File

@@ -1,4 +1,9 @@
<div style="text-align:center"><h2>Change guild logo</h2></div> {% set title = 'Change guild logo' %}
{% set background = config('darkborder') %}
{% set content %}
<table style="width:100%;" >
<tr>
<td>
Here you can change logo of your guild.<br/>Actuall logo: <img src="{{ constant('GUILD_IMAGES_DIR') }}{{ guild_logo }}" height="64" width="64"><br/><br/> Here you can change logo of your guild.<br/>Actuall logo: <img src="{{ constant('GUILD_IMAGES_DIR') }}{{ guild_logo }}" height="64" width="64"><br/><br/>
<form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_logo" method="post" id="upload_form"> <form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_logo" method="post" id="upload_form">
{{ csrf() }} {{ csrf() }}
@@ -9,12 +14,19 @@ Here you can change logo of your guild.<br/>Actuall logo: <img src="{{ constant(
</form> </form>
Only <b>jpg, gif, png, bmp</b> pictures. Max. size: <b>{{ setting('core.guild_image_size_kb') }} KB</b><br> Only <b>jpg, gif, png, bmp</b> pictures. Max. size: <b>{{ setting('core.guild_image_size_kb') }} KB</b><br>
<br/> <br/>
</td>
</tr>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}
<div style="text-align:center"> <div style="text-align:center">
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=manager" method="post"> <form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=manager" method="post">
{{ csrf() }} {{ csrf() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</form> </form>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(function() { $(function() {
$('#upload_form').submit(function (event) { $('#upload_form').submit(function (event) {

View File

@@ -1,11 +1,22 @@
<div style="text-align:center"><h2>Change guild MOTD</h2></div> {% set title = 'Change guild MOTD' %}
{% set background = config('darkborder') %}
{% set content %}
<table style="width:100%;" >
<tr>
<td>
Here you can change MOTD (Message of the Day, showed in game!) of your guild.<br/> Here you can change MOTD (Message of the Day, showed in game!) of your guild.<br/>
<form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_motd" method="post"> <form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_motd" method="post">
{{ csrf() }} {{ csrf() }}
<input type="hidden" name="todo" value="save"/> <input type="hidden" name="todo" value="save"/>
<textarea name="motd" cols="60" rows="3">{{ guild.getCustomField('motd')|raw }}</textarea><br/> <textarea name="motd" cols="60" rows="3">{{ guild.getCustomField('motd')|raw }}</textarea><br/>
(max. {{ setting('core.guild_motd_chars_limit') }} chars) <input type="submit" value="Save MOTD" /></form><br/> (max. {{ setting('core.guild_motd_chars_limit') }} chars) <input type="submit" value="Save MOTD" />
<br/> </form>
</td>
</tr>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}
<div style="text-align:center"> <div style="text-align:center">
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=manager" method="post"> <form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=manager" method="post">
{{ csrf() }} {{ csrf() }}

View File

@@ -1,21 +1,6 @@
<div class="TableContainer"> {% set title = 'Delete Guild' %}
<table class="Table1" cellpadding="0" cellspacing="0"> {% set background = config('darkborder') %}
<div class="CaptionContainer" > {% set content %}
<div class="CaptionInnerContainer" >
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Delete Guild</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;" > <table style="width:100%;" >
<tr> <tr>
<td>Are you sure you want delete guild <b>{{ guild.getName() }}</b>?<br/> <td>Are you sure you want delete guild <b>{{ guild.getName() }}</b>?<br/>
@@ -27,11 +12,8 @@
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<div style="text-align:center"> <div style="text-align:center">
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=manager" method="post"> <form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=manager" method="post">

View File

@@ -1,23 +1,5 @@
<div class="TableContainer"> {% set title = 'Active Guilds on ' ~ config.lua.serverName %}
<div class="CaptionContainer"> {% set content %}
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text">Active Guilds on {{ config.lua.serverName }}</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<table class="Table3">
<tbody>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tbody> <tbody>
<tr> <tr>
@@ -107,12 +89,8 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</tbody>
</table>
</div>
<br> <br>
<table border="0" cellspacing="1" cellpadding="4" width="100%"> <table border="0" cellspacing="1" cellpadding="4" width="100%">

View File

@@ -54,23 +54,8 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth
</tr> </tr>
</table> </table>
<br/> <br/>
<div class="TableContainer"> {% set title = 'Add new rank' %}
<table class="Table1" cellpadding="0" cellspacing="0"> {% set content %}
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Add new rank</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tr> <tr>
<td width="120" valign="top">New rank name:</td> <td width="120" valign="top">New rank name:</td>
@@ -83,12 +68,11 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table> {% set title = 'Change rank names and levels' %}
</div> {% set content %}
<div style="text-align:center"><h3>Change rank names and levels</h3></div>
<form action="{{ getLink('guilds') }}?action=save_ranks&guild={{ guild.getName() }}" method="post"> <form action="{{ getLink('guilds') }}?action=save_ranks&guild={{ guild.getName() }}" method="post">
{{ csrf() }} {{ csrf() }}
<table style="clear:both" border="0" cellpadding="0" cellspacing="0" width="100%"> <table style="clear:both" border="0" cellpadding="0" cellspacing="0" width="100%">
@@ -146,6 +130,7 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth
</tr> </tr>
</table> </table>
</form> </form>
<h3>Ranks info:</h3> <h3>Ranks info:</h3>
<b>0. Owner of guild</b> - it's highest rank, only one player in guild may has this rank. Player with this rank can: <b>0. Owner of guild</b> - it's highest rank, only one player in guild may has this rank. Player with this rank can:
<li>Invite/Cancel Invitation/Kick Player from guild</li> <li>Invite/Cancel Invitation/Kick Player from guild</li>
@@ -155,14 +140,18 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth
<li>Change {% if constant('MOTD_EXISTS') %}MOTD, {% endif %}logo and description of guild</li> <li>Change {% if constant('MOTD_EXISTS') %}MOTD, {% endif %}logo and description of guild</li>
<hr/> <hr/>
<b>1. Leader</b> - it's second rank in guild. Player with this rank can: <b>1. Leader</b> - it's second rank in guild. Player with this rank can:
<li>Invite/Cancel Invitation/Kick Player from guild (only with lower rank than his) <li>Invite/Cancel Invitation/Kick Player from guild (only with lower rank than his)</li>
<li>Change ranks of players with lower rank level ("vice leader", "member") in guild<hr> <li>Change ranks of players with lower rank level ("vice leader", "member") in guild</li>
<hr>
<b>2. Vice Leader</b> - it's third rank in guild. Player with this rank can: <b>2. Vice Leader</b> - it's third rank in guild. Player with this rank can:
<li>Invite/Cancel Invitation <li>Invite/Cancel Invitation</li>
<li>Change ranks of players with lower rank level ("member") in guild<hr> <li>Change ranks of players with lower rank level ("member") in guild</li>
<hr>
<b>3. Member</b> - it's lowest rank in guild. Player with this rank can: <b>3. Member</b> - it's lowest rank in guild. Player with this rank can:
<li>Be a member of guild <li>Be a member of guild</li>
<br/> <br/>
{% endset %}
{% include 'tables.headline.html.twig' %}
<div style="text-align:center"> <div style="text-align:center">
<form action="{{ getLink('guilds') }}?action=show&guild={{ guild.getName() }}" method="post"> <form action="{{ getLink('guilds') }}?action=show&guild={{ guild.getName() }}" method="post">
{{ csrf() }} {{ csrf() }}

View File

@@ -1,24 +1,9 @@
<div class="TableContainer"> {% set title = 'Pass leadership' %}
<table class="Table1" cellpadding="0" cellspacing="0"> {% set background = config('darkborder') %}
<div class="CaptionContainer"> {% set content %}
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Pass leadership</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer" >
<table style="width:100%;"> <table style="width:100%;">
<tr> <tr>
<td>Pass leadership to: </b><br> <td><strong>Pass leadership to: </strong><br>
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=pass_leadership" method="post"> <form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=pass_leadership" method="post">
{{ csrf() }} {{ csrf() }}
<input type="hidden" name="todo" value="save"/> <input type="hidden" name="todo" value="save"/>
@@ -28,11 +13,8 @@
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<div style="text-align:center"> <div style="text-align:center">
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=manager" method="post"> <form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=manager" method="post">

View File

@@ -21,32 +21,9 @@
{{ hook('HOOK_GUILDS_AFTER_GUILD_HEADER') }} {{ hook('HOOK_GUILDS_AFTER_GUILD_HEADER') }}
<table width="100%"> {% set title = 'Guild Information' %}
<tbody> {% set background = config('darkborder') %}
<tr> {% set content %}
<td style="vertical-align:top;">
<div class="TableContainer">
<div class="TableContainer">
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text">Guild Information</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
</div>
<table class="Table1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tbody> <tbody>
<tr> <tr>
@@ -68,7 +45,8 @@
The guild was founded on {{ config.lua.serverName }} on {{ guild_creation_date|date("j F Y") }}. The guild was founded on {{ config.lua.serverName }} on {{ guild_creation_date|date("j F Y") }}.
{% if isLeader %} {% if isLeader %}
<a href="{{ getLink('guilds') }}?action=manager&guild={{ guild_name }}" style="float: right;"> <a href="{{ getLink('guilds') }}?action=manager&guild={{ guild_name }}" style="float: right;">
<img src="{{ template_path }}/images/global/buttons/sbutton_manageguild.png" style="width: 120px; height: 20px;" alt="Manage Guild"> {% set button_name = 'Manage Guild' %}
{% include('buttons.base.html.twig') %}
</a> </a>
{% endif %} {% endif %}
</div> </div>
@@ -76,42 +54,14 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
<br/> <br/>
{{ hook('HOOK_GUILDS_AFTER_GUILD_INFORMATION') }} {{ hook('HOOK_GUILDS_AFTER_GUILD_INFORMATION') }}
<div class="TableContainer"> {% set title = 'Guild Members' %}
<div class="TableContainer"> {% set content %}
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text">Guild Members</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
</div>
<table class="Table3" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tbody> <tbody>
<tr> <tr>
@@ -193,36 +143,13 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</tbody>
</table>
</div>
<br/> <br/>
{{ hook('HOOK_GUILDS_AFTER_GUILD_MEMBERS') }} {{ hook('HOOK_GUILDS_AFTER_GUILD_MEMBERS') }}
{% set title = 'Invited Characters' %}
<div class="TableContainer"> {% set content %}
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text">Invited Characters</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<table class="Table3" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tbody> <tbody>
<tr> <tr>
@@ -265,12 +192,8 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</tbody>
</table>
</div>
<br/> <br/>
{{ hook('HOOK_GUILDS_AFTER_INVITED_CHARACTERS', { 'guild': guild, 'isLeader': isLeader }) }} {{ hook('HOOK_GUILDS_AFTER_INVITED_CHARACTERS', { 'guild': guild, 'isLeader': isLeader }) }}

View File

@@ -1,27 +1,10 @@
<div class="TableContainer"> {% set title = 'House Search' %}
{% set content %}
{% if errors is not empty %} {% if errors is not empty %}
{% for error in errors %} {% for error in errors %}
<p class="error">{{ error }}</p> <p class="error">{{ error }}</p>
{% endfor %} {% endfor %}
{% else %} {% else %}
<table class="Table1" cellpadding="0" cellspacing="0" style="background-color: {{ config.lightborder }}">
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >House Search</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
Here you can see the list of all available houses, flats{{ guildString }}. Here you can see the list of all available houses, flats{{ guildString }}.
Click on any view button to get more information about a house or adjust Click on any view button to get more information about a house or adjust
the search criteria and start a new search. the search criteria and start a new search.
@@ -163,9 +146,6 @@
</tbody> </tbody>
</table> </table>
</form> </form>
</div>
</td>
</tr>
</table>
{% endif %} {% endif %}
</div> {% endset %}
{% include 'tables.headline.html.twig' %}

View File

@@ -1,27 +1,11 @@
<div class="TableContainer"> {% set title = houseName %}
{% set content %}
{% if errors is not empty %} {% if errors is not empty %}
{% for error in errors %} {% for error in errors %}
<p class="error">{{ error }}</p> <p class="error">{{ error }}</p>
{% endfor %} {% endfor %}
{% else %} {% else %}
<table class="Table1" cellpadding="0" cellspacing="0" style="background-color: {{ config.lightborder }}">
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >{{ houseName }}</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table border="0" cellpadding="4" cellspacing="1" width="100%"> <table border="0" cellpadding="4" cellspacing="1" width="100%">
<tr style="display: inline-flex;"> <tr style="display: inline-flex;">
<td><img src="{{ imgPath }}"></td> <td><img src="{{ imgPath }}"></td>
@@ -41,11 +25,8 @@
</td> </td>
</tr> </tr>
</table> </table>
</div>
</td>
</tr>
</table>
{% endif %} {% endif %}
</div> {% endset %}
{% include 'tables.headline.html.twig' %}
<br><br> <br><br>

View File

@@ -1,21 +1,5 @@
<div class="TableContainer" > {% set title = 'Last Kills' %}
<table class="Table3"> {% set content %}
<div class="CaptionContainer" >
<div class="CaptionInnerContainer" >
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" ></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" ></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" ></span>
<div class="Text" >Last Kills</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" ></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" ></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" ></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer" >
<table style="width:100%;"> <table style="width:100%;">
<tbody> <tbody>
<tr> <tr>
@@ -65,8 +49,5 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>

View File

@@ -1,31 +1,17 @@
<div class="TableContainer"> <table border="0" cellspacing="1" cellpadding="4" width="100%">
<table class="Table1" cellpadding="0" cellspacing="0"> <thead>
<div class="CaptionContainer"> <tr bgcolor="{{ config.vdarkborder }}">
<div class="CaptionInnerContainer"> <td colspan="3" class="white"><b>{{ title|raw }}</b></td>
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >{{ title|raw }}</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;">
<tr>
<td>{{ description|raw }}</td>
</tr> </tr>
</table> </thead>
</div> <tbody>
<tr style="background-color: {% if background is not null %}{{ background }}{% else %}{{ config.darkborder }}{% endif %}">
<td>
{{ description|raw }}
</td> </td>
</tr> </tr>
</tbody>
</table> </table>
</div>
<br/> <br/>
{% if custom_buttons is defined %} {% if custom_buttons is defined %}
{{ custom_buttons|raw }} {{ custom_buttons|raw }}

View File

@@ -1,24 +1,14 @@
<div class="TableContainer"> <table border="0" cellspacing="1" cellpadding="4" width="100%">
<div class="CaptionContainer"> <thead>
<div class="CaptionInnerContainer"> <tr bgcolor="{{ config.vdarkborder }}">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td colspan="3" class="white"><b>{{ title|raw }}</b></td>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </tr>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> </thead>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <tbody>
<div class="Text" >{{ title|raw }}</div> <tr style="background-color: {% if background is not null %}{{ background }}{% else %}{{ config.lightborder }}{% endif %}">
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<table class="Table5" cellpadding="0" cellspacing="0" style="background-color: {{ config.lightborder }}">
<tr>
<td> <td>
<div class="InnerTableContainer">
{{ content|raw }} {{ content|raw }}
</div>
</td> </td>
</tr> </tr>
</tbody>
</table> </table>
</div>

View File

@@ -1,24 +1,8 @@
<div class="TableContainer"> {% set title = 'Support in game' %}
<div class="CaptionContainer"> {% set content %}
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Support in game</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<table class="Table1" cellpadding="0" cellspacing="0" style="background-color: {{ config.darkborder }}">
<tr>
<td>
<div class="InnerTableContainer">
{% set i = 0 %} {% set i = 0 %}
{% if setting('core.team_style') == 1 %}
{% if setting('core.team_style') == 1 %}
<table border="0" cellpadding="4" cellspacing="1" width="100%"> <table border="0" cellpadding="4" cellspacing="1" width="100%">
<tr bgcolor="{{ config.vdarkborder }}"> <tr bgcolor="{{ config.vdarkborder }}">
<td width="10%" class="white"> <td width="10%" class="white">
@@ -100,7 +84,9 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</table> </table>
{% elseif setting('core.team_style') == 2 %} {% elseif setting('core.team_style') == 2 %}
{% for group in groupmember|reverse %} {% for group in groupmember|reverse %}
{% if group.members is not empty %} {% if group.members is not empty %}
<div style="text-align:center"><h2>{{ group.group_name|capitalize }}</h2></div> <div style="text-align:center"><h2>{{ group.group_name|capitalize }}</h2></div>
@@ -179,8 +165,6 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}
</div>
</td> {% endset %}
</tr> {% include 'tables.headline.html.twig' %}
</table>
</div>

View File

@@ -31,6 +31,8 @@ if($dev_mode) {
} }
unset($dev_mode); unset($dev_mode);
$twig->addExtension(new MyAAC\Twig\Extension\TypeCastingExtension());
$filter = new TwigFilter('timeago', function ($datetime) { $filter = new TwigFilter('timeago', function ($datetime) {
$time = time() - strtotime($datetime); $time = time() - strtotime($datetime);
@@ -71,8 +73,8 @@ $function = new TwigFunction('generateLink', function ($s, $n, $b = false) {
}); });
$twig->addFunction($function); $twig->addFunction($function);
$function = new TwigFunction('getPlayerLink', function ($s, $p = true) { $function = new TwigFunction('getPlayerLink', function ($s, $p = true, $colored = false) {
return getPlayerLink($s, $p); return getPlayerLink($s, $p, $colored);
}); });
$twig->addFunction($function); $twig->addFunction($function);

View File

@@ -1,17 +0,0 @@
<h2>{{ title }}</h2><br/>
{{ description|raw }}
{% if custom_buttons is defined %}
{{ custom_buttons|raw }}
{% else %}
<div style="text-align: center; margin: 0 auto;">
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
<tr>
<td style="border:0px; text-align: center;">
<input type="submit" name="Back" value="Back"/>
</td>
</tr>
</form>
</table>
</div>
{% endif %}

View File

@@ -119,24 +119,9 @@
</a> </a>
</div> </div>
</div> </div>
<div class="TableContainer"> {% set title = 'General Information' %}
<table class="Table3" cellpadding="0" cellspacing="0"> {% set tableClass = 'Table3' %}
<div class="CaptionContainer"> {% set content %}
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >General Information</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;" > <table style="width:100%;" >
<tr> <tr>
<td> <td>
@@ -180,7 +165,8 @@
<div class="TableShadowContainer"> <div class="TableShadowContainer">
<div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bm.gif);" > <div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bm.gif);" >
<div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bl.gif);"></div> <div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bl.gif);"></div>
<div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-br.gif);"></div> </div> <div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-br.gif);"></div>
</div>
</div> </div>
</td> </td>
</tr> </tr>
@@ -232,11 +218,8 @@
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<a name="Public+Information"></a> <a name="Public+Information"></a>
<div class="TopButtonContainer"> <div class="TopButtonContainer">
@@ -246,24 +229,9 @@
</a> </a>
</div> </div>
</div> </div>
<div class="TableContainer"> {% set title = 'Public Information' %}
<table class="Table5" cellpadding="0" cellspacing="0"> {% set tableClass = 'Table5' %}
<div class="CaptionContainer"> {% set content %}
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Public Information</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tr> <tr>
<td> <td>
@@ -309,11 +277,8 @@
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<a name="Account+Logs" ></a> <a name="Account+Logs" ></a>
<div class="TopButtonContainer"> <div class="TopButtonContainer">
@@ -323,24 +288,9 @@
</a> </a>
</div> </div>
</div> </div>
<div class="TableContainer"> {% set title = 'Account logs' %}
<table class="Table5" cellpadding="0" cellspacing="0"> {% set tableClass = 'Table3' %}
<div class="CaptionContainer"> {% set content %}
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >Account logs</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tr> <tr>
<td> <td>
@@ -380,11 +330,8 @@
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/> <br/>
<a name="Characters" ></a> <a name="Characters" ></a>
<div class="TopButtonContainer"> <div class="TopButtonContainer">
@@ -394,24 +341,8 @@
</a> </a>
</div> </div>
</div> </div>
<div class="TableContainer"> {% set title = 'Characters' %}
<table class="Table5" cellpadding="0" cellspacing="0"> {% set content %}
<div class="CaptionContainer" >
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text">Characters</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;"> <table style="width:100%;">
<tr> <tr>
<td> <td>
@@ -449,9 +380,10 @@
</div> </div>
</div> </div>
<div class="TableShadowContainer"> <div class="TableShadowContainer">
<div class="TableBottomShadow" style="background-image:url('.$template_path.'/images/content/table-shadow-bm.gif);" > <div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bm.gif);" >
<div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bl.gif);"></div> <div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bl.gif);"></div>
<div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-br.gif);"></div> </div> <div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-br.gif);"></div>
</div>
</div> </div>
</td> </td>
</tr> </tr>
@@ -461,51 +393,51 @@
<tr> <tr>
<td> <td>
<table border="0" cellspacing="0" cellpadding="0" > <table border="0" cellspacing="0" cellpadding="0" >
<form action="{{ getLink('account/character/create') }}" method="post" >
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form action="{{ getLink('account/character/create') }}" method="post" >
{{ include('buttons.create_character.html.twig') }} {{ include('buttons.create_character.html.twig') }}
</form>
</td> </td>
</tr> </tr>
</form>
</table> </table>
</td> </td>
{% if setting('core.account_change_character_name') %} {% if setting('core.account_change_character_name') %}
<td> <td>
<table border="0" cellspacing="0" cellpadding="0" > <table border="0" cellspacing="0" cellpadding="0" >
<form action="{{ getLink('account/character/name') }}" method="post" >
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form action="{{ getLink('account/character/name') }}" method="post" >
{{ include('buttons.change_name.html.twig') }} {{ include('buttons.change_name.html.twig') }}
</form>
</td> </td>
</tr> </tr>
</form>
</table> </table>
</td> </td>
{% endif %} {% endif %}
{% if setting('core.account_change_character_sex') %} {% if setting('core.account_change_character_sex') %}
<td> <td>
<table border="0" cellspacing="0" cellpadding="0" > <table border="0" cellspacing="0" cellpadding="0" >
<form action="{{ getLink('account/character/sex') }}" method="post" >
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
<form action="{{ getLink('account/character/sex') }}" method="post">
{{ include('buttons.change_sex.html.twig') }} {{ include('buttons.change_sex.html.twig') }}
</form>
</td> </td>
</tr> </tr>
</form>
</table> </table>
</td> </td>
{% endif %} {% endif %}
<td style="width:100%;" ></td> <td style="width:100%;" ></td>
<td> <td>
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/character/delete') }}" method="post">
<tr> <tr>
<td style="border: 0px;"> <td style="border: 0px;">
<form action="{{ getLink('account/character/delete') }}" method="post">
{{ include('buttons.delete_character.html.twig') }} {{ include('buttons.delete_character.html.twig') }}
</td>
</tr>
</form> </form>
</td>
</tr>
</table> </table>
</td> </td>
</tr> </tr>
@@ -513,9 +445,6 @@
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr>
</table>
</div>
<br/><br/> <br/><br/>

View File

@@ -0,0 +1,44 @@
<div class="TableContainer">
<table class="Table1" cellpadding="0" cellspacing="0">
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >{{ title|raw }}</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;">
<tr>
<td>{{ description|raw }}</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<br/>
{% if custom_buttons is defined %}
{{ custom_buttons|raw }}
{% else %}
<div style="text-align:center">
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
<tr>
<td style="border:0px;">
{{ include('buttons.back.html.twig') }}
</td>
</tr>
</form>
</table>
</div>
{% endif %}

View File

@@ -0,0 +1,24 @@
<div class="TableContainer">
<div class="CaptionContainer">
<div class="CaptionInnerContainer">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<div class="Text" >{{ title|raw }}</div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
</div>
</div>
<table class="{% if tableClass is not null %}{{ tableClass }}{% else %}Table3{% endif %}" cellpadding="0" cellspacing="0" style="background-color: {% if background is not null %}{{ background }}{% else %}{{ config.lightborder }}{% endif %}">
<tr>
<td>
<div class="InnerTableContainer">
{{ content|raw }}
</div>
</td>
</tr>
</table>
</div>