Compare commits

...

32 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
59 changed files with 5058 additions and 2456 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

@@ -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

@@ -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,102 +1,84 @@
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" > <table style="width: 100%;" >
<div class="CaptionContainer" > <tr>
<div class="CaptionInnerContainer" > <td class="LabelV">Real Name:</td>
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <td style="width:90%;" >
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <input form="form" name="info_rlname" value="{{ account_rlname }}" size="30" maxlength="50" >
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> </td>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span> </tr>
<div class="Text" >Change Public Information</div> <tr>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span> <td class="LabelV" >Location:</td>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> <td>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <input form="form" name="info_location" value="{{ account_location }}" size="30" maxlength="50" >
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> </td>
</div> </tr>
</div> {% if setting('core.account_country') %}
<tr> <tr>
<td> <td class="LabelV">Country:</td>
<div class="InnerTableContainer" > <td>
<table style="width:100%;" > <select form="form" name="info_country" id="account_country">
<tr> {% for code, country in countries %}
<td class="LabelV" >Real Name:</td> <option value="{{ code}}"{% if account_country == code %} selected{% endif %}>{{ country }} </option>
<td style="width:90%;" > {% endfor %}
<input name="info_rlname" value="{{ account_rlname }}" size="30" maxlength="50" > </select>
</td> <img src="" id="account_country_img"/>
</tr> <script>
<tr> function updateFlag()
<td class="LabelV" >Location:</td> {
<td> var img = $('#account_country_img');
<input name="info_location" value="{{ account_location }}" size="30" maxlength="50" > var country = $('#account_country :selected').val();
</td> if(country.length) {
</tr> img.attr('src', 'images/flags/' + country + '.gif');
{% if setting('core.account_country') %} img.show();
<tr> }
<td class="LabelV" >Country:</td> else {
<td> img.hide();
<select name="info_country" id="account_country"> }
{% for code, country in countries %} }
<option value="{{ code}}"{% if account_country == code %} selected{% endif %}>{{ country }} </option>
{% endfor %}
</select>
<img src="" id="account_country_img"/>
<script>
function updateFlag()
{
var img = $('#account_country_img');
var country = $('#account_country :selected').val();
if(country.length) {
img.attr('src', 'images/flags/' + country + '.gif');
img.show();
}
else {
img.hide();
}
}
$(function() { $(function() {
updateFlag(); updateFlag();
$('#account_country').change(function() { $('#account_country').change(function() {
updateFlag(); updateFlag();
}); });
}); });
</script> </script>
</td> </td>
</tr> </tr>
{% endif %} {% endif %}
</table> </table>
</div> {% endset %}
</td> {% include 'tables.headline.html.twig' %}
</tr> <br/>
</table> <table width="100%">
</div> <tr align="center">
<br/> <td>
<table width="100%"> <table border="0" cellspacing="0" cellpadding="0" >
<tr align="center"> <tr>
<td> <td style="border:0px;" >
<table border="0" cellspacing="0" cellpadding="0" > <form id="form" action="{{ getLink('account/info') }}" method="post">
<tr> {{ csrf() }}
<td style="border:0px;" >
<input type="hidden" name="changeinfosave" value="1"> <input type="hidden" name="changeinfosave" value="1">
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</td> </form>
</tr> </td>
</table> </tr>
</td> </table>
<td> </td>
</form> <td>
<table border="0" cellspacing="0" cellpadding="0" > <table border="0" cellspacing="0" cellpadding="0" >
<form action="{{ getLink('account/manage') }}" method="post" > <tr>
{{ csrf() }} <td style="border:0px;" >
<tr> <form action="{{ getLink('account/manage') }}" method="post" >
<td style="border:0px;" > {{ csrf() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</td> </form>
</tr> </td>
</form> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>

View File

@@ -1,47 +1,27 @@
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"> <table style="width:100%;">
<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> <tr>
<td class="LabelV" >
<span>New Email Address:</span>
</td>
<td style="width:90%;">
<input form="form" name="new_email" value="{% if new_email is defined %}{{ new_email }}{% endif %}" size="30" maxlength="50" autofocus/>
</td>
</tr>
<tr>
<td class="LabelV">
<span >Password:</span>
</td>
<td> <td>
<div class="InnerTableContainer"> <input form="form" type="password" name="password" size="30" maxlength="29">
<table style="width:100%;">
<tr>
<td class="LabelV" >
<span >New Email Address:</span>
</td>
<td style="width:90%;">
<input name="new_email" value="{% if new_email is defined %}{{ new_email }}{% endif %}" size="30" maxlength="50" autofocus/>
</td>
</tr>
<tr>
<td class="LabelV">
<span >Password:</span>
</td>
<td>
<input type="password" name="password" size="30" maxlength="29">
</td>
</tr>
</table>
</div>
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endset %}
{% include 'tables.headline.html.twig' %}
<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;">
<input type="hidden" name="changeemailsave" value="1"/> <form id="form" action="{{ getLink('account/email') }}" method="post">
{{ include('buttons.submit.html.twig') }} {{ csrf() }}
<input type="hidden" name="changeemailsave" value="1"/>
{{ 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,79 +1,62 @@
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"> <table style="width:100%;" >
<div class="CaptionContainer"> <tr>
<div class="CaptionInnerContainer" > <td class="LabelV" ><span>Character:</span></td>
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td style="width:90%;" >
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <select form="form" name="player_id">
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> {% for player in account_logged.getPlayersList(false) %}
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <option value="{{ player.getId() }}">{{ player.getName() }}</option>
<div class="Text" >Change Name</div> {% endfor %}
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> </select>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> </td>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </tr>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <tr>
</div> <td class="LabelV" ><span>New Name:</span></td>
</div> <td>
<tr> <input form="form" type="text" name="name" id="character_name" size="25" maxlength="25" >
<td> <img id="character_indicator" src="images/global/general/{% if not save or errors|length > 0 %}n{% endif %}ok.gif" />
<div class="InnerTableContainer" > <br/>
<table style="width:100%;" > <span style="font-size: 10px">
<tr> <div id="character_error">Please enter your character name.</div>
<td class="LabelV" ><span>Character:</span></td> </span>
<td style="width:90%;" > </td>
<select name="player_id"> </tr>
{% for player in account_logged.getPlayersList(false) %} </table>
<option value="{{ player.getId() }}">{{ player.getName() }}</option> {% endset %}
{% endfor %} {% include 'tables.headline.html.twig' %}
</select> <br/>
</td> <table style="width:100%" >
</tr> <tr align="center">
<tr> <td>
<td class="LabelV" ><span>New Name:</span></td> <table border="0" cellspacing="0" cellpadding="0">
<td> <tr>
<input type="text" name="name" id="character_name" size="25" maxlength="25" > <td style="border:0px;">
<img id="character_indicator" src="images/global/general/{% if not save or errors|length > 0 %}n{% endif %}ok.gif" /> <form id="form" action="{{ getLink('account/character/name') }}" method="post">
<br/> {{ csrf() }}
<span style="font-size: 10px"> <input type="hidden" name="changenamesave" value="1">
<div id="character_error">Please enter your character name.</div>
</span>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<br/>
<table style="width:100%" >
<tr align="center">
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</td> </form>
</tr> </td>
</form> </tr>
</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"> <tr>
{{ csrf() }} <td style="border:0px;">
<tr> <form action="{{ getLink('account/manage') }}" method="post">
<td style="border:0px;"> {{ csrf() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</td> </form>
</tr> </td>
</form> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
<script type="text/javascript" src="tools/check_name.js"></script> <script type="text/javascript" src="tools/check_name.js"></script>

View File

@@ -1,80 +1,62 @@
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"> <table style="width:100%;">
<div class="CaptionContainer"> <tr>
<div class="CaptionInnerContainer"> <td class="LabelV">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <span>New Password:</span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </td>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <td style="width:90%;">
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <input form="form" type="password" name="newpassword" size="30" maxlength="29">
<div class="Text" >Change Password</div> </td>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> </tr>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <tr>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td class="LabelV">
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <span>New Password Again:</span>
</div> </td>
</div> <td>
<tr> <input form="form" type="password" name="newpassword_confirm" size="30" maxlength="29">
<td> </td>
<div class="InnerTableContainer"> </tr>
<table style="width:100%;"> <tr>
<tr> <td class="LabelV">
<td class="LabelV"> <span>Current Password:</span>
<span>New Password:</span> </td>
</td> <td>
<td style="width:90%;"> <input form="form" type="password" name="oldpassword" size="30" maxlength="29">
<input type="password" name="newpassword" size="30" maxlength="29"> </td>
</td> </tr>
</tr> </table>
<tr> {% endset %}
<td class="LabelV"> {% include 'tables.headline.html.twig' %}
<span>New Password Again:</span> <br/>
</td> <table style="width:100%;">
<td> <tr align="center">
<input type="password" name="newpassword_confirm" size="30" maxlength="29"> <td>
</td> <table border="0" cellspacing="0" cellpadding="0">
</tr> <tr>
<tr> <td style="border:0px;">
<td class="LabelV"> <form id="form" action="{{ getLink('account/password') }}" method="post">
<span>Current Password:</span> {{ csrf() }}
</td>
<td>
<input type="password" name="oldpassword" size="30" maxlength="29">
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<br/>
<table style="width:100%;">
<tr align="center">
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</td> </form>
<tr> </td>
</table> <tr>
</td> </table>
</form> </td>
<td> <td>
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post"> <tr>
{{ csrf() }} <td style="border:0px;">
<tr> <form action="{{ getLink('account/manage') }}" method="post">
<td style="border:0px;"> {{ csrf() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</td> </form>
</tr> </td>
</form> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>

View File

@@ -1,78 +1,61 @@
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"> <table style="width:100%;" >
<div class="CaptionContainer"> <tr>
<div class="CaptionInnerContainer"> <td class="LabelV" ><span>Character:</span></td>
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td style="width:90%;" >
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <select form="form" name="player_id">
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> {% for player in players %}
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <option value="{{ player.getId() }}">{{ player.getName() }}</option>
<div class="Text" >Change sex</div> {% endfor %}
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> </select>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> </td>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> </tr>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <tr>
</div> <td class="LabelV" ><span>New Sex:</span></td>
</div> <td>
<tr> <select form="form" name="new_sex">
<td> {% for id, gender in config.genders %}
<div class="InnerTableContainer"> <option value="{{ id }}"{% if player_sex == id %} selected{% endif %}>{{ gender }}</option>
<table style="width:100%;" > {% endfor %}
<tr> </select>
<td class="LabelV" ><span >Character:</td> </td>
<td style="width:90%;" > </tr>
<select name="player_id"> </table>
{% for player in players %} {% endset %}
<option value="{{ player.getId() }}">{{ player.getName() }}</option> {% include 'tables.headline.html.twig' %}
{% endfor %}
</select> <br/>
</td> <table style="width:100%">
</tr> <tr align="center">
<tr> <td>
<td class="LabelV" ><span >New Sex:</td> <table border="0" cellspacing="0" cellpadding="0" >
<td> <tr>
<select name="new_sex"> <td style="border:0px;">
{% for id, gender in config.genders %} <form id="form" action="{{ getLink('account/character/sex') }}" method="post">
<option value="{{ id }}"{% if player_sex == id %} selected{% endif %}>{{ gender }}</option> {{ csrf() }}
{% endfor %} <input type="hidden" name="changesexsave" value="1"/>
</select>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<br/>
<table style="width:100%">
<tr align="center">
<td>
<table border="0" cellspacing="0" cellpadding="0" >
<tr>
<td style="border:0px;" >
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</td> </form>
</tr> </td>
<tr> </tr>
</form> </table>
</table> </td>
</td> <td>
<td> <table border="0" cellspacing="0" cellpadding="0">
<table border="0" cellspacing="0" cellpadding="0"> <tr>
<form action="{{ getLink('account/manage') }}" method="post"> <td style="border:0px;">
{{ csrf() }} <form action="{{ getLink('account/manage') }}" method="post">
<tr> {{ csrf() }}
<td style="border:0px;" > {{ include('buttons.back.html.twig') }}
{{ include('buttons.back.html.twig') }} </form>
</td> </td>
</tr> </tr>
</form> </table>
</table> </td>
</td> </tr>
</tr> </table>
</table>

View File

@@ -1,330 +1,313 @@
{{ 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" > <table style="width:100%;" >
<div class="CaptionInnerContainer" > {{ hook('HOOK_ACCOUNT_CREATE_BEFORE_BOXES') }}
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <tr>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <td>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> <div class="TableShadowContainerRightTop"> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rt.gif);"></div></div>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span> <div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rm.gif);">
<div class="Text" >Create {{ config.lua.serverName }} Account</div> <div class="TableContentContainer">
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span> <table class="TableContent" width="100%" style="border:1px solid #faf0d7;">
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> <tbody>
<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> {{ hook('HOOK_ACCOUNT_CREATE_BEFORE_ACCOUNT') }}
{% if not config.account_login_by_email %}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.account is defined %} class="red"{% endif %}>Account {% if constant('USE_ACCOUNT_NAME') %}Name{% else %}Number{% endif %}:</span>
{% if not constant('USE_ACCOUNT_NAME') %}
<div id="SuggestAccountNumber">[<a href="#">suggest number</a>]</div>
{% endif %}
</td>
<td>
<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;" />
</td>
</tr>
{% endif %}
<tr><td></td><td><span id="account_error" class="FormFieldError">{% if errors.account is defined %}{{ errors.account }}{% endif %}</span></td></tr>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_ACCOUNT') }}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.email is defined %} class="red"{% endif %}>Email Address:</span>
</td>
<td>
<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;" />
</td>
</tr>
<tr>
<td></td><td><span id="email_error" class="FormFieldError">{% if errors.email is defined %}{{ errors.email }}{% endif %}</span></td>
</tr>
{% if setting('core.mail_enabled') and setting('core.account_mail_verify') %}
<tr><td></td><td><span><strong>Please use real address!<br/>We will send a link to validate your Email.</strong></span></td></tr>
{% endif %}
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_EMAIL') }}
{% if setting('core.account_country') %}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.country[0] is defined %} class="red"{% endif %}>Country:</span>
</td>
<td>
<select form="form" name="country" id="account_country">
{% 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>
{% endfor %}
</select>
<img src="" id="account_country_img"/>
</td>
</tr>
{% if errors.country is defined %}
<tr><td></td><td><span class="FormFieldError">{{ errors.country }}</span></td></tr>
{% endif %}
{% endif %}
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_COUNTRY') }}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.password is defined %} class="red"{% endif %}>Password:</span>
</td>
<td>
<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;" />
</td>
</tr>
<tr><td></td><td><span id="password_error" class="FormFieldError">{% if errors.password is defined %}{{ errors.password }}{% endif %}</span></td></tr>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_PASSWORD') }}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.password is defined %} class="red"{% endif %}>Repeat password:</span>
</td>
<td>
<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;" />
</td>
</tr>
<tr><td></td><td><span id="password_confirm_error" class="FormFieldError">{% if errors.password is defined %}{{ errors.password }}{% endif %}</span></td></tr>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_PASSWORDS') }}
</tbody>
</table>
</div> </div>
</div> </div>
<tr> <div class="TableShadowContainer">
<td> <div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bm.gif);"> <div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bl.gif);"></div> <div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-br.gif);"></div> </div></div>
<div class="InnerTableContainer" > </td>
<table style="width:100%;" > </tr>
{{ hook('HOOK_ACCOUNT_CREATE_BEFORE_BOXES') }}
{{ hook('HOOK_ACCOUNT_CREATE_BETWEEN_BOXES_1') }}
{% if (not setting('core.mail_enabled') or not setting('core.account_mail_verify')) and setting('core.account_create_character_create') %}
<tr>
<td>
<div class="TableShadowContainerRightTop">
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rt.gif);"></div>
</div>
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rm.gif);">
<div class="TableContentContainer">
<table class="TableContent" width="100%" style="border:1px solid #faf0d7;">
<tbody>
{{ hook('HOOK_ACCOUNT_CREATE_BEFORE_CHARACTER_NAME') }}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.name is defined %} class="red"{% endif %}>Character Name:</span>
</td>
<td>
<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;" />
<br>
</td>
</tr>
<tr>
<td></td>
<td>
<span id="character_error" class="FormFieldError">{% if errors.name is defined %}{{ errors.name }}{% endif %}</span>
</td>
</tr>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_CHARACTER_NAME') }}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.sex is defined %} class="red"{% endif %}>Sex:</span>
</td>
<td>
<table width="100%">
<tbody>
<tr>
<td>
{% set i = 0 %}
{% for id, gender in config.genders|reverse(true) %}
{% set i = i + 1 %}
<span style="margin-right:15px;" class="OptionContainer">
<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>
</span>
{% endfor %}
</td>
<td>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
<span id="sex_error" class="FormFieldError">{% if errors.sex is defined %}{{ errors.sex }}{% endif %}</span>
</td>
</tr>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_SEX') }}
{% if config.character_samples|length > 1 %}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.vocation is defined %} class="red"{% endif %}>Vocation:</span>
</td>
<td>
<table width="100%" >
<tbody>
<tr>
<td>
{% for key, sample_char in config.character_samples %}
<span style="margin-right:15px;" class="OptionContainer">
<input form="form" type="radio" name="vocation" id="vocation{{ key }}" value="{{ key }}"
{% if vocation is not null and vocation == key %} checked="checked"{% endif %}>
<label for="vocation{{ key }}">{{ config['vocations'][key] }}</label>
</span>
{% endfor %}
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
<span id="vocation_error" class="FormFieldError">{% if errors.vocation is defined %}{{ errors.vocation }}{% endif %}</span>
</td>
</tr>
{% endif %}
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_VOCATION') }}
{% if config.character_towns|length > 1 %}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.town is defined %} class="red"{% endif %}>Select your town:</span>
</td>
<td>
<table width="100%" >
<tbody>
<tr>
<td>
{% for town_id in config.character_towns %}
<span style="margin-right:15px;" class="OptionContainer">
<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 %}>
<label for="town{{ town_id }}">{{ config.towns[town_id] }}</label>
</span>
{% endfor %}
</td>
</tr>
</tbody>
</table>
</td>
</tr>
{% endif %}
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_TOWNS') }}
</tbody>
</table>
</div>
</div>
<div class="TableShadowContainer">
<div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bm.gif);">
<div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bl.gif);"></div>
<div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-br.gif);"></div>
</div>
</div>
</td>
</tr>
{% endif %}
{{ hook('HOOK_ACCOUNT_CREATE_BETWEEN_BOXES_2') }}
<tr>
<td>
<div class="TableShadowContainerRightTop">
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rt.gif);"></div>
</div>
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rm.gif);">
<div class="TableContentContainer">
<table class="TableContent" width="100%" style="border:1px solid #faf0d7;">
<tbody>
<tr>
<td colspan="2" ><b>Please select the following check box:</b></td>
</tr>
<tr>
<td colspan="2" >
<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>
</tr>
{% if errors.accept_rules is defined %}
<tr> <tr>
<td> <td colspan="2">
<div class="TableShadowContainerRightTop"> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rt.gif);"></div></div> <span class="FormFieldError">{{ errors.accept_rules }}</span>
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rm.gif);">
<div class="TableContentContainer">
<table class="TableContent" width="100%" style="border:1px solid #faf0d7;">
<tbody>
{{ hook('HOOK_ACCOUNT_CREATE_BEFORE_ACCOUNT') }}
{% if not config.account_login_by_email %}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.account is defined %} class="red"{% endif %}>Account {% if constant('USE_ACCOUNT_NAME') %}Name{% else %}Number{% endif %}:</span>
{% if not constant('USE_ACCOUNT_NAME') %}
<div id="SuggestAccountNumber">[<a href="#">suggest number</a>]</div>
{% endif %}
</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/>
<img id="account_indicator" src="images/global/general/{% if not save or errors.account is defined %}n{% endif %}ok.gif" style="display: none;" />
</td>
</tr>
{% endif %}
<tr><td></td><td><span id="account_error" class="FormFieldError">{% if errors.account is defined %}{{ errors.account }}{% endif %}</span></td></tr>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_ACCOUNT') }}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.email is defined %} class="red"{% endif %}>Email Address:</span>
</td>
<td>
<input 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;" />
</td>
</tr>
<tr>
<td></td><td><span id="email_error" class="FormFieldError">{% if errors.email is defined %}{{ errors.email }}{% endif %}</span></td>
</tr>
{% if setting('core.mail_enabled') and setting('core.account_mail_verify') %}
<tr><td></td><td><span><strong>Please use real address!<br/>We will send a link to validate your Email.</strong></span></td></tr>
{% endif %}
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_EMAIL') }}
{% if setting('core.account_country') %}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.country[0] is defined %} class="red"{% endif %}>Country:</span>
</td>
<td>
<select name="country" id="account_country">
{% 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>
{% endfor %}
</select>
<img src="" id="account_country_img"/>
</td>
</tr>
{% if errors.country is defined %}
<tr><td></td><td><span class="FormFieldError">{{ errors.country }}</span></td></tr>
{% endif %}
{% endif %}
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_COUNTRY') }}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.password is defined %} class="red"{% endif %}>Password:</span>
</td>
<td>
<input 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;" />
</td>
</tr>
<tr><td></td><td><span id="password_error" class="FormFieldError">{% if errors.password is defined %}{{ errors.password }}{% endif %}</span></td></tr>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_PASSWORD') }}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.password is defined %} class="red"{% endif %}>Repeat password:</span>
</td>
<td>
<input 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;" />
</td>
</tr>
<tr><td></td><td><span id="password_confirm_error" class="FormFieldError">{% if errors.password is defined %}{{ errors.password }}{% endif %}</span></td></tr>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_PASSWORDS') }}
</tbody>
</table>
</div>
</div>
<div class="TableShadowContainer">
<div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bm.gif);"> <div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bl.gif);"></div> <div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-br.gif);"></div> </div></div>
</td> </td>
</tr> </tr>
{% endif %}
</tbody>
</table>
</div>
</div>
<div class="TableShadowContainer">
<div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bm.gif);"> <div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bl.gif);"></div> <div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-br.gif);"></div>
</div>
</div>
</td>
</tr>
{{ hook('HOOK_ACCOUNT_CREATE_BETWEEN_BOXES_1') }} {{ hook('HOOK_ACCOUNT_CREATE_AFTER_BOXES') }}
{% if (not setting('core.mail_enabled') or not setting('core.account_mail_verify')) and setting('core.account_create_character_create') %} </table>
<tr> {% endset %}
<td> {% include 'tables.headline.html.twig' %}
<div class="TableShadowContainerRightTop"> <br/>
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rt.gif);"></div> {{ hook('HOOK_ACCOUNT_CREATE_BEFORE_SUBMIT_BUTTON') }}
</div> <table width="100%">
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rm.gif);"> <tr align="center">
<div class="TableContentContainer"> <td>
<table class="TableContent" width="100%" style="border:1px solid #faf0d7;"> <table border="0" cellspacing="0" cellpadding="0" >
<tbody> <tr>
<td style="border:0px;" >
{{ hook('HOOK_ACCOUNT_CREATE_BEFORE_CHARACTER_NAME') }} <form id="form" action="{{ getLink('account/create') }}" method="post">
{{ csrf() }}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.name is defined %} class="red"{% endif %}>Character Name:</span>
</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 }}"/>
<img id="character_indicator" src="images/global/general/{% if not save or errors.name is defined %}n{% endif %}ok.gif" style="display: none;" />
<br>
</td>
</tr>
<tr>
<td></td>
<td>
<span id="character_error" class="FormFieldError">{% if errors.name is defined %}{{ errors.name }}{% endif %}</span>
</td>
</tr>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_CHARACTER_NAME') }}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.sex is defined %} class="red"{% endif %}>Sex:</span>
</td>
<td>
<table width="100%">
<tbody>
<tr>
<td>
{% set i = 0 %}
{% for id, gender in config.genders|reverse(true) %}
{% set i = i + 1 %}
<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 %}>
<label for="sex{{ i }}">{{ gender|lower }}</label>
</span>
{% endfor %}
</td>
<td>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
<span id="sex_error" class="FormFieldError">{% if errors.sex is defined %}{{ errors.sex }}{% endif %}</span>
</td>
</tr>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_SEX') }}
{% if config.character_samples|length > 1 %}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.vocation is defined %} class="red"{% endif %}>Vocation:</span>
</td>
<td>
<table width="100%" >
<tbody>
<tr>
<td>
{% for key, sample_char in config.character_samples %}
<span style="margin-right:15px;" class="OptionContainer">
<input type="radio" name="vocation" id="vocation{{ key }}" value="{{ key }}"
{% if vocation is not null and vocation == key %} checked="checked"{% endif %}>
<label for="vocation{{ key }}">{{ config['vocations'][key] }}</label>
</span>
{% endfor %}
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
<span id="vocation_error" class="FormFieldError">{% if errors.vocation is defined %}{{ errors.vocation }}{% endif %}</span>
</td>
</tr>
{% endif %}
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_VOCATION') }}
{% if config.character_towns|length > 1 %}
<tr>
<td class="LabelV" style="width: 150px">
<span{% if errors.town is defined %} class="red"{% endif %}>Select your town:</span>
</td>
<td>
<table width="100%" >
<tbody>
<tr>
<td>
{% for town_id in config.character_towns %}
<span style="margin-right:15px;" class="OptionContainer">
<input type="radio" name="town" id="town{{ town_id }}" value="{{ town_id }}"
{% if town is not null and town == town_id %} checked="checked"{% endif %}>
<label for="town{{ town_id }}">{{ config.towns[town_id] }}</label>
</span>
{% endfor %}
</td>
</tr>
</tbody>
</table>
</td>
</tr>
{% endif %}
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_TOWNS') }}
</tbody>
</table>
</div>
</div>
<div class="TableShadowContainer">
<div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bm.gif);">
<div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bl.gif);"></div>
<div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-br.gif);"></div>
</div>
</div>
</td>
</tr>
{% endif %}
{{ hook('HOOK_ACCOUNT_CREATE_BETWEEN_BOXES_2') }}
<tr>
<td>
<div class="TableShadowContainerRightTop">
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rt.gif);"></div>
</div>
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rm.gif);">
<div class="TableContentContainer">
<table class="TableContent" width="100%" style="border:1px solid #faf0d7;">
<tbody>
<tr>
<td colspan="2" ><b>Please select the following check box:</b></td>
</tr>
<tr>
<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>
</td>
</tr>
{% if errors.accept_rules is defined %}
<tr>
<td colspan="2">
<span class="FormFieldError">{{ errors.accept_rules }}</span>
</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
</div>
<div class="TableShadowContainer">
<div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bm.gif);"> <div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bl.gif);"></div> <div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-br.gif);"></div>
</div>
</div>
</td>
</tr>
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_BOXES') }}
</table>
</div>
</td>
</tr>
</table>
</div>
<br/>
{{ hook('HOOK_ACCOUNT_CREATE_BEFORE_SUBMIT_BUTTON') }}
<table width="100%">
<tr align="center">
<td>
<table border="0" cellspacing="0" cellpadding="0" >
<tr>
<td style="border:0px;" >
<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> </form>
</tr> </td>
</table> </tr>
</td> </table>
</tr> </td>
</table> </tr>
</form> </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,145 +6,145 @@ 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"> <div class="TableContainer">
{{ csrf() }} <table class="Table3" cellpadding="0" cellspacing="0">
<input type="hidden" name="save" value="1"> <div class="CaptionContainer">
<div class="TableContainer"> <div class="CaptionInnerContainer">
<table class="Table3" cellpadding="0" cellspacing="0"> <span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<div class="CaptionContainer"> <span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<div class="CaptionInnerContainer"> <span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span>
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <div class="Text" >Create Character</div>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span>
<span class="CaptionVerticalLeft" 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>
<div class="Text" >Create Character</div> <span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.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>
<tr> </div>
<td> <tr>
<div class="InnerTableContainer">
<table style="width:100%;">
<tr>
<td>
<div class="TableShadowContainerRightTop">
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div>
</div>
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);">
<div class="TableContentContainer">
<table class="TableContent" width="100%">
<tr class="LabelH">
<td style="width:50%;">
<span>Name</span>
</td>
<td>
<span>Sex</span>
</td>
</tr>
<tr class="Odd">
<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') }}" >
<img id="character_indicator" src="images/global/general/{% if not save or errors.name is defined %}n{% endif %}ok.gif" />
<br/>
<span style="font-size: 10px">
<div id="character_error">{% if not save or errors.name is defined %}Please enter your character name.{% endif %}</div>
</span>
</td>
<td>
{% set i = 0 %}
{% for id, gender in config.genders|reverse(true) %}
{% 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 %}
><label for="sex{{ i }}">{{ gender|lower }}</label><br/>
{% endfor %}
</td>
</tr>
</table>
</div>
</div>
</table>
</div>
<div class="InnerTableContainer">
<table style="width: 100%;">
<tr>
{% if config.character_samples|length > 1 %}
<td>
<table class="TableContent" width="100%">
<tr class="Odd" valign="top">
<td width="160"><br/><b>Select your vocation:</b></td>
<td>
<table class="TableContent" width="100%" >
{% for key, sample_char in config.character_samples %}
<tr>
<td>
<input type="radio" name="vocation" id="vocation{{ key }}" value="{{ key }}"
{% if vocation is not null and vocation == key %} checked="checked"{% endif %}>
<label for="vocation{{ key }}">{{ config['vocations'][key] }}</label>
</td>
</tr>
{% endfor %}
</table>
</td>
</tr>
</table>
{% endif %}
{% if config.character_towns|length > 1 %}
<td>
<table class="TableContent" width="100%">
<tr class="Odd" valign="top">
<td width="160"><br/><b>Select your city:</b></td>
<td>
<table class="TableContent" width="100%">
{% for town_id in config.character_towns %}
<tr>
<td>
<input type="radio" name="town" id="town{{ town_id }}" value="{{ town_id }}"
{% if town is not null and town == town_id %} checked="checked"{% endif %}>
<label for="town{{ town_id }}">{{ config.towns[town_id] }}</label>
</td>
</tr>
{% endfor %}
</table>
</td>
</tr>
</table>
</td>
{% endif %}
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<br/>
<table style="width:100%;">
<tr align="center">
<td> <td>
<table border="0" cellspacing="0" cellpadding="0"> <div class="InnerTableContainer">
<tr> <table style="width:100%;">
<td style="border:0px;">
{{ include('buttons.submit.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
<tr> <tr>
<td style="border:0px;"> <td>
{{ include('buttons.back.html.twig') }} <div class="TableShadowContainerRightTop">
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div>
</div>
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);">
<div class="TableContentContainer">
<table class="TableContent" width="100%">
<tr class="LabelH">
<td style="width:50%;">
<span>Name</span>
</td>
<td>
<span>Sex</span>
</td>
</tr>
<tr class="Odd">
<td>
<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" />
<br/>
<span style="font-size: 10px">
<div id="character_error">{% if not save or errors.name is defined %}Please enter your character name.{% endif %}</div>
</span>
</td>
<td>
{% set i = 0 %}
{% for id, gender in config.genders|reverse(true) %}
{% set i = i + 1 %}
<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/>
{% endfor %}
</td>
</tr>
</table>
</div>
</div>
</table>
</div>
<div class="InnerTableContainer">
<table style="width: 100%;">
<tr>
{% if config.character_samples|length > 1 %}
<td>
<table class="TableContent" width="100%">
<tr class="Odd" valign="top">
<td width="160"><br/><b>Select your vocation:</b></td>
<td>
<table class="TableContent" width="100%" >
{% for key, sample_char in config.character_samples %}
<tr>
<td>
<input form="form" type="radio" name="vocation" id="vocation{{ key }}" value="{{ key }}"
{% if vocation is not null and vocation == key %} checked="checked"{% endif %}>
<label for="vocation{{ key }}">{{ config['vocations'][key] }}</label>
</td>
</tr>
{% endfor %}
</table>
</td>
</tr>
</table>
{% endif %}
{% if config.character_towns|length > 1 %}
<td>
<table class="TableContent" width="100%">
<tr class="Odd" valign="top">
<td width="160"><br/><b>Select your city:</b></td>
<td>
<table class="TableContent" width="100%">
{% for town_id in config.character_towns %}
<tr>
<td>
<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 %}>
<label for="town{{ town_id }}">{{ config.towns[town_id] }}</label>
</td>
</tr>
{% endfor %}
</table>
</td>
</tr>
</table>
</td> </td>
{% endif %}
</tr> </tr>
</form> </table>
</table> </div>
</td> </td>
</tr> </tr>
</table> </table>
</div>
<br/>
<table style="width:100%;">
<tr align="center">
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<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') }}
</form>
</td>
</tr>
</table>
</td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }}
</form>
</td>
</tr>
</table>
</td>
</tr>
</table>
<script type="text/javascript" src="tools/check_name.js"></script> <script type="text/javascript" src="tools/check_name.js"></script>

