Глобальные переменные MMO-DEV WEB
В каждом шаблоне MMO-DEV WEB доступны глобальные переменные через объект mw и встроенные переменные Twig.
Объект mw
Основные свойства
| Переменная | Тип | Описание |
|---|---|---|
mw.lang | string | Текущий язык (ru, en и др.) |
mw.path | string | Базовый путь приложения |
mw.csrf | string | CSRF-токен для форм |
mw.user | object|null | Текущий авторизованный пользователь (или null для гостя) |
mw.config | object | Конфигурация проекта |
mw.projectName | string | Название проекта |
mw.navigation | array | Навигационное меню |
mw.game | object | Игровые настройки и данные |
mw.version | string | Версия платформы MMO-DEV WEB |
mw.time | int | Текущее Unix-время |
mw.isDebug | bool | Включён ли режим отладки |
mw.isDevelopment | bool | Среда разработки |
Примеры использования
Примеры использования
{# Язык #}
<html lang="{{ mw.lang }}">
{# CSRF-токен в формах #}
<form method="post">
<input type="hidden" name="_token" value="{{ mw.csrf }}">
</form>
{# Проверка авторизации #}
{% if mw.user %}
Привет, {{ mw.user.name }}!
{% else %}
<a href="/login">Войти</a>
{% endif %}
{# Конфигурация #}
{{ mw.projectName }}
{{ mw.config.siteName }}
{# Отладка #}
{% if mw.isDebug %}
{{ dump(_context) }}
{% endif %}
Объект mw.request
Информация о текущем HTTP-запросе:
| Переменная | Тип | Описание |
|---|---|---|
mw.request.host | string | Хост (example.com) |
mw.request.uri | string | Полный URI (/page?key=value) |
mw.request.path | string | Путь без query string (/page) |
mw.request.method | string | HTTP-метод (GET, POST) |
mw.request.scheme | string | Схема (http или https) |
mw.request.schemeAndHttpHost | string | Полный хост (https://example.com) |
mw.request.queryString | string | Query string (key=value&foo=bar) |
mw.request.isSecure | bool | HTTPS-соединение |
mw.request.isXmlHttpRequest | bool | AJAX-запрос |
Примеры
Примеры
{# Текущий URL #}
{{ mw.request.schemeAndHttpHost }}{{ mw.request.uri }}
{# Активная навигация #}
<a href="/news" class="{{ mw.request.path starts with '/news' ? 'active' : '' }}">
Новости
</a>
{# Определение AJAX #}
{% if mw.request.isXmlHttpRequest %}
{# Рендерим без layout #}
{{ content }}
{% else %}
{% extends '@site/layout.html.twig' %}
{% endif %}
Встроенные переменные Twig
| Переменная | Описание |
|---|---|
_self | Имя текущего шаблона |
_context | Все переменные текущего контекста (полезно для dump()) |
_charset | Текущая кодировка (обычно UTF-8) |
Встроенные переменные Twig
{# Просмотр всех переменных #}
{{ dump(_context|keys) }}
{# Имя текущего шаблона #}
<!-- Template: {{ _self }} -->
Контекстные переменные
Эти переменные доступны в зависимости от контроллера и страницы:
Общие
| Переменная | Тип | Описание |
|---|---|---|
is_guest | bool | Является ли посетитель гостем |
active_page | string | Идентификатор текущей страницы |
notifications | array | Уведомления пользователя |
balance | float | Баланс пользователя |
Серверы
| Переменная | Тип | Описание |
|---|---|---|
servers | array | Список игровых серверов |
current_server | object | Текущий выбранный сервер |
Примеры
Примеры
{# Гостевой контент #}
{% if is_guest %}
<div class="guest-banner">
Зарегистрируйтесь, чтобы получить доступ ко всем возможностям!
</div>
{% endif %}
{# Уведомления #}
{% if notifications is defined and notifications is not empty %}
<div class="notifications">
{% for notification in notifications %}
<div class="alert alert-{{ notification.type }}">
{{ notification.message }}
</div>
{% endfor %}
</div>
{% endif %}
{# Серверы #}
{% for server in servers %}
<div class="server {{ server == current_server ? 'active' : '' }}">
{{ server.name }} - {{ server.online }} онлайн
</div>
{% endfor %}
{# Баланс #}
{% if balance is defined %}
Баланс: {{ balance|number_format(2, ',', ' ') }} руб.
{% endif %}