cómo separar la jerarquía de taxonomía en pathauto con barras inclinadas

14

Pathauto parece tener una forma diferente de alias de jerarquía de taxonomía.

Desde el menú de taxonomía :

  1. Pequeños anuncios> Coches> Aston Martin> DB9 Coupe
  2. Anuncios clasificados> Empleos> Contabilidad

Lo que quiero es algo como esto para la url:

  • clasificados / trabajos / contabilidad (no contables-trabajos-clasificados)

(Tenga en cuenta que Pathautho genera esto con guiones también en orden inverso).

En Pathauto, estoy usando este patrón: Default path pattern(se aplica a todos los vocabularios con patrones en blanco a continuación)

[term:parents-all]

Confuso.

ene
fuente

Respuestas:

10

Con el módulo Token habilitado, puede establecer un patrón como este:

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

Haz este patrón todo el tiempo que quieras. Tus caminos se convertirán en:

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

y así...

brunops
fuente
¡Muchas gracias a ti! Entonces, si tengo una jerarquía de taxonomía de 5 niveles de profundidad (incluido el vocabulario), sería [term: vocabulario] / [term: parent: parent: parent: name] / [term: parent: parent: name] / ... etc. ., ¿derecho? Deseo que el módulo de tokens se pueda configurar de tal manera que no necesite definir padre-hijo repetidamente de esta manera. ¿Qué pasa si inesperadamente su árbol se convierte en 6 niveles y luego tendría que eliminar y actualizar sus rutas para incluir otro y luego se convierte en 7 niveles de profundidad y así sucesivamente? Quiero decir, si un usuario agrega términos un nivel hacia abajo, no puede ver su contenido a menos que un administrador actualiza pathauto!
enero
1
Aunque esta es la respuesta aceptada, revise la respuesta de @ NenadP para obtener una solución escalable.
Paul
16

Hay una manera inteligente de hacer esto usando join: /

En mi caso, usé:

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

donde field-taxonomy-skolskiestá el campo para elegir el término del árbol de taxonomía. Las barras inclinadas se eliminarán, aunque hay una configuración debajo

Administración »Configuración» Búsqueda y metadatos »Alias ​​de URL» Alias ​​de URL - configuración

en la parte inferior de la página para el menú desplegable PUNCTUATION . Establezca la barra diagonal (/) "sin acción" en lugar de "eliminar".

NenadP
fuente
¡Bingo! Yo mismo ofrecí la solución no escalable anterior ( drupal.stackexchange.com/questions/27141/… ) y, por supuesto, me gusta mucho más. Juraría que esa opción de token no había estado allí cuando estaba luchando para que ese patrón funcionara. ¡Gracias!
Artur
2
[...: join: /] no funcionó para mí pero [...: join-path] sí. Observación: con join-path no puede elegir el separador. Simplemente usa / como separador.
Si esto no funciona para usted, probablemente necesite instalar y habilitar el módulo "entidad".
coderama
El patrón para Drupal 8 es un poco diferente, por ejemplo: [term:vocabulary]/[term:parents:join:/]/[term:name]
Martin Klíma
6

Este funciona para mí en Drupal 7.15 con Token 7.x-1.3 y Pathauto 7.x-1.2:

[término: padres: unirse: /] / [término: nombre]

Como los brunops declararon en la segunda respuesta, únete:% separator% hace la magia. Reemplaza el guión predeterminado con% separator%.

¡Muchas gracias a los brunops!

peligro
fuente
Esta tiene que ser la respuesta correcta! No importa en absoluto cuántos niveles tenga, esto funcionará.
Rantiev
3

La clave para que esto funcione es:

  • instale y habilite los módulos Entity API, Entity Tokens, Path Auto y Taxonomy.
  • cree un campo en su tipo de contenido y establezca Tipo de campo en Referencia de término y asígnele un nombre similar a 'categoría de contenido de campo' (nombre de máquina)
  • Establezca el Número de valores, también conocido como 'Número máximo de valores que los usuarios pueden ingresar para este campo' a 1 (muy importante si desea utilizar los tokens de ruta combinada que agrega automáticamente un / entre los elementos de ruta).
  • establezca los patrones de URL (admin / config / search / path / patterns) en algo como '[nodo: field-content-category: parents: join-path] / [node: field_content_category] / [node: title]'
rwilson0429
fuente
0

Bueno, recomendaría usar algo inteligente como:

[término: padre: términos: invertido: unirse :?]

Pero no puedo por mi vida conseguir que funcione tampoco. Por lo tanto, recomiendo lo siguiente, pero solo puede ir tan profundo como lo permita la jerarquía (se puede ver en los patrones de reemplazo). Si agrega términos más profundos en la jerarquía, también deberá actualizar el patrón.

[término: padres-todos: 3] / [término: padres-todos: 2] / [término: padres-todos: 1]

7 maravillas
fuente