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.