Como substituir uma lista de taxonomia / termo /% por uma exibição?

28

Eu tenho um vocabulário anexado a um tipo de conteúdo. Somente um termo pode ser selecionado para categorizar um nó criado com esse tipo de conteúdo. O vocabulário é chamado de Veículos e tem termos 'carros, caminhões, barcos'. O tipo de conteúdo também é chamado de Veículos.

Eu uso o path auto para que ele mostre [vocabulário: nome] / [termo: nome] para que, quando renderizado, mostre site.com/vehicles/trucks, por exemplo, que mostrará todos os caminhões ... coisas típicas do Drupal. Está bem...

Agora, eu tenho uma Visualização que é uma página com o caminho 'veículos'. Está configurado para exibir todos os itens do tipo de conteúdo 'veículos'. Essa visualização da página também é configurada para usar um argumento 'ID do termo de taxonomia'.

Observe que, quando o termo taxonomia está presente, o alias do URL gerado para o caminho da taxonomia é exatamente o mesmo que a página Views com um argumento fornecido:

Caminho da taxonomia com alias de URL = veículos / caminhões. Visualiza a página com argumento = veículos / caminhões.

Isso é de propósito. Meu objetivo era mostrar todos os resultados desse tipo de conteúdo quando um argumento não estivesse presente e, quando estivesse presente, o mais importante seria filtrar os resultados com base nesse termo de taxonomia E manter os mesmos campos e estrutura que sem o argumento (o mesmo que site.com/vehicles).

O problema é que isso não está funcionando conforme o esperado. site.com/vehicles mostra corretamente minha visualização e filtros relacionados. site.com/vehicles/trucks mostra apenas a lista de taxonomia regular e não formatada fornecida pela Drupal.

Isso ocorre porque o argumento de ID do termo de taxonomia não está configurado corretamente?

Esse é um problema de peso em que ganchos de taxonomia são disparados após o Views? Em caso afirmativo, como posso reorganizar os pesos aqui para que sejam acionados corretamente e me apresentem os resultados necessários?

Sei o que você sugere - que o Views vem com taxonomia / termo /% para substituir as exibições padrão de drupal.

No entanto, isso não vai funcionar no meu caso. Eu tenho vários tipos de conteúdo, cada um com seu próprio vocabulário e cada um com seu campo de visão e um conjunto distinto de campos (casas e carros, por exemplo, têm conjuntos de campos muito diferentes). A taxonomia / termo /% funcionaria se todos os tipos de conteúdo tivessem os mesmos campos, então eu poderia apenas imitar aqueles nessa substituição, mas como esse não é o caso, como posso obter corretamente meu caminho com argumentos para mostrar os resultados com base em esse termo de vocabulário e manter minha estrutura de campo?

Desculpe se isso foi confuso. Um link para o site para referência http://www.buyagainbaby.com . Atualmente, o site usa taxonomia / termo /% como substituição, mas, novamente, isso precisa mudar para que cada exibição seja responsável por como renderiza seu conjunto de resultados com base na taxonomia.

blue928
fonte

Respostas:

20

Todas essas respostas são ótimas soluções e obrigado por dedicar um tempo para fornecer essas respostas informativas. Ashlar, sua resposta me ensinou muito sobre como funciona a taxonomia, bem como a relação entre visões e taxonomia.

Encontrei uma solução que funciona muito bem para a minha situação e compartilharei que, caso possa ajudar vocês também.

Como expliquei acima, o meu problema era que minha visão, sem argumento, forneceu os resultados desejados, mas a visão de taxonomia padrão com um argumento, que não era o que eu queria.

Para resolver isso, instalei o módulo Taxonomy Display http://drupal.org/project/taxonomy_display . Em seguida, reconfigurei cada visualização para ter o ID do termo de taxonomia como argumento.

A exibição de taxonomia permite associar um vocabulário a uma visualização específica. Agora, quando clico em veículos / caminhões, que é um apelido para taxonomia / termo / 3, a visualização assume e isso é renderizado corretamente, mantendo a integridade da estrutura do campo.

Se alguém quiser saber mais detalhes sobre a configuração, entre em contato.

