Como restringir o acesso direto aos nós, mas apenas permitir que as visualizações acessem o campo necessário do tipo de nó específico?
Por exemplo, no Views Slideshow, estamos deslizando o campo de imagem que pertence a um tipo de nó específico. Mas não queremos que os mecanismos de pesquisa acessem e os visitantes acessem os nós pertencem a esse tipo de nó.
Alguma sugestão?
Restringir exibição de página de nó parece ser uma maneira melhor de restringir o acesso direto a qualquer nó de tipo de conteúdo específico.
O uso também é bastante simples; você só precisa ativar este módulo e configurar as permissões para os nós diretamente acessíveis normalmente.
http://drupal.org/project/restrict_node_page_view
Na página do projeto:
fonte
Um outro módulo que faz a mesma coisa, mas com mais funcionalidades.
Toca do Coelho
Os mantenedores deste projeto solicitam ao "Restringir exibição de página de nó" o mantenedor para mesclar projetos em problemas.
Vantagens contra "Restringir exibição de página de nó":
Desvantagem contra "Restringir exibição de página do nó":
fonte
você deve usar
node_access()
, existem certas opções que você pode implementar facilmente usandohook_node_access()
. A implementaçãonode_access()
permite que você tome uma decisão sobre quem pode acessar um nó e quem pode criar, excluir, editar ou atualizar esse nó. As visualizações, no entanto, ainda podem extrair dados desses nós.hook_node_access () , node_access ()
fonte
Inspirado em https://www.drupal.org/project/restrict_node_page_view, você pode escrever um pequeno módulo:
fonte
Usando o módulo Rules , você pode implementar uma regra semelhante a esta:
A regra acima (ainda) não leva em consideração a aplicação da "ação" apenas às funções selecionadas (por exemplo, para que os administradores ainda possam usar esses caminhos para visualizar um nó). Mas para alguém um pouco familiarizado com o módulo Regras, essa é uma "Condição" direta a ser adicionada ...
Para experimentar essa regra em seu próprio site, basta copiar todo o código de Regras acima e colá-lo em uma nova regra em seu próprio site, criada através da função "Importar". Depois edite / refine para ajustá-lo ao seu próprio ambiente (por exemplo, a mensagem "Desculpe, ..." será exibida).
fonte