Template-Array in memberlist.php sortieren?

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
langerxxx
Mitglied
Beiträge: 48
Registriert: 26.05.2003 20:46

Template-Array in memberlist.php sortieren?

Beitrag von langerxxx »

Hallo zusammen,

folgende Frage:

In der memberlist.php wird die User-Liste aus der SQL-Abfrage via

Code: Alles auswählen

$template->assign_block_vars('memberrow', array(
in ein Array geschrieben.

Wie kann ich diese Ergebnisliste bzw. dieses Array nachträglich nach einem bestimmten Feld sortieren, ohne die SQL-Abfrage zu ändern bzw. erneut auszuführen?

Die Befehle usort() und ksort() sind mir grundsätzlich bekannt, ich schaffe es aber nicht, das Array mit der User-Liste anzusprechen.

Danke im Voraus für eure Bemühungen!

Viele Grüße
Dan
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Hallo Dan,
was spricht dagegen, die SQL anzupassen? Es gibt doch nicht umsonst das ORDER BY. Wenn Du mal ein konkretes Beispiel geben würdest, nach was z.B. sortiert wird, wäre die Hilfestellung erheblich einfacher. :)

Grüße,
Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
langerxxx
Mitglied
Beiträge: 48
Registriert: 26.05.2003 20:46

Beitrag von langerxxx »

Hallo Tekin,

ich verändere die aus der SQL-Query gezogenen Daten bevor sie in das Template-Array geschrieben werden.

Konkret: Ich berechne auf Basis der Koordinaten die Entfernung der Mitglieder zu dem aktuell eingeloggten Mitglied. Dies kann ich m.E. nicht im Rahmen der SQL-Query lösen.

Jetzt möchte ich diese Ergebnisliste auch nach der Entfernung sortieren können. Daher suche ich nach einer Option, wie das Array memerrow nachträglich sortiert werden kann.

Any idea?

Danke und viele Grüße
Dan
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

So in der Art könnte es funktionieren:

Code: Alles auswählen

$userrow = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);

// Entfernung für jeden Benutzer berechnen

usort($userrow, 'sort_entfernung');

function sort_entfernung($a, $b)
{
  if ($a['entfernung'] == $b['entfernung'])
  {
    return 0;
  }

  return ($a['entfernung'] < $b['entfernung']) ? 1 : -1;
}
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“