Conversion des noms de termes avec des caractères spéciaux en ID de termes dans les vues

11

J'ai une vue où je veux utiliser plusieurs termID comme arguments. Je veux utiliser un nom de terme de l'url et le convertir en termID. J'ai réussi à le faire assez facilement et cela fonctionne avec des termes simples de 1 mot ou même plusieurs mots en vérifiant les `` Transformer les tirets dans l'URL en espaces dans les arguments de nom de terme ''

J'ai quelques termes qui ont des caractères spéciaux, par exemple: "actualités et politique".

Existe-t-il un moyen d'avoir de bonnes URL (news-politique) et d'obtenir des vues pour reconnaître le terme correct et le convertir en le termID correct? Vais-je devoir encoder l'esperluette en url? Cela fonctionnera-t-il même?

Modifier: vous pouvez configurer des alias de chemin pour des termes de taxonomie uniques, mais cela pose problème lorsque vous souhaitez utiliser le nom du terme comme deuxième argument dans un chemin avec plusieurs arguments, par exemple:

Supposons que je veuille filtrer les résultats de la vue par% 1 Terme d'actualités puis% 2 Actualités et politique

/ actualités / actualités-politique

le deuxième mandat ne serait pas reconnu.

nickwshaw
la source
Pourquoi vous n'utilisez pas le nom du terme comme argument?
dobeerman
Même problème. L'esperluette manque, alors Drupal ne peut pas trouver le terme. Je pense que la seule option consiste à encoder l'esperluette sur laquelle le SEO ne tient pas ou à stocker un alias de chemin pour chaque terme dans la base de données. Je me demandais simplement si quelqu'un avait déjà rencontré cela auparavant et avait une bonne stratégie.
nickwshaw
Eh bien, comme solution à court terme, nous allons simplement remplacer & par le mot et. Alors News & Politics (news-politique) sera News and Politics (news-politique)
nickwshaw

Réponses:

2

Vous pouvez utiliser pathauto pour configurer des alias automatiques pour vos termes de taxonomie. Pathauto prendra soin des caractères d'URL invalides pour vous lors de la création des alias automatiques. Ensuite, à votre avis, utilisez le terme id comme argument. Le chemin de votre vue peut être la taxonomie / terme /% ou les auto-alias que vous avez configurés /%

Jepedo
la source
1
Merci Jepedo. C'est une excellente solution pour un seul terme de taxonomie. Mais il y a toujours un problème si vous souhaitez utiliser le terme comme argument générique dans un chemin à plusieurs arguments. J'aurais dû le mentionner dans mon message d'origine et je l'ai maintenant modifié.
nickwshaw
2

En raison d'un bogue de longue date dans le module Vues signalé au problème n ° 672606: les signes Plus, les tirets et les barres obliques (+ - /) interrompent les arguments sur Drupal.org, il n'est pas possible de les utiliser comme arguments (ou "filtres contextuels"). "dans un langage plus récent) des noms de termes qui contiennent certains caractères spéciaux. Quelques solutions de contournement y sont proposées :

  1. Utilisez quelque chose comme le module Champ calculé (computed_field) pour créer une valeur de champ compatible URL sur le terme entité qui peut être utilisée comme argument. Soyez juste conscient de la chance (mince?) De termes très similaires qui s'entrechoquent si vous ne faites pas attention à l'unicité.
  2. Utilisez simplement les ID de terme pour les arguments et créez des alias de chemin pour eux en utilisant le module View Alias (view_alias).
TravisCarden
la source