Addon:Userliste

Aus VMS1 Tutorial

Dies ist eine alte Version. Zeitpunkt der Bearbeitung: 12:20, 13. Apr. 2011 durch Jpwfour (Diskussion | Beiträge).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Userliste
Zielgruppe Anfänger
Aufwand 5 Minuten
Änderungen an:
Datenbank Nein
vorhandenen Dateien Nein
neue Dateien Ja

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|>
Die Zeile
print_a($row);
innerhalb der Schleife ersetzen mit:
<|>?>|>
	<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();
<|>?>|>
Persönliche Werkzeuge