Como posso adicionar novas condições sobre as condições existentes que determinam se um item de menu está visível? Essas condições não devem se limitar às configurações de permissões.
Como exemplo de caso de uso (não necessariamente o motivo desta pergunta): suponha que eu tenha um tipo de conteúdo do qual os usuários tenham permissão para criar apenas um nó. Eu tenho um item de menu para adicionar esse tipo de conteúdo. Mas se o usuário já criou um nó desse tipo de conteúdo, desejo ocultar o item de menu. Meu primeiro pensamento é executar uma consulta para verificar a existência de um nó criado pelo usuário atual que é do tipo de conteúdo específico. Se existir, oculte o item de menu.
Eu acho que esse tipo de funcionalidade deve entrar hook_menu_alter()
e adicionar a lógica necessária lá. Mas não tenho certeza de como fazer isso sem ignorar as verificações existentes, como verificar se o usuário tem permissões para criar esse tipo de conteúdo. Eu precisaria incluir essa lógica em minha própria condição? Ou posso adicionar à lógica de acesso existente sem substituí-la?
Editar: algumas pessoas parecem focadas em responder "como faço para limitar um usuário a criar um nó de um tipo de conteúdo". Essa não é a questão aqui. A questão é como adicionar condições de acesso personalizadas a um item de menu.
Em resposta aos comentários acima, a solução em D7 seria usar:
fonte
Você está procurando o módulo da API de acesso ao menu em cadeia .
Há pelo menos um exemplo no Drupal Stack Exchange de como usá-lo.
fonte
Uma opção seria criar uma nova função que tenha permissão para criar conteúdo para o seu tipo de conteúdo. Depois que um usuário cria um nó desse tipo, retire essa função e ele não poderá mais criar.
fonte
Talvez você deva tentar o módulo Limite de Nó .
Na página do projeto:
fonte