keep unread flags

All new MODs released in our MOD Database will be announced in here. All support for released MODs needs to take place in here. No new MODs will be accepted into the MOD Database for phpBB2
Forum rules
READ: phpBB.com Board-Wide Rules and Regulations

On February 1, 2009 this forum will be set to read only as part of retiring of phpBB2.

Rating:

Excellent!
72
75%
Very Good
16
17%
Good
4
4%
Fair
0
No votes
Poor
4
4%
 
Total votes: 96

ashleypb
Registered User
Posts: 6
Joined: Fri Jun 22, 2007 9:38 am

Re: keep unread flags

Post by ashleypb »

Hi,

Just installed this mod, but now when a member post a new thread/topic it doesnt show up as a new post on the index.php page.

But it does display as a new post if you go to viewforum.php

this is my index.php if its anyhelp

Code: Select all

<?php
//-- mod : keep unread -----------------------------------------------------------------------------
/***************************************************************************
 *                                index.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: index.php,v 1.99.2.7 2006/01/28 11:13:39 acydburn Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
if ($userdata['user_id'] == ANONYMOUS)
{
redirect(append_sid('login.'.$phpEx));
}

//
// End session management
//
//-- mod : keep unread -----------------------------------------------------------------------------
//-- add
// get last visit for guest
if ( !$userdata['session_logged_in'] )
{
	$userdata['user_lastvisit'] = $board_config['guest_lastvisit'];
}
//-- fin mod : keep unread -------------------------------------------------------------------------

$viewcat = ( !empty($HTTP_GET_VARS[POST_CAT_URL]) ) ? $HTTP_GET_VARS[POST_CAT_URL] : -1;

if( isset($HTTP_GET_VARS['mark']) || isset($HTTP_POST_VARS['mark']) )
{
	$mark_read = ( isset($HTTP_POST_VARS['mark']) ) ? $HTTP_POST_VARS['mark'] : $HTTP_GET_VARS['mark'];
}
else
{
	$mark_read = '';
}

//
// Handle marking posts
//
if( $mark_read == 'forums' )
{
	//-- mod : keep unread -----------------------------------------------------------------------------
//-- delete
//	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']);
//	}
//-- add
	// set the cookie to mark all and clean the others
	$board_config['tracking_all'] = time();
	$board_config['tracking_forums'] = array();
	$board_config['tracking_topics'] = array();
	$board_config['tracking_unreads'] = array();
	write_cookies($userdata);
//-- fin mod : keep unread -------------------------------------------------------------------------

	$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);
}
//
// End handle marking posts
//

//-- mod : keep unread -----------------------------------------------------------------------------
//-- delete
// $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_t"]) : array();
// $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_f"]) : array();
//-- fin mod : keep unread -------------------------------------------------------------------------


//
// If you don't use these stats on your index you may want to consider
// removing them
//
$total_posts = get_db_stat('postcount');
$total_users = get_db_stat('usercount');
$newest_userdata = get_db_stat('newestuser');
$newest_user = $newest_userdata['username'];
$newest_uid = $newest_userdata['user_id'];

if( $total_posts == 0 )
{
	$l_total_post_s = $lang['Posted_articles_zero_total'];
}
else if( $total_posts == 1 )
{
	$l_total_post_s = $lang['Posted_article_total'];
}
else
{
	$l_total_post_s = $lang['Posted_articles_total'];
}

if( $total_users == 0 )
{
	$l_total_user_s = $lang['Registered_users_zero_total'];
}
else if( $total_users == 1 )
{
	$l_total_user_s = $lang['Registered_user_total'];
}
else
{
	$l_total_user_s = $lang['Registered_users_total'];
}


//
// Start page proper
//
$sql = "SELECT c.cat_id, c.cat_title, c.cat_order
	FROM " . CATEGORIES_TABLE . " c 
	ORDER BY c.cat_order";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql);
}

$category_rows = array();
while ($row = $db->sql_fetchrow($result))
{
	$category_rows[] = $row;
}
$db->sql_freeresult($result);
// Begin Simple Subforums MOD
$subforums_list = array();
// End Simple Subforums MOD

if( ( $total_categories = count($category_rows) ) )
{
	//
	// Define appropriate SQL
	//
	switch(SQL_LAYER)
	{
		case 'postgresql':
			$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id 
				FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u
				WHERE p.post_id = f.forum_last_post_id 
					AND u.user_id = p.poster_id  
					UNION (
						SELECT f.*, NULL, NULL, NULL, NULL
						FROM " . FORUMS_TABLE . " f
						WHERE NOT EXISTS (
							SELECT p.post_time
							FROM " . POSTS_TABLE . " p
							WHERE p.post_id = f.forum_last_post_id  
						)
					)
					ORDER BY cat_id, forum_order";
			break;

		case 'oracle':
			$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id 
				FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u
				WHERE p.post_id = f.forum_last_post_id(+)
					AND u.user_id = p.poster_id(+)
				ORDER BY f.cat_id, f.forum_order";
			break;

		default:
			$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
				FROM (( " . FORUMS_TABLE . " f
				LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
				LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
				ORDER BY f.cat_id, f.forum_order";
			break;
	}
	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);

	if ( !($total_forums = count($forum_data)) )
	{
		message_die(GENERAL_MESSAGE, $lang['No_forums']);
	}

	//
	// Obtain a list of topic ids which contain
	// posts made since user last visited
	//
//-- mod : keep unread -----------------------------------------------------------------------------
//-- delete
//	if ( $userdata['session_logged_in'] )
//	{
//-- add
	// unreads
	$sql_unreads = '';
	if ( !empty($board_config['tracking_unreads']) )
	{
		// get the unreads topic id
		@reset($board_config['tracking_unreads']);
		while ( list($id, $time) = @each($board_config['tracking_unreads']) )
		{
			// don't add obsolete cookies
			if ( ($time > intval($board_config['tracking_all'])) && ($time > intval($board_config['tracking_topics'][$id])) )
			{
				$sql_unreads .= ( empty($sql_unreads) ? '' : ', ' ) . $id;
			}
		}
		if ( !empty($sql_unreads) )
		{
			$sql_unreads = " OR t.topic_id IN ($sql_unreads)";
		}
	}

	// prepare the result
	$new_unreads = array();
//-- fin mod : keep unread -------------------------------------------------------------------------
		// 60 days limit
		if ($userdata['user_lastvisit'] < (time() - 5184000))
		{
			$userdata['user_lastvisit'] = time() - 5184000;
		}

		//-- mod : keep unread -----------------------------------------------------------------------------
// here we added
//	([../..] $sql_unreads)
//-- modify
		$sql = "SELECT t.forum_id, t.topic_id, p.post_time 
			FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p 
			WHERE p.post_id = t.topic_last_post_id 
				AND (p.post_time > " . $userdata['user_lastvisit'] . " $sql_unreads)
				AND t.topic_moved_id = 0"; 
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql);
		}
//-- fin mod : keep unread -------------------------------------------------------------------------
		$new_topic_data = array();
		while( $topic_data = $db->sql_fetchrow($result) )
		{
		//-- mod : keep unread -----------------------------------------------------------------------------
//-- add
		// check the validity of the cookies : forum
		if ( isset($board_config['tracking_forums'][ $topic_data['forum_id'] ]) )
		{
			if ( !empty($board_config['tracking_all']) && ($board_config['tracking_all'] >= $board_config['tracking_forums'][ $topic_data['forum_id'] ]) )
			{
				unset($board_config['tracking_forums'][ $topic_data['forum_id'] ]);
			}
		}

		// topic cookie still valid ?
		if ( isset($board_config['tracking_topics'][ $topic_data['topic_id'] ]) )
		{
			if ( 
				( !empty($board_config['tracking_all']) && ($board_config['tracking_all'] >= $board_config['tracking_topics'][ $topic_data['topic_id'] ]) ) ||
				( isset($board_config['tracking_forums'][ $topic_data['forum_id'] ]) && ($board_config['tracking_forums'][ $topic_data['forum_id'] ] >= $board_config['tracking_topics'][ $topic_data['topic_id'] ]) )
			)
			{
				unset($board_config['tracking_topics'][ $topic_data['topic_id'] ]);
			}
		}

		// unread cookie still valid ?
		if ( isset($board_config['tracking_unreads'][ $topic_data['topic_id'] ]) )
		{
			if ( 
				( !empty($board_config['tracking_all']) && ($board_config['tracking_all'] >= $board_config['tracking_unreads'][ $topic_data['topic_id'] ]) ) ||
				( isset($board_config['tracking_forums'][ $topic_data['forum_id'] ]) && ($board_config['tracking_forums'][ $topic_data['forum_id'] ] >= $board_config['tracking_unreads'][ $topic_data['topic_id'] ]) ) ||
				( isset($board_config['tracking_topics'][ $topic_data['topic_id'] ]) && ($board_config['tracking_topics'][ $topic_data['topic_id'] ] >= $board_config['tracking_unreads'][ $topic_data['topic_id'] ]) )
			)
			{
				unset($board_config['tracking_unreads'][ $topic_data['topic_id'] ]);
			}
		}

		// have we got a last visit time for this topic
		$topic_last_read = intval($board_config['tracking_unreads'][ $topic_data['topic_id'] ]);
		if ( !empty($board_config['tracking_all']) && ($board_config['tracking_all'] > $topic_last_read) )
		{
			$topic_last_read = $board_config['tracking_all'];
		}
		if ( isset($board_config['tracking_forums'][ $topic_data['forum_id'] ]) && ($board_config['tracking_forums'][ $topic_data['forum_id'] ] > $topic_last_read) )
		{
			$topic_last_read = $board_config['tracking_forums'][ $topic_data['forum_id'] ];
		}
		if ( isset($board_config['tracking_topics'][ $topic_data['topic_id'] ]) && ($board_config['tracking_topics'][ $topic_data['topic_id'] ] > $topic_last_read) )
		{
			$topic_last_read = $board_config['tracking_topics'][ $topic_data['topic_id'] ];
		}
		if ( empty($topic_last_read) )
		{
			$topic_last_read = $userdata['user_lastvisit'];
		}

		// check the topic last visit time
		if ( $topic_data['post_time'] > $topic_last_read )
		{
			$new_unreads[ $topic_data['topic_id'] ] = $topic_last_read;
//-- fin mod : keep unread -------------------------------------------------------------------------
			$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
		}
		$db->sql_freeresult($result);
	}
//-- mod : keep unread -----------------------------------------------------------------------------
//-- add
	// update the unread topics from the list readed
	$board_config['tracking_unreads'] = $new_unreads;

	// save the cookies
	write_cookies($userdata);
//-- fin mod : keep unread -------------------------------------------------------------------------
	//
	// Obtain list of moderators of each forum
	// First users, then groups ... broken into two queries
	//
	$sql = "SELECT aa.forum_id, u.user_id, u.username 
		FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u
		WHERE aa.auth_mod = " . TRUE . " 
			AND g.group_single_user = 1 
			AND ug.group_id = aa.group_id 
			AND g.group_id = aa.group_id 
			AND u.user_id = ug.user_id 
		GROUP BY u.user_id, u.username, aa.forum_id 
		ORDER BY aa.forum_id, u.user_id";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
	}

	$forum_moderators = array();
	while( $row = $db->sql_fetchrow($result) )
	{
		$forum_moderators[$row['forum_id']][] = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '">' . $row['username'] . '</a>';
	}
	$db->sql_freeresult($result);

	$sql = "SELECT aa.forum_id, g.group_id, g.group_name 
		FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g 
		WHERE aa.auth_mod = " . TRUE . " 
			AND g.group_single_user = 0 
			AND g.group_type <> " . GROUP_HIDDEN . "
			AND ug.group_id = aa.group_id 
			AND g.group_id = aa.group_id 
		GROUP BY g.group_id, g.group_name, aa.forum_id 
		ORDER BY aa.forum_id, g.group_id";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
	}

	while( $row = $db->sql_fetchrow($result) )
	{
		$forum_moderators[$row['forum_id']][] = '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=" . $row['group_id']) . '">' . $row['group_name'] . '</a>';
	}
	$db->sql_freeresult($result);

	//
	// Find which forums are visible for this user
	//
	$is_auth_ary = array();
	$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data);
// Start add - Last visit MOD
$time_now=time();
$time1Hour=$time_now-3600;
$minutes = date('is', $time_now);
$hour_now = $time_now - (60*($minutes[0].$minutes[1])) - ($minutes[2].$minutes[3]); 
$dato=create_date('H', $time_now,$board_config['board_timezone']);
$timetoday = $hour_now - (3600*$dato); 
$sql = 'SELECT session_ip, MAX(session_time) as session_time FROM '.SESSIONS_TABLE.' WHERE session_user_id="'.ANONYMOUS.'" AND session_time >= '.$timetoday.' AND session_time< '.($timetoday+86399).' GROUP BY session_ip';
if (!$result = $db->sql_query($sql)) message_die(GENERAL_ERROR, "Couldn't retrieve guest user today data", "", __LINE__, __FILE__, $sql); 
while( $guest_list = $db->sql_fetchrow($result))
{ 
	if ($guest_list['session_time'] >$time1Hour) $users_lasthour++;
}
$guests_today = $db->sql_numrows($result);
$sql = 'SELECT user_id,username,user_allow_viewonline,user_level,user_lastlogon FROM ' . USERS_TABLE . ' WHERE user_id!="'.ANONYMOUS.'" AND user_session_time >= '.$timetoday.' AND user_session_time< '.($timetoday+86399).' ORDER BY username'; 
if (!$result = $db->sql_query($sql)) message_die(GENERAL_ERROR, "Couldn't retrieve user today data", "", __LINE__, __FILE__, $sql); 
while( $todayrow = $db->sql_fetchrow($result)) 
{ 
	$style_color = ""; 
	if ($todayrow['user_lastlogon']>=$time1Hour)
	{
		$users_lasthour++;
	}
	switch ($todayrow['user_level'])
	{
		case ADMIN :
		      $todayrow['username'] = '<b>' . $todayrow['username'] . '</b>'; 
      		$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
			break;
		case MOD :
		      $todayrow['username'] = '<b>' . $todayrow['username'] . '</b>'; 
      		$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
			break;
	}
 	$users_today_list.=( $todayrow['user_allow_viewonline'])?' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'>' . $todayrow['username'] . '</a>,' : (($userdata[user_level]==ADMIN) ? ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'><i>' . $todayrow['username'] . '</i></a>,' : '');
	if (!$todayrow['user_allow_viewonline']) $logged_hidden_today++;
	else $logged_visible_today++;
}
if ($users_today_list) 
{
	$users_today_list[ strlen( $users_today_list)-1] = ' '; 
} else
{
	$users_today_list = $lang['None'];
}
$total_users_today = $db->sql_numrows($result)+$guests_today;

$users_today_list = $lang['Registered_users'].' ' . $users_today_list;
$l_today_user_s = ($total_users_today) ? ( ( $total_users_today == 1 )? $lang['User_today_total'] : $lang['Users_today_total'] ) : $lang['Users_today_zero_total'];
$l_today_r_user_s = ($logged_visible_today) ? ( ( $logged_visible_today == 1 ) ? $lang['Reg_user_total'] : $lang['Reg_users_total'] ) : $lang['Reg_users_zero_total'];
$l_today_h_user_s = ($logged_hidden_today) ? (($logged_hidden_today == 1) ? $lang['Hidden_user_total'] : $lang['Hidden_users_total'] ) : $lang['Hidden_users_zero_total'];
$l_today_g_user_s = ($guests_today) ? (($guests_today == 1) ? $lang['Guest_user_total'] : $lang['Guest_users_total']) : $lang['Guest_users_zero_total'];
$l_today_users = sprintf($l_today_user_s, $total_users_today);
$l_today_users .= sprintf($l_today_r_user_s, $logged_visible_today); 
$l_today_users .= sprintf($l_today_h_user_s, $logged_hidden_today); 
$l_today_users .= sprintf($l_today_g_user_s, $guests_today);
// End add - Last visit MOD
	//
	// Start output of page
	//
	define('SHOW_ONLINE', true);
	$page_title = $lang['Index'];
	include($phpbb_root_path . 'includes/page_header.'.$phpEx);

	$template->set_filenames(array(
		'body' => 'index_body.tpl')
	);

	$template->assign_vars(array(
		'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
		'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
		'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'), 

		'FORUM_IMG' => $images['forum'],
		'FORUM_NEW_IMG' => $images['forum_new'],
		'FORUM_LOCKED_IMG' => $images['forum_locked'],
// Start add - Last visit MOD
'USERS_TODAY_LIST' => $users_today_list,

'L_USERS_LASTHOUR' =>($users_lasthour)?sprintf($lang['Users_lasthour_explain'],$users_lasthour):$lang['Users_lasthour_none_explain'],
'L_USERS_TODAY' =>$l_today_users,
// End add - Last visit MOD
		'L_FORUM' => $lang['Forum'],
		// Begin Simple Subforums MOD
		'L_SUBFORUMS' => $lang['Subforums'],
		// End Simple Subforums MOD
		'L_TOPICS' => $lang['Topics'],
		'L_REPLIES' => $lang['Replies'],
		'L_VIEWS' => $lang['Views'],
		'L_POSTS' => $lang['Posts'],
		'L_LASTPOST' => $lang['Last_Post'], 
		'L_NO_NEW_POSTS' => $lang['No_new_posts'],
		'L_NEW_POSTS' => $lang['New_posts'],
		'L_NO_NEW_POSTS_LOCKED' => $lang['No_new_posts_locked'], 
		'L_NEW_POSTS_LOCKED' => $lang['New_posts_locked'], 
		'L_ONLINE_EXPLAIN' => $lang['Online_explain'], 

		'L_MODERATOR' => $lang['Moderators'], 
		'L_FORUM_LOCKED' => $lang['Forum_is_locked'],
		'L_MARK_FORUMS_READ' => $lang['Mark_all_forums'], 

		'U_MARK_READ' => append_sid("index.$phpEx?mark=forums"))
	);

	//
	// Let's decide which categories we should display
	//
	$display_categories = array();

	for ($i = 0; $i < $total_forums; $i++ )
	{
		if ($is_auth_ary[$forum_data[$i]['forum_id']]['auth_view'])
		{
			$display_categories[$forum_data[$i]['cat_id']] = true;
		}
	}

	//
	// Okay, let's build the index
	//
	for($i = 0; $i < $total_categories; $i++)
	{
		$cat_id = $category_rows[$i]['cat_id'];

		//
		// Yes, we should, so first dump out the category
		// title, then, if appropriate the forum list
		//
		if (isset($display_categories[$cat_id]) && $display_categories[$cat_id])
		{
			$template->assign_block_vars('catrow', array(
				'CAT_ID' => $cat_id,
				'CAT_DESC' => $category_rows[$i]['cat_title'],
				'U_VIEWCAT' => append_sid("index.$phpEx?" . POST_CAT_URL . "=$cat_id"))
			);

			if ( $viewcat == $cat_id || $viewcat == -1 )
			{
				for($j = 0; $j < $total_forums; $j++)
				{
					if ( $forum_data[$j]['cat_id'] == $cat_id )
					{
						$forum_id = $forum_data[$j]['forum_id'];

						if ( $is_auth_ary[$forum_id]['auth_view'] )
						{
							if ( $forum_data[$j]['forum_status'] == FORUM_LOCKED )
							{
								$folder_image = $images['forum_locked']; 
								$folder_alt = $lang['Forum_locked'];
								// Begin Simple Subforums MOD
								$unread_topic = false;
								$folder_images = array(
									'default'	=> $folder_image,
									'new'		=> $images['forum_locked'],
									'sub'		=> ( isset($images['forums_locked']) ) ? $images['forums_locked'] : $images['forum_locked'],
									'subnew'	=> ( isset($images['forums_locked']) ) ? $images['forums_locked'] : $images['forum_locked'],
									'subalt'	=> $lang['Forum_locked'],
									'subaltnew'	=> $lang['Forum_locked'],
									);
								// End Simple Subforums MOD
							}
							else
							{
								$unread_topics = false;
//-- mod : keep unread -----------------------------------------------------------------------------
//-- delete
//								if ( $userdata['session_logged_in'] )
//								{
//-- fin mod : keep unread -------------------------------------------------------------------------
									if ( !empty($new_topic_data[$forum_id]) )
									{
										$forum_last_post_time = 0;

										while( list($check_topic_id, $check_post_time) = @each($new_topic_data[$forum_id]) )
										{
											//-- mod : keep unread -----------------------------------------------------------------------------
//-- delete
//											if ( empty($tracking_topics[$check_topic_id]) )
//											{
//-- fin mod : keep unread -------------------------------------------------------------------------

												$unread_topics = true;
												$forum_last_post_time = max($check_post_time, $forum_last_post_time);

											//-- mod : keep unread -----------------------------------------------------------------------------
//-- delete
//
//											}
//											else
//											{
//												if ( $tracking_topics[$check_topic_id] < $check_post_time )
//												{
//													$unread_topics = true;
//													$forum_last_post_time = max($check_post_time, $forum_last_post_time);
//												}
//											}
//										}
//
//										if ( !empty($tracking_forums[$forum_id]) )
//										{
//											if ( $tracking_forums[$forum_id] > $forum_last_post_time )
//											{
//												$unread_topics = false;
//											}
//										}
//
//										if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) )
//										{
//											if ( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] > $forum_last_post_time )
//											{
//												$unread_topics = false;
//											}
//										}
//
//-- fin mod : keep unread -------------------------------------------------------------------------
									}
								}

								$folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum']; 
								$folder_alt = ( $unread_topics ) ? $lang['New_posts'] : $lang['No_new_posts']; 
								// Begin Simple Subforums MOD 
							$folder_images = array( 
								'default'   => $folder_image, 
								'new'      => $folder_image, 
								'sub'      => $folder_image,
								'subnew'   => $folder_image, 
								'subalt'   => $folder_alt, 
								'subaltnew'   => $folder_alt, 
							); 
							// End Simple Subforums MOD
							}

							$posts = $forum_data[$j]['forum_posts'];
							$topics = $forum_data[$j]['forum_topics'];

							if ( $forum_data[$j]['forum_last_post_id'] )
							{
								$last_post_time = create_date($board_config['default_dateformat'], $forum_data[$j]['post_time'], $board_config['board_timezone']);

								$last_post = $last_post_time . '<br />';

								$last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '='  . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> ';
								
								$last_post .= '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '"><img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a>';
								// Begin Simple Subforums MOD
								$last_post_sub = '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '"><img src="' . ($unread_topic ? $images['icon_newest_reply'] : $images['icon_latest_reply']) . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a>';
								$last_post_time = $forum_data[$j]['post_time'];
								// End Simple Subforums MOD


							}
							else
							{
								$last_post = $lang['No_Posts'];
								// Begin Simple Subforums MOD
								$last_post_sub = '<img src="' . $images['icon_minipost'] . '" border="0" alt="' . $lang['No_Posts'] . '" title="' . $lang['No_Posts'] . '" />';
								$last_post_time = 0;
								// End Simple Subforums MOD


							}

							if ( count($forum_moderators[$forum_id]) > 0 )
							{
								$l_moderators = ( count($forum_moderators[$forum_id]) == 1 ) ? $lang['Moderator'] : $lang['Moderators'];
								$moderator_list = implode(', ', $forum_moderators[$forum_id]);
							}
							else
							{
								$l_moderators = '&nbsp;';
								$moderator_list = '';
							}

							$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
							$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

							$template->assign_block_vars('catrow.forumrow',	array(
								'ROW_COLOR' => '#' . $row_color,
								'ROW_CLASS' => $row_class,
								'FORUM_FOLDER_IMG' => $folder_image, 
								'FORUM_NAME' => $forum_data[$j]['forum_name'],
								'FORUM_DESC' => $forum_data[$j]['forum_desc'],
								'POSTS' => $forum_data[$j]['forum_posts'],
								'TOPICS' => $forum_data[$j]['forum_topics'],
								'LAST_POST' => $last_post,
								'MODERATORS' => $moderator_list,

								'L_MODERATOR' => $l_moderators, 
								'L_FORUM_FOLDER_ALT' => $folder_alt, 
// Begin Simple Subforums MOD
								'FORUM_FOLDERS' => serialize($folder_images),
								'HAS_SUBFORUMS' => 0,
								'PARENT' => $forum_data[$j]['forum_parent'],
								'ID' => $forum_data[$j]['forum_id'],
								'UNREAD' => intval($unread_topic),
								'TOTAL_UNREAD' => intval($unread_topic),
								'TOTAL_POSTS' => $forum_data[$j]['forum_posts'],
								'TOTAL_TOPICS' => $forum_data[$j]['forum_topics'],
								'LAST_POST_FORUM' => $last_post,
								'LAST_POST_TIME' => $last_post_time,
								'LAST_POST_TIME_FORUM' => $last_post_time,
								// End Simple Subforums MOD

								'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"))
							);
							// Begin Simple Subforums MOD
							if( $forum_data[$j]['forum_parent'] )
							{
								$subforums_list[] = array(
									'forum_data'	=> $forum_data[$j],
									'folder_image'	=> $folder_image,
									'last_post'		=> $last_post,
									'last_post_sub'	=> $last_post_sub,
									'moderator_list'	=> $moderator_list,
									'unread_topics'	=> $unread_topic,
									'l_moderators'	=> $l_moderators,
									'folder_alt'	=> $folder_alt,
									'last_post_time'	=> $last_post_time,
									'desc'			=> $forum_data[$j]['forum_desc'],
									);
							}
							// End Simple Subforums MOD

						}
					}
				}
			}
		}
	} // for ... categories

}// if ... total_categories
else
{
	message_die(GENERAL_MESSAGE, $lang['No_forums']);
}
// Begin Simple Subforums MOD
unset($data);
unset($item);
unset($cat_item);
unset($row_item);
for( $i = 0; $i < count($subforums_list); $i++ )
{
	$forum_data = $subforums_list[$i]['forum_data'];
	$parent_id = $forum_data['forum_parent'];
	
	// Find parent item
	if( isset($template->_tpldata['catrow.']) )
	{
		$data = &$template->_tpldata['catrow.'];
		$count = count($data);
		for( $j = 0; $j < $count; $j++)
		{
			$cat_item = &$data[$j];
			$row_item = &$cat_item['forumrow.'];
			$count2 = count($row_item);
			for( $k = 0; $k < $count2; $k++)
			{
				if( $row_item[$k]['ID'] == $parent_id )
				{
					$item = &$row_item[$k];
					break;
				}
			}
			if( isset($item) )
			{
				break;
			}
		}
	}
	
	if( isset($item) )
	{
		if( isset($item['sub.']) )
		{
			$num = count($item['sub.']);
			$data = &$item['sub.'];
		}
		else
		{
			$num = 0;
			$item[] = 'sub.';
			$data = &$item['sub.'];
		}
		
		// Append new entry
		$data[] = array(
			'NUM' => $num,
			'FORUM_FOLDER_IMG' => $subforums_list[$i]['folder_image'], 
			'FORUM_NAME' => $forum_data['forum_name'],
			'FORUM_DESC' => $forum_data['forum_desc'],
			'FORUM_DESC_HTML' => htmlspecialchars(preg_replace('@<[/!]*?[^<>]*?>@si', '', $forum_data['forum_desc'])),
			'POSTS' => $forum_data['forum_posts'],
			'TOPICS' => $forum_data['forum_topics'],
			'LAST_POST' => $subforums_list[$i]['last_post'],
			'LAST_POST_SUB' => $subforums_list[$i]['last_post_sub'],
			'LAST_TOPIC' => $forum_data['topic_title'],
			'MODERATORS' => $subforums_list[$i]['moderator_list'],
			'PARENT' => $forum_data['forum_parent'],
			'ID' => $forum_data['forum_id'],
			'UNREAD' => intval($subforums_list[$i]['unread_topics']),
	
			'L_MODERATOR' => $subforums_list[$i]['l_moderators'], 
			'L_FORUM_FOLDER_ALT' => $subforums_list[$i]['folder_alt'], 
	
			'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $forum_data['forum_id'])
		);
		$item['HAS_SUBFORUMS'] ++;
		$item['TOTAL_UNREAD'] += intval($subforums_list[$i]['unread_topics']);
		// Change folder image
		$images = unserialize($item['FORUM_FOLDERS']);
		$item['FORUM_FOLDER_IMG'] = $item['TOTAL_UNREAD'] ? $images['subnew'] : $images['sub'];
		$item['L_FORUM_FOLDER_ALT'] = $item['TOTAL_UNREAD'] ? $images['subaltnew'] : $images['subalt'];
		// Check last post
		if( $item['LAST_POST_TIME'] < $subforums_list[$i]['last_post_time'] )
		{
			$item['LAST_POST'] = $subforums_list[$i]['last_post'];
			$item['LAST_POST_TIME'] = $subforums_list[$i]['last_post_time'];
		}
		if( !$item['LAST_POST_TIME_FORUM'] )
		{
			$item['LAST_POST_FORUM'] = $item['LAST_POST'];
		}
		// Add topics/posts
		$item['TOTAL_POSTS'] += $forum_data['forum_posts'];
		$item['TOTAL_TOPICS'] += $forum_data['forum_topics'];
	}
	unset($item);
	unset($data);
	unset($cat_item);
	unset($row_item);
}
// End Simple Subforums MOD
//
// Generate the page
//
$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
Merlin Sythove
Registered User
Posts: 2339
Joined: Tue Mar 16, 2004 7:42 am

Re: keep unread flags

Post by Merlin Sythove »

ashleypb wrote:Hi,

Just installed this mod, but now when a member post a new thread/topic it doesnt show up as a new post on the index.php page.

But it does display as a new post if you go to viewforum.php

this is my index.php if its anyhelp
You probably made an error in changing index.php. Try again!
Need custom work done? Pimp My Forum!
asinshesq
Registered User
Posts: 6266
Joined: Sun Feb 22, 2004 9:34 pm
Location: NYC
Name: Alan

Re: keep unread flags

Post by asinshesq »

ashleypb wrote:...Just installed this mod, but now when a member post a new thread/topic it doesnt show up as a new post on the index.php page.

But it does display as a new post if you go to viewforum.php

this is my index.php if its anyhelp...
I just took a look at your index.php, and it has the original version 1.0.0 of keep unread that ptirhiik did five years ago and that we re-wrote three years ago. Does the rest of your forum have that version or does it have keep unread 2.0.7 (the version that you get when you download from the first page of this topic)?

You'll need to either start with a clean index.php and apply this mod or use the upgrade scripts (one by one from 1.0.1 all the way up to 2.0.7) that are included in the contrib folder.
User avatar
Dogs and things
Registered User
Posts: 2114
Joined: Fri Sep 01, 2006 9:04 am
Location: Spain
Contact:

Re: keep unread flags

Post by Dogs and things »

Hello,

In this post arises the idea to add a newest_unread_icon that takes you to the first post of a thread with unread posts so that untill you haven´t read the post two icons show. One in front of topic title to take you to the first post of the thread and the standard icon at the end that takes you to the newest post in the thread.

In the topic I posted you find the solution for index.php.

Can something similar be done for viewforum.php and search.php?

I believe that would be a very comfortable addon.

Greetings.
For phpBB2 support visit phpBB2refugees.
marian0810
Former Team Member
Posts: 3011
Joined: Mon May 21, 2007 9:17 pm
Location: The Netherlands
Name: Marian
Contact:

Re: keep unread flags

Post by marian0810 »

I thought that was already a standard feature in phpBB2 :?
You and me, time and space. You watch us run!
asinshesq
Registered User
Posts: 6266
Joined: Sun Feb 22, 2004 9:34 pm
Location: NYC
Name: Alan

Re: keep unread flags

Post by asinshesq »

marian0810 wrote:I thought that was already a standard feature in phpBB2 :?
It is ;)

And this mod does not disable that feature. So if you have this mod installed and a topic has unread posts in, teh topic will have an unread flag (that funny icon) to the left of the topic title as it appears in viewforum and as it appears in a topic list generated by search (or in the list of unread topics you see if you click the unread topic link from the index).
Merlin Sythove
Registered User
Posts: 2339
Joined: Tue Mar 16, 2004 7:42 am

Re: keep unread flags

Post by Merlin Sythove »

No quite, if you follow the link, and from there the link to what the poster has found, he wants the unread icon in the last post column (as well as in front of the topic title) together with the last post icon, and it looks like he also wants both in the mod Last topic title on index.
Question of duplicating template code, as far as I can see.
Need custom work done? Pimp My Forum!
User avatar
Dogs and things
Registered User
Posts: 2114
Joined: Fri Sep 01, 2006 9:04 am
Location: Spain
Contact:

Re: keep unread flags

Post by Dogs and things »

I´ll try to explain in detail what I mean,

In the last post column on search_results_topic and viewforum I would like to have an newest_reply_icon in front of the post-time. This icon should link to the first post of the topic.

So we would have a newest_reply_icon in front of the post-time linking to first post in the topic and a latest_reply_icon after the poster-name linking to the last post in the topic. Once that topic has been read the newest_reply_icon will have disappeared, until a new unread-reply is posted.

Hmm, a bit hard to explain this without makin' you dizzy, I´m afraid. :o
For phpBB2 support visit phpBB2refugees.
asinshesq
Registered User
Posts: 6266
Joined: Sun Feb 22, 2004 9:34 pm
Location: NYC
Name: Alan

Re: keep unread flags

Post by asinshesq »

Dogs and Things wrote:In the last post column on search_results_topic and viewforum I would like to have an newest_reply_icon in front of the post-time. This icon should link to the first post of the topic.

So we would have a newest_reply_icon in front of the post-time linking to first post in the topic and a latest_reply_icon after the poster-name linking to the last post in the topic. Once that topic has been read the newest_reply_icon will have disappeared, until a new unread-reply is posted.
I assume you mean that the icon should link to the first unread post in the topic (not the first post in the topic), correct?

Merlin is right that you can copy the template snippet that appears to the left of the topic title and paste it to the left of the time that appears in the last post column. But that strikes me as unnecessary clutter, since there is already an unread post icon that appears to the left of the topic title (and adding another one simply confuses things, IMO).

The topic you pointed to actually did add some functionality, since on a regular index page there is no way to go directly to the first unread post in a forum (wtihout a change you would have to click the view unread posts link and then click through to an unread post). But on viewforum and search, there is already an unread post icon to the left of the topic name so adding it a second time next to the timestamp doesn't create any new functionality. But if you want to do it, feel free to do it.
asinshesq
Registered User
Posts: 6266
Joined: Sun Feb 22, 2004 9:34 pm
Location: NYC
Name: Alan

Re: keep unread flags

Post by asinshesq »

Dogs and Things,

You can try this to add the icons you were trying to add (I haven't tried it but it looks like it should work):

Code: Select all

OPEN
templates/subSilver/search_results_topics.tpl

FIND
	<td class="row2" align="center" valign="middle" nowrap="nowrap"><span class="postdetails">{searchresults.LAST_POST_TIME}<br />{searchresults.LAST_POST_AUTHOR} {searchresults.LAST_POST_IMG}</span></td>

IN-LINE FIND
{searchresults.LAST_POST_TIME}<br />

IN-LINE BEFORE, ADD
{searchresults.NEWEST_POST_IMG}{searchresults.TOPIC_TYPE}<a href="{searchresults.U_VIEW_TOPIC}" class="topictitle">

OPEN
templates/subSilver/viewforum.tpl

FIND
	  <td class="row3Right" align="center" valign="middle" nowrap="nowrap"><span class="postdetails">{topicrow.LAST_POST_TIME}<br />{topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}</span></td>

IN-LINE FIND
{topicrow.LAST_POST_TIME}<br />

IN-LINE BEFORE, ADD
{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}<a href="{topicrow.U_VIEW_TOPIC}" class="topictitle">
Note that the foregoing puts the icon to the left of the time. If you want the icon to appear to the left of the author's name (so that the unread icon is to the left and the last post icon is to the right on the same line), change the commands above to IN-LINE AFTER, ADD (rather than IN-LINE BEFORE, ADD).
User avatar
Dogs and things
Registered User
Posts: 2114
Joined: Fri Sep 01, 2006 9:04 am
Location: Spain
Contact:

Re: keep unread flags

Post by Dogs and things »

Thank you Asinshesq,

That was easier than I expected.

Looking at how it shows I´m afraid you are right when you call it unnecesary clutter. But for the moment I´ll keep it on the search_results_topics.tpl because that´s what I use to view the latest posts and I believe it´ll make it a little bit easier to jump to where I want to, first post, first unread post or last post. I´ll try for some time and see if it´s worth keepin' or not.

Thanks again. ;)
For phpBB2 support visit phpBB2refugees.
asinshesq
Registered User
Posts: 6266
Joined: Sun Feb 22, 2004 9:34 pm
Location: NYC
Name: Alan

Re: keep unread flags

Post by asinshesq »

Dogs and things wrote:Looking at how it shows I´m afraid you are right when you call it unnecesary clutter. But for the moment I´ll keep it on the search_results_topics.tpl because that´s what I use to view the latest posts and I believe it´ll make it a little bit easier to jump to where I want to, first post, first unread post or last post. I´ll try for some time and see if it´s worth keepin' or not.
The users on my boards are for the most part extremely technophobic and have no experience with other forums (and no natural facility to get around). I found after a while that a lot of them were missing unread posts because they could not get their head around clicking that little icon.

Solution: I changed things on my board so that the topic title link in viewforum and search takes you to the first unread post in the topic (or, if there are none, the first post of the topic). That makes it much easier for people who are not used to forums to navigate (and I actually find it easier as well since I no longer need to aim carefully to hit that little icon).
User avatar
Dogs and things
Registered User
Posts: 2114
Joined: Fri Sep 01, 2006 9:04 am
Location: Spain
Contact:

Re: keep unread flags

Post by Dogs and things »

I bet my users beat yours when it comes to not knowing how to use the boards´ facilities. I am very happy with the Unread Flags but most of my users probably don´t even know they exist. :lol:

Your solution sounds very good, it makes people use the flags without even noticing they are using them. :P

I guess it is easy to implement but, as I´m pretty useless when it comes to coding, would you mind sharing the secret of how to turn the topic titles into first_unread links?
For phpBB2 support visit phpBB2refugees.
asinshesq
Registered User
Posts: 6266
Joined: Sun Feb 22, 2004 9:34 pm
Location: NYC
Name: Alan

Re: keep unread flags

Post by asinshesq »

Dogs and things wrote:Your solution sounds very good, it makes people use the flags without even noticing they are using them. :P

I guess it is easy to implement but, as I´m pretty useless when it comes to coding, would you mind sharing the secret of how to turn the topic titles into first_unread links?
Try this, which changes the topic title links in viewforum and in the list of unread posts so that they take the user to the first unread post of the topic (this is different from the code I have on my board and I haven't tried it, but it should work):

Code: Select all

OPEN
search.php

FIND
			if ( $search_id == 'newposts' )
			{
				//START MOD Keep_unread_2

AFTER, ADD
				// mod ... added the next definition which is used later in connection with ensuring that when user is doing newpost search the topic link takes you to the first unread post in the topic
				$newposts = TRUE;

FIND
			$topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $searchset[$i]['topic_id'] . "&highlight=$highlight_active");

REPLACE WITH
			// mod to make the topic title link take you to the first unread post...replaced commented out line below with the one that follows it
			// $topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $searchset[$i]['topic_id'] . "&highlight=$highlight_active");
			$topic_url = ( $newposts ) ? append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $searchset[$i]['topic_id'] . "&view=newest") : append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $searchset[$i]['topic_id'] . "&highlight=$highlight_active");

OPEN
viewforum.php

FIND
			//START MOD Keep_unread_2
			if( $topic_rowset[$i]['post_time'] > topic_last_read($forum_id, $topic_id) )
			{
				$folder_image = $folder_new;
				$folder_alt = $lang['New_posts'];
				$newest_post_img = '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=newest") . '"><img src="' . $images['icon_newest_reply'] . '" alt="' . $lang['View_newest_post'] . '" title="' . $lang['View_newest_post'] . '" border="0" /></a> ';
			}
			else
			{
				$folder_image = $folder;
				$folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];
				$newest_post_img = '';
			}
			//END MOD Keep_unread_2

REPLACE WITH
			//START MOD Keep_unread_2
			if( $topic_rowset[$i]['post_time'] > topic_last_read($forum_id, $topic_id) )
			{
				$folder_image = $folder_new;
				$folder_alt = $lang['New_posts'];
				$newest_post_img = '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=newest") . '"><img src="' . $images['icon_newest_reply'] . '" alt="' . $lang['View_newest_post'] . '" title="' . $lang['View_newest_post'] . '" border="0" /></a> ';
				$view_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=newest");
			}
			else
			{
				$folder_image = $folder;
				$folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];
				$newest_post_img = '';
				$view_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");
			}
			//END MOD Keep_unread_2

FIND
		$view_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");

REPLACE WITH
		// mod to make the topic title link take you to the first unread post...added definition for $viewtopic_url earlier and commented out next line
		// $view_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");
Last edited by asinshesq on Fri Mar 07, 2008 12:27 am, edited 1 time in total.
User avatar
Dogs and things
Registered User
Posts: 2114
Joined: Fri Sep 01, 2006 9:04 am
Location: Spain
Contact:

Re: keep unread flags

Post by Dogs and things »

Hmm,

I haven´t tried the viewforum one yet but the search.php modification doesn´t change the topic title, clicking topic title still takes me to the first post in the topic whereas the unread_icon takes me to the first unread post in the topic. :cry:
For phpBB2 support visit phpBB2refugees.
Post Reply

Return to “[2.0.x] MOD Database Releases”