comment séparer la hiérarchie de taxonomie à pathauto avec des barres obliques


14

Pathauto semble avoir une façon différente d'aliaser la hiérarchie taxinomique.

Depuis le menu Taxonomie :

  1. Petites annonces> Voitures> Aston Martin> DB9 Coupe
  2. Petites annonces> Emplois> Comptabilité

Ce que je veux, c'est quelque chose comme ça pour l'URL:

  • petites annonces / emplois / comptabilité (pas comptabilité-emplois-petites annonces)

(Notez que Pathautho génère également cela avec des tirets dans l'ordre inverse.)

À Pathauto, j'utilise ce modèle: Default path pattern(s'applique à tous les vocabulaires avec des modèles vides ci-dessous)

[term:parents-all]

Confus.

Réponses:


10

Avec le module Token activé, vous pouvez définir un modèle comme celui-ci:

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

Faites ce modèle aussi longtemps que vous le souhaitez. Vos chemins deviendront alors:

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

etc...


Merci beaucoup à vous! Donc, si j'ai une hiérarchie de taxonomie de 5 niveaux de profondeur (y compris le vocabulaire) qui serait [terme: vocabulaire] / [terme: parent: parent: parent: nom] / [terme: parent: parent: nom] / ... etc. ., droite? Je souhaite que le module de jetons puisse être configuré de manière à ce que vous n'ayez pas besoin de définir à plusieurs reprises parent-enfant de cette manière. Et si, de façon inattendue, votre arbre devient 6 niveaux, vous devrez supprimer et mettre à jour vos chemins pour en inclure un autre, puis atteindre 7 niveaux de profondeur et ainsi de suite. un administrateur met à jour pathauto!
janvier

1
Même s'il s'agit de la réponse acceptée, veuillez consulter la réponse de @ NenadP pour une solution évolutive.
Paul

16

Il existe un moyen intelligent de le faire en utilisant join: /

Dans mon cas, j'ai utilisé:

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

field-taxonomy-skolskiest le champ permettant de choisir le terme dans l'arbre de taxonomie. Les barres obliques seront supprimées, bien qu'il existe un paramètre sous

Administration »Configuration» Recherche et métadonnées »Alias ​​d'URL» Alias ​​d'URL - paramètres

en bas de la page pour la liste déroulante PUNCTUATION . Définissez la barre oblique (/) "aucune action" au lieu de "supprimer".


Bingo! J'ai moi-même proposé la solution non évolutive ci-dessus ( drupal.stackexchange.com/questions/27141/… ) et bien sûr, j'aime beaucoup celle-ci. Je jurerais que cette option de jeton n'a pas été là lorsque je luttais pour que ce modèle fonctionne. Merci!
Artur

2
[...: join: /] n'a pas fonctionné pour moi mais [...: join-path] a fonctionné. Remarque: avec join-path vous ne pouvez pas choisir le séparateur. Il utilise juste / comme séparateur.

Si cela ne fonctionne pas pour vous, vous devrez probablement installer et activer le module "entité".
coderama

Le modèle pour Drupal 8 est un peu différent, par exemple: [term:vocabulary]/[term:parents:join:/]/[term:name]
Martin Klíma

6

Celui-ci fonctionne pour moi sur Drupal 7.15 avec Token 7.x-1.3 et Pathauto 7.x-1.2:

[terme: parents: rejoindre: /] / [terme: nom]

Comme les brunops l'ont dit dans la deuxième réponse, rejoignez:% separator% fait la magie. Il remplace le tiret par défaut par% separator%.

Un grand merci aux brunops!


Cela doit être la bonne réponse! Peu importe le nombre de niveaux dont vous disposez, cela fonctionnera.
Rantiev

3

Les clés pour que cela fonctionne:

  • installez et activez les modules Entity API, Entity Tokens, Path Auto et Taxonomy.
  • créez un champ sur votre type de contenu et définissez Type de champ sur Référence de terme et nommez-le quelque chose comme 'catégorie de contenu de champ' (nom de la machine)
  • Définissez le nombre de valeurs, alias `` Nombre maximum de valeurs que les utilisateurs peuvent entrer pour ce champ '' sur 1 (très important si vous souhaitez utiliser les jetons de chemin d'accès joint qui ajoutent automatiquement un / entre les éléments de chemin).
  • définissez les modèles d'URL (admin / config / search / path / patterns) sur quelque chose comme '[node: field-content-category: parents: join-path] / [node: field_content_category] / [node: title]'

0

Eh bien, je recommanderais d'utiliser quelque chose d'intelligent comme:

[terme: parent: termes: inversé: rejoindre :?]

Mais je ne peux pas pour la vie de moi le faire fonctionner non plus. Donc, je recommande plutôt ce qui suit, mais vous ne pouvez aller aussi loin que la hiérarchie le permet (peut être vu dans les modèles de remplacement). Si vous ajoutez des termes plus profondément dans la hiérarchie, vous devrez également mettre à jour le modèle.

[durée: parents-tous: 3] / [durée: parents-tous: 2] / [durée: parents-tous: 1]

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.