Digamos que você tenha as seguintes páginas em uma árvore de menus:
- Projetos
- Projeto Um
- Projeto Dois
- Projeto Três
Estou procurando uma maneira de criar uma exibição que será incorporada na página Projeto (pai) que mostrará uma foto, título e texto (resumo) das páginas filho.
O relacionamento entre o pai e os filhos é definido na árvore de menus.
Eu sei que posso usar a referência de nó, mas isso significa que toda vez que alguém cria uma página, eles precisam definir o relacionamento do menu e, em seguida, o relacionamento de referência do nó.
Também sei que poderia criar outro tipo de conteúdo, mas acho que isso é um exagero, pois todas as páginas de conteúdo são iguais.
Respostas:
Uma solução é usar termos de taxonomia para definir os relacionamentos e, em seguida, usar o módulo Menu Taxonomia para converter esses relacionamentos em itens de menu. Em seguida, você pode usar o módulo Página personalizada e os módulos Contexto para controlar informações e regiões em todas as páginas, se não desejar usar painéis.
fonte
Você pode fazer exatamente isso usando os módulos API do nó do menu e Exibições do nó do menu .
Crie uma visualização com o tipo de conteúdo necessário e escolha um filtro contextual "Menu: ID do link do menu" (isso está disponível apenas com os módulos acima instalados).
Em "Quando o valor do filtro não estiver disponível", selecione "Fornecer valor padrão" e escolha "Código PHP".
O snippet a seguir fará isso, então você apenas expõe um bloco da visualização e está lá:
fonte
menu_load_object(arg(1))
vez denode_load()
economizar algumas despesas. 2) Você deve verificar se o item de menu é do menu que você está preocupado. No momento, você está retornando o primeiro$mlid
. Dentro do foreach, você deve adicionar um condicionalif ($data->menu_name == 'my-menu')
para corrigir isso. e 3) convém adicionar um segundo filtro paramenu: hidden
retornar apenas itens que não estão ocultos. Use o mesmo trecho, mas retorne o em$data->hidden;
vez do$mlid
.O Nó Hierarquia Módulo permite esse tipo de relacionamento, além de fornecer uma integração de visualizações.
fonte
Talvez isso tenha mudado para o D7 / Views 3, mas você não precisa de PHP para realizar o comportamento desejado:
voila. Não deve funcionar , mas funciona.
Funciona bem apenas com nós, mas a vantagem de usar links de menu sobre a hierarquia de nós é que você não está limitado à construção da navegação em torno de nós. Você pode até incluir links externos na sua exibição.
fonte
Há um módulo relativamente novo Filtro Filhos do Nó Menu Menus que parece fazer exatamente o que você deseja:
fonte
Você já pensou em usar a Referência de nós para esse fim?
Assim, você pode obter um resultado semelhante ao que provavelmente está procurando.
fonte
A resposta do Emile está certa, mas eu tive que colar o código PHP mencionado em um filtro contextual do tipo " Menu: ID do link do menu pai ".
fonte
Se você usar a conversão de entidade e o nó estiver anexado a menus diferentes, aqui está uma adaptação do código que filtra no idioma atual. Você precisa copiar isso como código PHP para o filtro contextual (ID do link do menu pai) na sua visualização, como explicado nas outras respostas
fonte
Na fila de problemas das Exibições de nós do menu , temos esta ótima solução:
digite o seguinte código
fonte