View File

@@ -1,68 +1,50 @@
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 style="width:100%;">
<table class="Table1" cellpadding="0" cellspacing="0" > <tr>
<div class="CaptionContainer"> <td class="LabelV" ><span>Character Name:</span></td>
<div class="CaptionInnerContainer"> <td style="width:90%;">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <input form="form" name="delete_name" value="" size="30" maxlength="29"/>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </td>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> </tr>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <tr>
<div class="Text" >Delete Character</div> <td class="LabelV" ><span>Password:</span></td>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <td>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <input form="form" type="password" name="delete_password" size="30" maxlength="29"/>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </td>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </tr>
</div> </table>
</div> {% endset %}
<tr> {% include 'tables.headline.html.twig' %}
<td> <br/>
<div class="InnerTableContainer"> <table style="width:100%">
<table style="width:100%;"> <tr align="center">
<tr> <td>
<td class="LabelV" ><span>Character Name:</span></td> <table border="0" cellspacing="0" cellpadding="0">
<td style="width:90%;"> <tr>
<input name="delete_name" value="" size="30" maxlength="29"/> <td style="border:0px;">
</td> <form id="form" action="{{ getLink('account/character/delete') }}" method="post">
</tr> {{ csrf() }}
<tr> <input type="hidden" name="deletecharactersave" value="1"/>
<td class="LabelV" ><span>Password:</span></td> {{ include('buttons.submit.html.twig') }}
<td> </form>
<input type="password" name="delete_password" size="30" maxlength="29"/> </td>
</td> </tr>
</tr> </table>
</table> </td>
</div> <td>
</td> <table border="0" cellspacing="0" cellpadding="0">
</tr> <form action="{{ getLink('account/manage') }}" method="post">
</table> {{ csrf() }}
</div>
<br/>
<table style="width:100%">
<tr align="center">
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<td style="border:0px;"> <td style="border:0px;">
{{ include('buttons.submit.html.twig') }} {{ include('buttons.back.html.twig') }}
</td> </td>
<tr> </tr>
</form> </form>
</table> </table>
</td> </td>
<td> </tr>
<table border="0" cellspacing="0" cellpadding="0"> </table>
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
<tr>
<td style="border:0px;">
{{ include('buttons.back.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
</tr>
</table>

View File

@@ -1,61 +1,44 @@
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"> <table style="width:100%;">
<div class="CaptionContainer"> <tr>
<div class="CaptionInnerContainer"> <td class="LabelV"><span>Password:</span></td>
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td><input form="form" type="password" name="reg_password" size="30" maxlength="29" ></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> </table>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> {% endset %}
<div class="Text" >Generate recovery key</div> {% include 'tables.headline.html.twig' %}
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <br/>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <table style="width:100%">
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <tr align="center">
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td>
</div> <table border="0" cellspacing="0" cellpadding="0">
</div> <tr>
<tr> <td style="border:0px;">
<td> <form id="form" action="{{ getLink('account/register/new') }}" method="post">
<div class="InnerTableContainer"> {{ csrf() }}
<table style="width:100%;"> <input type="hidden" name="registeraccountsave" value="1">
<tr>
<td class="LabelV" ><span>Password:</span></td>
<td><input type="password" name="reg_password" size="30" maxlength="29" ></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<br/>
<table style="width:100%">
<tr align="center">
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
{{ include('buttons.submit.html.twig') }} {{ include('buttons.submit.html.twig') }}
</td> </form>
</tr> </td>
</form> </tr>
</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"> <tr>
{{ csrf() }} <td style="border:0px;">
<tr> <form action="{{ getLink('account/manage') }}" method="post">
<td style="border:0px;"> {{ csrf() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}
</td> </form>
</tr> </td>
</form> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>

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 style="width:100%;" >
<table class="Table1" cellpadding="0" cellspacing="0"> <tr>
<div class="CaptionContainer"> <td class="LabelV">
<div class="CaptionInnerContainer"> <span>Password:</span>
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </td>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <input form="form" type="password" name="reg_password" size="30" maxlength="29" autofocus/>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> </td>
<div class="Text" >Generate recovery key</div> </tr>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> </table>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> {% endset %}
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> {% include 'tables.headline.html.twig' %}
<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 class="LabelV">
<span>Password:</span>
</td>
<td>
<input type="password" name="reg_password" size="30" maxlength="29" autofocus/>
</td>
</tr>
</table>
</div>
</td>
</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;">
{{ include('buttons.submit.html.twig') }} <form id="form" action="{{ getLink('account/register') }}" method="post">
{{ csrf() }}
<input type="hidden" name="registeraccountsave" value="1"/>
{{ 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" > <table style="width:100%;">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"/></span> <tr>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"/></span> <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>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> </tr>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"/></span> </table>
<div class="Text">Logout Successful</div> {% endset %}
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"/></span> {% include 'tables.headline.html.twig' %}
<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>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>
</table>
</div>
</td>
</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"> <table style="width:100%;" >
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <tr>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <td>You have logged in.<br/>Press <a href="{{ redirect }}" >here</a> if you are not returned automatically.</td>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> </tr>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span> </table>
<div class="Text" >Login Successful</div> {% endset %}
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span> {% include 'tables.headline.html.twig' %}
<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>You have logged in.<br/>Press <a href="{{ redirect }}" >here</a> if you are not returned automatically.</td>
</tr>
</table>
</div>
</td>
</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,14 +1,24 @@
<div style="text-align:center"><h2>Change guild description</h2></div> {% set title = 'Change guild description' %}
Here you can change description of your guild.<br/> {% set background = config('darkborder') %}
<form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_description" method="post"> {% set content %}
{{ csrf() }} <table style="width:100%;" >
<input type="hidden" name="todo" value="save"/> <tr>
<textarea name="description" cols="60" rows="{{ setting('core.guild_description_lines_limit') - 1 }}">{{ guild.getCustomField('description')|raw }}</textarea><br> <td>
(max. {{ setting('core.guild_description_lines_limit') }} lines, max. {{ setting('core.guild_description_chars_limit') }} chars) <input type="submit" value="Save description"/></form><br/> Here you can change description of your guild.<br/>
<br/> <form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_description" method="post">
<div style="text-align:center"> {{ csrf() }}
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=manager" method="post"> <input type="hidden" name="todo" value="save"/>
{{ csrf() }} <textarea name="description" cols="60" rows="{{ setting('core.guild_description_lines_limit') - 1 }}">{{ guild.getCustomField('description')|raw }}</textarea><br>
{{ include('buttons.back.html.twig') }} (max. {{ setting('core.guild_description_lines_limit') }} lines, max. {{ setting('core.guild_description_chars_limit') }} chars) <input type="submit" value="Save description"/></form><br/>
</form> <br/>
</div> <div style="text-align:center">
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=manager" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }}
</form>
</div>
</td>
</tr>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}

View File

@@ -1,20 +1,32 @@
<div style="text-align:center"><h2>Change guild logo</h2></div> {% set title = 'Change guild logo' %}
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/> {% set background = config('darkborder') %}
<form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_logo" method="post" id="upload_form"> {% set content %}
{{ csrf() }} <table style="width:100%;" >
<input type="hidden" name="todo" value="save" /> <tr>
<input type="hidden" name="MAX_FILE_SIZE" value="{{ max_image_size_b }}" /> <td>
Select new logo: <input name="newlogo" id="newlogo" type="file" /> 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/>
<input type="submit" value="Send new logo" /> <form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_logo" method="post" id="upload_form">
</form> {{ csrf() }}
Only <b>jpg, gif, png, bmp</b> pictures. Max. size: <b>{{ setting('core.guild_image_size_kb') }} KB</b><br> <input type="hidden" name="todo" value="save" />
<br/> <input type="hidden" name="MAX_FILE_SIZE" value="{{ max_image_size_b }}" />
Select new logo: <input name="newlogo" id="newlogo" type="file" />
<input type="submit" value="Send new logo" />
</form>
Only <b>jpg, gif, png, bmp</b> pictures. Max. size: <b>{{ setting('core.guild_image_size_kb') }} KB</b><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' %}
Here you can change MOTD (Message of the Day, showed in game!) of your guild.<br/> {% set background = config('darkborder') %}
<form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_motd" method="post"> {% set content %}
{{ csrf() }} <table style="width:100%;" >
<input type="hidden" name="todo" value="save"/> <tr>
<textarea name="motd" cols="60" rows="3">{{ guild.getCustomField('motd')|raw }}</textarea><br/> <td>
(max. {{ setting('core.guild_motd_chars_limit') }} chars) <input type="submit" value="Save MOTD" /></form><br/> Here you can change MOTD (Message of the Day, showed in game!) of your guild.<br/>
<br/> <form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_motd" method="post">
{{ csrf() }}
<input type="hidden" name="todo" value="save"/>
<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>
</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,37 +1,19 @@
<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" > <table style="width:100%;" >
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <tr>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td>Are you sure you want delete guild <b>{{ guild.getName() }}</b>?<br/>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=delete_guild" method="post">
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> {{ csrf() }}
<div class="Text" >Delete Guild</div> <input type="hidden" name="todo" value="save"/>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <input type="submit" value="Yes, delete"/>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> </form>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </td>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </tr>
</div> </table>
</div> {% endset %}
<tr> {% include 'tables.headline.html.twig' %}
<td>
<div class="InnerTableContainer">
<table style="width:100%;" >
<tr>
<td>Are you sure you want delete guild <b>{{ guild.getName() }}</b>?<br/>
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=delete_guild" method="post">
{{ csrf() }}
<input type="hidden" name="todo" value="save"/>
<input type="submit" value="Yes, delete"/>
</form>
</td>
</tr>
</table>
</div>
</td>
</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,118 +1,96 @@
<div class="TableContainer"> {% set title = 'Active Guilds on ' ~ config.lua.serverName %}
<div class="CaptionContainer"> {% set content %}
<div class="CaptionInnerContainer"> <table style="width:100%;">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <tbody>
<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> <td>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <div class="TableShadowContainerRightTop">
<div class="Text">Active Guilds on {{ config.lua.serverName }}</div> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> </div>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);">
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <div class="TableContentContainer">
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <table class="TableContent" width="100%">
</div>
</div>
<table class="Table3">
<tbody>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;">
<tbody> <tbody>
<tr> {% if guilds|length > 0 %}
<td> <tr bgcolor="{{ config.darkborder }}">
<div class="TableShadowContainerRightTop"> <td width="64"><b>Logo</b></td>
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div> <td><b>Description</b></td>
</div> <td width="12%"><b>&nbsp;</b></td>
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);">
<div class="TableContentContainer">
<table class="TableContent" width="100%">
<tbody>
{% if guilds|length > 0 %}
<tr bgcolor="{{ config.darkborder }}">
<td width="64"><b>Logo</b></td>
<td><b>Description</b></td>
<td width="12%"><b>&nbsp;</b></td>
</tr>
{% set i = 0 %}
{% for guild in guilds %}
{% set i = i + 1 %}
<tr bgcolor="{{ getStyle(i) }}">
<td>
<img src="{{ constant('GUILD_IMAGES_DIR') }}{{ guild.logo }}" width="64" height="64">
</td>
<td style="word-break: break-all">
<span{% if guild.description is not empty %} valign="top"{% endif %}>
<b>{{ guild.name }}</b>{% if isAdmin %}<a href="{{ getLink('guilds') }}?action=delete_by_admin&guild={{ guild.name }}"> - Delete this guild (for ADMIN only!)</a>{% endif %}
</span>
{% if guild.description is not empty %}
<br>
<span>{{ guild.description }}</span>
{% endif %}
</td>
<td>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td style="border:0;">
<form action="{{ guild.link }}" method="post">
{{ csrf() }}
{{ include('buttons.view.html.twig') }}
</form>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
{% endfor %}
{% else %}
<tr bgcolor="{{ config.darkborder }}">
<td valign="top">
<b>Create Guild</b>
<br/>
Actually there is no guild on server.{% if logged %} Create first! Press button "Create Guild"{% endif %}
</td>
{% if logged %}
<td>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<form action="{{ getLink('guilds') }}?action=create" method="post">
{{ csrf() }}
{% set button_name = 'Found Guild' %}
{% set button_image = '_sbutton_foundguild' %}
{% include('buttons.base.html.twig') %}
</form>
</table>
</td>
{% endif %}
</tr>
{% endif %}
</tbody>
</table>
</div>
</div>
<div class="TableShadowContainer">
<div class="TableBottomShadow" style="background-image:url(https://static.tibia.com/images/global/content/table-shadow-bm.gif);">
<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>
</td>
</tr> </tr>
{% set i = 0 %}
{% for guild in guilds %}
{% set i = i + 1 %}
<tr bgcolor="{{ getStyle(i) }}">
<td>
<img src="{{ constant('GUILD_IMAGES_DIR') }}{{ guild.logo }}" width="64" height="64">
</td>
<td style="word-break: break-all">
<span{% if guild.description is not empty %} valign="top"{% endif %}>
<b>{{ guild.name }}</b>{% if isAdmin %}<a href="{{ getLink('guilds') }}?action=delete_by_admin&guild={{ guild.name }}"> - Delete this guild (for ADMIN only!)</a>{% endif %}
</span>
{% if guild.description is not empty %}
<br>
<span>{{ guild.description }}</span>
{% endif %}
</td>
<td>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td style="border:0;">
<form action="{{ guild.link }}" method="post">
{{ csrf() }}
{{ include('buttons.view.html.twig') }}
</form>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
{% endfor %}
{% else %}
<tr bgcolor="{{ config.darkborder }}">
<td valign="top">
<b>Create Guild</b>
<br/>
Actually there is no guild on server.{% if logged %} Create first! Press button "Create Guild"{% endif %}
</td>
{% if logged %}
<td>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<form action="{{ getLink('guilds') }}?action=create" method="post">
{{ csrf() }}
{% set button_name = 'Found Guild' %}
{% set button_image = '_sbutton_foundguild' %}
{% include('buttons.base.html.twig') %}
</form>
</table>
</td>
{% endif %}
</tr>
{% endif %}
</tbody> </tbody>
</table> </table>
</div> </div>
</td> </div>
</tr> <div class="TableShadowContainer">
</tbody> <div class="TableBottomShadow" style="background-image:url(https://static.tibia.com/images/global/content/table-shadow-bm.gif);">
</table> <div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bl.gif);"></div>
</div> <div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-br.gif);"></div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}
<br> <br>
<table border="0" cellspacing="1" cellpadding="4" width="100%"> <table border="0" cellspacing="1" cellpadding="4" width="100%">

View File

@@ -54,41 +54,25 @@ 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"> <table style="width:100%;">
<div class="CaptionInnerContainer"> <tr>
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td width="120" valign="top">New rank name:</td>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td>
<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> <form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=add_rank" method="post">
<div class="Text" >Add new rank</div> {{ csrf() }}
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <input type="text" name="rank_name" size="20"/>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> <input type="submit" value="Add"/>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </form>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </td>
</div> </tr>
</div> </table>
<tr> {% endset %}
<td> {% include 'tables.headline.html.twig' %}
<div class="InnerTableContainer">
<table style="width:100%;"> {% set title = 'Change rank names and levels' %}
<tr> {% set content %}
<td width="120" valign="top">New rank name:</td>
<td>
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=add_rank" method="post">
{{ csrf() }}
<input type="text" name="rank_name" size="20"/>
<input type="submit" value="Add"/>
</form>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<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,15 +140,19 @@ 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/>
<div style="text-align:center"> {% endset %}
{% include 'tables.headline.html.twig' %}
<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() }}
{{ include('buttons.back.html.twig') }} {{ include('buttons.back.html.twig') }}

