На сайте OrchardCms мне нужно создать иерархическое меню, в котором я могу показывать и скрывать элементы меню по роли пользователя. Каков наилучший способ приблизиться к этому?
Одним из возможных способов было бы создать и управлять двумя меню, каждый из которых относится к другому слою, где правило слоя отображает соответствующую роль. Однако это означает управление двумя меню, которое не является идеальным. Многие элементы в каждом меню должны быть дублированы.
Другой способ - создать пользовательскую часть меню. Недостаток здесь - это похоже на перебор.
Или я нахожусь на неправильном пути, должен ли я больше искать фильтрацию элементов контента по ролям? В этом сценарии я считаю, что мне все равно нужен способ настройки фильтров меню.
Я думаю, что расширенное меню (доступно из галереи) делает обрезку меню на основе разрешений.
Обновление: мое плохое. Вместо этого попробуйте Quanta (часть проекта Science). Должен хорошо работать с Картографией.
Мне удалось создать несколько меню, отфильтрованных по ролям в слоях, с этой простой PCG. Модуль RoleLayer . Однако вам все равно придется создавать отдельные меню, и он не ограничивает доступ к URL, если вы не измените разрешения.
После включения модуля вы можете создавать правила для ролей. Например,
role("Administrator")
Сделал бы этот слой только видимым для тех, у кого есть роль администратора.