Sortierung in views-block mit Standardargument über PHP
am 18.02.2011 - 15:09 Uhr in
Hallo ihr, ich stehe mal wieder auf dem Schlauch ....
Ich habe 2 Inhaltstypen: Hauptartikel und Nebenartikel
Im Hauptartikel habe ich ein nodereference-Feld, bei dem man mehrere Nebenartikel auswählen kann. Die Position der Nebenartikel kann man ja schick direkt im Editiermodus verändern. Innerhalb der node-Ausgabe von dem Hauptartikel werden die Nebenartikel nun auch korrekt angezeigt.
Nun möchte ich aber mehr Infos zu den Nebenartikeln ausgeben, weshalb ich ein views gebaut habe, das ich in der Seitenleiste als block anzeige. Ich habe nach einigem Suchen auch code gefunden, wie ich in dem views die Nebenartikel anzeige, die im Hauptartikel ausgewählt sind.
Folgendes habe ich gemacht: Argument "Beitrags-ID", mit "Standardargument zu Verfügung stellen" + "PHP code" und dem folgenden Code:
<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
$node = node_load(arg(1));
foreach ($node->field_nebenartikel AS $nebenartikel) {
$nidartikels[] = $nebenartikel[nid];
}
return implode('+',$nidartikels);
} else {
return FALSE;
}
?>
Dabei ist field_nebenartikel das nodereference-Feld im Hauptartikel.
Das funktioniert sehr gut, aber, die Sortierung im views-Block wird immer nach der node-ID vorgenommen wenn ich kein Sortierungsfeld zusätzlich angebe. Ich möchte aber, dass die Nebenartikel in der Reihenfolge angezeigt werden, wie sie im Hauptartikel angeordnet sind.
Ich verstehe hier aber auch gar nicht, warum das nicht "einfach" so gemacht wird, denn lasse ich mir die Funktion oben mal im Kopf des views-block ausgeben (statt return mit print) dann gibt er mir die IDs der Nebenartikel in der korrekten Reihenfolge aus. Drehe ich die im Hauptartikel um, so werden sie auch mit dem print-Befehl umgedreht. Was mache ich hier falsch? Oder, wie bekomme ich die Sortierung hier korrekt rein?
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 1 Tag 33 Minuten
vor 1 Tag 37 Minuten
vor 5 Tagen 18 Stunden
vor 5 Tagen 20 Stunden
vor 5 Tagen 20 Stunden
vor 5 Tagen 20 Stunden
vor 6 Tagen 18 Stunden
vor 6 Tagen 20 Stunden
vor 1 Woche 16 Stunden
vor 1 Woche 1 Tag