Метод работает не только с ролями, но и любой другой логикой, которую вы в силах реализовать в коде.
Нам понадобится hook_views_pre_render, где мы выполним проверку и отключим не нужное нам поле представления.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
use Drupal\views\ViewExecutable; /** * Implements hook_views_pre_render. */ function MYMODULE_views_pre_render(ViewExecutable $view) { if ($view->id() == 'ИМЯ ВАШЕГО ПРЕДСТАВЛЕНИЯ') { // получим роли текущего пользователя $current_user = \Drupal::currentUser(); $roles = $current_user->getRoles(); if (!in_array('administrator', $roles)) { // и если это, например, не админ, отключим показ поля // с именем MY_VIEW_FIELDNAME unset($view->field['MY_VIEW_FIELDNAME']); } } } |
Все имена полей можно вывести, используя devel:
Drupal 9/10 модуль views
Данная запись опубликована в 31.08.2023 17:07 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Июль 23, 2023 г.
В терминологии Drupal, типы товаров это - бандлы (bundle) сущности commerce_product.
Получить их список можно вот так:
[crayon-69ddc2dc5debd977691731/]
Как результат, в $product_types вы получите массив типов товаров, где ключом является ...
Читать
Сентябрь 13, 2023 г.
Весьма распространённый случай, когда в качестве exposed filter используется поле, связанное с таксономией. Так вы получаете набор опций в фильтре для своего представления, которое доступно пользователю.
Также весьма часто некоторые дополнительные ...
Читать
Сентябрь 6, 2023 г.
Пример кода, реализующий endpoint скачиваемого файла.
[crayon-69ddc2dc5e080265376455/]
Кроме контроллера, вам потребуется еще задать маршрут. Пример описания маршрута:
[crayon-69ddc2dc5e087296424944/]
Читать
Июль 12, 2023 г.
Сначала вы создали в Drupal rest ресурс - /Plugin/rest/resource, поработали с ним, а потом пришло время прощаться. Но вот проблема - система уже знает о ресурсе, и если вы удалите файл, то при попытке зайти в админ панель расширений /admin/modules, вы ...
Читать