misuzu/templates/_layout/header.twig

201 lines
7.3 KiB
Twig
Raw Normal View History

2019-09-28 19:21:23 +00:00
{% from 'macros.twig' import avatar %}
2018-10-27 18:50:34 +00:00
{% from '_layout/input.twig' import input_checkbox_raw %}
2019-01-17 01:46:19 +00:00
{% set site_menu = [
{
'title': 'Home',
'url': '/',
'menu': [
{
'title': 'Members',
'url': url('user-list'),
2019-01-17 01:46:19 +00:00
},
{
'title': 'Changelog',
'url': url('changelog-index'),
2019-01-17 01:46:19 +00:00
},
{
'title': 'Contact',
'url': url('info', {'title': 'contact'}),
2019-01-17 01:46:19 +00:00
},
{
'title': 'Rules',
'url': url('info', {'title': 'rules'}),
2019-01-17 01:46:19 +00:00
},
{
'title': 'Twitter',
'url': 'https://twitter.com/flashiinet',
},
],
},
{
'title': 'News',
'url': url('news-index'),
2019-01-17 01:46:19 +00:00
},
{
'title': 'Forum',
'url': url('forum-index'),
'menu': [
{
'title': 'Leaderboard',
'url': url('forum-leaderboard'),
'display': current_user.perms.forum|default(0)|perms_check(constant('MSZ_PERM_FORUM_VIEW_LEADERBOARD')),
},
],
2019-01-17 01:46:19 +00:00
},
{
'title': 'Chat',
'url': 'https://chat.flashii.net',
},
] %}
{% set user_menu =
2020-06-07 20:37:03 +00:00
current_user2 is defined
2019-01-17 01:46:19 +00:00
? [
{
'title': 'Profile',
2020-06-07 20:37:03 +00:00
'url': url('user-profile', {'user': current_user2.id}),
2019-01-17 01:46:19 +00:00
'icon': 'fas fa-user fa-fw',
},
{
'title': 'Settings',
'url': url('settings-index'),
2019-01-17 01:46:19 +00:00
'icon': 'fas fa-cog fa-fw',
},
2019-04-13 16:44:41 +00:00
{
'title': 'Search',
'url': url('search-index'),
'icon': 'fas fa-search fa-fw',
},
2019-01-17 01:46:19 +00:00
{
'title': 'Return to Site',
'url': site_link|default(url('index')),
2019-01-17 01:46:19 +00:00
'icon': 'fas fa-door-open fa-fw',
'display': has_manage_access and manage_menu is defined
},
{
'title': 'Manage',
'url': manage_link|default(url('manage-index')),
2019-01-17 01:46:19 +00:00
'icon': 'fas fa-door-closed fa-fw',
'display': has_manage_access and manage_menu is not defined
},
{
'title': 'Log out',
'url': url('auth-logout'),
2019-01-17 01:46:19 +00:00
'icon': 'fas fa-sign-out-alt fa-fw',
},
]
: [
{
'title': 'Register',
'url': url('auth-register'),
2019-01-17 01:46:19 +00:00
'icon': 'fas fa-user-plus fa-fw',
},
{
'title': 'Log in',
'url': url('auth-login'),
2019-01-17 01:46:19 +00:00
'icon': 'fas fa-sign-in-alt fa-fw',
},
]
%}
2019-01-17 20:12:28 +00:00
<nav class="header">
<div class="header__background"></div>
2019-01-17 01:46:19 +00:00
<div class="header__desktop">
2019-01-24 20:54:24 +00:00
<a class="header__desktop__logo" href="{{ url('index') }}" title="{{ globals.site_name }}">
2019-01-17 01:46:19 +00:00
{{ globals.site_name }}
</a>
2019-01-17 01:46:19 +00:00
<div class="header__desktop__menus">
{% for item in site_menu %}
{% if item.display is not defined or item.display %}
<div class="header__desktop__menu">
2020-06-01 19:38:02 +00:00
<a href="{{ item.url }}" class="header__desktop__link header__desktop__menu__link">{{ item.title }}</a>
2019-01-17 01:46:19 +00:00
{% if item.menu is defined and item.menu is iterable %}
<div class="header__desktop__submenu">
<div class="header__desktop__submenu__background"></div>
<div class="header__desktop__submenu__content">
{% for subitem in item.menu %}
{% if subitem.display is not defined or subitem.display %}
2020-06-01 19:38:02 +00:00
<a href="{{ subitem.url }}" class="header__desktop__link header__desktop__submenu__link">{{ subitem.title }}</a>
{% endif %}
{% endfor %}
</div>
2019-01-17 20:12:28 +00:00
</div>
{% endif %}
</div>
{% endif %}
2019-01-17 01:46:19 +00:00
{% endfor %}
</div>
2019-01-17 01:46:19 +00:00
<div class="header__desktop__user">
{% for item in user_menu %}
{% if item.display is not defined or item.display %}
<a href="{{ item.url }}" title="{{ item.title }}" class="header__desktop__user__button {{ item.class|default('') }}">
2019-01-17 01:46:19 +00:00
<i class="{{ item.icon }}"></i>
</a>
{% endif %}
{% endfor %}
2020-06-07 20:37:03 +00:00
{% if current_user2 is defined %}
<a href="{{ url('user-profile', {'user': current_user2.id}) }}" class="avatar header__desktop__user__avatar" title="{{ current_user.username }}" style="--user-colour: {{ current_user2.colour }}">
{{ avatar(current_user2.id, 60, current_user2.username) }}
2019-09-28 19:21:23 +00:00
</a>
2019-01-17 01:46:19 +00:00
{% else %}
2019-09-28 19:21:23 +00:00
<a href="{{ url('auth-login') }}" class="avatar header__desktop__user__avatar">
{{ avatar(0, 60, 'Log in') }}
</a>
2019-01-17 01:46:19 +00:00
{% endif %}
</div>
</div>
<div class="header__mobile">
<div class="header__mobile__icons">
<label class="header__mobile__icon" for="toggle-mobile-header">
<i class="fas fa-bars"></i>
</label>
2019-01-24 20:54:24 +00:00
<a class="header__mobile__logo header__mobile__icon" href="{{ url('index') }}">
2019-01-17 01:46:19 +00:00
{{ globals.site_name }}
</a>
2019-09-28 19:21:23 +00:00
<label class="header__mobile__icon header__mobile__avatar" for="toggle-mobile-header">
2020-06-07 20:37:03 +00:00
{{ avatar(current_user2.id|default(0), 40, current_user2.username|default('Log in')) }}
2019-01-17 01:46:19 +00:00
</label>
</div>
2019-01-17 01:46:19 +00:00
{{ input_checkbox_raw('', false, 'header__mobile__toggle', '', false, {'id':'toggle-mobile-header'}) }}
<div class="header__mobile__menu">
2019-01-18 14:16:06 +00:00
<div class="header__mobile__menu__spacer"></div>
2019-01-17 20:18:28 +00:00
2019-01-17 01:46:19 +00:00
<div class="header__mobile__user">
{% for item in user_menu %}
{% if item.display is not defined or item.display %}
<a href="{{ item.url }}" class="header__mobile__link header__mobile__link--user {{ item.class|default('') }}">
2019-01-17 01:46:19 +00:00
<i class="{{ item.icon }}"></i> {{ item.title }}
2019-01-02 21:35:31 +00:00
</a>
{% endif %}
2019-01-17 01:46:19 +00:00
{% endfor %}
</div>
2019-01-17 01:46:19 +00:00
<div class="header__mobile__navigation">
{% for item in site_menu %}
{% if item.display is not defined or item.display %}
2020-06-01 19:38:02 +00:00
<a href="{{ item.url }}" class="header__mobile__link header__mobile__link--primary">{{ item.title }}</a>
{% if item.menu is defined and item.menu is iterable %}
{% for subitem in item.menu %}
{% if subitem.display is not defined or subitem.display %}
2020-06-01 19:38:02 +00:00
<a href="{{ subitem.url }}" class="header__mobile__link">{{ subitem.title }}</a>
{% endif %}
{% endfor %}
{% endif %}
2019-01-17 01:46:19 +00:00
{% endif %}
{% endfor %}
</div>
</div>
</div>
</nav>