I have the same issue. I hope there will be a solution soon.
My coding skills are not good and I didn't do anything with php etc. for almost 2 years.
But I think the solution is not that hard to find. I think this is the section in "recentthreads.php":
PHP Code:
// Database read marking
if ($vbulletin->options['threadmarking'] AND $vbulletin->userinfo['userid'])
{
$rthread_fields .= ', threadread.readtime AS threadread, forumread.readtime AS forumread';
$rthread_join .= ' LEFT JOIN ' . TABLE_PREFIX . 'threadread AS threadread ON (threadread.threadid = thread.threadid AND threadread.userid = ' . $vbulletin->userinfo['userid'] . ')
LEFT JOIN ' . TABLE_PREFIX . 'forumread AS forumread ON (thread.forumid = forumread.forumid AND forumread.userid = ' . $vbulletin->userinfo['userid'] . ')';
}
// Thread read marking
if ($vbulletin->options['threadmarking'] AND $vbulletin->userinfo['userid'])
{
if ($thread['threadread'] < $thread['forumread'])
{
$thread['threadread'] = $thread['forumread'];
}
}
// Check the cookie, but only if guest caching is not enabled
else
{
if (!$vb_read_cookies[$thread['forumid']] AND (!$vba_options['portal_guestcache'] OR $pages['name'] != 'home'))
{
$vb_read_cookies[$thread['forumid']] = fetch_bbarray_cookie('forum_view', $thread['forumid']);
}
$thread['threadread'] = ($vb_read_cookies[$thread['forumid']] > $vbulletin->userinfo['lastvisit']) ? $vb_read_cookies[$thread['forumid']] : $vbulletin->userinfo['lastvisit'];
}
$thread['threadtitle'] = $thread['title']; // set for multipage links
$thread = process_thread_array(
$thread,
$thread['threadread'],
$mod_options['portal_threads_showicon']
);
if ($show['gotonewpost'])
{
$pageinfo_newpost = array('goto' => 'newpost');
}
Btw depending on the cookie timeout set in the Admin CP of VB, the Posts get automatically set to read. But even the unread ones.