Merge branch 'main' into feature/refactor-account-lost

This commit is contained in:
slawkens
2025-09-14 13:02:41 +02:00
306 changed files with 9341 additions and 6143 deletions

View File

@@ -28,7 +28,7 @@ Please enter your password and the new email address. Make sure that you enter a
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
<td style="border:0;">
<form id="form" action="{{ getLink('account/change-email') }}" method="post">
{{ csrf() }}
<input type="hidden" name="changeemailsave" value="1"/>
@@ -40,14 +40,14 @@ Please enter your password and the new email address. Make sure that you enter a
</td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
<tr>
<td style="border:0px;">
<tr>
<td style="border:0;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }}
</td>
</tr>
</form>
</form>
</td>
</tr>
</table>
</td>
</tr>

View File

@@ -4,6 +4,14 @@ Please enter your current password and a new password. For your security, please
{% set background = config('darkborder') %}
{% set content %}
<table style="width:100%;">
<tr>
<td class="LabelV">
<span>Current Password:</span>
</td>
<td>
<input form="form" type="password" name="oldpassword" size="30" maxlength="29">
</td>
</tr>
<tr>
<td class="LabelV">
<span>New Password:</span>
@@ -20,14 +28,6 @@ Please enter your current password and a new password. For your security, please
<input form="form" type="password" name="newpassword_confirm" size="30" maxlength="29">
</td>
</tr>
<tr>
<td class="LabelV">
<span>Current Password:</span>
</td>
<td>
<input form="form" type="password" name="oldpassword" size="30" maxlength="29">
</td>
</tr>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}
@@ -37,7 +37,7 @@ Please enter your current password and a new password. For your security, please
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
<td style="border:0;">
<form id="form" action="{{ getLink('account/change-password') }}" method="post">
{{ csrf() }}
{{ include('buttons.submit.html.twig') }}

View File

@@ -88,7 +88,7 @@ If you do not want to specify a certain field, just leave it blank.<br/><br/>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
<td style="border:0;">
<input type="hidden" name="name" value="{{ player.name }}">
<input type="hidden" name="changecommentsave" value="1">
{{ include('buttons.submit.html.twig') }}
@@ -99,15 +99,15 @@ If you do not want to specify a certain field, just leave it blank.<br/><br/>
</td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
<tr>
<td style="border:0px;">
<tr>
<td style="border:0;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }}
</td>
</tr>
</form>
</table>
</form>
</td>
</tr>
</table>
</td>
</tr>
</table>

View File

@@ -35,7 +35,7 @@ To change a name of character select player and choose a new name.<br/>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
<td style="border:0;">
<form id="form" action="{{ getLink('account/characters/change-name') }}" method="post">
{{ csrf() }}
<input type="hidden" name="changenamesave" value="1">
@@ -48,7 +48,7 @@ To change a name of character select player and choose a new name.<br/>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
<td style="border:0;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }}

View File

@@ -24,7 +24,7 @@ To delete a character enter the name of the character and your password.<br/><br
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
<td style="border:0;">
<form id="form" action="{{ getLink('account/characters/delete') }}" method="post">
{{ csrf() }}
<input type="hidden" name="deletecharactersave" value="1"/>
@@ -36,14 +36,14 @@ To delete a character enter the name of the character and your password.<br/><br
</td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
<tr>
<td style="border:0px;">
<tr>
<td style="border:0;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }}
</td>
</tr>
</form>
</form>
</td>
</tr>
</table>
</td>
</tr>

View File

@@ -32,14 +32,14 @@ To generate recovery key for your account please enter your password.<br/><br/>
</td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
<tr>
<td style="border: 0px;">
<tr>
<td style="border: 0;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }}
</td>
</tr>
</form>
</form>
</td>
</tr>
</table>
</td>
</tr>

View File

@@ -2,9 +2,11 @@
Please enter your account {{ account|lower }} and your password.<br/><a href="{{ getLink('account/create') }}">Create an account</a> if you do not have one yet.<br/><br/>
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{% if redirect is not null %}
<input type="hidden" name="redirect" value="{{ redirect }}" />
{% endif %}
<div class="TableContainer" >
<table class="Table1" cellpadding="0" cellspacing="0" >
<div class="CaptionContainer" >
@@ -24,21 +26,28 @@ Please enter your account {{ account|lower }} and your password.<br/><a href="{{
<td>
<div class="InnerTableContainer">
<table style="width:100%;" >
{{ hook('HOOK_ACCOUNT_LOGIN_BEFORE_PASSWORD') }}
{{ hook('HOOK_ACCOUNT_LOGIN_BEFORE_ACCOUNT') }}
<tr>
<td class="LabelV" >
<span{% if error is not null %} class="red"{% endif %}>{{ account_login_by }}:</span>
</td>
<td style="width:100%;" ><input type="text" name="account_login" size="30" maxlength="{{ setting('core.account_login_by_email') ? '255' : '30' }}" autofocus/></td>
</tr>
{{ hook('HOOK_ACCOUNT_LOGIN_AFTER_ACCOUNT') }}
{{ hook('HOOK_ACCOUNT_LOGIN_BEFORE_PASSWORD') }}
<tr>
<td class="LabelV" >
<span{% if error is not null %} class="red"{% endif %}>Password:</span>
</td>
<td><input type="password" name="password_login" size="30" maxlength="29" ></td>
</tr>
{{ hook('HOOK_ACCOUNT_LOGIN_AFTER_PASSWORD') }}
<tr>
<td class="LabelV" ></td>
<td><input type="checkbox" id="remember_me" name="remember_me" value="true" />
@@ -57,7 +66,7 @@ Please enter your account {{ account|lower }} and your password.<br/><a href="{{
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
<td style="border:0;">
{{ include('buttons.submit.html.twig') }}
</td>
<tr>
@@ -66,7 +75,7 @@ Please enter your account {{ account|lower }} and your password.<br/><a href="{{
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="border:0px;">
<td style="border:0;">
<a href="{{ getLink('account/lost') }}">
{{ include('buttons.account_lost.html.twig') }}
</a>

View File

