Considere um módulo desertos:
- Página 1:-
deserts/*
- página 2:-
deserts/*/*
- página3: -
deserts/*/*/*
Um conteúdo dinâmico ...
Eu tenho três blocos, a saber, a, bec:
- O bloco a deve ser exibido apenas na página1
- O bloco b deve ser exibido apenas na página2
- O bloco a deve ser exibido apenas na página3
Como deve fazer essa restrição?
desert/*/*/
desert/*/edit
meu bloco deve exibir para todo odesert/*/*
não paradesert/*/edit
Nesse caso ele não funciona para mim ..*
significa curinga. Então, pedindo uma solução onde o bloco aparece paradesert/*/*
implica que ele deve mostrar-se paradesert/*/edit
ou, para essa matéria,desert/*/whatever
.Respostas:
Use o módulo de contexto . Embora eu geralmente não seja fã deste módulo, este é um dos casos em que é útil.
Adicione uma condição para um caminho. Portanto, se eu quiser um bloco na página 1, mas não na página 2 ou 3, eu escreveria os caminhos assim, um para cada bloco:
Caso 1 - Bloco A
Caso 2 - Bloco B
Caso 3- Bloco C
O ~ significa excluir neste caso. Depois disso, adicione o bloco à região que você deseja que apareça. Você também pode adicionar novamente em caminhos específicos que, de outra forma, poderiam ser excluídos e vice-versa.
fonte
Você pode usar a opção de visibilidade "Páginas nas quais esse código PHP retorna VERDADEIRO (somente especialista)". Mas colocar código PHP no banco de dados é, IMHO, uma má prática. Em vez disso, considere usar algo como o bloco de visibilidade estendida módulo ou implementação de
hook_block_list_alter()
tais comoNota: Provavelmente existe uma maneira mais inteligente de implementar sua regra de visibilidade.
fonte
Você deve conseguir que isso funcione usando o módulo de visibilidade do bloco Rules . Aqui está uma citação de sua página do projeto:
Com isso, e de acordo com o " se você pode fazer isso com as Regras, você pode usá-lo para controlar a visibilidade do bloco " acima, você reduziu sua pergunta para fazer com que as Regras interceptem os vários URLs correspondentes à sua página1, página2 e página3.
fonte