Topic: Bug in update_users_online
Lines 1541-1542 in functions.php, the code doesn't do what the comment says.
// If the entry is older than "o_timeout_visit", update last_visit for the user in question, then delete him/her from the online list
if ($cur_user['idle'] != '0')
This causes the following problem :
User A is inactive for longer than "o_timeout_online"
User B browses the board, user A is removed from the list of online users (idle = 1)
User A is still inactive (reading/writing a very long post)
User B browses the board, user A is completely removed from the online table and sees his date of last visit modified to the date of his last action, THUS loses track of his unread messages.
Users should always be considered as online (idle or not) for as long as o_timeout_visit. My users tend to idle a lot, so I had configured "o_timeout_visit" to 24 hours back in version 1.2.
The code should be :
// If the entry is older than "o_timeout_visit", update last_visit for the user in question, then delete him/her from the online list
if ($cur_user['logged'] < ($now-$forum_config['o_timeout_visit']))
like it was before.