Memberlist nach Letztem Beitrag sortieren lassen?

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
Jason

Memberlist nach Letztem Beitrag sortieren lassen?

Beitrag von Jason »

Hi,
ich habe in der Memberlist eine spalte hinzugefügt in der die Zeit des letzten Beitrags des jeweiligen Users angezeigt wird nun würde ich die Möglichkeit haben auch danach die memberliste zu sortieren ist das irgendwie möglich?

Hier meine veränderte memberlist: memberlist.php

Bin für jede hilfe dankbar!!

Grüße Jason
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

s.u.
Zuletzt geändert von Acid am 01.05.2003 12:27, insgesamt 1-mal geändert.
Benutzeravatar
esperitox
Mitglied
Beiträge: 803
Registriert: 17.04.2002 21:40
Wohnort: Line 758
Kontaktdaten:

Beitrag von esperitox »

@Acid berichtige mich wenn ich damit falsch liege aber damit wird er nicht viel anfangen können es gibt keine spalte user_last_post o. ähnl. in der Users tabelle wo die Zeit/ID des letzten Beitrags gespeichert ist den ein User gepostet hat :-? man müsste es also aus der Posts tabelle holen dazu müsste man aber eine ganze menge umschreiben...

esperitox
Zuletzt geändert von esperitox am 01.05.2003 12:46, insgesamt 1-mal geändert.
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

absolut richtig. :D
Aber da ma wirklich einiges ändern müsste, ist es einfacher ´n last_post in die users Tabelle einzutragen, wonach dann sortiert werden kann.
Jason

Beitrag von Jason »

Acid hat geschrieben:absolut richtig. :D
Aber da ma wirklich einiges ändern müsste, ist es einfacher ´n last_post in die users Tabelle einzutragen, wonach dann sortiert werden kann.
Ja aber wie krieg ich in diese spalte denn immer das aktuelle datum des letzten Posts rein das müsste dann ja auch Automatisch immer geändert werden wenn der User wieder postet oder hab ich da was falsch verstanden?Weil nach einer leeren spalte kann man ja nicht sortieren :o

Gruß Jason
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Zunächst musst Du den Query in der functions_post.php anpassen, der die Usertabelle beim Posten updated (blauer Code ist neu):
$sql = "UPDATE " . USERS_TABLE . "
SET user_posts = user_posts $sign $last_post
WHERE user_id = $user_id";
Nun musst Du $last_post natürlich noch definieren, passe dazu folgenden Code an (blauer Code is neu):
$sign = ($mode == 'delete') ? '- 1' : '+ 1';
$current_time = time();
$last_post = ($mode != 'delete') ? ', user_last_post = '.$current_time : '';
Das bewirkt, das beim Posten, die aktuelle Zeit in eine Extraspalte in der Userstabelle aufgenommen wird (und das beim Löschen sich daran nix verändert).

Natürlich brauchst Du noch die neue Spalte in der Userstabelle:
ALTER TABLE phpbb_users ADD user_last_post INT(11) NOT NULL DEFAULT '0';
Nun baust Du den anderen Hack (memberlist.php) wieder aus und änderst die Datei an folgenden Stellen (blauer Code ist neu):
$mode_types_text = array($lang['Sort_Joined'], $lang['Sort_Username'], $lang['Last_Post'], $lang['Sort_Location'], $lang['Sort_Posts'], $lang['Sort_Email'], $lang['Sort_Website'], $lang['Sort_Top_Ten']);
$mode_types = array('joindate', 'username', 'lastpost', 'location', 'posts', 'email', 'website', 'topten');

[..]

'L_POSTS' => $lang['Posts'],
'L_POST_TIME' => $lang['Last_Post'],

[..]

case 'joined':
$order_by = "user_regdate ASC LIMIT $start, " . $board_config['topics_per_page'];
break;
case 'lastpost':
$order_by = "user_last_post $sort_order LIMIT $start, " . $board_config['topics_per_page'];
break;


[..]

$sql = "SELECT username, user_last_post, user_id

[..]

$username = $row['username'];
$user_id = $row['user_id'];
$last_post_time = ( $row['user_last_post'] != 0 ) ? create_date($board_config['default_dateformat'], $row['user_last_post'], $board_config['board_timezone']) : $lang['None'];

[..]

'YIM' => $yim,
'LAST_POST_TIME' => $last_post_time,
Die Änderung in der memberlist_body.tpl is die gleiche wie bei dem anderen Hack.
Antworten

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