como separar a hierarquia da taxonomia no pathauto com barras

14

Pathauto parece ter uma maneira diferente de alterar a hierarquia da taxonomia.

No menu Taxonomia :

  1. Classificados> Carros> Aston Martin> DB9 Coupe
  2. Classificados> Trabalhos> Contabilidade

O que eu quero é algo assim para o URL:

  • Classificados / empregos / contabilidade (não contabilidade-empregos-classificados)

(Observe que Pathautho gera isso com traços na ordem inversa também.)

No Pathauto, estou usando este padrão: Default path pattern(aplica-se a todos os vocabulários com padrões em branco abaixo)

[term:parents-all]

Confuso.

jan
fonte

Respostas:

10

Com o módulo Token ativado, você pode definir um padrão como este:

[term:vocabulary]/[term:parent:parent:name]/[term:parent:name]/[term:name]

Faça esse padrão pelo tempo que desejar. Seus caminhos se tornarão:

vocabulary
vocabulary/category1
vocabulary/category1/subcategory1
vocabulary/category1/subcategory2
vocabulary/category1/subcategory2/subsubcategory1

e assim por diante...

brunops
fonte
Muito obrigado a você! Portanto, se eu tiver uma hierarquia de taxonomia de 5 níveis de profundidade (incluindo vocabulário) que seria [termo: vocabulário] / [termo: pai: pai: pai: pai: nome] / [termo: pai: pai: pai] / ... etc. ., certo? Desejo que o módulo tokens possa ser configurado de tal maneira que você não precise definir pai-filho repetidamente dessa maneira. E se, inesperadamente, sua árvore se tornar 6 níveis, você precisará excluir e atualizar seus caminhos para incluir outra e depois se tornar 7 níveis de profundidade e assim por diante ... quero dizer, se um usuário adicionar termos um nível abaixo, ele não poderá ver seu conteúdo, a menos que um administrador atualiza o pathauto!
jan
1
Mesmo que essa seja a resposta aceita, consulte a resposta do @ NenadP para obter uma solução escalável.
Paul
16

Existe uma maneira inteligente de fazer isso usando join: /

No meu caso, eu usei:

[node:field-taxonomy-skolski:parents:join:/]

onde field-taxonomy-skolskié o campo para escolher o termo na árvore de taxonomia. As barras à frente serão removidas, embora exista uma configuração em

Administração »Configuração» Pesquisa e metadados »Aliases de URL» Aliases de URL - configurações

na parte inferior da página do menu suspenso PONTUAÇÃO . Defina para barra (/) "sem ação" em vez de "remover".

NenadP
fonte
Bingo! Eu mesmo ofereci a solução não escalável acima ( drupal.stackexchange.com/questions/27141/… ) e, é claro, gosto muito mais desta. Eu juraria que a opção de token não existia quando estava lutando para que esse padrão funcionasse. Obrigado!
Artur
2
[...: join: /] não funcionou para mim, mas [...: join-path] funcionou. Observação: com o caminho de junção, você não pode escolher o separador. Apenas usa / como separador.
Se isso não funcionar, você provavelmente precisará instalar e ativar o módulo "entidade".
coderama
O padrão para o Drupal 8 é um pouco diferente, por exemplo: [term:vocabulary]/[term:parents:join:/]/[term:name]
Martin Klíma 07/11
6

Este funciona para mim no Drupal 7.15 com Token 7.x-1.3 e Pathauto 7.x-1.2:

[termo: pais: associar-se: /] / [termo: nome]

Como brunops afirmou na segunda resposta, junte-se:% separator% faz a mágica. Ele substitui o traço padrão por% separator%.

Um grande obrigado aos brunops!

perigo
fonte
Isso tem que ser a resposta certa! Não importa em quantos níveis você tem, isso funcionará.
Rantiev 28/07
3

As chaves para fazer isso funcionar são:

  • instale e ative os módulos API de entidade, Tokens de entidade, Caminho automático e Taxonomia.
  • crie um campo no seu tipo de conteúdo e defina o Tipo de campo como Referência de termo e nomeie-o como 'categoria-de-conteúdo-campo' (nome da máquina)
  • Defina o Número de valores, também conhecido como 'Número máximo de valores que os usuários podem inserir para este campo' como 1 (muito importante se você quiser usar os tokens de caminho unido que adicionam automaticamente um / entre os elementos do caminho).
  • defina os padrões de URL (admin / config / search / path / patterns) para algo como '[node: field-content-category: parents: join-path] / [node: field_content_category] / [node: title]'
rwilson0429
fonte
0

Bem, eu recomendaria usar algo inteligente como:

[termo: pai: termos: revertido: junção :?]

Mas eu não posso pela minha vida fazê-lo funcionar também. Então, em vez disso, recomendo o seguinte, mas você só pode ir tão fundo quanto a hierarquia permitir (pode ser visto em padrões de substituição). Se você incluir termos mais profundos na hierarquia, também precisará atualizar o padrão.

[termo: pais-todos: 3] / [termo: pais-todos: 2] / [termo: pais-todos: 1]

7wonders
fonte