@@ -149,7 +149,7 @@
<br/>
{{ hook('HOOK_ACCOUNT_MANAGE_BEFORE_ACCOUNT_LOGS') }}
<a name="Account+Logs" ></a>
<h2>Action Log</h2>
<h2>Account Logs</h2>
<table>
<tr bgcolor="{{ config.vdarkborder }}" class="white">
<th>Action</th><th>Date</th><th>IP</th>
@@ -228,5 +228,7 @@
</td>
</tr>
</table>
<br/>
{{ hook('HOOK_ACCOUNT_MANAGE_AFTER_CHARACTERS') }}
</div>
</div>

View File

@@ -110,7 +110,7 @@ html { margin-top: 32px !important; }
<form method="post" action="{{ constant('ADMIN_URL') }}?p=dashboard">
{{ csrf() }}
<input type="hidden" name="clear_cache" value="1" />
<a class="ab-item" href="#" onclick="confirm('Are you sure that you want to clear cache?') && $(this).closest('form').submit()" title="Clear Cache">Clear Cache</a>
<a class="ab-item" href="javascript:void(0);" onclick="confirm('Are you sure that you want to clear cache?') && $(this).closest('form').submit()" title="Clear Cache">Clear Cache</a>
</form>
</li>
</ul>

View File

@@ -16,6 +16,13 @@
<input class="form-control" type="text" id="mail_to" name="mail_to" value="{{ mail_to }}"/>
</div>
{% if setting('core.account_mail_verify') %}
<div class="form-check">
<input type="checkbox" class="form-check-input" id="mail_verified_only" name="mail_verified_only" {% if mail_verified_only %}checked{% endif %}>
<label class="form-check-label" for="mail_verified_only">Mail only verified users</label>
</div>
{% endif %}
<div class="form-group row">
<label for="mail_subject">Subject:</label>
<input class="form-control" type="text" id="mail_subject" name="mail_subject" value="{{ mail_subject }}" maxlength="30"/>

View File

@@ -0,0 +1,31 @@
<div align="center" class="text-center">
<p class="note">You are editing: {{ template }}<br/><br/>
Hint: You can drag menu items.<br/>
Hint: Add links to external sites using: <b>http://</b> or <b>https://</b> prefix.<br/>
Not all templates support blank and colorful links.
</p>
<div class="row text-center">
<div class="col-md-2 col-sm-1"></div>
<div class="col-md-8 col-sm-10">
<div class="row justify-content-center">
{% if config('menus') is not null %}
<form method="post" action="?p=menus&reset_menus" onsubmit="return confirm('Do you really want to reset menus?');">
{{ csrf() }}
<input type="hidden" name="template" value="{{ template }}"/>
<button type="submit" class="btn btn-danger">Reset Menus to default</button>
</form>
<br/>
{% endif %}
{% if canResetColors %}
<form method="post" action="?p=menus&reset_colors" onsubmit="return confirm('Do you really want to reset colors?');">
{{ csrf() }}
<input type="hidden" name="template" value="{{ template }}"/>
<button type="submit" class="btn btn-warning" style="margin-left: 20px">Reset Colors to default</button>
</form>
<br/>
{% endif %}
</div>
</div>
<div class="col-md-2 col-sm-1"></div>
</div>
</div>

View File

