Ich versuche wieder, mich mit Kontextfiltern zu beschäftigen! Ich habe es vor einiger Zeit benutzt, aber ich war gerade wieder total ratlos. Folgendes versuche ich zu tun:
- Generieren Sie eine geklonte Inhaltsknotenseite mit Taxonomiebegriffen, die in diese geklonte Seite eingefügt werden.
Beispiel: BEISPIEL.com/white-shoes/blue
Wenn ein Benutzer die Seite / white-shoes erreicht, wird die ursprüngliche Knotenseite angezeigt, die auf die weiße Farbe ausgerichtet ist. Wenn der Benutzer nun auf / white-shoes / blue landet, wird dieselbe Knotenseite angezeigt, aber diesmal wird der gesamte Körperinhalt neu geschrieben, wobei die weiße Farbe durch die blaue Farbe ersetzt wird.
In Ansichten müsste ich eine Seitenanzeige mit dem Pfad% /% erstellen
Jetzt würde ich einen Kontextfilter erstellen, um die NID abzurufen. Ich füge Content: nid als Kontextfilter hinzu. Ich wähle PROVIDE A DEFAULT VALUE und gebe diesen PHP-Code ein:
$ x = drupal_lookup_path ('source', arg (0));
$ y = explodieren ('/', $ x);
return $ y 1 ;
Dieser PHP-Code konvertiert im Grunde den / white-shoes-Teil der URL in eine NID. Aber es funktioniert nicht. Ich habe den Code über drush ev über das Terminal getestet und erhalte tatsächlich ein zurückgegebenes Ergebnis, also weiß ich, dass es funktioniert.
Ich mache dasselbe für den Taxonomiebegriffsnamen und füge auch dafür einen Kontextfilter hinzu. Dieses Mal wähle ich PROVIDE A DEFAULT VALUE und wähle RAW VALUE FROM URL und wähle das 2. Argument.
Wie Sie sehen können, wenn ich einen VORSCHAUWERT für den Kontextfilter eingebe: AAA / BBB / CCC. Mein Standardwert wird ignoriert. Es soll das zweite Argument aufgreifen, aber es wird nur das erste. Schauen Sie sich die SQL-Anweisung WHERE an und Sie werden sehen, dass sie AAA erhält, wenn es BBB sein sollte.
Die Frage ist also, was mache ich falsch oder gibt es eine bessere Lösung für das, was ich erreichen möchte?