Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Настроить выбор материала из списка пользователем

Настроить выбор материала из списка пользователем
, by

Задача: есть несколько пользователей сайта, которые зарегистрированы и имеют свой пароль, логин. Они заходят на сайт и каждый видит один и тот же список материалов. Каждый пользователь может выбрать только один материал из общего списка. При этом, если такой выбор сделан, то этот выбранный материал становится уже недоступным для других пользователей. (Аналог того, как товар положили в корзину).  А  у пользователя, выбравшего материал, появляется возможность просмотреть его описание в деталях (только после выбора у него появляются права на просмотр). Вопрос: можно ли такое реализовать во Views, Panels, есть ли какие для этого модули, кроме Drupal Commerce (моя задача очень похожа на продажу товара, только нет оплаты). Спасибо, если что подскажите. Дмитрий.

1 answer
votes: 763
Answer

Здравствуйте, используйте модуль References или Relation

http://drupal.org/project/references

http://drupal.org/project/relation

Чтобы связать ноду с пользователем через поле, эта связь будет доступна через Views в связях. Чтобы настроить права на просмотр вам лучше написать небольшой модуль где на hook_node_view() для каждой ноды нужного типа проверяйте, кто просматривает ноду и есть ли у этой ноды связь с этим пользователем.


Выбор материала пользователем удалось сделать при помощи модуля Flag и встроенного в ядро  Trigger. Уверен, что можно было как-то проще, но торопился, с references и relation не удалось разобраться. До прав на просмотр пока не дошел.