[ALPHA] Easy Sub-Forums MOD v1.0.9

A place for MOD Authors to post and receive feedback on MODs still in development. No MODs within this forum should be used within a live environment! No new topics are allowed in this forum.
Forum rules
READ: phpBB.com Board-Wide Rules and Regulations

IMPORTANT: MOD Development Forum rules

On February 1, 2009 this forum will be set to read only as part of retiring of phpBB2.
User avatar
acoolwelshbloke
Registered User
Posts: 89
Joined: Mon Jun 06, 2005 8:03 pm

[ALPHA] Easy Sub-Forums MOD v1.0.9

Post by acoolwelshbloke »

I have been working on an updated version of my Easy Sub-Forums MOD v1.0.8.

Easy Sub-Forums v1.0.8 can be located here: http://www.phpbbhacks.com/download/5990

Easy Sub-Forums v1.0.9 will when it is completed have three new features to enhance the look as well as enhance the features of v1.0.8
  1. These Are:

  2. List of moderators will be displayed on the sub-forums index as it is shown in the main forum index.

  3. Information Displaying how many users are currently viewing this forum will be displayed in both the main forum index and the sub-forums index.

  4. External forum redirection, as seen in CH MOD.
This will be the final release, and will have an install time of approx 30 - 40 mins

However I have not worked on this MOD for a while so I am trying to remember everything, I am also looking for someone to offer me help in looking over my script and offer me any help or just some simple advice as it does help to have a fresh pair of eyes as well as an opinion on how to move forward.

If you have PHP knowledge and would like to offer your help then please PM me.

Or Visit http://www.tec2spec.co.uk/forum/
Demo can be found on above link!
Last edited by acoolwelshbloke on Fri Jan 27, 2006 12:23 pm, edited 5 times in total.
User avatar
MHobbit
Former Team Member
Posts: 4761
Joined: Thu Mar 18, 2004 5:32 pm
Location: There and Back Again

Post by MHobbit »

Hmm, I'll move this to MODs in Development as you are developing a MOD here. ;-)

Please add a topic prefix to the thread title, as outlined in the MODs in Development forum rules. Thanks.
Former phpBB MOD Team member
No private support is offered.
"There’s too many things to get done, and I’m running out of days..."
User avatar
End of a Shadow
Registered User
Posts: 1557
Joined: Sun Apr 27, 2003 6:39 pm
Location: Washington
Name: J G
Contact:

Post by End of a Shadow »

You know, alot of the functions and switches look very similar to niekas/harishankar's Pseudo Sub-Forums mod.

http://www.phpbb.com/phpBB/viewtopic.php?t=279979
User avatar
MHobbit
Former Team Member
Posts: 4761
Joined: Thu Mar 18, 2004 5:32 pm
Location: There and Back Again

Post by MHobbit »

End of a Shadow wrote: You know, alot of the functions and switches look very similar to niekas/harishankar's Pseudo Sub-Forums mod.

http://www.phpbb.com/phpBB/viewtopic.php?t=279979


If that is the case, you must give credits to the original MOD author. In fact, you will also need to contact the MOD author for permission for reusing that code, provided that you did reuse code as such. ;-)
Former phpBB MOD Team member
No private support is offered.
"There’s too many things to get done, and I’m running out of days..."
User avatar
acoolwelshbloke
Registered User
Posts: 89
Joined: Mon Jun 06, 2005 8:03 pm

Post by acoolwelshbloke »

MennoniteHobbit wrote:
End of a Shadow wrote:You know, alot of the functions and switches look very similar to niekas/harishankar's Pseudo Sub-Forums mod.

http://www.phpbb.com/phpBB/viewtopic.php?t=279979


If that is the case, you must give credits to the original MOD author. In fact, you will also need to contact the MOD author for permission for reusing that code, provided that you did reuse code as such. ;-)


Yes it is and credits and info are here:

http://tec2spec.co.uk/forum/viewtopic.php?t=8

I got permission last year to use and edit this code and was told to leave the notice in the author notes as shown below. :wink:

V1.0.9 alpha has a lot of change to the v1.0.8

anyway this is getting off topic, I don't want a thread filled with "it looks like" :wink:

Code: Select all

##############################################################
## Author Notes:
##
## This mod is based on pseudo attached forum mod by Harishankar (http://literaryforums.org). 
## It has been re-written from the ground up.
## Test this MOD in a testing/isolated enviroment if you have heavy modded forum. 
## Installs fine with EasyMod on vanilla phpBB setup 
##
##############################################################
Prizem
Registered User
Posts: 249
Joined: Sun Sep 07, 2003 9:14 am
Contact:

