Próbuję ponownie owinąć głowę filtrami kontekstowymi! Użyłem go jakiś czas temu, ale znów byłem kompletnie zakłopotany. Oto, co próbuję zrobić:
- Wygeneruj stronę sklonowanego węzła treści z terminami taksonomii wstawionymi do tej sklonowanej strony.
np .: EXAMPLE.com/white-shoes/blue
Gdy użytkownik przejdzie do strony / white-shoes, wyświetli oryginalną stronę węzła zorientowaną na biały kolor. Teraz, jeśli użytkownik wyląduje na / white-shoes / blue, wyświetli tę samą stronę węzła, ale tym razem cała treść zostanie przepisana, zastępując biały kolor kolorem niebieskim.
W widokach musiałbym utworzyć wyświetlanie strony ze ścieżką:% /%
Teraz utworzę filtr kontekstowy, aby pobrać identyfikator NID. Dodaję Content: nid jako filtr kontekstowy. Wybieram PODAJ DOMYŚLNĄ WARTOŚĆ i umieszczam ten kod PHP:
$ x = drupal_lookup_path ('source', arg (0));
$ y = eksplodować ('/', $ x);
powrotu $ y 1 ;
Ten kod PHP zasadniczo konwertuje część adresu URL / white-shoes na NID. Ale to nie działa. Przetestowałem kod za pośrednictwem drush ev przez terminal i rzeczywiście otrzymałem zwrócony wynik, więc wiem, że działa.
Robię to samo dla nazwy terminu taksonomia i dodam do tego filtr kontekstowy. Tym razem wybieram PODAJ DOMYŚLNĄ WARTOŚĆ, wybieram SUROWĄ WARTOŚĆ Z URL i wybieram drugi argument.
Jak widać, gdy wprowadzę WARTOŚĆ PODGLĄDU dla filtru kontekstowego: AAA / BBB / CCC. Moja wartość domyślna jest ignorowana. To ma być drugi argument, ale tylko pierwszy. Spójrz na instrukcję SQL GDZIE, a zobaczysz, że dostaje AAA, kiedy powinna być BBB.
Pytanie brzmi: co robię źle, czy jest lepsze rozwiązanie tego, co chcę osiągnąć?