[gelöst] View-Sortierung per Hook on the fly überschreiben
am 29.01.2013 - 16:24 Uhr in
Irgendwie bin ich gerade mit meinem Latein ein wenig am Ende, da mein kleines Hilfsmodul nicht das tut, was es tun soll.
Beim Aufruf der View möchte ich, dass die Nodes anhand einer Zahl dynamisch sortiert ausgegeben werden. Diese Zahl wird in Echtzeit von einer Drittseite gezogen, liegt also noch nicht im Drupal-System vor.
Im Prinzip dachte ich, es wäre eine gute Idee, die Nodes erstmal per View zu ziehen, als Rendered Entity mit einer View Mode über die Display Suite - für eine in Views selbst konfigurierbare Sortierung wäre ich hier ja bereits am Ziel.
Und dann nach der Datenbankabfrage, aber vor der Ausgabe, mit meinem Modul reinzugrätschen und die bestehende Reihenfolge zu ändern - per hook_views_pre_render(&$view)
.
$view->result
schreibe ich auf ein temporäres Array, das ich dann umsortiere, dann setze ich $view->result
zunächst zurück und schreibe die Nodes in der gewünschten Reihenfolge wieder drauf.
Bis hierhin funktioniert das auch alles ganz wunderbar, wie ich per dsm($view->result);
sehen kann - selbst wenn ich das in hook_views_post_render(&$view, &$output, &$cache)
probiere - meine Reihenfolge! Also ist die richtige Sortierung doch bis um Schluss intern vorhanden?
Also z.B.
$view->result[0]->nid 23
$view->result[1]->nid 21
$view->result[2]->nid 24
$view->result[3]->nid 25
$view->result[4]->nid 22
$view->result[5]->nid 26
Node 23 hat die höchste Zahl und soll oben stehen, und so weiter.
Sortierung habe ich in der View selbstredend keine festgelegt, es macht auch keinen Unterschied, ob ich $view->sort
nochmals zurücksetze.
Ergebnis: Ich bekomme immer nur eine Sortierung nach der Node-ID. Wie kann ich meiner Drupal-Installation jetzt mitteilen, dass die oben gezeigte Reihenfolge gewünscht ist, wenn sie mit meinen bisherigen Mitteln einfach nicht greifen will?
- Anmelden oder Registrieren um Kommentare zu schreiben
Hat sich erledigt, nachdem
am 30.01.2013 - 08:19 Uhr
Hat sich erledigt, nachdem ich in Views "Inhalt" statt "Rendered Entity" engestellt habe.
Drupal Freelancer im Rheinland gesucht?
Du bindest aber nicht
am 30.01.2013 - 09:31 Uhr
Du bindest aber nicht zufällig Daten von einer Statistik-Software mit ein oder doch?
gruß pebosi
--
https://pebosi.net