Post by Prizem »

Hopefully this doesn't get abandoned too!
bartezas16
Registered User
Posts: 59
Joined: Tue Mar 28, 2006 4:06 pm

Post by bartezas16 »

I have installed this hack but i have some little problem see this

http://img299.imageshack.us/img299/2460 ... imo5jf.jpg

Why before sub forum topics not showing stroke lines when tha forum?
bartezas16
Registered User
Posts: 59
Joined: Tue Mar 28, 2006 4:06 pm

Post by bartezas16 »

bartezas16 wrote: I have installed this hack but i have some little problem see this

http://img299.imageshack.us/img299/2460 ... imo5jf.jpg

Why before sub forum topics not showing stroke lines when tha forum?


Ok i fixed that.It's possible with color groups mod?
irmscher
Registered User
Posts: 9
Joined: Tue May 02, 2006 11:23 pm

Re: [ALPHA] Easy Sub-Forums MOD v1.0.9

Post by irmscher »

I have installed this mod but when a user is not logged into the forum, they cannot see the "folder_big.gif" on the left of the forum titles/description. When a user is logged in, they display fine. It is something to do with the coding on index.php but I cannot work out what it is. The images showed fine (when logged out) when I tried the default phpbb index.php. I then added the code changes for easy sub forums to a clean index.php and the problem occured??

On this post it was commented that
The problem is that the variable isn't being defined:
<img src="" width="23" height="23" alt="" title="" />

Which is obvious when viewing the source...

EDIT: Sorted it, rebuilt index.php and it worked!
ashleypb
Registered User
Posts: 6
Joined: Fri Jun 22, 2007 9:38 am

Re: [ALPHA] Easy Sub-Forums MOD v1.0.9

Post by ashleypb »

ive installed this mod and its working fine uppart from its now showing theres been a new post in the subforum on the index.php page.

ive included a screenshot below.

Image

can anyone tell me how i can make
Image
turn into
Image
when a new post is made in the subforum.
ashleypb
Registered User
Posts: 6
Joined: Fri Jun 22, 2007 9:38 am

Re: [ALPHA] Easy Sub-Forums MOD v1.0.9

Post by ashleypb »

can anyone help me???
marian0810
Former Team Member
Posts: 3011
Joined: Mon May 21, 2007 9:17 pm
Location: The Netherlands
Name: Marian
Contact:

Re: [ALPHA] Easy Sub-Forums MOD v1.0.9

Post by marian0810 »

acoolwelshbloke wrote:Easy Sub-Forums v1.0.9 will when it is completed have three new features to enhance the look as well as enhance the features of v1.0.8
So can this version be downloaded somewhere by now? Since this was posted a year and a half ago?
You and me, time and space. You watch us run!
User avatar
StarGhost
Registered User
Posts: 9
Joined: Sun Jun 24, 2007 10:00 pm
Contact:

Re: [ALPHA] Easy Sub-Forums MOD v1.0.9

Post by StarGhost »

ashleypb wrote:can anyone help me???
I'm currently working on this problem since yesterday, and I made it work for only 1 forum's subforums (not more, sorry)
I will see, if I can get it work for all forums

EDIT@2007/07/07 09:40 am GMT+1 DST:
NOW IT WORKS!
If there's a new post or topic in a sub forum, the icon for the parent forum on the index will now change to "New", here's the code:

Code: Select all

#
#-----[ OPEN ]---------------------------------------------
#
index.php

