Как отображать разное содержимое для разных ролей для одного и того же URL-адреса?
У нас есть вариант использования, при котором 6-7 типов ролей пользователей могут получать доступ к одним и тем же узлам (их много) и просматривать различное содержимое в зависимости от ролей.
Например, пользователь с ролью А получает доступ sitename.com/faq и видит определенный контент. Однако, когда пользователь с ролью B обращается к имя_сайта/часто задаваемым вопросам, он видит другой контент, основанный на их роли. (Пожалуйста, обратите внимание, что здесь мы говорим не просто о переводе)
Как бы я мог получить это подстава? Я знаю, что если бы у нас было 2-3 узла, которым требовался такой доступ, я мог бы проверить его программно, однако в этом случае узлов много, и это было бы проблематично.
Какие-нибудь советы или модули, которые вы можете придумать, которые помогли бы мне в этом?
Большое спасибо
2 answers
Мне нравится использовать менеджер страниц с вариантами, установленными в контекстах на основе ролей. Предполагая, что у вас установлен набор инструментов chaos, он у вас уже есть.
Если вы не использовали менеджер страниц, доступ к нему осуществляется из /admin/structure/pages
Достойное введение в то, что вы хотите сделать, можно найти здесь: http://nodeone.se/en/learn-page-manager-part-1-overview
В простейшем случае менеджер страниц можно использовать для переопределения путей по умолчанию с помощью перенаправления, на основе настроек контекста, например... сказать... роли текущего вошедшего в систему пользователя. Он хорошо интегрируется с панелями, предоставляя контекст для содержимого на основе панелей, включая панели просмотра содержимого.
Использование модуля контекста может сработать и для вас, в зависимости от того, как вы настроили свои страницы. Я использую его для размещения блоков на основе ролей пользователей и путей. https://drupal.org/project/context ... гм... "блокирующая система на стероидах" - это одно из ее описаний.
Без зная немного больше о том, как вы настроили свои часто задаваемые вопросы, это все, что я могу вам сейчас дать.
Звучит так, как если бы модуль Доступа к контенту , модуль ACL, (возможно) модуль Nodeaccess или, возможно, даже их комбинация были бы хорошим местом для начала.