Chemin du Menu dans Pathauto
Comment puis-je obtenir pathauto sous Drupal 7 pour générer un alias D'URL par le chemin du menu complet?
10 réponses
Juste une mise à jour au cas où quelqu'un rencontrerait cela avec une version plus récente de Pathauto/Token. Cela a fonctionné pour moi:
[node:menu-lien:parents:join-path]/[node:menu-lien]
J'ai fini par utiliser:
[node:menu-link:parent:url:path]/[node:menu-link]
Attention cependant: si le nœud n'a pas de lien de menu, vous finirez sans une page automatiquement aliasée. Du bon côté, cela pourrait vous faire prendre conscience des pages orphelines. (Considérez-le comme une fonctionnalité!)
Notez que l'utilisation du motif:
[node:menu-link:url:path]/[node:menu-link]
Ne donnera que le lien de menu du nœud, pas celui du parent (qui serait nécessaire pour référencer le chemin du parent).
Ou le modèle:
[node:parent:url:path]/[node:menu-link]
Lance une erreur dans mon instance de Drupal 7 à propos des jetons invalides (même si j'ai installé le module token).
[node:menu-link:parent:url:path]/[node:title]
Si le nœud n'est pas dans le menu, il ne crée pas d'alias. Sinon, cela semble fonctionner pour les menus à n niveaux.
Je pense que ce doit être Ce modèle maintenant:
[node:menu-link:url:path]/[node:menu-link]
"chemin" au lieu de "alias"
Vous devrez également installer le module contrib Token - bien que de nombreuses fonctionnalités de Token fassent partie de core dans D7, certains des jetons edge case (comme le chemin de menu complet d'un nœud donné) ne sont pas fournis automatiquement par core.
Qui est installée, je crois que [node:menu-lien:parent] ou [node:menu-lien:parent: "url] devrait fonctionner.
Le modèle qui fonctionne pour moi est le suivant:
[node:menu-link:parent:url:alias]/[node:menu-link]
J'ai également installé le module Token comme suggéré par Eaten. Je ne sais pas si [node:menu-link:parent:url:alias]
fait partie de core ou vit dans contrib.
Si vous essayez de créer des alias pour des pages de 3ème niveau ou plus profondes, par exemple:
Home page
> Level 1 page
> Level 2 page
> Level 3 page
Et vous voulez que l'alias de la page de niveau 3 ressemble à http://domain.com/level-1/level-2/level-3
, Je l'ai fait fonctionner pour moi en définissant mon modèle sur:
[node:menu-link:parent:parent:parent:title]/[node:menu-link:parent:parent:title]/[node:menu-link:parent:title]/[node:title]
Notez que j'ai ajouté :parent
au jeton, et pour le premier je l'ai ajouté deux fois.
C'est la solution que j'utilise:
[node:menu-link:parents:join:/]/[node:menu-link]
Il séparera les éléments de menu parent avec un tiret. C'est ce dont j'ai besoin.
Pour quiconque tombe sur cette réponse, et se demande comment ajouter ceci:
Configuration > recherche et métadonnées > alias D'URL, puis créez sous L'onglet" Patterns".