@@ -1,31 +1,43 @@
<link type="text/css" rel="stylesheet" href="{{ constant('BASE_URL') }}tools/ext/jquery-ui/themes/base/jquery-ui.min.css">
<script>
var last_id = [];
{% for cat, menu in menus %}
last_id[{{ cat }}] = {{ last_id[cat] }};
{% endfor %}
$(function () {
$(".sortable").sortable();
$(".sortable").disableSelection();
let last_id = [];
let colors = [];
$(".remove-button").click(function () {
{% for cat, menu in menus %}
{% if config('menu_categories')[cat] is not empty %}
last_id[{{ cat }}] = {{ last_id[cat] }};
{% endif %}
{% endfor %}
{% set menuDefaultLinksColor = config('menu_default_links_color') %}
{% for cat, options in config('menu_categories') %}
colors[{{ cat }}] = '{{ options['default_links_color'] ?? (menuDefaultLinksColor ?? config('menu_default_color')) }}';
{% endfor %}
$(function () {
const $sortable = $(".sortable");
$sortable.sortable();
$sortable.disableSelection();
$(".remove-button").on('click', function () {
var id = $(this).attr("id");
$('#list-' + id.replace('remove-button-', '')).remove();
});
$(".add-button").click(function () {
$(".add-button").on('click', function () {
var cat = $(this).attr("id").replace('add-button-', '');
var id = last_id[cat];
last_id[cat]++;
$('#sortable-' + cat).append('<li class="ui-state-default" id="list-' + cat + '-' + id + '"><label>Name:</label> <input type="text" name="menu[' + cat + '][]" value=""/> <label>Link:</label> <input type="text" name="menu_link[' + cat + '][]" value=""/><input type="hidden" name="menu_blank[' + cat + '][]" value="0" /> <label><input class="blank-checkbox" type="checkbox"/><span title="Open in New Window">New Window</span></label> <input class="color-picker" type="text" name="menu_color[' + cat + '][]" value="{{ menu_default_color }}" /><a class="remove-button" id="remove-button-' + cat + '-' + id + '"><i class="fas fa-trash"></i></a></li>'); //add input bo
$('#remove-button-' + cat + '-' + id).click(function () {
const color = colors[cat];
$('#sortable-' + cat).append('<li class="ui-state-default" id="list-' + cat + '-' + id + '"><label>Name:</label> <input type="text" name="menu[' + cat + '][]" value=""/> <label>Link:</label> <input type="text" name="menu_link[' + cat + '][]" value=""/><input type="hidden" name="menu_blank[' + cat + '][]" value="0" /> <label><input class="blank-checkbox" type="checkbox"/><span title="Open in New Window">New Window</span></label> <input class="color-picker" type="text" name="menu_color[' + cat + '][]" value="#' + color + '" /> <a class="remove-button" id="remove-button-' + cat + '-' + id + '"><i class="fas fa-trash"></i></a></li>'); //add input bo
$('#remove-button-' + cat + '-' + id).on('click', function () {
$('#list-' + $(this).attr("id").replace('remove-button-', '')).remove();
});
initialiceSpectrum();
initializeSpectrum();
});
$("#menus-form").submit(function (e) {
$("#menus-form").on('submit', function (e) {
$('.blank-checkbox:not(:checked)').each(function (i, obj) {
$(obj).parent().prev().val("off");
});
@@ -52,11 +64,11 @@
<script type="text/javascript" src="{{ constant('BASE_URL') }}tools/js/spectrum.js"></script>
<link type="text/css" rel="stylesheet" href="{{ constant('BASE_URL') }}tools/css/spectrum.css"/>
<script type="text/javascript">
$(document).ready(function () {
initialiceSpectrum();
$(function () {
initializeSpectrum();
});
function initialiceSpectrum() {
function initializeSpectrum() {
$(".color-picker").spectrum({
preferredFormat: "hex",
showInput: true,

View File

@@ -1,7 +1,9 @@
<div id="install_plugin">
<div class="card card-info card-outline">
<div class="card-header">
<h5 class="m-0">Install plugin</h5>
<h5 class="m-0">Install plugin
<a href="?p=plugins&check-updates" class="btn btn-primary float-right">Check for updates</a>
</h5>
</div>
<form enctype="multipart/form-data" method="post" action="{{ constant('ADMIN_URL') }}?p=plugins">
{{ csrf() }}
@@ -14,7 +16,7 @@
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-info">Upload</button>
<button type="submit" class="btn btn-info" {% if not pluginUploadEnabled %}disabled{% endif %}>Upload</button>
</div>
</form>
</div>

View File

@@ -0,0 +1,18 @@
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Plugin Name</th>
<th>Your Version</th>
<th>Latest Version</th>
<th>Download Link</th>
</tr>
</thead>
{% for plugin in plugins %}
<tr>
<td>{{ plugin.name }}</td>
<td>{{ plugin.yourVersion }}</td>
<td>{{ plugin.latestVersion }}</td>
<td><a href="{{ plugin.download_link }}" target="_blank">{{ plugin.download_link }}</a></td>
</tr>
{% endfor %}
</table>

View File

@@ -80,7 +80,26 @@
}
});
$('#settings').submit(function(e) {
const noChangesText = "No changes has been made";
$('form')
.each(function(){
$(this).data('serialized', $(this).serialize())
})
.on('change input', function(){
const disable = $(this).serialize() === $(this).data('serialized');
$(this)
.find('input:submit, button:submit')
.prop('disabled', disable)
.prop('title', disable ? noChangesText : '')
;
})
.find('input:submit, button:submit')
.prop('disabled', true)
.prop('title', noChangesText)
;
$('#settings').on('submit', function(e) {
e.preventDefault();
$.ajax({
@@ -94,6 +113,13 @@
duration: 3000,
escapeMarkup: false,
}).showToast();
let $settings = $('#settings');
$settings.data('serialized', $settings.serialize());
$settings
.find('input:submit, button:submit')
.prop('disabled', true)
.prop('title', noChangesText);
},
error : function(response) {
Toastify({
@@ -109,3 +135,27 @@
});
});
</script>
<script>
{% for key, value in settings %}
{% if value.type == 'password' %}
$(function () {
$('#show-hide-{{ key}} a').on('click', function(event) {
event.preventDefault();
const $showHideIcon = $('#show-hide-{{ key}} i');
const $showHideInput = $('#show-hide-{{ key }} input');
if($showHideInput.attr('type') === 'text'){
$showHideInput.attr('type', 'password');
$showHideIcon.addClass('fa-eye-slash');
$showHideIcon.removeClass('fa-eye');
}else if($showHideInput.attr("type") === 'password'){
$showHideInput.attr('type', 'text');
$showHideIcon.removeClass('fa-eye-slash');
$showHideIcon.addClass('fa-eye');
}
});
});
{% endif %}
{% endfor %}
</script>

View File

@@ -1 +1 @@
<input type="submit" name="{{ button_name }}" value="{{ button_name }}" />
<input {% if noSubmit is not defined %}type="submit"{% endif %} name="{{ button_name }}" value="{{ button_name }}" />

View File

@@ -1,17 +1,23 @@
<form action="{{ link }}" method="post">
<table width="100%" border="0" cellspacing="1" cellpadding="4">
<tr><td bgcolor="{{ config.vdarkborder }}" class="white"><B>Search Character</B></TD></TR>
<tr>
<td bgcolor="{{ config.darkborder }}">
<table border="0" cellpadding="1">
<tr>
<td>Name:</td><td><input name="name" value="" size="29" maxlength="29"{% if autofocus %} autofocus{% endif %}></TD>
<td>
{{ include('buttons.submit.html.twig') }}
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
<br/>
<form action="{{ getLink('characters') }}" method="post">
{% set title = 'Search Character' %}
{% set tableClass = 'Table1' %}
{% set background = config('darkborder') %}
{% set content %}
<table width="100%">
<tr>
<td style="vertical-align:middle" class="LabelV150">
Character Name:
</td>
<td style="width:170px">
<input style="width:165px" name="name" value="" size="29" maxlength="29"/>
</td>
<td>
{% set button_name = 'Submit' %}
{{ include('buttons.base.html.twig') }}
</td>
</tr>
</table>
{% endset %}
{{ include('tables.headline.html.twig') }}
</form>

View File

@@ -0,0 +1,43 @@
<table>
<tr>
<td>
<form action="{{ getLink('forum') }}" method="post" style="float: left">
{{ csrf() }}
<input type="hidden" name="action" value="edit_board" />
<input type="hidden" name="id" value="{{ id }}" />
<button type="submit" title="Edit"><img src="images/edit.png"/> Edit</button>
</form>
<form action="{{ getLink('forum') }}" method="post" style="float: left">
{{ csrf() }}
<input type="hidden" name="action" value="delete_board" />
<input type="hidden" name="id" value="{{ id }}" />
<button type="submit" onclick="return confirm('Are you sure?');" title="Delete"><img src="images/del.png"/>Delete</button>
</form>
<form action="{{ getLink('forum') }}" method="post" style="float: left">
{{ csrf() }}
<input type="hidden" name="action" value="hide_board" />
<input type="hidden" name="id" value="{{ id }}" />
<button type="submit" title="{% if hide != 1 %}Hide{% else %}Show{% endif %}"><img src="images/{{ hide != 1 ? 'success' : 'error' }}.png"/>{{ hide != 1 ? 'Hide' : 'Show' }}</button>
</form>
{% if i != 1 %}
<form action="{{ getLink('forum') }}" method="post" style="float: left">
{{ csrf() }}
<input type="hidden" name="action" value="moveup_board" />
<input type="hidden" name="id" value="{{ id }}" />
<button type="submit" title="Move up"><img src="images/icons/arrow_up.gif"/>Move up</button>
</form>
{% endif %}
{% if i != loop.last %}
<form action="{{ getLink('forum') }}" method="post" style="float: left">
{{ csrf() }}
<input type="hidden" name="action" value="movedown_board" />
<input type="hidden" name="id" value="{{ id }}" />
<button type="submit" title="Move down"><img src="images/icons/arrow_down.gif"/>Move down</button>
</form>
{% endif %}
</td>
</tr>
</table>

View File

@@ -39,25 +39,7 @@
</td>
{% if canEdit %}
<td>
<a href="{{ getLink('forum') }}?action=edit_board&id={{ board.id }}" title="Edit">
<img src="images/edit.png"/>Edit
</a>
<a id="delete" href="{{ getLink('forum') }}?action=delete_board&id={{ board.id }}" onclick="return confirm('Are you sure?');" title="Delete">
<img src="images/del.png"/>Delete
</a>
<a href="{{ getLink('forum') }}?action=hide_board&id={{ board.id }}" title="{% if board.hide != 1 %}Hide{% else %}Show{% endif %}">
<img src="images/{% if board.hide != 1 %}success{% else %}error{% endif %}.png"/>{% if board.hide != 1 %}Hide{% else %}Show{% endif %}
</a>
{% if i != 1 %}
<a href="{{ getLink('forum') }}?action=moveup_board&id={{ board.id }}" title="Move up">
<img src="images/icons/arrow_up.gif"/>Move up
</a>
{% endif %}
{% if i != last %}
<a href="{{ getLink('forum') }}?action=movedown_board&id={{ board.id }}" title="Move down">
<img src="images/icons/arrow_down.gif"/>Move down
</a>
{% endif %}
{{ include('forum.admin.links.html.twig', {id: board.id, hide: board.hide, i: i }) }}
</td>
{% endif %}
</tr>

View File

@@ -8,7 +8,8 @@
<table border="0" cellpadding="3" cellspacing="1" width="100%">
<tr bgcolor="{{ config.lightborder }}">
<td>
<form action="" method="get">
<form method="post">
{{ csrf() }}
<input type="hidden" name="subtopic" value="forum" />
<input type="hidden" name="action" value="move_thread" />
<input type="hidden" name="save" value="1" />
@@ -25,7 +26,6 @@
<input type="submit" value="Move Thread">
</form>
<form action="{{ section_link }}">
{{ csrf() }}
<input type="submit" value="Cancel">
</form>
</td>

View File

@@ -50,7 +50,7 @@
<table width="100%">
<tr bgcolor="{{ config.vdarkborder }}">
<td colspan="2">
<span style="color: white"><b>Last 5 posts from thread: {{ topic|raw }}</b></span>
<span style="color: white"><b>Last 5 posts from thread: {{ topic }}</b></span>
</td>
</tr>
{% set i = 0 %}

View File

@@ -1,4 +1,4 @@
<form action="?" method="post">
<form method="post">
{{ csrf() }}
<input type="hidden" name="action" value="new_thread" />
<input type="hidden" name="section_id" value="{{ section_id }}" />

View File

@@ -0,0 +1,12 @@
<form action="{{ getLink('forum') }}" method="post" style="display: inline"
{% if post.first_post != post.id %}
onclick="return confirm('Are you sure you want remove post of {{ post.player.getName() }}?')"
{% else %}
onclick="return confirm('Are you sure you want remove thread > {{ post.post_topic}} <?')"
{% endif %}
>
{{ csrf() }}
<input type="hidden" name="action" value="remove_post" />
<input type="hidden" name="id" value="{{ post.id }}" />
<input type="image" src="/images/del.png" border="0" alt="Delete" title="{% if post.first_post != post.id %}Remove Post{% else %}Remove Thread{% endif %}" />
</form>

View File

@@ -53,15 +53,16 @@ Page: {{ links_to_pages|raw }}<br/>
<td>
{% if is_moderator %}
{% if post.first_post != post.id %}
<a href="{{ getLink('forum') }}?action=remove_post&id={{ post.id }}" title="Remove Post" onclick="return confirm('Are you sure you want remove post of {{ post.player.getName() }}?')"><img src="images/del.png"/></a>
{{ include('forum.remove_post.html.twig') }}
{% else %}
<a href="{{ getLink('forum') }}?action=move_thread&id={{ post.id }}" title="Move Thread"><img src="images/icons/arrow_right.gif"/></a>
<a href="{{ getLink('forum') }}?action=remove_post&id={{ post.id }}" title="Remove Thread" target="_blank" onclick="return confirm('Are you sure you want remove thread > {{ post.post_topic}} <?')"><img src="images/del.png"/></a>
{{ include('forum.remove_post.html.twig') }}
{% endif %}
{% endif %}
{% if logged and (post.player.getAccount().getId() == account_logged.getId() or is_moderator) %}
<a href="{{ getLink('forum') }}?action=edit_post&id={{ post.id }}" title="Edit Post" target="_blank">
<img src="images/edit.png"/></a>
<img src="images/edit.png"/>
</a>
{% endif %}
{% if logged %}
<a href="{{ getLink('forum') }}?action=new_post&thread_id={{ thread_id }}&quote={{ post.id }}" title="Quote Post"><img src="images/icons/comment_add.png"/></a>

View File

@@ -7,12 +7,15 @@
</tr>
<tr bgcolor="{{ config.darkborder }}">
<td>
<form action="{{ getLink('guilds') }}?action=accept_invite&guild={{ guild_name }}&todo=save" method="post">
<form action="{{ getLink('guilds') }}?action=accept_invite&guild={{ guild_name }}" method="post">
{{ csrf() }}
<input type="hidden" name="todo" value="save" />
{% set i = 0 %}
{% for player in invited_players %}
<input type="radio" name="name" id="name_{{ i }}" value="{{ player }}" /><label for="name_{{ i }}">{{ player }}</label>
{% set i = i + 1 %}
<input type="radio" name="name" id="name_{{ i }}" value="{{ player }}" /><label for="name_{{ i }}">{{ player }}</label>
{% set i = i + 1 %}
{% endfor %}
{{ include('buttons.submit.html.twig') }}
</form>

View File

@@ -5,7 +5,7 @@
<tr>
<td>
Here you can change description of your guild.<br/>
<form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_description" method="post">
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_description" method="post">
{{ csrf() }}
<input type="hidden" name="todo" value="save"/>
<textarea name="description" cols="60" rows="{{ setting('core.guild_description_lines_limit') - 1 }}">{{ guild.getCustomField('description')|raw }}</textarea><br>

View File

@@ -8,7 +8,7 @@
<form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_logo" method="post" id="upload_form">
{{ csrf() }}
<input type="hidden" name="todo" value="save" />
<input type="hidden" name="MAX_FILE_SIZE" value="{{ max_image_size_b }}" />
<!--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>

View File

@@ -5,7 +5,7 @@
<tr>
<td>
Here you can change MOTD (Message of the Day, showed in game!) of your guild.<br/>
<form enctype="multipart/form-data" action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=change_motd" method="post">
<form 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/>

View File

@@ -1,5 +1,6 @@
<form action="{{ getLink('guilds') }}?action=change_rank&guild={{ guild_name }}&todo=save" method="post">
<form action="{{ getLink('guilds') }}?action=change_rank&guild={{ guild_name }}" method="post">
{{ csrf() }}
<input type="hidden" name="todo" value="save" />
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor="{{ config.vdarkborder }}"><td class="white"><b>Change Rank</b></td></tr>
<tr bgcolor="{{ config.darkborder }}">

View File

@@ -1,5 +1,6 @@
<form action="{{ getLink('guilds') }}?action=create&todo=save" method="post">
<form action="{{ getLink('guilds') }}?action=create" method="post">
{{ csrf() }}
<input type="hidden" name="todo" value="save" />
<table width="100%" border="0" cellspacing="1" cellpadding="4">
<tr>
<td bgcolor="{{ config.vdarkborder }}" class="white"><B>Create a {{ config.lua.serverName }} Guild</b></td>

View File

@@ -7,9 +7,10 @@
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td align="right" width="50%">
<form action="{{ getLink('guilds') }}?action=delete_invite&guild={{ guild_name }}&name={{ player_name }}&todo=save" method="post">
{{ csrf() }}
{{ include('buttons.submit.html.twig') }}
<form action="{{ getLink('guilds') }}?action=delete_invite&guild={{ guild_name }}&name={{ player_name }}" method="post">
{{ csrf() }}
<input type="hidden" name="todo" value="save" />
{{ include('buttons.submit.html.twig') }}
</form>
</td>
<td style="width: 10px; "></td>

View File

@@ -1,5 +1,6 @@
<form action="{{ getLink('guilds') }}?action=invite&guild={{ guild_name }}&todo=save" method="post">
<form action="{{ getLink('guilds') }}?action=invite&guild={{ guild_name }}" method="post">
{{ csrf() }}
<input type="hidden" name="todo" value="save" />
Invite player with name:&nbsp;&nbsp;<input type="text" name="name">&nbsp;&nbsp;&nbsp;&nbsp;
{{ include('buttons.submit.html.twig') }}
</form>

View File

@@ -7,8 +7,9 @@
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td align="right" width="50%">
<form action="{{ getLink('guilds') }}?action=kick_player&guild={{ guild_name }}&name={{ player_name }}&todo=save" method="post">
<form action="{{ getLink('guilds') }}?action=kick_player&guild={{ guild_name }}&name={{ player_name }}" method="post">
{{ csrf() }}
<input type="hidden" name="todo" value="save" />
{{ include('buttons.submit.html.twig') }}
</form>
</td>

View File

@@ -1,5 +1,6 @@
<form action="{{ getLink('guilds') }}?action=leave&guild={{ guild_name }}&todo=save" METHOD="post">
<form action="{{ getLink('guilds') }}?action=leave&guild={{ guild_name }}" METHOD="post">
{{ csrf() }}
<input type="hidden" name="todo" value="save" />
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor="{{ config.vdarkborder }}">
<td class="white"><b>Leave guild</b></td></tr>

View File

@@ -114,7 +114,7 @@
{% else %}
<b>Before you can create a guild you must login.</b>
<br/>
<form action="?subtopic=accountmanagement&redirect={{ getLink('guilds') }}" method="post">
<form action="{{ getLink('account/manage') }}?redirect={{ getLink('guilds') }}" method="post">
{{ csrf() }}
{% include('buttons.login.html.twig') %}
</form>

View File

@@ -101,7 +101,12 @@ Here you can change names of ranks, delete and add ranks, pass leadership to oth
{% set i = 0 %}
{% for rank in rank_list %}
<tr bgcolor="{{ getStyle(i) }}">
<td align="center">{{ rank.getId() }} // <a href="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=delete_rank&rankid={{ rank.getId() }}" border="0"><img src="/images/news/delete.png" border="0" alt="Delete Rank"></a>
<td align="center">{{ rank.getId() }} //
<form action="{{ getLink('guilds') }}?guild={{ guild.getName() }}&action=delete_rank" method="post" style="display: inline;">
{{ csrf() }}
<input type="hidden" name="rankid" value="{{ rank.getId() }}" />
<input type="image" src="/images/news/delete.png" border="0" alt="Delete" />
</form>
</td>
<td>
<input type="text" name="{{ rank.getId() }}_name" value="{{ rank.getName() }}" size="35"/>

View File

@@ -49,6 +49,7 @@
{% include('buttons.base.html.twig') %}
</a>
{% endif %}
{{ hook('HOOK_GUILDS_AFTER_MANAGE_BUTTON') }}
</div>
</td>
</tr>
@@ -61,6 +62,7 @@
{{ hook('HOOK_GUILDS_AFTER_GUILD_INFORMATION') }}
{% set title = 'Guild Members' %}
{% set background = config('lightborder') %}
{% set content %}
<table style="width:100%;">
<tbody>
@@ -79,57 +81,59 @@
</tr>
{% set showedRank, i = false, 0 %}
{% for rank in guild_members if rank.members|length > 0 %}
{% set rankStyle, i = getStyle(i), i + 1 %}
{% 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>
{% 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 }}
<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 %}
{% 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">)
{% 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>
{% 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 %}
<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 %}
{% set showedRank = false %}
{% endif %}
{% else %}
<tr bgcolor="{{ getStyle(i) }}">
<td colspan="5">No guild members found.</td>
@@ -149,6 +153,7 @@
{{ hook('HOOK_GUILDS_AFTER_GUILD_MEMBERS') }}
{% set title = 'Invited Characters' %}
{% set background = config('lightborder') %}
{% set content %}
<table style="width:100%;">
<tbody>
@@ -162,7 +167,7 @@
</tr>
{% set i = 0 %}
{% for invited_player in invited_list if invited_list|length > 0 %}
{% for invited_player in invited_list %}
{% if invited_player.isLoaded() %}
<tr bgcolor="{{ getStyle(i) }}">
{% set i = i + 1 %}
@@ -213,7 +218,7 @@
<tbody>
<tr>
{% if not logged %}
<form action="?subtopic=accountmanagement&redirect={{ getGuildLink(guild_name|url_encode, false) }}" method="post">
<form action="{{ getLink('account/manage') }}?redirect={{ getGuildLink(guild_name|url_encode, false) }}" method="post">
{{ csrf() }}
<td>
{{ include('buttons.login.html.twig') }}
@@ -230,14 +235,16 @@
{% endif %}
{% if isVice %}
<form action="{{ getLink('guilds') }}?action=invite&guild={{ guild_name|url_encode }}" method="post">
{{ csrf() }}
<td>
{% set button_name = 'Invite Character' %}
{% set button_image = '_sbutton_invitecharacter' %}
{% include('buttons.base.html.twig') %}
</td>
</form>
{% if db.hasTableAndColumns('guild_invites', ['player_id']) %}
<form action="{{ getLink('guilds') }}?action=invite&guild={{ guild_name|url_encode }}" method="post">
{{ csrf() }}
<td>
{% set button_name = 'Invite Character' %}
{% set button_image = '_sbutton_invitecharacter' %}
{% include('buttons.base.html.twig') %}
</td>
</form>
{% endif %}
<form action="{{ getLink('guilds') }}?action=change_rank&guild={{ guild_name|url_encode }}" method="post">
{{ csrf() }}

View File

@@ -7,21 +7,19 @@
<tr>
<td>Filters</td>
<td>
<label for="vocationFilter">Choose a Skill</label>
<select onchange="location = this.value;" aria-label="skillFilter" id="skillFilter">
{% set i = 0 %}
<label for="skillFilter">Choose a Skill</label>
<select onchange="location = this.value;" id="skillFilter">
{% for link, name in types %}
<option value="{{ getLink('highscores') }}/{{ link }}{% if vocation is not null %}{{ vocation }}{% endif %}" class="size_xs">{{ name }}</option>
<option value="{{ getLink('highscores') }}/{{ link|urlencode }}{% if vocation is not null %}/{{ vocation|lower|urlencode }}{% endif %}" class="size_xs" {% if list is not null and list == link %}selected{% endif %}>{{ name }}</option>
{% endfor %}
</select>
</td>
<td>
<label for="vocationFilter">Choose a vocation</label>
<select onchange="location = this.value;" aria-label="vocationFilter" id="vocationFilter">
<option value="{{ getLink('highscores') }}/{{ list }}" class="size_xs">[ALL]</option>
{% set i = 0 %}
{% for i in 1..config.vocations_amount %}
<option value="{{ getLink('highscores') }}/{{ list }}/{{ config.vocations[i]|lower }}" class="size_xs">{{ config.vocations[i]}}</option>
<select onchange="location = this.value;" id="vocationFilter">
<option value="{{ getLink('highscores') }}/{{ list|urlencode }}" class="size_xs">[ALL]</option>
{% for i in 0..config.vocations_amount %}
<option value="{{ getLink('highscores') }}/{{ list|urlencode }}/{{ config.vocations[i]|lower|urlencode }}" class="size_xs" {% if vocationId is not null and vocationId == i %}selected{% endif %}>{{ config.vocations[i]}}</option>
{% endfor %}
</select>
</td>
@@ -68,7 +66,7 @@
<td>
<a href="{{ player.link }}">
<span style="color: {% if player.online > 0 %}green{% else %}red{% endif %}">{{ player.name }}</span>
<span {% if setting('core.highscores_online_status') %}style="color: {% if player.online > 0 %}green{% else %}red{% endif %}"{% endif %}>{{ player.name }}</span>
</a>
{% if setting('core.highscores_vocation') %}
<br/><small>{{ player.vocation }}</small>
@@ -96,8 +94,10 @@
{% endif %}
</table>
</td>
{% if setting('core.highscores_skills_box') or setting('core.highscores_vocation_box') %}
<td width="5%"></td>
<td width="15%" valign="top" align="right">
{% if setting('core.highscores_skills_box') %}
<table style="border: 0; width: 100%" cellpadding="4" cellspacing="1">
<tr bgcolor="{{ config.vdarkborder }}">
<td class="white"><B>Choose a skill</B></TD>
@@ -105,22 +105,23 @@
<tr bgcolor="{{ config.lightborder }}">
<td>
{% for link, name in types %}
<a href="{{ getLink('highscores') }}/{{ link }}{% if vocation is not null %}/{{ vocation }}{% endif %}" class="size_xs">{{ name }}</a><br/>
<a href="{{ getLink('highscores') }}/{{ link|urlencode }}{% if vocation is not null %}/{{ vocation|urlencode }}{% endif %}" class="size_xs">{{ name }}</a><br/>
{% endfor %}
</td>
</tr>
</table>
<br/>
{% if config.highscores_vocation_box %}
{% endif %}
{% if setting('core.highscores_vocation_box') %}
<table border="0" width="100%" cellpadding="4" cellspacing="1">
<tr bgcolor="{{ config.vdarkborder }}">
<td class="white"><b>Choose a vocation</b></td>
</tr>
<tr bgcolor="{{ config.lightborder }}">
<td>
<a href="{{ getLink('highscores') }}/{{ list }}" class="size_xs">[ALL]</a><br/>
{% for i in 1..config.vocations_amount %}
<a href="{{ getLink('highscores') }}/{{ list }}/{{ config.vocations[i]|lower }}" class="size_xs">{{ config.vocations[i]}}</a><br/>
<a href="{{ getLink('highscores') }}/{{ list|urlencode }}" class="size_xs">[ALL]</a><br/>
{% for i in 0..config.vocations_amount %}
<a href="{{ getLink('highscores') }}/{{ list|urlencode }}/{{ config.vocations[i]|lower|urlencode }}" class="size_xs">{{ config.vocations[i]}}</a><br/>
{% endfor %}
</td>
</tr>
@@ -128,5 +129,6 @@
{% endif %}
</td>
<td style="width: 18px"></td>
{% endif %}
</tr>
</table>

View File

@@ -56,10 +56,9 @@ the search criteria and start a new search.
</td>
<td>
<form action="{{ getLink('houses/view') }}" method="post">
<input type="hidden" name="house" value="{{ house.name }}">
<a href="{{ house.link }}">
{{ include('buttons.view.html.twig') }}
</form>
</a>
</td>
</tr>
{% endfor %}
@@ -85,17 +84,19 @@ the search criteria and start a new search.
<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 %}
{% 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>
<input type="radio" name="town" id="town_{{ id }}" value="{{ id }}"{% if variable is defined %} {{ variable }}{% endif %}>
<label for="town_{{ id }}"> {{ name }}</label>
<br>
{% endif %}
{% endfor %}
</td>

View File

@@ -9,7 +9,7 @@
<form action="{{ constant('BASE_URL') }}install/" method="post" autocomplete="off">
<input type="hidden" name="step" id="step" value="finish" />
{% set values = ['email', 'account', 'password', 'password_confirm'] %}
{% set values = ['email', account, 'password', 'password_confirm'] %}
{% if hasTablePlayers %}
{% set values = values|merge(['player_name']) %}

View File

@@ -9,7 +9,7 @@
<form action="{{ constant('BASE_URL') }}install/" method="post" autocomplete="off">
<input type="hidden" name="step" id="step" value="database" />
{% for value in ['server_path'] %}
{% for value in ['site_url', 'server_path'] %}
<div class="form-group mb-2">
<label for="vars_{{ value }}">{{ locale['step_config_' ~ value] }}</label>
<input class="form-control" type="{% if value == 'mail_admin' %}email{% else %}text{% endif %}" name="vars[{{ value }}]" id="vars_{{ value }}"{% if session['var_' ~ value] is not null %} value="{{ session['var_' ~ value] }}"{% endif %}/>

View File

@@ -1,25 +0,0 @@
<br/>
<form action="{{ getLink('characters') }}" method=post>
<table width="100%" border="0" cellspacing="1" cellpadding="4">
<tr>
<td bgcolor="{{ config.vdarkborder }}" class="white">
<b>Search Character</b>
</td>
</tr>
<tr>
<td bgcolor="{{ config.darkborder }}">
<table border="0" cellpadding="1">
<tr>
<td>Name:</td>
<td>
<input name="name" value=""size=29 maxlength=29>
</td>
<td>
{{ include('buttons.submit.html.twig') }}
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>

View File

@@ -1,36 +1,13 @@
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor="{{ config.vdarkborder }}">
<td class="white"><b>Server Status</b></td>
</tr>
{% if players|length == 0 %}
<tr bgcolor="{{ config.darkborder }}"><td>Currently no one is playing on {{ config.lua.serverName }}.</td></tr></table>
{% else %}
<tr bgcolor="{{ config.darkborder }}">
<td>
{% if not status.online %}
Server is offline.<br/>
{% else %}
{% if setting('core.online_afk') %}
{% set players_count = players|length %}
{% set afk = players_count - status.players %}
{% if afk < 0 %}
{% set players_count = players_count + afk|abs %}
{% set afk = 0 %}
{% endif %}
Currently there are <b>{{ status.players }}</b> active and <b>{{ afk }}</b> AFK players.<br/>
Total number of players: <b>{{ players_count }}</b>.<br/>
{% else %}
Currently {{ players|length }} players are online.<br/>
{% endif %}
{% endif %}
</td>
</tr>
</table>
{% set onlineTTL = setting('core.online_cache_ttl') %}
{% if onlineTTL > 0 and cache.enabled() %}
<small>*Note: Online List is updated every {{ onlineTTL > 1 ? ' ' ~ onlineTTL : '' }} minute{{ onlineTTL > 1 ? 's' : '' }}.</small>
<br/>
{# vocation statistics #}
{% if setting('core.online_vocations') %}
{% endif %}
{# vocation statistics #}
{% if setting('core.online_vocations') %}
<br/>
{% if setting('core.online_vocations_images') %}
{% if setting('core.online_vocations_images') %}
<table width="200" cellspacing="1" cellpadding="0" border="0" align="center">
<tr bgcolor="{{ config.darkborder }}">
<td><img src="images/sorcerer.png" /></td>
@@ -66,11 +43,13 @@
{% endfor %}
</table>
<br/>
{% endif %}
{% endif %}
{% endif %}
{# show skulls #}
{% if setting('core.online_skulls') %}
<br/>
{# show skulls #}
{% if setting('core.online_skulls') %}
<table width="100%" cellspacing="1">
<tr>
<td style="background: {{ config.darkborder }};" align="center">
@@ -80,34 +59,114 @@
</td>
</tr>
</table>
{% endif %}
<br/>
{% set title = 'World Information' %}
{% set tableClass = 'Table3' %}
{% set background = config('darkborder') %}
{% set content %}
<table width="100%">
<tr>
<td class="LabelV150"><b>Status:</b></td>
<td>{% if not status.online %}Offline{% else %}Online{% endif %}</td>
</tr>
<tr>
<td class="LabelV150"><b>Players Online:</b></td>
<td>
{% if setting('core.online_afk') %}
{% set players_count = players|length %}
{% set afk = players_count - status.players %}
{% if afk < 0 %}
{% set players_count = players_count + afk|abs %}
{% set afk = 0 %}
{% endif %}
Currently there are <b>{{ status.players }}</b> active and <b>{{ afk }}</b> AFK players.<br/>
Total number of players: <b>{{ players_count }}</b>.<br/>
{% else %}
{{ players|length }}
{% endif %}
</td>
</tr>
{% if setting('core.online_record') and record|length > 0 %}
<tr>
<td class="LabelV150"><b>Online Record:</b></td>
<td>
{{ record }}
</td>
</tr>
{% endif %}
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor="{{ config.vdarkborder }}">
<tr>
<td class="LabelV150"><b>Location Datacenter:</b></td>
<td>{{ setting('core.online_datacenter') }} <small>(Server date & time: - {{ "now"|date("d/m/Y H:i:s") }})</small></td>
</tr>
<tr>
<td class="LabelV150"><b>PvP Type:</b></td>
<td>
{% set worldType = config('lua')['worldType']|lower %}
{% if worldType in ['pvp','2','normal','open','openpvp'] %}
Open PvP
{% elseif worldType in ['no-pvp','nopvp','non-pvp','nonpvp','1','safe','optional','optionalpvp'] %}
Optional PvP
{% elseif worldType in ['pvp-enforced','pvpenforced','pvp-enfo','pvpenfo','pvpe','enforced','enfo','3','war','hardcore','hardcorepvp'] %}
Hardcore PvP
{% endif %}
</td>
</tr>
</table>
{% endset %}
{% include 'tables.headline.html.twig' %}
<br/>
<br/>
{% set title = 'Players Online' %}
{% set tableClass = 'Table2' %}
{% set content %}
<table width="100%">
<tr class="LabelH" style="position: relative; z-index: 20;">
{% if setting('core.account_country') %}
<td width="11px"><a href="{{ getLink('online?order=country') }}" class="white">#</A></td>
<td width="11px"><a href="{{ getLink('online')}}?order=country_{{ order == 'country_asc' ? 'desc' : 'asc' }}">#&#160;&#160;</a>
</td>
{% endif %}
{% if setting('core.online_outfit') %}
<td class="white"><b>Outfit</b></td>
<td><b>Outfit</b></td>
{% endif %}
<td width="60%"><a href="{{ getLink('online?order=name') }}" class="white">Name</A></td>
<td width="20%"><a href="{{ getLink('online?order=level') }}" class="white">Level</A></td>
<td width="20%"><a href="{{ getLink('online?order=vocation') }}" class="white">Vocation</td>
<td style="text-align:left; width:50%">Name&#160;&#160;
<small style="font-weight:normal">[<a href="{{ getLink('online')}}?order=name_{{ order == 'name_asc' ? 'desc' : 'asc' }}">sort</a>]</small>
<img class="sortarrow" src="images/{{ order == 'name_asc' ? 'order_desc' : (order == 'name_desc' ? 'order_asc' : 'news/blank') }}.gif"/></td>
<td style="text-align:left;width:30%">Level&#160;&#160;
<small style="font-weight:normal">[<a href="{{ getLink('online')}}?order=level_{{ order == 'level_asc' ? 'desc' : 'asc' }}">sort</a>]</small>
<img class="sortarrow" src="images/{{ order == 'level_asc' ? 'order_desc' : (order == 'level_desc' ? 'order_asc' : 'news/blank') }}.gif"/>
</td>
<td style="text-align:left;width:50%">Vocation&#160;&#160;
<small style="font-weight:normal">[<a href="{{ getLink('online')}}?order=vocation_{{ order == 'vocation_asc' ? 'desc' : 'asc' }}">sort</a>]</small>
<img class="sortarrow" src="images/{{ order == 'vocation_asc' ? 'order_desc' : (order == 'vocation_desc' ? 'order_asc' : 'news/blank') }}.gif"/>
</td>
</tr>
{% set i = 0 %}
{% for player in players %}
{% set i = i + 1 %}
<tr bgcolor="{{ getStyle(i) }}">
{% if setting('core.account_country') %}
<td>{{ player.country_image|raw }}</td>
{% endif %}
{% if setting('core.online_outfit') %}
<td width="5%"><img style="position:absolute;margin-top:{% if player.player.looktype in setting('core.outfit_images_wrong_looktypes') %}-20px;margin-left:-0px;{% else %}-45px;margin-left:-25px;{% endif %}" src="{{ player.outfit }}" alt="player outfit"/></td>
{% endif %}
<td>{{ player.name|raw }}{{ player.skull }}</td>
<td>{{ player.level }}</td>
<td>{{ player.vocation }}</td>
<tr style="background: {{ getStyle(i) }}; text-align: right; height: 40px;">
{% if setting('core.account_country') %}
<td>{{ player.country_image|raw }}</td>
{% endif %}
{% if setting('core.online_outfit') %}
<td width="5%"><img style="position:absolute;margin-top:-48px;margin-left:-70px;" src="{{ player.outfit }}" alt="player outfit"/></td>
{% endif %}
<td style="width:70%; text-align:left">
{{ player.name|raw }}{{ player.skull|raw }}
</td>
<td style="width:10%">{{ player.level }}</td>
<td style="width:20%">{{ player.vocation }}</td>
</tr>
{% endfor %}
</table>
{% endif %}
{% endset %}
{{ include('tables.headline.html.twig') }}

View File

@@ -1,2 +0,0 @@
<b>{{ config.lua.serverName }} Rules</b><br/>
{{ getCustomPage('rules_on_the_page') | nl2br }}

View File

@@ -18,13 +18,14 @@
{% 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;">
<tr>
<td style="border:0;">
<form action="{{ getLink('account/manage') }}" method="post">
{{ csrf() }}
{{ include('buttons.back.html.twig') }}
</td>
</tr>
</form>
</form>
</td>
</tr>
</table>
</div>
{% endif %}

View File

@@ -8,7 +8,7 @@
selector: "#editor",
content_css: '{{ constant('ADMIN_URL') }}template/style.css',
theme: "silver",
plugins: 'preview searchreplace autolink directionality visualblocks visualchars fullscreen image link media template codesample table charmap pagebreak nonbreaking anchor insertdatetime advlist lists wordcount help code emoticons',
plugins: 'preview searchreplace autolink directionality visualblocks visualchars fullscreen image link media codesample table charmap pagebreak nonbreaking anchor insertdatetime advlist lists wordcount help code emoticons',
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor | emoticons link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat code',
resize: 'both',
image_advtab: true,
@@ -23,6 +23,8 @@
{title: 'Colored Table', value: 'myaac-table'},
],
license_key: 'gpl',
setup: function (ed) {
ed.on('NodeChange', function (e) {
if (ed.getContent() !== lastContent) {