Addon:Userliste
Aus VMS1 Tutorial
Dieses Addon fügt dem VMS eine neue Seite hinzu, auf der alle angemeldeten Benutzer aufgelistet werden.
Inhaltsverzeichnis |
Schritt 1: Neue Seite/Datei anlegen
Im Verzeichnis /content/intern/ eine leere PHP Datei anlegen mit dem Namen: userliste.php
In diese Datei zuerst das Grundgerüst einer VMS Seite setzen:
<|><?php|> head("Userliste"); foot(); <|>?>|>
Das Ergebnis kann man dann schon mal prüfen, indem man die Seite aufruft (URL: index.php?content=/intern/userliste).
Schritt 2: Informationen aus der Datenbank holen
Wir wollen in einer Tabelle folgende Informationen aller User ausgeben: User ID, Nickname, Anmeldedatum, Status des Accounts.
Die entsprechende MySQL Anfrage:
SELECT k.uid, k.status, u.nickname, u.angemeldet_seit FROM vms_kontodaten AS k LEFT JOIN vms_userdaten AS u ON u.uid=k.uid ORDER BY k.uid ASC
In die Datei zwischen head() und foot() nun folgenden Code einfügen:
$daten = db_query("SELECT k.uid, k.status, u.nickname, u.angemeldet_seit FROM ".$db_prefix."_kontodaten AS k LEFT JOIN ".$db_prefix."_userdaten AS u ON u.uid=k.uid ORDER BY k.uid ASC"); <|>while|>($row=<|>mysql_fetch_assoc|>($daten)){ print_a($row); }
Ergebnis: index.php?content=/intern/userliste
Schritt 3: Ausgabe formatieren
Die bisher erstellte Seite enthält zwar schon alle Informationen, aber nicht in einer gut lesbaren oder schönen Form. Daher soll die Datei um eine HTML Tabelle erweitert werden und die Ausgabe formatiert (bspw. das Datum als Tag.Monat.Jahr) werden.
Nach head() den Tabellenkopf einfügen:
<|>?>|> <table> <tr> <th>ID</th> <th>Nickname</th> <th>Anmeldedatum</th> <th>Status</th> </tr> <|><?php|> $gfx_status = <|>array|>(); $gfx_status[0] = '<img src="images/gelb.gif" width="15" height="15" border="0" alt="Nicht freigeschaltet" title="Nicht freigeschaltet">'; $gfx_status[1] = '<img src="images/gruen.gif" width="15" height="15" border="0" alt="Aktiv" title="Aktiv">'; $gfx_status[2] = '<img src="images/rot.gif" width="15" height="15" border="0" alt="Gesperrt" title="Gesperrt">';
Und direkt vor dem foot() bzw. dem Ende der while-Schleife die Tabelle wieder schließen mit:
<|>?>|> </table> <|><?php|>
print_a($row);
<|>?>|> <tr> <td align="right"><?php <|>echo|> $row['uid']; ?></td> <td><?php <|>echo|> $row['nickname']; ?></td> <td align="right"><?php <|>echo|> <|>date|>('d.m.Y', $row['angemeldet_seit']); ?></td> <td align="center"><?php <|>echo|> $gfx_status[$row['status']]; ?></td> </tr> <|><?php|>
Das Ergebnis sieht dann in etwa so aus: index.php?content=/intern/userliste
Schritt 4: Link setzen
Damit die Mitgliederliste für alle Besucher der Seite erreichbar ist, muss diese abschließend noch verlinkt werden, bspw. im rechten oder linken Menü:
<li><a href="?content=/intern/userliste">Userliste</a></li>
Komplette Datei
Die Datei (und die Dateien zu den 2 Zwischenschritten) kann als Datei:Userliste.zip heruntergeladen werden.
<|><?php|> head("Userliste"); <|>?>|> <table> <tr> <th>ID</th> <th>Nickname</th> <th>Anmeldedatum</th> <th>Status</th> </tr> <|><?php|> $gfx_status = <|>array|>(); $gfx_status[0] = '<img src="images/gelb.gif" width="15" height="15" border="0" alt="Nicht freigeschaltet" title="Nicht freigeschaltet">'; $gfx_status[1] = '<img src="images/gruen.gif" width="15" height="15" border="0" alt="Aktiv" title="Aktiv">'; $gfx_status[2] = '<img src="images/rot.gif" width="15" height="15" border="0" alt="Gesperrt" title="Gesperrt">'; $daten = db_query("SELECT k.uid, k.status, u.nickname, u.angemeldet_seit FROM ".$db_prefix."_kontodaten AS k LEFT JOIN ".$db_prefix."_userdaten AS u ON u.uid=k.uid ORDER BY k.uid ASC"); <|>while|>($row=<|>mysql_fetch_assoc|>($daten)){ <|>?>|> <tr> <td align="right"><?php <|>echo|> $row['uid']; ?></td> <td><?php <|>echo|> $row['nickname']; ?></td> <td align="right"><?php <|>echo|> <|>date|>('d.m.Y', $row['angemeldet_seit']); ?></td> <td align="center"><?php <|>echo|> $gfx_status[$row['status']]; ?></td> </tr> <|><?php|> } <|>?>|> </table> <|><?php|> foot(); <|>?>|>