Ian Emu-UK
01-21-2005, 10:40 PM
I have done this myself by 'hacking' (copying and altering a few things is what I'd call it) the markread section in forumdisplay.php
I have all the code from mark read, but have made it markread online and altered the url to online.php?$session[sessionurl] on both occasions.
//##### Mark read Whos online hack #####
if ($_REQUEST['do'] == 'markreadonline')
{
$forumid = intval($_REQUEST['forumid']);
if (!$forumid)
{
if ($bbuserinfo['userid'])
{
$DB_site->query("UPDATE " . TABLE_PREFIX . "user SET lastactivity = " . TIMENOW . ", lastvisit=" . (TIMENOW - 1) . " WHERE userid=$bbuserinfo[userid]");
}
else
{
vbsetcookie('lastvisit', TIMENOW);
}
$url = "online.php?$session[sessionurl]";
eval(print_standard_redirect('markread'));
}
else
{
// temp work around code, I need to find another way to mass set some values to the cookie
$bb_cache_forum_view = unserialize(convert_bbarray_cookie($_COOKIE[COOKIE_PREFIX . 'forum_view']));
require_once('./includes/functions_misc.php');
$childforums = fetch_child_forums($forumid, 'ARRAY');
foreach ($childforums AS $val)
{ // mark the forum and all child forums read
$bb_cache_forum_view["$val"] = TIMENOW;
}
set_bbarray_cookie('forum_view', $forumid, TIMENOW);
if ($foruminfo['parentid'] == -1)
{
$url = "online.php?$session[sessionurl]";
}
else
{
$url = "online.php?$session[sessionurl]";
}
eval(print_standard_redirect('markread_single'));
}
}
//##### End Mark read whos online hack #####
Is there a better/easier way to do this? I don't really understand everthing in there so I don't know what isn't needed or what for this to still work.
I have all the code from mark read, but have made it markread online and altered the url to online.php?$session[sessionurl] on both occasions.
//##### Mark read Whos online hack #####
if ($_REQUEST['do'] == 'markreadonline')
{
$forumid = intval($_REQUEST['forumid']);
if (!$forumid)
{
if ($bbuserinfo['userid'])
{
$DB_site->query("UPDATE " . TABLE_PREFIX . "user SET lastactivity = " . TIMENOW . ", lastvisit=" . (TIMENOW - 1) . " WHERE userid=$bbuserinfo[userid]");
}
else
{
vbsetcookie('lastvisit', TIMENOW);
}
$url = "online.php?$session[sessionurl]";
eval(print_standard_redirect('markread'));
}
else
{
// temp work around code, I need to find another way to mass set some values to the cookie
$bb_cache_forum_view = unserialize(convert_bbarray_cookie($_COOKIE[COOKIE_PREFIX . 'forum_view']));
require_once('./includes/functions_misc.php');
$childforums = fetch_child_forums($forumid, 'ARRAY');
foreach ($childforums AS $val)
{ // mark the forum and all child forums read
$bb_cache_forum_view["$val"] = TIMENOW;
}
set_bbarray_cookie('forum_view', $forumid, TIMENOW);
if ($foruminfo['parentid'] == -1)
{
$url = "online.php?$session[sessionurl]";
}
else
{
$url = "online.php?$session[sessionurl]";
}
eval(print_standard_redirect('markread_single'));
}
}
//##### End Mark read whos online hack #####
Is there a better/easier way to do this? I don't really understand everthing in there so I don't know what isn't needed or what for this to still work.