Mark forums van categorie

Hulp nodig bij een modificaties of op zoek naar een MOD? Bekijk ons archief. Support wordt helaas niet meer verleend.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Mark forums van categorie

Bericht door Luuk » 29 okt 2004, 08:58

Ik heb een script gemaakt dat, als het goed is, alle forums als gelezen markeerd van 1 categorie. Nu werkt dit niet helemaal goed, bij 1 forum waar ongelezen topic in staan doet ie het, maar bij 2 forums, markeerd hij er maar 1 als gelezen. Ook als ik het dan nog een keer op de link klik doet ie het niet.
Het forum met de post eerder (dus zeg maar om 10.10 uur) wordt wel gemarkeerd, het later geposte (10.20) niet.

Dit is mijn code:

Code: Selecteer alles

elseif ( $mark_read == 'category' && $viewcat != -1 )
{
	if ( $userdata['session_logged_in'] )
	{
		$sql = "SELECT forum_id
			FROM " . FORUMS_TABLE . "
			WHERE cat_id = '" . $viewcat . "'";
		if( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not query forum list for marking read', '', __LINE__, __FILE__, $sql);
		}

		$forums_read = array();
		while( $forums_read[] = $db->sql_fetchrow($result) );
		$db->sql_freeresult($result);

		if( ( $total_forums_read = count($forums_read) ) )
		{
		    for($i = 0; $i < $total_forums_read; $i++)
			{
			    $forum_id = $forums_read[$i]['forum_id'];

				$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['Category_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);
}
Het stuk staat in index.php onder het stuk van mark all forums.

De link wordt dan index.php?mark=category&c=1

PS: grotedeels gekopieerd uit viewforum, hoe je daar alle topics als gelezen worden gemarkeerd
Afbeelding

Gesloten