Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

Демо EBT модули Скачать EBT модули

❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

Демо EPT модули Скачать EPT модули

Scroll
19/11/2019, by Ivan

Menu

В этом уроке мы расширим возможности нашего модуля и создадим контент, который будет доступен только зарегистрированным пользователям или пользователям с определенной ролью.

Примеры кода можно посмотреть на github:

https://github.com/levmyshkin/drupalbook8

Начнем с добавления нового YML-файла прямо в папке нашего модуля drupalbook.permissions.yml:

drupalbook.private_content:
   path: '/private-page'
   defaults:
     _controller: '\Drupal\drupalbook\Controller\FirstPageController::privateContent'
     _title: 'Private content'
   requirements:
     _permission: 'access premium pages'

Теперь зайдите на страницу прав доступа и выставите доступ к Premium контенту для нужных ролей, я сделаю это для зарегистрированных пользователей:

/admin/people/permissions

permission

Теперь в drupalbook.routing.yml создадим новый route, в котором укажем наши новые права и новый метод для вывода контента:

drupalbook.private_content:
  path: '/private-page'
  defaults:
    _controller: '\Drupal\drupalbook\Controller\FirstPageController::privateContent'
    _title: 'Private content'
  requirements:
    _permission: 'access premium pages'

Также нам нужно будет добавить метод privateContent() в наш класс FirstPageController:

/**
 * Returns a private page.
 *
 * @return array
 *   A simple renderable array.
 */
public function privateContent() {
  $element = array(
    '#markup' => 'Private content',
  );
  return $element;
}

После добавления нового route нужно почистить кэш.

Теперь можно почистить кеш  и проверить, что наша страница не доступна не зарегистрированным пользователям.

drupalbook

Примеры кода можно посмотреть на github:

https://github.com/levmyshkin/drupalbook8