View File

@@ -1,38 +1,20 @@
<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"> <table style="width:100%;">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <tr>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td><strong>Pass leadership to: </strong><br>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=pass_leadership" method="post">
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> {{ csrf() }}
<div class="Text" >Pass leadership</div> <input type="hidden" name="todo" value="save"/>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <input type="text" size="40" name="player"/>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <input type="submit" value="Save">
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </form>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </td>
</div> </tr>
</div> </table>
<tr> {% endset %}
<td> {% include 'tables.headline.html.twig' %}
<div class="InnerTableContainer" >
<table style="width:100%;">
<tr>
<td>Pass leadership to: </b><br>
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=pass_leadership" method="post">
{{ csrf() }}
<input type="hidden" name="todo" value="save"/>
<input type="text" size="40" name="player"/>
<input type="submit" value="Save">
</form>
</td>
</tr>
</table>
</div>
</td>
</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,64 +21,170 @@
{{ hook('HOOK_GUILDS_AFTER_GUILD_HEADER') }} {{ hook('HOOK_GUILDS_AFTER_GUILD_HEADER') }}
<table width="100%"> {% set title = 'Guild Information' %}
{% set background = config('darkborder') %}
{% set content %}
<table style="width:100%;">
<tbody> <tbody>
<tr> <tr>
<td style="vertical-align:top;"> <td style="word-break: break-all">
<div class="TableContainer"> <div id="GuildInformationContainer">
<div class="TableContainer"> {% if description is not empty %}
<div class="CaptionContainer"> {{ description|raw }}
<div class="CaptionInnerContainer"> <br>
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <br>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> {% endif %}
<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> {% if guild_owner is not empty %}
<div class="Text">Guild Information</div> {% set guildOwnerName = guild_owner.getName() %}
<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> <a href="{{ getPlayerLink(guildOwnerName, false) }}"><b>{{ guildOwnerName }}</b></a> is guild leader of <b>{{ guild_name }}</b>.
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <br>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> {% endif %}
</div>
</div> The guild was founded on {{ config.lua.serverName }} on {{ guild_creation_date|date("j F Y") }}.
{% if isLeader %}
<a href="{{ getLink('guilds') }}?action=manager&guild={{ guild_name }}" style="float: right;">
{% set button_name = 'Manage Guild' %}
{% include('buttons.base.html.twig') %}
</a>
{% endif %}
</div>
</td>
</tr>
</tbody>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}
<br/>
{{ hook('HOOK_GUILDS_AFTER_GUILD_INFORMATION') }}
{% set title = 'Guild Members' %}
{% set content %}
<table style="width:100%;">
<tbody>
<tr>
<td>
<div class="TableContentAndRightShadow">
<div class="TableContentContainer">
<table class="TableContent" width="100%">
<tbody>
<tr class="LabelH">
<td>Rank</td>
<td>Name{% if useGuildNick %} and Title{% endif %}</td>
<td>Vocation</td>
<td>Level</td>
<td>Status</td>
</tr>
{% set showedRank, i = false, 0 %}
{% for rank in guild_members if rank.members|length > 0 %}
{% set rankStyle, i = getStyle(i), i + 1 %}
{% for player in rank.members %}
<tr bgcolor="{{ rankStyle }}">
<td>
{% if not showedRank %}{{ rank.rank_name }}{% endif %}
{% set showedRank = true %}
</td>
<td>
{% set playerName = player.getName() %}
<form action="{{ getLink('guilds') }}?action=change_nick&name={{ playerName }}&guild={{ guild_name }}" method="post">
{{ csrf() }}
{{ getPlayerLink(playerName, true)|raw }}
{% set showGuildNick = false %}
{% if player.getGuildNick() is not empty %}
{% set showGuildNick = true %}
{% set guildNickRaw = player.getGuildNick()|raw %}
{% endif %}
{% if logged %}
{% if player.getId() in players_from_account_ids %}
(<input type="text" name="nick" value="{{ guildNickRaw }}"><input type="submit" value="Change">)
{% else %}
{% if showGuildNick %} ({{ guildNickRaw }}){% endif %}
{% endif %}
{% if level_in_guild > rank.rank_level or isLeader %}
{% if guildOwnerName != playerName %}
<span style="font-size: 10px; float: right">
{<a href="{{ getLink('guilds') }}?action=kick_player&guild={{ guild_name|url_encode }}&name={{ playerName|url_encode }}">KICK</a>}
</span>
{% endif %}
{% endif %}
{% else %}
{% if showGuildNick %} ({{ guildNickRaw }}){% endif %}
{% endif %}
</form>
</td>
<td>{{ player.getVocationName() }}</td>
<td>{{ player.getLevel() }}</td>
<td>
<span style="color: {% if player.isOnline() %} green;"><b>Online{% else %} red;"><b>Offline{% endif %}</b></span>
</td>
</tr>
{% endfor %}
{% set showedRank = false %}
{% else %}
<tr bgcolor="{{ getStyle(i) }}">
<td colspan="5">No guild members found.</td>
</tr>
{% endfor %}
</tbody>
</table>
</div> </div>
</div>
</td>
</tr>
</tbody>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}
<br/>
<table class="Table1" cellpadding="0" cellspacing="0"> {{ hook('HOOK_GUILDS_AFTER_GUILD_MEMBERS') }}
{% set title = 'Invited Characters' %}
{% set content %}
<table style="width:100%;">
<tbody>
<tr>
<td>
<div class="TableContentContainer">
<table class="TableContent" width="100%">
<tbody> <tbody>
<tr> <tr class="LabelH">
<td> <td><b>Name</b></td>
<div class="InnerTableContainer">
<table style="width:100%;">
<tbody>
<tr>
<td style="word-break: break-all">
<div id="GuildInformationContainer">
{% if description is not empty %}
{{ description|raw }}
<br>
<br>
{% endif %}
{% if guild_owner is not empty %}
{% set guildOwnerName = guild_owner.getName() %}
<a href="{{ getPlayerLink(guildOwnerName, false) }}"><b>{{ guildOwnerName }}</b></a> is guild leader of <b>{{ guild_name }}</b>.
<br>
{% endif %}
The guild was founded on {{ config.lua.serverName }} on {{ guild_creation_date|date("j F Y") }}.
{% if isLeader %}
<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">
</a>
{% endif %}
</div>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr> </tr>
{% set i = 0 %}
{% for invited_player in invited_list if invited_list|length > 0 %}
{% if invited_player.isLoaded() %}
<tr bgcolor="{{ getStyle(i) }}">
{% set i = i + 1 %}
<td>
{{ getPlayerLink(invited_player.getName(), true)|raw }}
{% if isVice %}
<div style="float: right">
{<a href="{{ getLink('guilds') }}?action=delete_invite&guild={{ guild_name|url_encode }}&name={{ invited_player.getName()|url_encode }}">Cancel Invitation</a>}
</div>
{% endif %}
</td>
</tr>
{% endif %}
{% else %}
<tr bgcolor="{{ getStyle(i) }}">
<td>
No invited characters found.
</td>
</tr>
{% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -86,191 +192,8 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<br/> {% endset %}
{% include 'tables.headline.html.twig' %}
{{ hook('HOOK_GUILDS_AFTER_GUILD_INFORMATION') }}
<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 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%;">
<tbody>
<tr>
<td>
<div class="TableContentAndRightShadow">
<div class="TableContentContainer">
<table class="TableContent" width="100%">
<tbody>
<tr class="LabelH">
<td>Rank</td>
<td>Name{% if useGuildNick %} and Title{% endif %}</td>
<td>Vocation</td>
<td>Level</td>
<td>Status</td>
</tr>
{% set showedRank, i = false, 0 %}
{% for rank in guild_members if rank.members|length > 0 %}
{% set rankStyle, i = getStyle(i), i + 1 %}
{% for player in rank.members %}
<tr bgcolor="{{ rankStyle }}">
<td>
{% if not showedRank %}{{ rank.rank_name }}{% endif %}
{% set showedRank = true %}
</td>
<td>
{% set playerName = player.getName() %}
<form action="{{ getLink('guilds') }}?action=change_nick&name={{ playerName }}&guild={{ guild_name }}" method="post">
{{ csrf() }}
{{ getPlayerLink(playerName, true)|raw }}
{% set showGuildNick = false %}
{% if player.getGuildNick() is not empty %}
{% set showGuildNick = true %}
{% set guildNickRaw = player.getGuildNick()|raw %}
{% endif %}
{% if logged %}
{% if player.getId() in players_from_account_ids %}
(<input type="text" name="nick" value="{{ guildNickRaw }}"><input type="submit" value="Change">)
{% else %}
{% if showGuildNick %} ({{ guildNickRaw }}){% endif %}
{% endif %}
{% if level_in_guild > rank.rank_level or isLeader %}
{% if guildOwnerName != playerName %}
<span style="font-size: 10px; float: right">
{<a href="{{ getLink('guilds') }}?action=kick_player&guild={{ guild_name|url_encode }}&name={{ playerName|url_encode }}">KICK</a>}
</span>
{% endif %}
{% endif %}
{% else %}
{% if showGuildNick %} ({{ guildNickRaw }}){% endif %}
{% endif %}
</form>
</td>
<td>{{ player.getVocationName() }}</td>
<td>{{ player.getLevel() }}</td>
<td>
<span style="color: {% if player.isOnline() %} green;"><b>Online{% else %} red;"><b>Offline{% endif %}</b></span>
</td>
</tr>
{% endfor %}
{% set showedRank = false %}
{% else %}
<tr bgcolor="{{ getStyle(i) }}">
<td colspan="5">No guild members found.</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<br/>
{{ hook('HOOK_GUILDS_AFTER_GUILD_MEMBERS') }}
<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">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%;">
<tbody>
<tr>
<td>
<div class="TableContentContainer">
<table class="TableContent" width="100%">
<tbody>
<tr class="LabelH">
<td><b>Name</b></td>
</tr>
{% set i = 0 %}
{% for invited_player in invited_list if invited_list|length > 0 %}
{% if invited_player.isLoaded() %}
<tr bgcolor="{{ getStyle(i) }}">
{% set i = i + 1 %}
<td>
{{ getPlayerLink(invited_player.getName(), true)|raw }}
{% if isVice %}
<div style="float: right">
{<a href="{{ getLink('guilds') }}?action=delete_invite&guild={{ guild_name|url_encode }}&name={{ invited_player.getName()|url_encode }}">Cancel Invitation</a>}
</div>
{% endif %}
</td>
</tr>
{% endif %}
{% else %}
<tr bgcolor="{{ getStyle(i) }}">
<td>
No invited characters found.
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</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,171 +1,151 @@
<div class="TableContainer"> {% set title = 'House Search' %}
{% if errors is not empty %} {% set content %}
{% for error in errors %} {% if errors is not empty %}
<p class="error">{{ error }}</p> {% for error in errors %}
{% endfor %} <p class="error">{{ error }}</p>
{% else %} {% endfor %}
<table class="Table1" cellpadding="0" cellspacing="0" style="background-color: {{ config.lightborder }}"> {% else %}
<div class="CaptionContainer"> Here you can see the list of all available houses, flats{{ guildString }}.
<div class="CaptionInnerContainer"> Click on any view button to get more information about a house or adjust
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> the search criteria and start a new search.
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <br><br>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> {% if cleanOldHouse is not empty or rentType != 'never' %}
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> Every morning during global server save there is automatic house cleaning. Server delete house owners who have not logged in last {{ cleanOldHouse }} days{% if rentType != 'never' %} or have not paid {{ rentType }} house rent. Remember to leave money for a rent in {% if config.lua.bankSystem is not empty %}your house bank or {% else %}depo in same city where you have house!{% endif %}{% else %}.{% endif %}
<div class="Text" >House Search</div> <br><br>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> {% endif %}
<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> {% if houses is not empty or housesSearch %}
<td> <table border="0" cellspacing="1" cellpadding="4" width="100%">
<div class="InnerTableContainer"> <tbody>
Here you can see the list of all available houses, flats{{ guildString }}. <tr bgcolor="{{ config.vdarkborder }}">
Click on any view button to get more information about a house or adjust <td colspan="6" class="white"><b>Available {{ houseType }}{% if townName is not empty %} in {{ townName }}{% endif %} on <b>{{ config.lua.serverName }}</b></b></td>
the search criteria and start a new search. </tr>
<br><br>
{% if cleanOldHouse is not empty or rentType != 'never' %}
Every morning during global server save there is automatic house cleaning. Server delete house owners who have not logged in last {{ cleanOldHouse }} days{% if rentType != 'never' %} or have not paid {{ rentType }} house rent. Remember to leave money for a rent in {% if config.lua.bankSystem is not empty %}your house bank or {% else %}depo in same city where you have house!{% endif %}{% else %}.{% endif %}
<br><br>
{% endif %}
{% if houses is not empty or housesSearch %} <tr bgcolor="{{ config.darkborder }}">
<table border="0" cellspacing="1" cellpadding="4" width="100%"> {% if houses is not empty %}
<tbody> <td width="40%"><b>Name</b></td>
<tr bgcolor="{{ config.vdarkborder }}"> <td width="10%"><b>Size</b></td>
<td colspan="6" class="white"><b>Available {{ houseType }}{% if townName is not empty %} in {{ townName }}{% endif %} on <b>{{ config.lua.serverName }}</b></b></td> <td width="10%"><b>Rent</b></td>
</tr>
<tr bgcolor="{{ config.darkborder }}"> <td width="40%"><b>Status</b></td>
{% if houses is not empty %} <td>&nbsp;</td>
<td width="40%"><b>Name</b></td> {% elseif housesSearch %}
<td width="10%"><b>Size</b></td> <td>No {{ houseType }} with specified criterias.</td>
<td width="10%"><b>Rent</b></td> {% endif %}
</tr>
<td width="40%"><b>Status</b></td> {% if houses is not empty %}
<td>&nbsp;</td> {% set i = 0 %}
{% elseif housesSearch %} {% for house in houses %}
<td>No {{ houseType }} with specified criterias.</td> {% set i = i + 1 %}
{% endif %} <tr bgcolor="{{ getStyle(i) }}">
</tr> <td width="40%">
{{ house.name }}
</td>
{% if houses is not empty %} <td width="10%">
{% set i = 0 %} {{ house.size }}
{% for house in houses %} </td>
{% set i = i + 1 %}
<tr bgcolor="{{ getStyle(i) }}">
<td width="40%">
{{ house.name }}
</td>
<td width="10%"> <td width="10%">
{{ house.size }} {{ house.rent }} golds
</td> </td>
<td width="10%"> <td width="40%">
{{ house.rent }} golds {{ house.rentedBy|raw }}
</td> </td>
<td width="40%"> <td>
{{ house.rentedBy|raw }} <form action="{{ getLink('houses/view') }}" method="post">
</td> <input type="hidden" name="house" value="{{ house.name }}">
{{ include('buttons.view.html.twig') }}
<td>
<form action="{{ getLink('houses/view') }}" method="post">
<input type="hidden" name="house" value="{{ house.name }}">
{{ include('buttons.view.html.twig') }}
</form>
</td>
</tr>
{% endfor %}
{% endif %}
</tbody>
</table>
<br>
{% endif %}
<form action="{{ getLink('houses') }}" method="post">
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tbody>
<tr bgcolor="{{ config.vdarkborder }}">
<td colspan="4" class="white"><b>House Search</b></td>
</tr>
<tr bgcolor="{{ config.darkborder }}">
<td width="25%"><b>Town</b></td>
<td width="25%"><b>Status</b></td>
<td width="25%"><b>Order</b></td>
</tr>
<tr bgcolor="{{ config.darkborder }}">
<td valign="top" rowspan="2">
{% set checked = false %}
{% for id, name in config.towns if id > 0 %}
{% if ((townId is empty and name is not empty) or id == townId) and not checked %}
{% set variable = "checked" %}
{% set checked = true %}
{% else %}
{% set variable = "" %}
{% endif %}
<input type="radio" name="town" id="town_{{ id }}" value="{{ id }}"{% if variable is defined %} {{ variable }}{% endif %}>
<label for="town_{{ id }}"> {{ name }}</label>
<br>
{% endfor %}
</td>
<td valign="top">
<input type="radio" name="state" id="state_all" value=""{% if state is empty %} checked{% endif %}>
<label for="state_all">all states</label><br>
<input type="radio" name="state" id="state_free" value="free"{% if state == 'free' %} checked{% endif %}>
<label for="state_free">free</label><br>
<input type="radio" name="state" id="state_rented" value="rented"{% if state == 'rented' %} checked{% endif %}>
<label for="state_rented">rented</label><br>
</td>
<td valign="top" rowspan="2">
<input type="radio" name="order" id="order_name" value=""{% if order is empty %} checked{% endif %}>
<label for="order_name"> by name</label><br>
<input type="radio" name="order" id="order_size" value="size"{% if order == 'size' %} checked{% endif %}>
<label for="order_size"> by size</label><br>
<input type="radio" name="order" id="order_rent" value="rent"{% if order == 'rent' %} checked{% endif %}>
<label for="order_rent"> by rent</label><br>
</td>
</tr>
<tr bgcolor="{{ config.darkborder }}">
<td valign="top">
<input type="radio" name="type" id="type_all" value=""{% if type is empty %} checked{% endif %}>
<label for="type"> all</label><br>
<input type="radio" name="type" id="type_houses" value="houses"{% if type == 'houses' %} checked{% endif %}>
<label for="type_houses"> houses and flats</label><br>
<input type="radio" name="type" id="type_guildhalls" value="guildhalls"{% if type == 'guildhalls' %} checked{% endif %}>
<label for="type_guildhalls"> guildhalls</label><br>
</td>
</tr>
</tbody>
</table>
<br>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr align="center">
<td>
{{ include('buttons.submit.html.twig') }}
</td>
</tr>
</tbody>
</table>
</form> </form>
</div> </td>
</tr>
{% endfor %}
{% endif %}
</tbody>
</table>
<br>
{% endif %}
<form action="{{ getLink('houses') }}" method="post">
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tbody>
<tr bgcolor="{{ config.vdarkborder }}">
<td colspan="4" class="white"><b>House Search</b></td>
</tr>
<tr bgcolor="{{ config.darkborder }}">
<td width="25%"><b>Town</b></td>
<td width="25%"><b>Status</b></td>
<td width="25%"><b>Order</b></td>
</tr>
<tr bgcolor="{{ config.darkborder }}">
<td valign="top" rowspan="2">
{% set checked = false %}
{% for id, name in config.towns if id > 0 %}
{% if ((townId is empty and name is not empty) or id == townId) and not checked %}
{% set variable = "checked" %}
{% set checked = true %}
{% else %}
{% set variable = "" %}
{% endif %}
<input type="radio" name="town" id="town_{{ id }}" value="{{ id }}"{% if variable is defined %} {{ variable }}{% endif %}>
<label for="town_{{ id }}"> {{ name }}</label>
<br>
{% endfor %}
</td>
<td valign="top">
<input type="radio" name="state" id="state_all" value=""{% if state is empty %} checked{% endif %}>
<label for="state_all">all states</label><br>
<input type="radio" name="state" id="state_free" value="free"{% if state == 'free' %} checked{% endif %}>
<label for="state_free">free</label><br>
<input type="radio" name="state" id="state_rented" value="rented"{% if state == 'rented' %} checked{% endif %}>
<label for="state_rented">rented</label><br>
</td>
<td valign="top" rowspan="2">
<input type="radio" name="order" id="order_name" value=""{% if order is empty %} checked{% endif %}>
<label for="order_name"> by name</label><br>
<input type="radio" name="order" id="order_size" value="size"{% if order == 'size' %} checked{% endif %}>
<label for="order_size"> by size</label><br>
<input type="radio" name="order" id="order_rent" value="rent"{% if order == 'rent' %} checked{% endif %}>
<label for="order_rent"> by rent</label><br>
</td> </td>
</tr> </tr>
</table>
{% endif %} <tr bgcolor="{{ config.darkborder }}">
</div> <td valign="top">
<input type="radio" name="type" id="type_all" value=""{% if type is empty %} checked{% endif %}>
<label for="type"> all</label><br>
<input type="radio" name="type" id="type_houses" value="houses"{% if type == 'houses' %} checked{% endif %}>
<label for="type_houses"> houses and flats</label><br>
<input type="radio" name="type" id="type_guildhalls" value="guildhalls"{% if type == 'guildhalls' %} checked{% endif %}>
<label for="type_guildhalls"> guildhalls</label><br>
</td>
</tr>
</tbody>
</table>
<br>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr align="center">
<td>
{{ include('buttons.submit.html.twig') }}
</td>
</tr>
</tbody>
</table>
</form>
{% endif %}
{% endset %}
{% include 'tables.headline.html.twig' %}

View File

@@ -1,51 +1,32 @@
<div class="TableContainer"> {% set title = houseName %}
{% if errors is not empty %} {% set content %}
{% for error in errors %}
<p class="error">{{ error }}</p>
{% endfor %}
{% 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> {% if errors is not empty %}
<td> {% for error in errors %}
<div class="InnerTableContainer"> <p class="error">{{ error }}</p>
<table border="0" cellpadding="4" cellspacing="1" width="100%"> {% endfor %}
<tr style="display: inline-flex;"> {% else %}
<td><img src="{{ imgPath }}"></td> <table border="0" cellpadding="4" cellspacing="1" width="100%">
<td> <tr style="display: inline-flex;">
{{ bedsMessage }} and has a size of <b>{{ houseSize }} square meters</b>. <td><img src="{{ imgPath }}"></td>
<td>
{{ bedsMessage }} and has a size of <b>{{ houseSize }} square meters</b>.
{% if rentType != 'never' %} {% if rentType != 'never' %}
The {{ rentType }} is <b>{{ houseRent }} gold</b> and will be debited to the bank account on <b>{{ config.lua.serverName }}</b>. The {{ rentType }} is <b>{{ houseRent }} gold</b> and will be debited to the bank account on <b>{{ config.lua.serverName }}</b>.
{% endif %} {% endif %}
<br> <br>
{% if owner is not empty %} {% if owner is not empty %}
The house has been rented by <b>{{ owner|raw }}</b>. The house has been rented by <b>{{ owner|raw }}</b>.
{% else %} {% else %}
No one has bought this house yet. No one has bought this house yet.
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
</table> </table>
</div> {% endif %}
</td>
</tr>
</table>
{% endif %}
</div> {% endset %}
{% include 'tables.headline.html.twig' %}
<br><br> <br><br>

View File

@@ -1,72 +1,53 @@
<div class="TableContainer" > {% set title = 'Last Kills' %}
<table class="Table3"> {% set content %}
<div class="CaptionContainer" > <table style="width:100%;">
<div class="CaptionInnerContainer" > <tbody>
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" ></span> <tr>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" ></span> <td>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> <div class="TableShadowContainerRightTop">
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" ></span> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div>
<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>
</div> <div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);">
<tr> <div class="TableContentContainer">
<td> <table class="TableContent" width="100%">
<div class="InnerTableContainer" > {% if lastkills|length <= 0 %}
<table style="width:100%;"> <tr>
<tbody> <td>
<tr> No one died on {{ config.lua.serverName }}
<td> </td>
<div class="TableShadowContainerRightTop"> </tr>
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div> {% else %}
</div> {% for lastkill in lastkills %}
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);"> <tr bgcolor="{{ getStyle(lastkill.id) }}">
<div class="TableContentContainer"> <td class="centralizeContent" width="30">
<table class="TableContent" width="100%"> {{ lastkill.id }}.
{% if lastkills|length <= 0 %} </td>
<tr> <td width="125">
<td> <small>{{ lastkill.time|date("j.m.Y, G:i:s") }}</small>
No one died on {{ config.lua.serverName }} </td>
</td> <td>
</tr> {{ lastkill.killers_string|raw }}
{% else %} </td>
{% for lastkill in lastkills %} {% if config.multiworld %}
<tr bgcolor="{{ getStyle(lastkill.id) }}"> <td>
<td class="centralizeContent" width="30"> {{ lastkill.world_id }}
{{ lastkill.id }}. </td>
</td> {% endif %}
<td width="125"> </tr>
<small>{{ lastkill.time|date("j.m.Y, G:i:s") }}</small> {% endfor %}
</td> {% endif %}
<td>
{{ lastkill.killers_string|raw }}
</td>
{% if config.multiworld %}
<td>
{{ lastkill.world_id }}
</td>
{% endif %}
</tr>
{% endfor %}
{% endif %}
</table>
</div>
</div>
<div class="TableShadowContainer">
<div class="TableBottomShadow" style="background-image:url(https://static.tibia.com/images/global/content/table-shadow-bm.gif);">
<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>
</td>
</tr>
</tbody>
</table> </table>
</div> </div>
</td> </div>
</tr> <div class="TableShadowContainer">
</table> <div class="TableBottomShadow" style="background-image:url(https://static.tibia.com/images/global/content/table-shadow-bm.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>
</td>
</tr>
</tbody>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}

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> </tr>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </thead>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <tbody>
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <tr style="background-color: {% if background is not null %}{{ background }}{% else %}{{ config.darkborder }}{% endif %}">
<div class="Text" >{{ title|raw }}</div> <td>
<span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> {{ description|raw }}
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> </td>
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </tr>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </tbody>
</div> </table>
</div>
<tr>
<td>
<div class="InnerTableContainer">
<table style="width:100%;">
<tr>
<td>{{ description|raw }}</td>
</tr>
</table>
</div>
</td>
</tr>
</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> <td>
<span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> {{ content|raw }}
<span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </td>
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </tr>
</div> </tbody>
</div> </table>
<table class="Table5" cellpadding="0" cellspacing="0" style="background-color: {{ config.lightborder }}">
<tr>
<td>
<div class="InnerTableContainer">
{{ content|raw }}
</div>
</td>
</tr>
</table>
</div>

