irgendwie triebs mich grad dazu, einen kleinen Hack für die index.php zu schreiben, mit dem man auch einzelne Kategorien als gelesen markieren kann. Dafür nach
Code: Alles auswählen
if( $mark_read == 'forums' )
{
if( $userdata['session_logged_in'] )
{
setcookie($board_config['cookie_name'] . '_f_all', time(), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
}
$template->assign_vars(array(
"META" => '<meta http-equiv="refresh" content="3;url=' .append_sid("index.$phpEx") . '">')
);
$message = $lang['Forums_marked_read'] . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a> ');
message_die(GENERAL_MESSAGE, $message);
}
Code: Alles auswählen
elseif ( $mark_read == 'cat' && $viewcat > -1 )
{
$sql = 'SELECT forum_id FROM ' . FORUMS_TABLE . ' WHERE cat_id = ' . $viewcat;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
}
$forum_data = array();
while( $row = $db->sql_fetchrow($result) )
{
$forum_data[] = $row;
}
$db->sql_freeresult($result);
$total_forums = count($forum_data);
$is_auth_ary = array();
$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data);
for ( $i = 0; $i <= $total_forums; $i++ )
{
$forum_id = $forum_data[$i]['forum_id'];
if ( $is_auth_ary[$forum_id]['auth_view'] )
{
// als gelesen markieren
// kopiert aus viewforum.php, zeilen 126 - 151
$sql = "SELECT MAX(post_time) AS last_post
FROM " . POSTS_TABLE . "
WHERE forum_id = $forum_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
$tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array();
$tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array();
if ( ( count($tracking_forums) + count($tracking_topics) ) >= 150 && empty($tracking_forums[$forum_id]) )
{
asort($tracking_forums);
unset($tracking_forums[key($tracking_forums)]);
}
if ( $row['last_post'] > $userdata['user_lastvisit'] )
{
$tracking_forums[$forum_id] = time();
setcookie($board_config['cookie_name'] . '_f', serialize($tracking_forums), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
}
}
}
}
$template->assign_vars(array(
"META" => '<meta http-equiv="refresh" content="3;url=' . append_sid("index.$phpEx?" . POST_CAT_URL . '=' . $viewcat ) . '">')
);
$message = $lang['Forums_marked_read'] . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx?" . POST_CAT_URL . '=' . $viewcat ) . '">', '</a> ');
message_die(GENERAL_MESSAGE, $message);
}
Code: Alles auswählen
$template->set_filenames(array(
'body' => 'index_body.tpl')
);
Code: Alles auswählen
$mark_read_URL = append_sid("index.$phpEx?mark=forums");
if ( $viewcat <> -1 ) $mark_read_URL = append_sid("index.$phpEx?mark=cat&" . POST_CAT_URL . "=" . $viewcat);
Code: Alles auswählen
'L_MARK_FORUMS_READ' => $lang['Mark_all_forums'],
'U_MARK_READ' => append_sid("index.$phpEx?mark=forums"))
Code: Alles auswählen
'L_MARK_FORUMS_READ' => $lang['Mark_all_forums'],
'U_MARK_READ' => $mark_read_URL)