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
Memberlist nach Letztem Beitrag sortieren lassen?
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.
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.
@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
esperitox
Zuletzt geändert von esperitox am 01.05.2003 12:46, insgesamt 1-mal geändert.
-
Jason
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 sortierenAcid hat geschrieben:absolut richtig.![]()
Aber da ma wirklich einiges ändern müsste, ist es einfacher ´n last_post in die users Tabelle einzutragen, wonach dann sortiert werden kann.
Gruß Jason
Zunächst musst Du den Query in der functions_post.php anpassen, der die Usertabelle beim Posten updated (blauer Code ist neu):
Natürlich brauchst Du noch die neue Spalte in der Userstabelle:
Nun musst Du $last_post natürlich noch definieren, passe dazu folgenden Code an (blauer Code is neu):$sql = "UPDATE " . USERS_TABLE . "
SET user_posts = user_posts $sign $last_post
WHERE user_id = $user_id";
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).$sign = ($mode == 'delete') ? '- 1' : '+ 1';
$current_time = time();
$last_post = ($mode != 'delete') ? ', user_last_post = '.$current_time : '';
Natürlich brauchst Du noch die neue Spalte in der Userstabelle:
Nun baust Du den anderen Hack (memberlist.php) wieder aus und änderst die Datei an folgenden Stellen (blauer Code ist neu):ALTER TABLE phpbb_users ADD user_last_post INT(11) NOT NULL DEFAULT '0';
Die Änderung in der memberlist_body.tpl is die gleiche wie bei dem anderen Hack.$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,