ridding more prefetched variables
This commit is contained in:
parent
e242567a3c
commit
6d1a06039f
12 changed files with 41 additions and 37 deletions
|
@ -99,7 +99,11 @@ class Template
|
|||
}));
|
||||
|
||||
// Add config function
|
||||
self::$engine->addFunction(new Twig_SimpleFunction('config', function ($name) {
|
||||
self::$engine->addFunction(new Twig_SimpleFunction('config', function ($name, $local = false) {
|
||||
if ($local) {
|
||||
$name = explode('.', $name);
|
||||
return Config::local($name[0], $name[1]);
|
||||
}
|
||||
return Config::get($name);
|
||||
}));
|
||||
|
||||
|
|
|
@ -425,6 +425,16 @@ class User
|
|||
return $this->lastOnline > (time() - Config::get('max_online_time'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs some checks to see if this user is activated.
|
||||
*
|
||||
* @return bool Are they activated?
|
||||
*/
|
||||
public function isActive()
|
||||
{
|
||||
return $this->id !== 0 && !$this->permission(Site::DEACTIVATED);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a few forum statistics.
|
||||
*
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace Sakura;
|
|||
|
||||
// Check if logged out
|
||||
Router::filter('logoutCheck', function () {
|
||||
if (ActiveUser::$user->id !== 0) {
|
||||
if (ActiveUser::$user->isActive()) {
|
||||
$message = "You must be logged out to do that!";
|
||||
|
||||
Template::vars(['page' => compact('message')]);
|
||||
|
@ -19,8 +19,7 @@ Router::filter('logoutCheck', function () {
|
|||
|
||||
// Check if logged in
|
||||
Router::filter('loginCheck', function () {
|
||||
if (ActiveUser::$user->id === 0
|
||||
|| ActiveUser::$user->permission(Perms\Site::DEACTIVATED)) {
|
||||
if (!ActiveUser::$user->isActive()) {
|
||||
$message = "You must be logged in to do that!";
|
||||
|
||||
Template::vars(['page' => compact('message')]);
|
||||
|
|
|
@ -102,20 +102,11 @@ if (!defined('SAKURA_NO_TPL')) {
|
|||
// Set base page rendering data
|
||||
Template::vars([
|
||||
'sakura' => [
|
||||
'versionInfo' => [
|
||||
'version' => SAKURA_VERSION,
|
||||
],
|
||||
|
||||
'dev' => [
|
||||
'showChangelog' => Config::local('dev', 'show_changelog'),
|
||||
],
|
||||
|
||||
'currentPage' => $_SERVER['REQUEST_URI'] ?? null,
|
||||
'referrer' => $_SERVER['HTTP_REFERER'] ?? null,
|
||||
],
|
||||
|
||||
'session' => array_merge([
|
||||
'checkLogin' => ActiveUser::$user->id && !ActiveUser::$user->permission(Perms\Site::DEACTIVATED),
|
||||
'sessionId' => ActiveUser::$session->sessionId,
|
||||
], $_SESSION),
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
"minUserLen": {{ config('username_min_length') }},
|
||||
"maxUserLen": {{ config('username_max_length') }},
|
||||
"minPwdEntropy": {{ config('min_entropy') }},
|
||||
"checkLogin": {% if session.checkLogin %}true{% else %}false{% endif %}
|
||||
"checkLogin": {% if user.isActive %}true{% else %}false{% endif %}
|
||||
|
||||
};
|
||||
|
||||
|
@ -92,17 +92,17 @@
|
|||
</ul>
|
||||
<ul class="user-menu">
|
||||
<li class="nav-usermenu">
|
||||
<a href="{% if session.checkLogin %}javascript:void(0);{% else %}{{ urls.format('SITE_LOGIN') }}{% endif %}">
|
||||
<a href="{% if user.isActive %}javascript:void(0);{% else %}{{ urls.format('SITE_LOGIN') }}{% endif %}">
|
||||
<div>
|
||||
<div class="nav-username"{% if session.checkLogin %} style="color: {{ user.colour }};"{% endif %}>
|
||||
{% if session.checkLogin %}{{ user.username }} <span class="nav-user-dropdown"></span>{% else %}Guest{% endif %}
|
||||
<div class="nav-username"{% if user.isActive %} style="color: {{ user.colour }};"{% endif %}>
|
||||
{% if user.isActive %}{{ user.username }} <span class="nav-user-dropdown"></span>{% else %}Guest{% endif %}
|
||||
</div>
|
||||
<div class="nav-userstats">
|
||||
{% if session.checkLogin %}<span class="fa fa-envelope"></span> 0 / <span class="fa fa-user-plus"></span> 0 / <span class="fa fa-warning"></span> 0 / <span class="fa fa-reply"></span> 0{% else %}Please log in to proceed!{% endif %}
|
||||
{% if user.isActive %}<span class="fa fa-envelope"></span> 0 / <span class="fa fa-user-plus"></span> 0 / <span class="fa fa-warning"></span> 0 / <span class="fa fa-reply"></span> 0{% else %}Please log in to proceed!{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
{% if session.checkLogin %}
|
||||
{% if user.isActive %}
|
||||
<ul>
|
||||
<li><a href="{{ urls.format('USER_PROFILE', [user.id]) }}">My Profile</a></li>
|
||||
<li><a href="{{ urls.format('SETTING_CAT', ['messages']) }}">Private Messages</a></li>
|
||||
|
@ -112,7 +112,7 @@
|
|||
</ul>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li><a href="{% if session.checkLogin %}{{ urls.format('USER_PROFILE', [user.id]) }}{% else %}{{ urls.format('SITE_LOGIN') }}{% endif %}"><img src="{{ config('content_path') }}/pixel.png" alt="{{ user.username }}" style="background-image: url('{{ urls.format('IMAGE_AVATAR', [user.id]) }}');" class="nav-avatar" /></a></li>
|
||||
<li><a href="{% if user.isActive %}{{ urls.format('USER_PROFILE', [user.id]) }}{% else %}{{ urls.format('SITE_LOGIN') }}{% endif %}"><img src="{{ config('content_path') }}/pixel.png" alt="{{ user.username }}" style="background-image: url('{{ urls.format('IMAGE_AVATAR', [user.id]) }}');" class="nav-avatar" /></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if session.checkLogin %}
|
||||
{% if user.isActive %}
|
||||
<div class="profilePlatform userActions">
|
||||
<div class="inner">
|
||||
<ul class="actions">
|
||||
|
@ -104,7 +104,7 @@
|
|||
{% endif %}
|
||||
<div class="profilePlatform userAccounts">
|
||||
<div class="inner">
|
||||
{% if session.checkLogin %}
|
||||
{% if user.isActive %}
|
||||
{% if profile.profileFields %}
|
||||
{% for name,field in profile.profileFields %}
|
||||
<div class="field">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<div id="comments">
|
||||
<div class="comment-input-section">
|
||||
{% if session.checkLogin %}
|
||||
{% if user.isActive %}
|
||||
<div class="comment">
|
||||
<div class="comment-avatar" style="background-image: url('{{ route('file.avatar', user.id) }}');"></div>
|
||||
<div class="comment-pointer"></div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div id="indexPanel">
|
||||
{% if session.checkLogin %}
|
||||
{% if user.isActive %}
|
||||
<div class="user-container" style="background-image: url({{ route('user.header', user.id) }});">
|
||||
<div class="default-avatar-setting user-container-avatar" style="background-image: url({{ route('file.avatar', user.id) }}); box-shadow: 0 0 5px {{ user.colour }};"><a href="{{ route('settings.appearance.avatar') }}" class="clean" style="display: block; height: 100%; width: 100%;"></a></div>
|
||||
<div class="user-container-info">
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
<div class="userdata">
|
||||
<div class="usertitle">{{ post.poster.title }}</div>
|
||||
<img src="{{ config('content_path') }}/images/tenshi.png" alt="Tenshi"{% if not post.poster.isPremium %} style="opacity: 0;"{% endif %} /> <img src="{{ config('content_path') }}/images/flags/{{ post.poster.country|lower }}.png" alt="{{ post.poster.country(true) }}" />{% if post.poster.id == (thread.posts|first).poster.id %} <img src="{{ config('content_path') }}/images/op.png" alt="OP" title="Original Poster" />{% endif %}
|
||||
{% if session.checkLogin %}
|
||||
{% if user.isActive %}
|
||||
<div class="actions">
|
||||
{% if (user.id == post.poster.id and forum.permission(constant('Sakura\\Perms\\Forum::EDIT_OWN'), user.id)) or forum.permission(constant('Sakura\\Perms\\Forum::EDIT_ANY'), user.id) %}
|
||||
<a class="fa fa-pencil-square-o" title="Edit this post" href="javascript:void(0);" onclick="editPost({{ post.id }});"></a>
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
"minUserLen": {{ config('username_min_length') }},
|
||||
"maxUserLen": {{ config('username_max_length') }},
|
||||
"minPwdEntropy": {{ config('min_entropy') }},
|
||||
"checkLogin": {{ session.checkLogin ? 'true' : 'false' }}
|
||||
"checkLogin": {{ user.isActive ? 'true' : 'false' }}
|
||||
};
|
||||
|
||||
// Set cookie prefix and path
|
||||
|
@ -86,14 +86,14 @@
|
|||
<a class="menu-item fa-commenting" href="{{ route('main.infopage', 'chat') }}" title="Chat"></a>
|
||||
<a class="menu-item fa-list" href="{{ route('forums.index') }}" title="Forums"></a>
|
||||
<a class="menu-item fa-search" href="{{ route('main.search') }}" title="Search"></a>
|
||||
{% if session.checkLogin %}
|
||||
{% if user.isActive %}
|
||||
<a class="menu-item fa-users" href="{{ route('members.index') }}" title="Members"></a>
|
||||
<a class="menu-item fa-heart" href="{{ route('premium.index') }}" title="Support us"></a>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="menu-ucp" id="navMenuUser">
|
||||
<!-- User menu, displayed on right side of the bar. -->
|
||||
{% if session.checkLogin %}
|
||||
{% if user.isActive %}
|
||||
<a class="menu-item avatar" href="{{ route('user.profile', user.id) }}" title="Logged in as {{ user.username }}" style="background-image: url('{{ route('file.avatar', user.id) }}'); width: auto; color: {{ user.colour }}; border-color: {{ user.colour }}; font-weight: 700;"></a>
|
||||
{#<a class="menu-item fa-envelope" href="#" title="Messages"></a>#}
|
||||
{% if user.permission(constant('Sakura\\Perms\\Manage::USE_MANAGE'), constant('Sakura\\Perms::MANAGE')) %}
|
||||
|
@ -117,7 +117,7 @@
|
|||
{% if profile is defined ? profile.background : (user.permission(constant('Sakura\\Perms\\Site::CHANGE_BACKGROUND')) and user.optionFields.profileBackgroundSiteWide and user.background) %}
|
||||
<div id="userBackground" style="background-image: url('{{ route('file.background', (profile is defined ? profile : user).id) }}');"></div>
|
||||
{% endif %}
|
||||
{% if not session.checkLogin and sakura.currentPage != route('auth.login') %}
|
||||
{% if not user.isActive and sakura.currentPage != route('auth.login') %}
|
||||
<div class="headerLoginContainer">
|
||||
<form method="post" action="{{ route('auth.login') }}" id="headerLoginForm">
|
||||
<input type="hidden" name="redirect" value="{{ sakura.currentPage }}" />
|
||||
|
@ -173,7 +173,7 @@
|
|||
</div>
|
||||
<div class="footer">
|
||||
<div class="ftsections">
|
||||
<div class="copycentre">Powered by <a href="https://github.com/flashwave/sakura/" target="_blank">Sakura</a>{% if sakura.dev.showChangelog %} <a href="https://sakura.flash.moe/#r{{ sakura.versionInfo.version }}" target="_blank">r{{ sakura.versionInfo.version }}</a>{% endif %} © 2013-2016 <a href="http://flash.moe/" target="_blank">Flashwave</a></div>
|
||||
<div class="copycentre">Powered by <a href="https://github.com/flashwave/sakura/" target="_blank">Sakura</a>{% if config('dev.show_changelog', true) %} <a href="https://sakura.flash.moe/#r{{ constant('SAKURA_VERSION') }}" target="_blank">r{{ constant('SAKURA_VERSION') }}</a>{% endif %} © 2013-2016 <a href="http://flash.moe/" target="_blank">Flashwave</a></div>
|
||||
<ul class="ftsection">
|
||||
<li class="fthead">General</li>
|
||||
<li><a href="{{ route('main.index') }}">Home</a></li>
|
||||
|
@ -266,7 +266,7 @@
|
|||
friendClient.start(HTTPMethods.POST);
|
||||
}
|
||||
</script>
|
||||
{% if sakura.dev.showChangelog and stats %}
|
||||
{% if config('dev.show_changelog', true) and stats %}
|
||||
<script type="text/javascript" src="https://sakura.flash.moe/?get=all&limit=5&variable=true"></script>
|
||||
<script type="text/javascript">
|
||||
// Column colours for actions
|
||||
|
@ -295,7 +295,7 @@
|
|||
var _cllink = document.createElement('a');
|
||||
_cllink.className = 'underline';
|
||||
_cllink.target = '_blank';
|
||||
_cllink.href = 'https://sakura.flash.moe/#r{{ sakura.versionInfo.version }}';
|
||||
_cllink.href = 'https://sakura.flash.moe/#r{{ constant('SAKURA_VERSION') }}';
|
||||
|
||||
// Append everything
|
||||
_cllink.appendChild(document.createTextNode('Changelog'));
|
||||
|
|
|
@ -90,7 +90,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if session.checkLogin and user.permission(constant('Sakura\\Perms\\Site::OBTAIN_PREMIUM')) %}
|
||||
{% if user.isActive and user.permission(constant('Sakura\\Perms\\Site::OBTAIN_PREMIUM')) %}
|
||||
<div class="slider">
|
||||
<input class="inputStyling" type="range" min="1" max="{{ amountLimit }}" value="1" onchange="document.getElementById('monthsNo').value = this.value; document.getElementById('monthNoBtn').innerHTML = this.value; document.getElementById('monthsTrailingS').innerHTML = (this.value == 1 ? '' : 's'); document.getElementById('totalAmount').innerHTML = (this.value * {{ price }}).formatMoney(2);" />
|
||||
</div>
|
||||
|
@ -103,13 +103,13 @@
|
|||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{% elseif session.checkLogin %}
|
||||
{% elseif user.isActive %}
|
||||
<h1 style="text-align: center; margin: 1em auto;" class="stylised">You can't get Tenshi at the current moment!</h1>
|
||||
{% else %}
|
||||
<h1 style="text-align: center; margin: 1em auto;" class="stylised">You need to be logged in to get Tenshi!</h1>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if session.checkLogin and user.permission(constant('Sakura\\Perms\\Site::OBTAIN_PREMIUM')) %}
|
||||
{% if user.isActive and user.permission(constant('Sakura\\Perms\\Site::OBTAIN_PREMIUM')) %}
|
||||
<form action="{{ route('premium.purchase') }}" method="post" id="purchaseForm" class="hidden">
|
||||
<input type="hidden" name="mode" value="purchase" />
|
||||
<input type="hidden" name="time" value="{{ date().timestamp }}" />
|
||||
|
|
|
@ -108,7 +108,7 @@
|
|||
{#<a class="fa fa-users" title="View {{ profile.username }}'s groups" href="#_groups" onclick="profileMode('groups');"></a>#}
|
||||
<a class="fa fa-comments-o" title="View {{ profile.username }}'s profile comments" href="#_comments" onclick="profileMode('comments');"></a>
|
||||
</div>
|
||||
{% if session.checkLogin %}
|
||||
{% if user.isActive %}
|
||||
<div class="new-profile-actions">
|
||||
{% if user.id == profile.id %}
|
||||
<a class="fa fa-pencil-square-o" title="Edit your profile" href="{{ route('settings.general.profile') }}"></a>
|
||||
|
@ -162,7 +162,7 @@
|
|||
</table>
|
||||
<hr class="default" />
|
||||
{% if profile.profileFields or user.permission(constant('Sakura\\Perms\\Manage::USE_MANAGE'), constant('Sakura\\Perms::MANAGE')) %}
|
||||
{% if session.checkLogin %}
|
||||
{% if user.isActive %}
|
||||
<table style="width: 100%;">
|
||||
{% for name,field in profile.profileFields %}
|
||||
<tr>
|
||||
|
|
Reference in a new issue