#
#-----[ FIND ]---------------------------------------------
#
for($j = 0; $j < $total_forums; $j++)
{

#
#-----[ AFTER, ADD ]--------------------------------------
#
$has_sub_new_posts = array();

#
#-----[ FIND ]---------------------------------------------
#
$unread_topics = false;
if ( $userdata['session_logged_in'] )
{
   if (check_unread($value['forum_id']))
   {
      $attach_img = $images['icon_minipost_new'];
      $l_attach_img = $lang['New_posts'];

#
#-----[ AFTER, ADD ]--------------------------------------
#
$has_sub_new_posts[] = 1;

#
#-----[ FIND ]---------------------------------------------
#
else
{
   $attach_img = $images['icon_minipost'];
   $l_attach_img = $lang['No_new_posts'];
}

#
#-----[ REPLACE WITH ]---------------------------------------
#
else
{
   $attach_img = $images['icon_minipost'];
   $l_attach_img = $lang['No_new_posts'];
   $has_sub_new_posts[] = 0;
}

#
#-----[ FIND ]---------------------------------------------
#
else
{
   $attach_img = $images['icon_minipost'];
   $l_attach_img = $lang['No_new_posts'];
}

#
#-----[ REPLACE WITH ]---------------------------------------
#
else
{
   $attach_img = $images['icon_minipost'];
   $l_attach_img = $lang['No_new_posts'];
   $has_sub_new_posts[] = 0;
}

#
#-----[ FIND ]---------------------------------------------
#
$unread_topics = false;
if ( $userdata['session_logged_in'] )
{
   // Added by Easy Sub-Forums MOD
   $unread_topics=check_unread($forum_id);
   // END Added by Easy Sub-Forums MOD
}
$folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum'];
$folder_alt = ( $unread_topics ) ? $lang['New_posts'] : $lang['No_new_posts'];

#
#-----[ REPLACE WITH ]---------------------------------------
#
$unread_topics = false;
if ( $userdata['session_logged_in'] )
{
   // Added by Easy Sub-Forums MOD
   $unread_topics=check_unread($forum_id);
   // END Added by Easy Sub-Forums MOD
}
if(in_array(1, $has_sub_new_posts))
{
   $folder_image = $images['forum_new'];
   $folder_alt = $lang['New_posts'];
}
else
{
   $folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum'];
   $folder_alt = ( $unread_topics ) ? $lang['New_posts'] : $lang['No_new_posts'];
}
ashleypb
Registered User
Posts: 6
Joined: Fri Jun 22, 2007 9:38 am

Re: [ALPHA] Easy Sub-Forums MOD v1.0.9

Post by ashleypb »

WORKS!!!

Thank you so much!!
User avatar
nedostizni
Registered User
Posts: 391
Joined: Tue Mar 04, 2003 7:25 pm

Re: [ALPHA] Easy Sub-Forums MOD v1.0.9

Post by nedostizni »

I have installed the Easy-sub Forums 1.0.8 version (as this one is still Alpha) and i have a phpBB 2.0.18 and this solution is not working for me:
StarGhost wrote: If there's a new post or topic in a sub forum, the icon for the parent forum on the index will now change to "New", here's the code:

Code: Select all

#
#-----[ OPEN ]---------------------------------------------
#
index.php

#
#-----[ FIND ]---------------------------------------------
#
for($j = 0; $j < $total_forums; $j++)
{

#
#-----[ AFTER, ADD ]--------------------------------------
#
$has_sub_new_posts = array();

#
#-----[ FIND ]---------------------------------------------
#
$unread_topics = false;
if ( $userdata['session_logged_in'] )
{
   if (check_unread($value['forum_id']))
   {
      $attach_img = $images['icon_minipost_new'];
      $l_attach_img = $lang['New_posts'];

#
#-----[ AFTER, ADD ]--------------------------------------
#
$has_sub_new_posts[] = 1;

#
#-----[ FIND ]---------------------------------------------
#
else
{
   $attach_img = $images['icon_minipost'];
   $l_attach_img = $lang['No_new_posts'];
}

#
#-----[ REPLACE WITH ]---------------------------------------
#
else
{
   $attach_img = $images['icon_minipost'];
   $l_attach_img = $lang['No_new_posts'];
   $has_sub_new_posts[] = 0;
}

#
#-----[ FIND ]---------------------------------------------
#
else
{
   $attach_img = $images['icon_minipost'];
   $l_attach_img = $lang['No_new_posts'];
}

#
#-----[ REPLACE WITH ]---------------------------------------
#
else
{
   $attach_img = $images['icon_minipost'];
   $l_attach_img = $lang['No_new_posts'];
   $has_sub_new_posts[] = 0;
}

#
#-----[ FIND ]---------------------------------------------
#
$unread_topics = false;
if ( $userdata['session_logged_in'] )
{
   // Added by Easy Sub-Forums MOD
   $unread_topics=check_unread($forum_id);
   // END Added by Easy Sub-Forums MOD
}
$folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum'];
$folder_alt = ( $unread_topics ) ? $lang['New_posts'] : $lang['No_new_posts'];

#
#-----[ REPLACE WITH ]---------------------------------------
#
$unread_topics = false;
if ( $userdata['session_logged_in'] )
{
   // Added by Easy Sub-Forums MOD
   $unread_topics=check_unread($forum_id);
   // END Added by Easy Sub-Forums MOD
}
if(in_array(1, $has_sub_new_posts))
{
   $folder_image = $images['forum_new'];
   $folder_alt = $lang['New_posts'];
}
else
{
   $folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum'];
   $folder_alt = ( $unread_topics ) ? $lang['New_posts'] : $lang['No_new_posts'];
}
Here is my index.php:

Code: Select all

<?php
/***************************************************************************
 *                                index.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : [email protected]
 *
 *   $Id: index.php,v 1.99.2.3 2004/07/11 16:46:15 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);
//
// End session management
//

// Bookie Mod
if ( $userdata['user_level'] == ADMIN ) 
{
include_once($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_bookmakers.' . $phpEx);
$time_now = time();
$total_bets = 0;
$count_assigned = 0;
$sql = "SELECT * FROM " . BOOKIE_ADMIN_BETS_TABLE . " WHERE bet_time<'$time_now' AND checked=0 ";

if ( !($result = $db->sql_query($sql)) ) 
{ 
   message_die(GENERAL_ERROR, 'Error getting total for Bookie Mod', '', __LINE__, __FILE__, $sql); 
}
 while ( $row = $db->sql_fetchrow($result) ) 
	{ 
	$total_bets = $total_bets +1;
	}
	if ( $total_bets > 0 )
	{
	$bookie_image = '<img src="' . $images['folder_hot_new'] . '" alt="New" title="New" hspace="3" border="0" />';
	$template->assign_block_vars('bookie_bets_due', array());
	}
	}

// End Bookie Mod

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

$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();

//
// 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( $category_rows[] = $db->sql_fetchrow($result) );
$db->sql_freeresult($result);

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:
   // Modified by Easy Sub-Forums MOD

			$sql = "SELECT f.*, p.post_time, p.post_username,  u.username, u.user_id, t.topic_id, t.topic_title
				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 )
				LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_last_post_id = f.forum_last_post_id)
				GROUP BY f.forum_id ORDER BY f.cat_id, f.forum_order";
   // END Modified by Easy Sub-Forums MOD
			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;
	}
	   // Added by Easy Sub-Forums MOD
	
	$attach=$forum_data;
   // END Added by Easy Sub-Forums MOD
	$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
	//
	if ($userdata['session_logged_in'])
	{
		// 60 days limit
		if ($userdata['user_lastvisit'] < (time() - 5184000))
		{
			$userdata['user_lastvisit'] = time() - 5184000;
		}


		$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'] . " 
				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);
		}

		$new_topic_data = array();
		while( $topic_data = $db->sql_fetchrow($result) )
		{
			$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
		}
		$db->sql_freeresult($result);
	}

	//
	// 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 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'],

		'L_FORUM' => $lang['Forum'],
		'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'], 


		// Bookie Mod
		'BOOKIE_START' => $lang['bookie_start'],
		'BOOKIE_COUNT' => $total_bets,
		'BOOKIE_END' => $lang['bookie_finish'],
		'ASSIGN_START' => $lang['bookie_assign_start'],
		'ASSIGN_COUNT' => $count_assigned,
		'ASSIGN_END' => $lang['bookie_assign_finish'],
		'BOOKIE_HEADER' => $lang['bookie_header'],
		'BOOKIE_IMAGE' => $bookie_image,
		'ASSIGN_IMAGE' => $assign_image,
		
		// End Bookie Mod

		'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"))
	);

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

		//
		// Should we display this category/forum set?
		//
		$display_forums = false;
		for($j = 0; $j < $total_forums; $j++)
		{
			$has_sub_new_posts = array();
			if ( $is_auth_ary[$forum_data[$j]['forum_id']]['auth_view'] && $forum_data[$j]['cat_id'] == $cat_id )
			{
				$display_forums = true;
			}
		}

		//
		// Yes, we should, so first dump out the category
		// title, then, if appropriate the forum list
		//
		if ( $display_forums )
		{
			$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'];
						   // Added by Easy Sub-Forums MOD

   $attached_id = $forum_data[$j]['attached_forum_id'];
						if ( $is_auth_ary[$forum_id]['auth_view'] && $attached_id == -1 )
						{
							$attached_forums = array();
							foreach ($attach as $key => $value)
							{
								$sub_forum_id = $value['forum_id'];
								if ($value['attached_forum_id']==$forum_id && $is_auth_ary[$sub_forum_id]['auth_view'])
								{
									//combining topic and post count for forum and subforums
									$forum_data[$j]['forum_posts']=$forum_data[$j]['forum_posts']+$value['forum_posts'];
									$forum_data[$j]['forum_topics']=$forum_data[$j]['forum_topics']+$value['forum_topics'];
									//END combining topic and post count

									//Last post link - check if any of subforums have newest posts and link to them instead
									if ($value['post_time']>$forum_data[$j]['post_time'])
									{
										$forum_data[$j]['user_id'] = $value['user_id'];
										$forum_data[$j]['post_username'] = $value['post_username'];
										$forum_data[$j]['forum_last_post_id'] = $value['forum_last_post_id'];
										$forum_data[$j]['post_time'] = $value['post_time'];
										$forum_data[$j]['username'] = $value['username'];
										$forum_data[$j]['topic_title'] = $value['topic_title'];
									}
									// END last post check

									$unread_topics = false;
									if ( $userdata['session_logged_in'] )
									{
										if (check_unread($value['forum_id']))
										{
											$attach_img = $images['icon_minipost_new'];
											$l_attach_img = $lang['New_posts'];
											$has_sub_new_posts[] = 1;
										}
else
{
   $attach_img = $images['icon_minipost'];
   $l_attach_img = $lang['No_new_posts'];
   $has_sub_new_posts[] = 0;
}
									}
else
{
   $attach_img = $images['icon_minipost'];
   $l_attach_img = $lang['No_new_posts'];
   $has_sub_new_posts[] = 0;
}

									$attached_forums[] = array(
										'sub_img'=>$attach_img,
										'sub_alt'=>$l_attach_img,
										'sub_name'=>$value['forum_name'],
										'sub_url'=>append_sid ('viewforum.php?f=' . $value['forum_id'] )
										);
								}
							}
							
// END Added by Easy Sub-Forums MOD

						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'];
							}
							else
							{
$unread_topics = false;
if ( $userdata['session_logged_in'] )
{
   // Added by Easy Sub-Forums MOD
   $unread_topics=check_unread($forum_id);
   // END Added by Easy Sub-Forums MOD
}
if(in_array(1, $has_sub_new_posts))
{
   $folder_image = $images['forum_new'];
   $folder_alt = $lang['New_posts'];
}
else
{
   $folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum'];
   $folder_alt = ( $unread_topics ) ? $lang['New_posts'] : $lang['No_new_posts'];
}
							}

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

							if ( $forum_data[$j]['forum_last_post_id'] )
							{
   // Modified by Easy Sub-Forums MOD

								if (strlen($forum_data[$j]['topic_title'])>=25)
								{
									$forum_data[$j]['topic_title']=substr($forum_data[$j]['topic_title'],0,25). "...";
								}

								$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> <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>';
   // END Modified by Easy Sub-Forums MOD
							}
							else
							{
								$last_post = $lang['No_Posts'];
							}

							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
							{
   // Modified by Easy Sub-Forums MOD

								$l_moderators = '';
								$moderator_list = '';
   // END Modified by Easy Sub-Forums MOD
							}

							$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, 

								'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"))
							);
							   // Added by Easy Sub-Forums MOD
                     $attached_forum_count = count($attached_forums);
                     if($attached_forum_count)
                     {
                       
					   $template->assign_block_vars('catrow.forumrow.switch_attached_forums', array(
                        'L_ATTACHED_FORUMS' => ($attached_forum_count ==1)? $lang['Attached_forum']: $lang['Attached_forums']
						));
						if (count($forum_moderators[$forum_id]) > 0 )
						{
						   $template->assign_block_vars('catrow.forumrow.switch_attached_forums.br', array());
						}
                        for($k = 0; $k < $attached_forum_count; $k++)
                        {
                           $template->assign_block_vars('catrow.forumrow.switch_attached_forums.attached_forums', array(
                              'FORUM_IMAGE' => $attached_forums[$k]['sub_img'],
                              'FORUM_NAME' => $attached_forums[$k]['sub_name'],
                              'L_FORUM_IMAGE' => $attached_forums[$k]['sub_alt'],
                              'U_VIEWFORUM' => $attached_forums[$k]['sub_url']
                           ));
                        }
                     }
   // END added by Easy Sub-Forums MOD
						}
					}
				}
			}
		}
	} // for ... categories
   }

}// if ... total_categories
else
{
	message_die(GENERAL_MESSAGE, $lang['No_forums']);
}

//
// Generate the page
//
$template->pparse('body');

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

?>
Post Reply

Return to “[2.0.x] MODs in Development”