Jak zastąpić listę taksonomii / terminu /% w widoku?

28

Mam słownictwo związane z typem treści. Można wybrać tylko jeden termin, aby sklasyfikować węzeł utworzony z tego typu treści. Słownictwo nazywa się Pojazdy i zawiera terminy „samochody, ciężarówki, łodzie”. Typ zawartości jest również nazywany Pojazdy.

Używam path auto, aby wyświetlał [słownictwo: nazwa] / [termin: nazwa], więc po renderowaniu pokaże na przykład site.com/vehicles/trucks, który pokaże wszystkie ciężarówki ... typowe rzeczy Drupala .. Dobrze...

Teraz mam Widok, który jest stroną ze ścieżką „pojazdy”. Skonfigurowano wyświetlanie wszystkich elementów typu „pojazdy”. To wyświetlenie strony jest również skonfigurowane tak, aby przyjmować argument „identyfikator terminu systematyki”.

Zauważ, że gdy obecny jest termin taksonomia, alias URL generowany dla ścieżki taksonomii jest dokładnie taki sam jak na stronie Widoki z podanym argumentem:

URL Aliasowana ścieżka systematyki = pojazdy / ciężarówki. Strona wyświetleń z argumentem = pojazdy / ciężarówki.

To celowo. Moim celem było pokazanie wszystkich wyników tego typu treści, gdy argument nie był obecny, a kiedy był obecny, najważniejsze byłoby filtrowanie wyników na podstawie tego terminu taksonomii ORAZ zachowanie tych samych pól i struktury, jak bez argumentu (takie same jak site.com/vehicles).

Problem polega na tym, że to nie działa zgodnie z oczekiwaniami. site.com/vehicles poprawnie pokazuje mój widok i powiązane filtry. site.com/vehicles/trucks pokazuje tylko zwykłą, nieformalną listę taksonomii dostarczoną przez Drupal.

Czy to dlatego, że argument ID terminu taksonomii nie jest poprawnie skonfigurowany?

Czy to kwestia wagi, gdy haki taksonomiczne strzelają po widokach? Jeśli tak, to w jaki sposób mogę zmienić tutaj ciężary, aby działały poprawnie i dawały mi potrzebne rezultaty?

Wiem, co masz zamiar zasugerować - że widoki mają widok taksonomii / terminu /%, który zastępuje domyślne widoki drupala.

Jednak w moim przypadku to nie zadziała. Mam wiele typów treści, każdy z własnym słownictwem, każdy z widokiem i odrębnym zestawem pól (na przykład domy i samochody mają bardzo różne zestawy pól). Taksonomia / termin /% działałaby, gdyby wszystkie typy treści miały takie same pola, to mogłem po prostu naśladować te w tym zastąpieniu, ale skoro tak nie jest, w jaki sposób mogę poprawnie uzyskać ścieżkę z argumentem pokazującym wyniki na podstawie ten termin słownictwa i zachować moją strukturę pola?

Przepraszam, jeśli to było mylące. Link do strony w celach informacyjnych http://www.buyagainbaby.com . Witryna obecnie używa taksonomii / terminu /% jako nadpisania, ale znowu to musi się zmienić, aby każdy widok był odpowiedzialny za to, jak renderuje swój zestaw wyników na podstawie taksonomii.

blue928
źródło

Odpowiedzi:

20

Wszystkie te odpowiedzi są świetnymi rozwiązaniami i dziękujemy za poświęcenie czasu na udzielenie takich infomatycznych odpowiedzi. Ashlar, twoja odpowiedź wiele mnie nauczyła o działaniu taksonomii, a także o związku między poglądami a taksonomią.

Znalazłem rozwiązanie, które świetnie sprawdza się w mojej sytuacji, i podzielę się tym, na wypadek, gdyby to mogło wam pomóc.

Jak wyjaśniłem powyżej, moim problemem było to, że mój pogląd, bez argumentów, dostarczył wyniki, które chciałem, ale domyślny widok taksonomii z argumentem, czego nie chciałem.

Aby rozwiązać ten problem, zainstalowałem moduł Wyświetlanie taksonomii http://drupal.org/project/taxonomy_display . Następnie przekonfigurowałem każdy widok tak, aby miał jako argument argument identyfikator taksonomii.

Wyświetlanie taksonomii pozwala powiązać słownictwo z określonym widokiem. Teraz, kiedy klikam pojazdy / ciężarówki, które są aliasami dla taksonomii / terminu / 3, widok przejmuje kontrolę i jest to właściwie renderowane z zachowaniem integralności struktury pola.

Jeśli ktoś chce wiedzieć więcej szczegółów na temat konfiguracji, proszę dać mi znać.

