Konwertowanie nazw terminów za pomocą znaków specjalnych na identyfikatory terminów w widokach


11

Mam widok, w którym chcę użyć wielu termID jako argumentów. Chcę użyć nazwy terminu z adresu URL i przekonwertować go na termID. Udało mi się to zrobić dość łatwo i działa z prostymi 1 słowami lub nawet wieloma słowami, zaznaczając „Przekształć myślniki w adresie URL na spacje w argumentach nazw terminów”

Mam kilka terminów, które mają znaki specjalne, np .: „aktualności i polityka”.

Czy jest jakiś sposób, aby mieć ładne adresy URL (wiadomości-polityka) i uzyskać opinie, aby rozpoznać poprawny termin i przekonwertować go na poprawny termID? Czy będę musiał urlencode ampersand? Czy to w ogóle zadziała?

Edycja: Możesz ustawić aliasy ścieżek dla pojedynczych terminów taksonomicznych, ale jest to problem, gdy chcesz użyć terminu nazwa jako drugiego argumentu w ścieżce z wieloma argumentami, np .:

Powiedzmy, że chciałem przefiltrować wyniki wyświetlania według% 1 Wiadomości, potem% 2 Wiadomości i polityka

/ news / news-politics

drugi termin nie zostanie uznany.


Dlaczego nie używasz nazwy terminu jako argumentu?
dobeerman

Ten sam problem. Brakuje ampersand, więc drupal nie może znaleźć terminu. Myślę, że jedyną opcją jest albo zakodowanie adresu URL w ampersand, na które SEO nie są zainteresowane, albo może przechowywanie aliasu ścieżki dla każdego terminu w db. Zastanawiałem się tylko, czy ktoś wcześniej tego doświadczył i ma dobrą strategię.
nickwshaw,

Cóż, jako rozwiązanie krótkoterminowe, zamierzamy po prostu zastąpić i słowem i. Wiadomości i polityka (wiadomości-polityka) będą wiadomościami i polityka (wiadomości-polityka)
nickwshaw

Odpowiedzi:


2

Za pomocą pathauto można skonfigurować automatyczne aliasy dla warunków taksonomii. Pathauto zajmie się Twoimi automatycznie niepoprawnymi znakami URL. Następnie, twoim zdaniem, użyj terminu id jako argumentu. Ścieżka twojego widoku może być albo taksonomią / terminem /%, albo ustawionymi automatycznie /%


1
Dzięki Jepedo. To świetne rozwiązanie dla jednego terminu taksonomicznego. Ale nadal istnieje problem, jeśli chcesz użyć tego terminu jako argumentu wieloznacznego w ścieżce wielu argumentów. Powinienem był o tym wspomnieć w moim oryginalnym poście i teraz go edytowałem.
nickwshaw 11.0411


2

Z powodu długotrwałego błędu w module Widoki zgłoszonego w numerze # 672606: Znaki plus, myślniki i ukośniki do przodu (+ - /) łamią argumenty na Drupal.org, nie można używać ich jako argumentów (lub „filtrów kontekstowych” „w nowszym języku) nazwy terminów zawierające określone znaki specjalne. Proponuje się tam kilka obejść :

  1. Użyj czegoś takiego jak moduł Obliczone pole (obliczone_pole), aby utworzyć przyjazną adresowi URL wartość pola encji terminu, która może być użyta jako argument. Po prostu bądź świadomy (wąskiej?) Szansy na bardzo podobne terminy zapychające się nawzajem, jeśli nie jesteś ostrożny w kwestii wyjątkowości.
  2. Wystarczy użyć identyfikatorów terminów jako argumentów i utworzyć dla nich aliasy ścieżek za pomocą modułu Wyświetl alias (view_alias).
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.