blue928
fonte
Sua solução parece um ótimo plano! Infelizmente, não recebo a parte "Exibição da taxonomia permite associar um vocabulário a uma exibição específica" - parte ... Você poderia me explicar um pouco mais detalhadamente?
Michiel
Depois que o módulo de exibição de taxonomia estiver instalado, você verá em suas opções as opções para controlar como as listas de termos de taxonomia são exibidas. Views é uma opção. Você escolhe a visualização e, em seguida, escolhe qual item dessa visualização deseja que os itens da lista de taxonomia sejam parecidos. Isso tudo pressupõe que você já criou uma exibição que lista o conteúdo como você deseja. Depois de clicar em salvar, sua lista de taxonomia se parece exatamente com a saída da visualização que você selecionou nas configurações.
blue928
7

Acredito que há vários fatores a serem considerados na sua configuração:

  • Todo caminho deve ser exclusivo para acessar uma página, um termo, uma exibição ou um painel de página. Se você tem duas partes de conteúdo com o mesmo endereço, perde o controle da exibição. Drupal fornece precedência do termo de taxonomia sobre Views, para que não seja chamado. A definição Exibir usando taxonomia / termo / # interceptará o termo de taxonomia, mas, como você indicou, não exibe um URL significativo.

  • As visualizações não respondem a aliases. Isso ocorre porque a primeira coisa que o Drupal faz com qualquer solicitação é converter o alias em um padrão de formato de nó / nid para todo o conteúdo do Drupal. Portanto, no seu caso, veículos / caminhões são convertidos no nó / # atribuído à visualização. A exibição não pode ter contexto diretamente de um alias.

Para conseguir o que deseja, faça uma de várias coisas.

  • Crie um menu com os retornos de chamada definidos para o caminho da sua exibição. Isso gerará o URL correto e permitirá que a View responda.

  • Use painéis com o Page Manager (no Ctools Suite) ativado. Se você definir um Painel da página definido para o URL apropriado, poderá colocar sua Visualização no painel do painel ou passar o contexto da página do painel diretamente para um painel de conteúdo do Views. Um painel de conteúdo não possui um caminho. Em vez disso, utiliza os contextos como o caminho, definido diretamente pelo painel da página, para criar seu conteúdo. Esta série de vídeos em nodeone.se faz um excelente trabalho para demonstrar como usar painéis e gerenciador de páginas de maneira eficaz.

  • Outra maneira de obter o conteúdo das visualizações na tela é usar o módulo quicktabs . Eu não acho que se encaixa na sua situação específica, mas também pode acessar diretamente as visualizações, selecionando as guias que você define para uma página.

Ashlar
fonte
3

O Views tem uma visão interna que emula e substitui termos de taxonomia. Basta ativar a substituição de listagens de taxonomia por visualizações. Visualização Taxonomia

Jeremy John
fonte
2

Na verdade, fiz uma coisa semelhante há alguns dias atrás. Minha solução não é elegante, mas funciona. O que fiz foi substituir a exibição do termo Taxonomia usando Painéis, não Exibições. Em seguida, adicionei todas as minhas visões diferentes para cada termo à área de conteúdo de painéis. Como no meu caso, cada visualização possui um filtro que a limita aos resultados de um vocabulário específico, quando você visita a página de termos de taxonomia, mostra apenas a visualização desse vocabulário específico.

Entre em contato se precisar de mais informações sobre como eu implementei isso.

Patrick Kenny
fonte
Eu não sou um grande fã de painéis, mas essa é uma rota possível. Além disso, segui este tutorial aqui leveltendesign.com/blog/dustin-currie/… . Isso funciona perfeitamente, exceto que ele usa o número de identificação da taxonomia, mas eu preciso do nome da taxonomia como com hífens em vez de espaços. Já fez algum truque como este?
blue928
2
Fazemos isso todo o tempo. Painéis define uma página para isso (embora desativada por padrão) pronta para uso, então eu dificilmente chamaria isso de deselegante.
Mpdonadio
Eu gostaria de mais detalhes! :)
Chris Happy
1

Uma ótima solução foi proposta pelo WebbyKat , para definir o caminho da página em /taxonomy/term/%vez de/categories/%

Funciona, mas reescreve todos os seus termos em uma Visualização.

timofey.com
fonte