blue928
źródło
Twoje rozwiązanie brzmi jak świetny plan! Niestety nie widzę „Wyświetlanie taksonomii pozwala powiązać słownictwo z określonym widokiem” - część… Czy mógłbyś mi to wyjaśnić bardziej szczegółowo?
Michiel,
Po zainstalowaniu modułu wyświetlania taksonomii zobaczysz w jego ustawieniach opcje kontrolujące sposób wyświetlania list terminów taksonomii. Widoki to opcja. Wybierz widok, a następnie wybierz, który element w tym widoku ma wyglądać na liście taksonomii. To wszystko zakłada, że ​​masz już utworzony widok z listą zawartości, tak jak chcesz. Po naciśnięciu przycisku Zapisz lista taksonomii wygląda dokładnie tak, jak wynik widoku wybranego w ustawieniach.
blue928
7

Uważam, że w konfiguracji należy wziąć pod uwagę kilka czynników:

  • Każda ścieżka musi być unikalna, aby uzyskać dostęp do strony, terminu, widoku lub panelu strony. Jeśli masz dwa elementy o tym samym adresie, tracisz kontrolę nad wyświetlaniem. Drupal daje pierwszeństwo terminowi taksonomii nad widokami, więc nie zostanie nazwany. Definicja widoku wykorzystująca taksonomię / termin / # przechwyci termin taksonomii, ale jak wskazałeś, nie wyświetla sensownego adresu URL.

  • Widoki nie reagują na aliasy. Dzieje się tak, ponieważ pierwszą rzeczą, którą Drupal robi z dowolnym żądaniem, jest konwersja aliasu do standardu formatu węzła / nid dla całej zawartości Drupala. Tak więc w twoim przypadku pojazdy / ciężarówki są konwertowane na węzeł / # przypisany do widoku. Widok nie może pobierać kontekstu bezpośrednio z aliasu.

Aby uzyskać to, co chcesz, wykonaj jedną z kilku rzeczy.

  • Utwórz menu z wywołaniami zwrotnymi ustawionymi na ścieżkę widoku. Spowoduje to wygenerowanie poprawnego adresu URL i pozwoli widokowi odpowiedzieć.

  • Używaj paneli z włączonym Page Managerem (w Ctools Suite). Jeśli zdefiniujesz Panel strony zdefiniowany dla odpowiedniego adresu URL, możesz umieścić swój Widok w panelu panelu lub przekazać kontekst ze strony panelu bezpośrednio do panelu zawartości Widoki. Okienko treści nie ma ścieżki. Zamiast tego bierze konteksty, takie jak ścieżka, ustawiona bezpośrednio przez panel strony, aby utworzyć jego zawartość. Ta seria filmów w nodeone.se doskonale pokazuje, jak skutecznie korzystać z paneli i menedżera stron.

  • Innym sposobem na uzyskanie zawartości wyświetleń na ekranie jest użycie modułu szybkich tabel . Nie sądzę, żeby pasowało to do konkretnej sytuacji, ale może również bezpośrednio sięgać do widoków, wybierając zakładki zdefiniowane dla strony.

Łom
źródło
3

Widoki mają wbudowany widok, który emuluje i zastępuje warunki taksonomiczne. Po prostu włącz tę opcję, aby zastąpić wykazy taksonomii widokami. Widok taksonomii

Jeremy John
źródło
2

Zrobiłem podobnie kilka dni temu. Moje rozwiązanie nie jest eleganckie, ale działa. Zrobiłem to, aby zastąpić wyświetlanie terminów taksonomii przy użyciu paneli, a nie widoków. Następnie dodałem wszystkie moje różne widoki dla każdego terminu do obszaru zawartości Panele. Ponieważ w moim przypadku każdy widok ma filtr, który ogranicza go do wyników określonego słownictwa, podczas odwiedzania strony terminów taksonomii pokazuje tylko widok tego konkretnego słownictwa.

Daj mi znać, jeśli potrzebujesz więcej informacji o tym, jak to zaimplementowałem.

Patrick Kenny
źródło
Nie jestem wielkim fanem paneli, ale jest to możliwa droga. Również śledziłem ten samouczek tutaj leveltendesign.com/blog/dustin-currie/… . Działa to doskonale, z tym wyjątkiem, że wykorzystuje numer identyfikacyjny taksonomii, ale potrzebuję nazwy taksonomii, podobnie jak łączników zamiast spacji. Czy zrobiłeś kiedyś takie oszustwo?
blue928
2
Robimy to cały czas. Panele definiują stronę tego (choć domyślnie wyłączoną) po wyjęciu z pudełka, więc nie nazwałbym tego nieelegantem.
mpdonadio
Chciałbym więcej szczegółów! :)
Chris Happy
1

WebbyKat zaproponował świetne rozwiązanie , aby ustawić ścieżkę strony /taxonomy/term/%zamiast/categories/%

Działa, ale przerwie wszystkie Twoje warunki w jeden Widok.

timofey.com
źródło