Определение глобальной переменной

Это небольшая инструкция о том как в Winter CMS определить собственную глобальную переменную доступную как в коде PHP, так и в разметке Twig.

Определение глобальной переменной

Чтобы добавить в систему свою глобальную переменную, нужно внутри метода boot() вашего плагина добавить слушатель события инициализации страницы, где к контроллеру через метод vars прописать свою переменную.

Выглядет это так:

\plugins\acme\system\Plugin.php
public function boot(): void
{
    \Event::listen('cms.page.init', function($controller) {
        $controller->vars['myVar'] = 'значение';
    });
}

Теперь вы можете получить доступ к этой переменной в Twig или любом разделе PHP-кода который имеет доступ к экземпляру контроллера CMS.

Вывод переменной в разметке через твиг:

<div>{{ myVar }}</div>

В PHP:

function onStart()
{
    $special = $this->controller->vars['myVar'];
}

Переменная доступна во всём жизненном цикле страницы (работает в шаблонах и компонентах).

Записи по теме
Доступ к элементам на фронте только для админов
Доступ к элементам на фронте только для админов Как в Winter CMS сделать доступ к отдельным элементам или фрагментам выводимым на фронтенде только для бэкенд пользователей которые авторизованы в бэкенде.
Как вывести текущий год
Как вывести текущий год В этой записи будет показан пример того, как в Winter CMS вывести текущий год через twig. Простое решение часто применяемое в шаблонах сайтов.
Как добавить каноническую ссылку
Как добавить каноническую ссылку Небольшая инструкция как легко и просто через Twig добавить каноническую ссылку для страниц сайта в Winter CMS.
Как замаскировать email-адрес
Как замаскировать email-адрес Как замаскировать адрес электронной почты при его выводе в HTML чтобы его не смогли распознать спам-боты. Хелпер-функция html_email и применение её в Twig.
Обрезка HTML-строки до заданной длины
Обрезка HTML-строки до заданной длины Как в системе Winter CMS ограничить HTML строку до длины с определённым количеством символов с правильной обработкой тегов. Примеры кода для Twig.
Комментарии 0

*** чтобы писать комментарии.