Доступ к элементам на фронте только для админов

Допустим вы хотите показывать какой то пункт меню только админам сайта. Или не пункт меню, а какой то блок на сайте или фрагмент. Что угодно, чтобы это видели только админы.

Под админами подразумеваются бэкенд пользователи у которых есть доступ непосредственно к бэкенду сайта. Бэкенд пользователи - это базовый функционал системы Winter CMS.

Скрыть CMS-страницу

Если вам нужно сделать фронтенд-страницу доступной только для бэкенд пользователей, то вам достаточно всего лишь отметить чекбокс Скрытая страница:

Скрытые страницы доступны только для вошедших в систему пользователей

Данный чекбокс находится на вкладке Настройки:

cms страницы демо

Если вам удобнее работать из редактора кода, то в коде в блоке настроек нужно добавить строчку:

is_hidden = 1

Доступ к элементам сайта

Чтобы сделать доступ к определённым элементам сайта, для этого воспользуемся фасадом BackendAuth.

В php-секции шаблона добавляем:

themes\demo\layouts\default.htm
function onInit() {
    $this['loggedInBackend'] = \BackendAuth::check();
}

BackendAuth::check() возвращает true если пользователь залогинен в бэкенде и false если нет.

Теперь в любом месте можем делать проверку на авторизацию в бэкенде через Twig:

{% if loggedInBackend %}
	<!-- Тут то что будет видно только авторизованным в бэкенде -->
{% endif %}

В php-коде компонентов значение будет доступно следующим образом:

plugins\authorName\pluginName\components\Item.php
if ($this->page['loggedInBackend']) {
    // только авторизованным в бэкенде
}

Но при этом важно чтобы компонент выводился на странице у которой шаблоном присвоен тот layout у которого прописано BackendAuth::check().

Можем перестраховаться и при помощи глобального php-метода isset() проверить была ли объявлена на странице переменная и если нет, то получить заново авторизован ли посетитель в бэкенде или нет:

plugins\authorName\pluginName\components\Item.php
if (isset($this->page['loggedInBackend'])) {
    $loggedInBackend = $this->page['loggedInBackend'];
}
else {
    $loggedInBackend = \BackendAuth::check();
}


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

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