Mehrere Kontextfilter kombiniert klappt nicht

am 05.07.2012 - 12:10 Uhr in
Ich habe einen ersten Kontext-Filter erstellt, der mir ähnliche Nodes anhand eines Node-Referenz-Feldes rausfiltert. Nun will ich mit einem zweiten Kontext Filter den Beitrag selbst ausschließen. Doch leider klappt das nicht. Hatte jemand schonmal ähnliche Probleme mit kombinierten Kontext-Filtern?
Hier etwas detaillierter. Mein erster Filter:
- field_projekt
- Vorgabewert -> Beitrags-ID aus der URL
- mit PHP-Evaluation:
<?php
$node = @node_load($argument);
if ($node != "")
{
$field = field_get_items("node", $node, "field_projekt");
if(is_array($field))
{
$fields = array(); // array mit nur den keys
foreach($field as $k => $v) $fields[$k] = $v['nid'];
$handler->argument = $fields;
return true;
}
}
return false;
?>
Soweit klappt das auch gut. Danach zeigt mein Block nur die Nodes mit dem gleichen Wert im Feld field_projekt. Doch leider auch den Node selbst, der ja schon angezeigt wird. Darum versuche ich den auszuschließen mit einem 2. Kontext-Filter:
- Beitrags-ID
- Vorgabewert -> Beitrags-ID aus der URL
- mit einem Häkchen bei "ausschließen"
Nun zeigt mir mein View gar nichts mehr an. Ich sehe nicht was ich falsch gemacht haben könnte. Kann das vielleicht noch ein Bug in Views sein?
Über Lösungsansätze und Ideen freue ich mich.
LG, Michael
Anhang | Größe |
---|---|
Meine 2 Kontextfilter kombiniert | 4.18 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
Noch eine merkwürdige
am 05.07.2012 - 12:47 Uhr
Noch eine merkwürdige Beobachtung, die vielleicht weiter helfen kann:
Wenn ich den Ausschluss-Filter an erste Stelle setze, erhalte ich in der PHP-Evaluation des nächsten Filters die Variable $argument ohne Wert (NULL). Scheinbar ist der mehrfache Zugriff auf Node ID aus der URL irgendwie problematisch.
Kann man den Node ID aus der URL auch per PHP rausfinden? Dann könnte ich vielleicht als Vorgabewert eigenen PHP-Code einsetzen...
Provisorische Lösung
am 05.07.2012 - 13:20 Uhr
Fehler ist zwar nicht weg, aber jetzt hat's über Umwege geklappt:
<?php
return $view->args[0]; // liefert den Node ID
?>