Nach dem Forellen-Thema nun wieder was ernsthaftes. Noch zwei oder drei kleine Änderungen, dann läuft das Board so, wie ich es haben will und ihr habt Ruhe vor mir
In der Mitgliederliste hätte ich gerne noch zwei zusätzliche Spalten:
1. Private Nachricht, damit man auch von der Liste aus eine PN an das Mitglied schicken kann
und
2. eine Spalte die anzeigt, wann das Mitglied das letzte Mal online war.
Beide Daten liegen ja im Profil des Mitglieds vor, dürfte also nicht allzu schwer sein, die in die Liste zu integrieren. Ich bin (noch) zu blöd dazu, aber wie ich Euch mittlerweile kenne, gibt´s dafür bestimmt eine einfache Lösung!
Das kannst du folgendermaßen machen:
Zuerst musst du in den Admin-Panel und die Templates ändern:
Template: memberlist
Code:
<table border="0" cellspacing="$theme[borderwidth]" cellpadding="$theme[tablespace]" class="tborder">
<tr>
<td class="thead" colspan="8"><strong>$lang->member_list</strong></td>
</tr>
<tr>
<td class="tcat"><span class="smalltext"><strong>$lang->username</strong></span></td>
<td class="tcat" align="center"><span class="smalltext"><strong>$lang->email</strong></span></td>
<td class="tcat" align="center"><span class="smalltext"><strong>PM</strong></span></td>
<td class="tcat" align="center"><span class="smalltext"><strong>$lang->website</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>$lang->location</strong></span></td>
<td class="tcat" align="center"><span class="smalltext"><strong>$lang->joined</strong></span></td>
<td class="tcat" align="center"><span class="smalltext"><strong>Letzter Besuch:</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>$lang->posts</strong></span></td>
</tr>
$member
...
Template: memberlist_row
Code:
<tr>
<td class="trow1"><a href="member.php?action=profile&uid=$users[uid]">$users[username]</a></td>
<td class="trow2" align="center">$useremail</td>
<td class="trow1" align="center">$pm</td>
<td class="trow2" align="center">$usersite</td>
<td class="trow1">$users[location]</td>
<td class="trow2">$users[regdate]</td>
<td class="trow1">$users[lastvisit]</td>
<td class="trow2">$users[postnum]</td>
</tr>
und jetzt noch die Datei memberlist.php
Suche nach (ca.Zeile 130):
PHP-Code:
$users['location'] = htmlspecialchars_uni(stripslashes($users['location']));
if($users['hideemail'] != "yes")
{
$useremail = "";
}
else
{
$useremail = "<a href=\"member.php?action=emailuser&uid=$users[uid]\"><img src=\"$theme[imglangdir]/postbit_email.gif\" border=\"0\" /></a>";
}
Füge darunter folgendes ein:
PHP-Code:
if($users['pmnotify'] != "yes")
{
$pm = "";
}
else
{
$pm = "<a href=\"private.php?action=send&uid=$users[uid]\"><img src=\"$theme[imglangdir]/postbit_pm.gif\" border=\"0\" /></a>";
}
$users['lastvisit'] = mydate($mybb->settings['dateformat'], $users['lastvisit']);
müsste eigentlich funktionieren
mfg,
matze
Funktioniert und ist (fast) perfekt!
Im Template "
memberlist" muß der nächste colspan-Wert nach $member auch noch auf "8" geändert werden.
In der "
memberlist.php" habe ich zusätzlich noch
PHP-Code:
$users['lastvisit_time'] = mydate($mybb->settings['timeformat'], $users['lastactive']);
eingefügt um auch die Uhrzeit des letzten Besuchs anzuzeigen und das Template "
memberlist_row" demenstsprechend korrigiert:
Code:
<td class="trow1" align="right">$users[lastvisit] - $users[lastvisit_time] Uhr</td>
Bis hierhin alles prima.
Wenn jetzt aber bei einem Mitglied in der Datenbank im Feld "lastvisit" eine "0" steht, weil z.B. der Account auf Aktivierung wartet, wird in der Mitgliederliste beim letzten Besuch das Datum 01.01.1970 angezeigt.
Durch eine einfache if-else Abfrage läßt sich das doch bestimmt dahingehend ändern, daß in diesem Fall ein kurzer Text (z.B. Account wartet auf Aktivierung, Nie etc.) ausgegeben wird, oder?
Und noch eins obendrauf wenn wir schon dabei sind:
Der letzte Besuch des Mitglieds sollte auch in die Sortier-Optionen (am Ende der Liste) aufgenommen werden, worauf dabei zu achten ist, daß die Ausgabe nach Datum
UND Uhrzeit korrekt ist. Hab´s probiert, komme aber nicht so recht klar damit.
So ... ich schmeiß mich jetzt in die Falle, während ihr Euch damit die Nacht um die Ohren schlagen könnt
Das erste Problem sollte so zu lösen sein:
PHP-Code:
$users['lastvisit'] = mydate($mybb->settings['dateformat'], $users['lastvisit']);
$users['lastvisit_time'] = mydate($mybb->settings['timeformat'], $users['lastactive']);
if ($users['lastvisit'] != "0")
{
$user_last_visit = "".$users['lastvisit']." - ".$users['lastvisit_time']." Uhr";
}
else
{
$user_last_visit = "Nie";
}
Du musst nur im Template
Code:
<td class="trow1" align="right">$users[lastvisit] - $users[lastvisit_time] Uhr</td>
ersetzen durch
Code:
<td class="trow1" align="right">$user_last_visit</td>
@Michael:
Negativ ... das war´s leider nicht
Es wird immer noch der 01.01.1970 angezeigt!
Ich hab´s jetzt mal mit den von Dir beschriebenen Änderungen online gestellt. Guckst Du hier:
www.en-gedi.de/forum/memberlist.php
Da habe ich wohl nicht aufgepasst.
Ersetze in meinem Code die Zeile
PHP-Code:
if ($users['lastvisit'] != "0")
durch
PHP-Code:
if ($users['lastvisit'] != mydate($mybb->settings['dateformat'], "0"))
Danke ... das war´s! Jetzt noch das Ganze in die Sortieroptionen aufnehmen und ich bin glücklich
OK, erster Versuch!
Öffne das Template memberlist und suche nach
Code:
<option value="postnum"$postnumsel>$lang->sort_posts</option>
Darunter einfügen
Code:
<option value="lastvisit"$lastvisitsel>Letzter Besuch</option>
Datei memberlist.php öffnen und suchen nach
PHP-Code:
elseif($mybb->input['by'] == "username")
{
$usernamesel = " selected=\"selected\"";
}
Darunter einfügen:
PHP-Code:
elseif($mybb->input['by'] == "lastvisit")
{
$lastvisitsel = " selected=\"selected\"";
}
Kannst du mir mal bitte deine memberlist.php per Mail an support[at]mybboard[punkt]de schicken? Danke!