Как ограничить прямой доступ к узлам, но просто разрешить представлениям получать доступ к обязательному полю определенного типа узла?
Например, в представлении «Слайд-шоу» мы перемещаем поле изображения, которое принадлежит конкретному типу узла. Но мы не хотим, чтобы поисковые системы получали доступ, а посетители получали доступ к узлам, принадлежащим к этому типу узлов.
Какие-либо предложения?
Ограничение просмотра страницы узла представляется лучшим способом ограничения прямого доступа к любым узлам определенного типа контента.
Использование также довольно просто, вам просто нужно включить этот модуль и настроить разрешения для узлов, которые напрямую доступны как обычно.
http://drupal.org/project/restrict_node_page_view
Со страницы проекта:
источник
Другой модуль, который делает то же самое, но с большим количеством функций.
Кроличья нора
Сопровождающие этого проекта просят "Ограничить просмотр страницы узла", чтобы объединить проекты в проблемах.
Преимущества по сравнению с «Ограниченным просмотром страницы узла»:
Недостаток в отношении «Ограничения просмотра страницы узла»:
источник
Вы должны использовать
node_access()
, есть определенные опции, которые вы можете легко реализовать с помощьюhook_node_access()
. Реализацияnode_access()
позволяет вам принять решение о том, кто может получить доступ к узлу, а кто может создавать, удалять, редактировать или обновлять такой узел. Однако представления могут по-прежнему извлекать данные из этих узлов.hook_node_access () , node_access ()
источник
Вдохновленный https://www.drupal.org/project/restrict_node_page_view, вы можете написать небольшой модуль самостоятельно:
источник
Используя модуль « Правила », вы можете реализовать правило, похожее на это:
Приведенное выше правило (пока) не учитывает применение «действия» только для выбранных ролей (например, чтобы администраторы могли использовать эти пути для просмотра узла). Но для любого, кто немного знаком с модулем «Правила», это простое «условие», которое нужно добавить ...
Чтобы поэкспериментировать с этим правилом на своем собственном сайте, просто скопируйте весь приведенный выше код правил и вставьте его в новое правило на своем собственном сайте, созданное с помощью функции «Импорт». Затем отредактируйте / уточните, чтобы он соответствовал вашей среде (например, появится сообщение «Извините, ...»).
источник