View File

@@ -1,186 +1,170 @@
<div class="TableContainer"> {% set title = 'Support in game' %}
<div class="CaptionContainer"> {% set content %}
<div class="CaptionInnerContainer"> {% set i = 0 %}
<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 %}
{% if setting('core.team_style') == 1 %}
<table border="0" cellpadding="4" cellspacing="1" width="100%"> {% if setting('core.team_style') == 1 %}
<tr bgcolor="{{ config.vdarkborder }}"> <table border="0" cellpadding="4" cellspacing="1" width="100%">
<td width="10%" class="white"> <tr bgcolor="{{ config.vdarkborder }}">
<b>Group</b> <td width="10%" class="white">
</td> <b>Group</b>
{% if setting('core.team_outfit') %}
<td width="5%" class="white">
<b>Outfit</b>
</td>
{% endif %}
<td width="40%" class="white">
<b>Name</b>
</td>
{% if setting('core.team_status') %}
<td class="white">
<b>Status</b>
</td>
{% endif %}
{% if (setting('core.multiworld') or setting('core.team_world')) %}
<td class="white">
<b>World</b>
</td>
{% endif %}
{% if setting('core.team_lastlogin') %}
<td class="white">
<b>Last login</b>
</td>
{% endif %}
</tr>
{% for group in groupmember|reverse %}
{% if group.members is not empty %}
{% for member in group.members|reverse %}
{% set i = i + 1 %}
<tr bgcolor="{{ getStyle(i) }}" style="height: 32px;">
<td>{{ group.group_name|capitalize }}</td>
{% if setting('core.team_outfit') %}
<td>
<img style="position: absolute; margin-top: {% if member.player.looktype in setting('core.outfit_images_wrong_looktypes') %}-16px;margin-left:-0px;{% else %} -45px; margin-left: -30px;{% endif %}" src="{{ member.outfit }}" alt="player outfit"/>
</td>
{% endif %}
<td>
{% if setting('core.account_country') %}
{{ member.flag_image|raw }}
{% endif %}
{{ member.link|raw }}
</td>
{% if setting('core.team_status') %}
<td>
{% if member.status %}
<span style="color: green"><b>Online</b></span>
{% else %}
<span style="color: red"><b>Offline</b></span>
{% endif %}
</td>
{% endif %}
{% if (setting('core.multiworld') or setting('core.team_world')) %}
<td>
<span><b>{{ member.world_name }}</b></span>
</td>
{% endif %}
{% if setting('core.team_lastlogin') %}
<td>
<span>{{ member.last_login }}</span>
</td>
{% endif %}
</tr>
{% endfor %}
{% endif %}
{% endfor %}
</table>
{% elseif setting('core.team_style') == 2 %}
{% for group in groupmember|reverse %}
{% if group.members is not empty %}
<div style="text-align:center"><h2>{{ group.group_name|capitalize }}</h2></div>
<table cellspacing="1" cellpadding="4" border="0" width="100%">
<tr bgcolor="{{ config.vdarkborder }}">
{% if setting('core.team_outfit') %}
<td width="5%" class="white">
<b>Outfit</b>
</td>
{% endif %}
<td width="40%" class="white">
<b>Name</b>
</td>
{% if setting('core.team_status') %}
<td class="white">
<b>Status</b>
</td>
{% endif %}
{% if (setting('core.multiworld') or setting('core.team_world')) %}
<td class="white">
<b>World</b>
</td>
{% endif %}
{% if setting('core.team_lastlogin') %}
<td class="white">
<b>Last login</b>
</td>
{% endif %}
</tr>
{% for member in group.members %}
{% set i = i + 1 %}
<tr bgcolor="{{ getStyle(i) }}" style="height: 32px;">
{% if setting('core.team_outfit') %}
<td>
<img style="position: absolute; margin-top: {% if member.player.looktype in setting('core.outfit_images_wrong_looktypes') %}-16px;margin-left:-0px;{% else %} -45px; margin-left: -30px;{% endif %}" src="{{ member.outfit }}" alt="player outfit"/>
</td>
{% endif %}
<td>
{% if setting('core.account_country') %}
{{ member.flag_image|raw }}
{% endif %}
{{ member.link|raw }}
</td>
{% if setting('core.team_status') %}
<td>
{% if member.status %}
<span style="color: green"><b>Online</b></span>
{% else %}
<span style="color: red"><b>Offline</b></span>
{% endif %}
</td>
{% endif %}
{% if (setting('core.multiworld') or setting('core.team_world')) %}
<td>
<span><b>{{ member.world_name }}</b></span>
</td>
{% endif %}
{% if setting('core.team_lastlogin') %}
<td>
<span>{{ member.last_login }}</span>
</td>
{% endif %}
</tr>
{% endfor %}
</table>
{% endif %}
{% endfor %}
{% endif %}
</div>
</td> </td>
{% if setting('core.team_outfit') %}
<td width="5%" class="white">
<b>Outfit</b>
</td>
{% endif %}
<td width="40%" class="white">
<b>Name</b>
</td>
{% if setting('core.team_status') %}
<td class="white">
<b>Status</b>
</td>
{% endif %}
{% if (setting('core.multiworld') or setting('core.team_world')) %}
<td class="white">
<b>World</b>
</td>
{% endif %}
{% if setting('core.team_lastlogin') %}
<td class="white">
<b>Last login</b>
</td>
{% endif %}
</tr> </tr>
{% for group in groupmember|reverse %}
{% if group.members is not empty %}
{% for member in group.members|reverse %}
{% set i = i + 1 %}
<tr bgcolor="{{ getStyle(i) }}" style="height: 32px;">
<td>{{ group.group_name|capitalize }}</td>
{% if setting('core.team_outfit') %}
<td>
<img style="position: absolute; margin-top: {% if member.player.looktype in setting('core.outfit_images_wrong_looktypes') %}-16px;margin-left:-0px;{% else %} -45px; margin-left: -30px;{% endif %}" src="{{ member.outfit }}" alt="player outfit"/>
</td>
{% endif %}
<td>
{% if setting('core.account_country') %}
{{ member.flag_image|raw }}
{% endif %}
{{ member.link|raw }}
</td>
{% if setting('core.team_status') %}
<td>
{% if member.status %}
<span style="color: green"><b>Online</b></span>
{% else %}
<span style="color: red"><b>Offline</b></span>
{% endif %}
</td>
{% endif %}
{% if (setting('core.multiworld') or setting('core.team_world')) %}
<td>
<span><b>{{ member.world_name }}</b></span>
</td>
{% endif %}
{% if setting('core.team_lastlogin') %}
<td>
<span>{{ member.last_login }}</span>
</td>
{% endif %}
</tr>
{% endfor %}
{% endif %}
{% endfor %}
</table> </table>
</div>
{% elseif setting('core.team_style') == 2 %}
{% for group in groupmember|reverse %}
{% if group.members is not empty %}
<div style="text-align:center"><h2>{{ group.group_name|capitalize }}</h2></div>
<table cellspacing="1" cellpadding="4" border="0" width="100%">
<tr bgcolor="{{ config.vdarkborder }}">
{% if setting('core.team_outfit') %}
<td width="5%" class="white">
<b>Outfit</b>
</td>
{% endif %}
<td width="40%" class="white">
<b>Name</b>
</td>
{% if setting('core.team_status') %}
<td class="white">
<b>Status</b>
</td>
{% endif %}
{% if (setting('core.multiworld') or setting('core.team_world')) %}
<td class="white">
<b>World</b>
</td>
{% endif %}
{% if setting('core.team_lastlogin') %}
<td class="white">
<b>Last login</b>
</td>
{% endif %}
</tr>
{% for member in group.members %}
{% set i = i + 1 %}
<tr bgcolor="{{ getStyle(i) }}" style="height: 32px;">
{% if setting('core.team_outfit') %}
<td>
<img style="position: absolute; margin-top: {% if member.player.looktype in setting('core.outfit_images_wrong_looktypes') %}-16px;margin-left:-0px;{% else %} -45px; margin-left: -30px;{% endif %}" src="{{ member.outfit }}" alt="player outfit"/>
</td>
{% endif %}
<td>
{% if setting('core.account_country') %}
{{ member.flag_image|raw }}
{% endif %}
{{ member.link|raw }}
</td>
{% if setting('core.team_status') %}
<td>
{% if member.status %}
<span style="color: green"><b>Online</b></span>
{% else %}
<span style="color: red"><b>Offline</b></span>
{% endif %}
</td>
{% endif %}
{% if (setting('core.multiworld') or setting('core.team_world')) %}
<td>
<span><b>{{ member.world_name }}</b></span>
</td>
{% endif %}
{% if setting('core.team_lastlogin') %}
<td>
<span>{{ member.last_login }}</span>
</td>
{% endif %}
</tr>
{% endfor %}
</table>
{% endif %}
{% endfor %}
{% endif %}
{% endset %}
{% include 'tables.headline.html.twig' %}

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,124 +119,107 @@
</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"> <table style="width:100%;" >
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <tr>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <div class="TableShadowContainerRightTop">
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div>
<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>
</div> <div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);">
<tr> <div class="TableContentContainer">
<td> <table class="TableContent" width="100%">
<div class="InnerTableContainer"> {% if not config.account_login_by_email or config.account_login_by_email_fallback %}
<table style="width:100%;" > <tr style="background-color: {{ config.lightborder }};" >
<tr> <td class="LabelV" >Account {% if constant('USE_ACCOUNT_NAME') %}Name{% else %}Number{% endif %}:</td>
<td> <td style="width:90%;" >{{ account }}</td>
<div class="TableShadowContainerRightTop">
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div>
</div>
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);">
<div class="TableContentContainer">
<table class="TableContent" width="100%">
{% if not config.account_login_by_email or config.account_login_by_email_fallback %}
<tr style="background-color: {{ config.lightborder }};" >
<td class="LabelV" >Account {% if constant('USE_ACCOUNT_NAME') %}Name{% else %}Number{% endif %}:</td>
<td style="width:90%;" >{{ account }}</td>
</tr>
{% endif %}
<tr style="background-color: {{ config.darkborder }};" >
<td class="LabelV" >Email Address:</td>
<td style="width:90%;" >{{ account_email ~ email_change}}</td>
</tr>
<tr style="background-color: {{ config.lightborder }};" >
<td class="LabelV" >Created:</td>
<td>{{ account_created|date("j F Y, G:i:s") }}</td>
</tr>
<tr style="background-color: {{ config.darkborder }};" >
<td class="LabelV" >Last Login:</td>
<td>{{ "now"|date("j F Y, G:i:s") }}</td>
</tr>
{% autoescape false %}
<tr style="background-color: {{ config.lightborder }};" >
<td class="LabelV" >Account Status:</td>
<td>{{ account_status }}</td>
</tr>
<tr style="background-color: {{ config.darkborder }};" >
<td class="LabelV" >Registered:</td>
<td>{{ account_registered }}</td>
</tr>
{% endautoescape %}
</table>
</div>
</div>
<div class="TableShadowContainer">
<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="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-br.gif);"></div> </div>
</div>
</td>
</tr> </tr>
<tr> {% endif %}
<td> <tr style="background-color: {{ config.darkborder }};" >
<table class="InnerTableButtonRow" cellpadding="0" cellspacing="0"> <td class="LabelV" >Email Address:</td>
<tr> <td style="width:90%;" >{{ account_email ~ email_change}}</td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/password') }}" method="post">
<tr>
<td style="border:0px;" >
{{ include('buttons.change_password.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/email') }}" method="post">
<tr>
<td style="border:0px;">
<input type="hidden" name="newemail" value=""/>
<input type="hidden" name="newemaildate" value="0">
{{ include('buttons.change_email.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
<td width="100%"></td>
{# show button "register account" #}
{% if recovery_key is empty %}
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/register') }}" method="post">
<tr>
<td style="border:0px;">
{{ include('buttons.register_account.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
{% endif %}
</tr>
</table>
</td>
</tr> </tr>
<tr style="background-color: {{ config.lightborder }};" >
<td class="LabelV" >Created:</td>
<td>{{ account_created|date("j F Y, G:i:s") }}</td>
</tr>
<tr style="background-color: {{ config.darkborder }};" >
<td class="LabelV" >Last Login:</td>
<td>{{ "now"|date("j F Y, G:i:s") }}</td>
</tr>
{% autoescape false %}
<tr style="background-color: {{ config.lightborder }};">
<td class="LabelV" >Account Status:</td>
<td>{{ account_status }}</td>
</tr>
<tr style="background-color: {{ config.darkborder }};" >
<td class="LabelV" >Registered:</td>
<td>{{ account_registered }}</td>
</tr>
{% endautoescape %}
</table> </table>
</div> </div>
</td> </div>
</tr> <div class="TableShadowContainer">
</table> <div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bm.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>
</td>
</tr>
<tr>
<td>
<table class="InnerTableButtonRow" cellpadding="0" cellspacing="0">
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/password') }}" method="post">
<tr>
<td style="border:0px;" >
{{ include('buttons.change_password.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/email') }}" method="post">
<tr>
<td style="border:0px;">
<input type="hidden" name="newemail" value=""/>
<input type="hidden" name="newemaildate" value="0">
{{ include('buttons.change_email.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
<td width="100%"></td>
{# show button "register account" #}
{% if recovery_key is empty %}
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/register') }}" method="post">
<tr>
<td style="border:0px;">
{{ include('buttons.register_account.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
{% endif %}
</tr>
</table>
</td>
</tr>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}
<br/> <br/>
<a name="Public+Information"></a> <a name="Public+Information"></a>
<div class="TopButtonContainer"> <div class="TopButtonContainer">
@@ -246,74 +229,56 @@
</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"> <table style="width:100%;">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <tr>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <div class="TableShadowContainerRightTop">
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);" ></div>
<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>
</div> <div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);" >
<tr> <div class="TableContentContainer">
<td> <table class="TableContent" width="100%">
<div class="InnerTableContainer">
<table style="width:100%;">
<tr> <tr>
<td> <td>
<div class="TableShadowContainerRightTop"> <table style="width:100%;">
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);" ></div> <tr>
</div> <td class="LabelV" >Real Name:</td>
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);" > <td style="width:90%;" >{{ account_rlname }}</td>
<div class="TableContentContainer"> </tr>
<table class="TableContent" width="100%"> <tr>
<tr> <td class="LabelV" >Location:</td>
<td> <td style="width:90%;" >{{ account_location }}</td>
<table style="width:100%;"> </tr>
<tr> </table>
<td class="LabelV" >Real Name:</td> </td>
<td style="width:90%;" >{{ account_rlname }}</td> <td align=right>
</tr> <table border="0" cellspacing="0" cellpadding="0">
<tr> <form action="{{ getLink('account/info') }}" method="post">
<td class="LabelV" >Location:</td> <tr>
<td style="width:90%;" >{{ account_location }}</td> <td style="border:0px;">
</tr> {{ include('buttons.edit.html.twig') }}
</table> </td>
</td> </tr>
<td align=right> </form>
<table border="0" cellspacing="0" cellpadding="0"> </table>
<form action="{{ getLink('account/info') }}" method="post">
<tr>
<td style="border:0px;">
{{ include('buttons.edit.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</div>
</div>
<div class="TableShadowContainer">
<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="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-br.gif);"></div> </div>
</div>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
</td> </div>
</tr> <div class="TableShadowContainer">
</table> <div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bm.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>
</td>
</tr>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}
<br/> <br/>
<a name="Account+Logs" ></a> <a name="Account+Logs" ></a>
<div class="TopButtonContainer"> <div class="TopButtonContainer">
@@ -323,68 +288,50 @@
</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"> <table style="width:100%;">
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <tr>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td>
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <div class="TableShadowContainerRightTop">
<span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div>
<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>
</div> <div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);" >
<tr> <div class="TableContentContainer" >
<td> <table class="TableContent" width="100%">
<div class="InnerTableContainer"> <tr class="LabelH">
<table style="width:100%;"> <td style="width:60%">Action</td>
<tr> <td style="width:25%">Date</td>
<td> <td style="width:15%">IP</td>
<div class="TableShadowContainerRightTop">
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div>
</div>
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);" >
<div class="TableContentContainer" >
<table class="TableContent" width="100%">
<tr class="LabelH">
<td style="width:60%">Action</td>
<td style="width:25%">Date</td>
<td style="width:15%">IP</td>
</tr>
{% autoescape false %}
{% set i = 0 %}
{% for action in actions %}
{% set i = i + 1 %}
<tr style="background-color: {{ getStyle(i) }}">
<td>{{ action.action }}</td>
<td>{{ action.date|date("jS F Y H:i:s") }}</td>
<td>{{ action.ip }}</td>
</tr>
{% endfor %}
{% endautoescape %}
</table>
</div>
</div>
<div class="TableShadowContainer" >
<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="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-br.gif);"></div>
</div>
</div>
</td>
<td align=right>
</td>
</tr> </tr>
{% autoescape false %}
{% set i = 0 %}
{% for action in actions %}
{% set i = i + 1 %}
<tr style="background-color: {{ getStyle(i) }}">
<td>{{ action.action }}</td>
<td>{{ action.date|date("jS F Y H:i:s") }}</td>
<td>{{ action.ip }}</td>
</tr>
{% endfor %}
{% endautoescape %}
</table> </table>
</div> </div>
</td> </div>
</tr> <div class="TableShadowContainer" >
</table> <div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bm.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>
</td>
<td align=right>
</td>
</tr>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}
<br/> <br/>
<a name="Characters" ></a> <a name="Characters" ></a>
<div class="TopButtonContainer"> <div class="TopButtonContainer">
@@ -394,128 +341,110 @@
</a> </a>
</div> </div>
</div> </div>
<div class="TableContainer"> {% set title = 'Characters' %}
<table class="Table5" cellpadding="0" cellspacing="0"> {% set content %}
<div class="CaptionContainer" > <table style="width:100%;">
<div class="CaptionInnerContainer"> <tr>
<span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <td>
<span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <div class="TableShadowContainerRightTop">
<span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div>
<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>
</div> <div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);">
<tr> <div class="TableContentContainer">
<td> <table class="TableContent" width="100%">
<div class="InnerTableContainer"> <tr class="LabelH">
<table style="width:100%;"> <td style="width:65%">Name</td>
<tr> <td style="width:15%">Level</td>
<td> <td style="width:7%">Status</td>
<div class="TableShadowContainerRightTop"> <td style="width:5%">&#160;</td>
<div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div>
</div>
<div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);">
<div class="TableContentContainer">
<table class="TableContent" width="100%">
<tr class="LabelH">
<td style="width:65%">Name</td>
<td style="width:15%">Level</td>
<td style="width:7%">Status</td>
<td style="width:5%">&#160;</td>
</tr>
{% set i = 0 %}
{% for player in players %}
{% set i = i + 1 %}
<tr style="background-color: {{ getStyle(i) }};">
<td>
<nobr>{{ i }}. {{ player.getName() }}{% if player.isDeleted() %}<span style="color: red"><b> [ DELETED ] </b></span>{% endif %}</nobr>
</td>
<td>
<nobr>{{ player.getLevel() }} {{ config.vocations[player.getVocation()] }}</nobr>
</td>
{% if player.isOnline() %}
<td><span style="color: green"><b>Online</b></span></td>
{% else %}
<td><span style="color: red"><b>Offline</b></span></td>
{% endif %}
<td>{% if not player.isDeleted() %}[<a href="{{ getLink('account/character/comment/' ~ player.getName|urlencode) }}" >Edit</a>]{% endif %}</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="TableShadowContainer">
<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="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-br.gif);"></div> </div>
</div>
</td>
</tr> </tr>
<tr> {% set i = 0 %}
{% for player in players %}
{% set i = i + 1 %}
<tr style="background-color: {{ getStyle(i) }};">
<td> <td>
<table class="InnerTableButtonRow" cellpadding="0" cellspacing="0" > <nobr>{{ i }}. {{ player.getName() }}{% if player.isDeleted() %}<span style="color: red"><b> [ DELETED ] </b></span>{% endif %}</nobr>
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0" >
<form action="{{ getLink('account/character/create') }}" method="post" >
<tr>
<td style="border:0px;" >
{{ include('buttons.create_character.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
{% if setting('core.account_change_character_name') %}
<td>
<table border="0" cellspacing="0" cellpadding="0" >
<form action="{{ getLink('account/character/name') }}" method="post" >
<tr>
<td style="border:0px;" >
{{ include('buttons.change_name.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
{% endif %}
{% if setting('core.account_change_character_sex') %}
<td>
<table border="0" cellspacing="0" cellpadding="0" >
<form action="{{ getLink('account/character/sex') }}" method="post" >
<tr>
<td style="border:0px;" >
{{ include('buttons.change_sex.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
{% endif %}
<td style="width:100%;" ></td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/character/delete') }}" method="post">
<tr>
<td style="border:0px;">
{{ include('buttons.delete_character.html.twig') }}
</td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</td> </td>
<td>
<nobr>{{ player.getLevel() }} {{ config.vocations[player.getVocation()] }}</nobr>
</td>
{% if player.isOnline() %}
<td><span style="color: green"><b>Online</b></span></td>
{% else %}
<td><span style="color: red"><b>Offline</b></span></td>
{% endif %}
<td>{% if not player.isDeleted() %}[<a href="{{ getLink('account/character/comment/' ~ player.getName|urlencode) }}" >Edit</a>]{% endif %}</td>
</tr> </tr>
{% endfor %}
</table> </table>
</div> </div>
</td> </div>
</tr> <div class="TableShadowContainer">
</table> <div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-bm.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>
</td>
</tr>
<tr>
<td>
<table class="InnerTableButtonRow" cellpadding="0" cellspacing="0" >
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0" >
<tr>
<td style="border:0px;">
<form action="{{ getLink('account/character/create') }}" method="post" >
{{ include('buttons.create_character.html.twig') }}
</form>
</td>
</tr>
</table>
</td>
{% if setting('core.account_change_character_name') %}
<td>
<table border="0" cellspacing="0" cellpadding="0" >
<tr>
<td style="border:0px;">
<form action="{{ getLink('account/character/name') }}" method="post" >
{{ include('buttons.change_name.html.twig') }}
</form>
</td>
</tr>
</table>
</td>
{% endif %}
{% if setting('core.account_change_character_sex') %}
<td>
<table border="0" cellspacing="0" cellpadding="0" >
<tr>
<td style="border:0px;">
<form action="{{ getLink('account/character/sex') }}" method="post">
{{ include('buttons.change_sex.html.twig') }}
</form>
</td>
</tr>
</table>
</td>
{% endif %}
<td style="width:100%;" ></td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border: 0px;">
<form action="{{ getLink('account/character/delete') }}" method="post">
{{ include('buttons.delete_character.html.twig') }}
</form>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}
<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>