[phpbbreloaded-checkins] SF.net SVN: phpbbreloaded: [278] main
Status: Planning
Brought to you by:
tehphpmaster
From: <teh...@us...> - 2006-12-24 06:08:01
|
Revision: 278 http://svn.sourceforge.net/phpbbreloaded/?rev=278&view=rev Author: tehphpmaster Date: 2006-12-23 22:08:00 -0800 (Sat, 23 Dec 2006) Log Message: ----------- Commiting the first real change to the code. This includes the Pseudo Subforums MOD. We chose this as our subforums MOD for a number of reasons. I'll go into more detail on these later, but suffice to say we are happy with the choice. Modified Paths: -------------- main/trunk/admin/admin_forums.php main/trunk/includes/functions.php main/trunk/index.php main/trunk/language/lang_english/lang_admin.php main/trunk/language/lang_english/lang_main.php main/trunk/posting.php main/trunk/templates/subSilver/admin/forum_admin_body.tpl main/trunk/templates/subSilver/admin/forum_edit_body.tpl main/trunk/templates/subSilver/index_body.tpl main/trunk/templates/subSilver/posting_body.tpl main/trunk/templates/subSilver/viewforum_body.tpl main/trunk/templates/subSilver/viewtopic_body.tpl main/trunk/viewforum.php main/trunk/viewtopic.php Added Paths: ----------- main/etc/features.txt main/etc/sql_changes.sql Added: main/etc/features.txt =================================================================== Added: main/etc/sql_changes.sql =================================================================== --- main/etc/sql_changes.sql (rev 0) +++ main/etc/sql_changes.sql 2006-12-24 06:08:00 UTC (rev 278) @@ -0,0 +1,3 @@ +# Pseudo subforums +ALTER TABLE `phpbb_forums` ADD attached_forum_id MEDIUMINT(8) DEFAULT '-1' NOT NULL; +ALTER TABLE `phpbb_topics` ADD INDEX (topic_last_post_id); \ No newline at end of file Modified: main/trunk/admin/admin_forums.php =================================================================== --- main/trunk/admin/admin_forums.php 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/admin/admin_forums.php 2006-12-24 06:08:00 UTC (rev 278) @@ -266,7 +266,53 @@ $forumname = $row['forum_name']; $forumdesc = $row['forum_desc']; $forumstatus = $row['forum_status']; + + $forum_attached_id = $row['attached_forum_id']; + $sql = "SELECT * from ". FORUMS_TABLE. " WHERE attached_forum_id = $forum_id"; + if( !$r = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get list of children Forums", "", __LINE__, __FILE__, $sql); + } + if( $db->sql_numrows($r) > 0 ) + { + + $not_attachable=1; + $has_subforums=1; + $template->assign_block_vars('switch_attached_no', array()); + if (intval($HTTP_POST_VARS['detach_enabled'])) $detach_enabled = "checked=\"checked\""; + + } + else + { + + // this forum is not a parent of any other forum + $sql = "SELECT * FROM ". FORUMS_TABLE. " WHERE attached_forum_id=-1 and cat_id= $cat_id and forum_id<>$forum_id ORDER BY forum_order"; + + if( !$result1 = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get list of attachable Forums", "", __LINE__, __FILE__, $sql); + } + if( $db->sql_numrows($result1) > 0 ) + { + $attachable_forums = '<option value = "-1"'.($forum_attached_id==-1?' selected':'').'> NOT ATTACHED TO ANY FORUM </a>'; + while( $row1 = $db->sql_fetchrow($result1) ) + { + $s=''; + if ($forum_attached_id == $row1['forum_id']) + { + $s = " selected=\"selected\""; + } + $attachable_forums .= '<option value="'.$row1[forum_id].$s.'">' . $row1[forum_name] . '</option>\n'; + } + } + else + { + $no_attachable_forums=1; + } + + } + // // start forum prune stuff. // @@ -298,7 +344,35 @@ $forumstatus = FORUM_UNLOCKED; $forum_id = ''; $prune_enabled = ''; + + $sql = "SELECT * FROM ". FORUMS_TABLE. " WHERE attached_forum_id=-1 and cat_id= $cat_id ORDER BY forum_order"; + + if( !$result1 = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get list of Categories/Forums", "", __LINE__, __FILE__, $sql); + } + if( $db->sql_numrows($result1) > 0 ) + { + $attachable_forums = '<option value = "-1"'.(($forum_attached_id==-1 || !$forum_attached_id)?' selected':'').'> NOT ATTACHED TO ANY FORUM </a>'; + while( $row1 = $db->sql_fetchrow($result1) ) + { + + if ($forum_attached_id == $row1['forum_id']) + { + $s = " selected=\"selected\""; + } + $attachable_forums .= '<option value="'.$row1[forum_id].$s.'">' . $row1[forum_name] . '</option>\n'; + } + + + } + else + { + $no_attachable_forums=1; + } } + + $forum_attached_id = $attachable_forums; $catlist = get_list('category', $cat_id, TRUE); @@ -317,6 +391,22 @@ ); $s_hidden_fields = '<input type="hidden" name="mode" value="' . $newmode .'" /><input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '" />'; + + if ($not_attachable or $no_attachable_forums) + { + if ($has_subforums) + { + $lang['Attached_Description'] = $lang['Has_attachments'].'<br>'. $lang['Attached_Description']; + $s_hidden_fields .='<input type="hidden" name="has_subforums" value="1" />'; + } + if ($no_attachable_forums) $lang['Attached_Description'] = $lang['No_attach_forums'].'<br>'. $lang['Attached_Description']; + $s_hidden_fields .='<input type="hidden" name="attached_forum_id" value="-1" />'; + } + else + { + $template->assign_block_vars('switch_attached_yes', array()); + } + $s_hidden_fields .='<input type="hidden" name="old_cat_id" value="'.$cat_id.'" />'; $template->assign_vars(array( 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), @@ -325,12 +415,17 @@ 'S_CAT_LIST' => $catlist, 'S_STATUS_LIST' => $statuslist, 'S_PRUNE_ENABLED' => $prune_enabled, + 'S_ATTACHED_FORUM_ID' => $forum_attached_id, + 'S_DETACH_ENABLED'=> $detach_enabled, 'L_FORUM_TITLE' => $l_title, 'L_FORUM_EXPLAIN' => $lang['Forum_edit_delete_explain'], 'L_FORUM_SETTINGS' => $lang['Forum_settings'], 'L_FORUM_NAME' => $lang['Forum_name'], 'L_CATEGORY' => $lang['Category'], + 'L_ATTACHED_FORUM' => $lang['Attached_Field_Title'] , + 'L_ATTACHED_DESC' => $lang['Attached_Description'], + 'L_DETACH_DESC' => $lang['Detach_Description'], 'L_FORUM_DESCRIPTION' => $lang['Forum_desc'], 'L_FORUM_STATUS' => $lang['Forum_status'], 'L_AUTO_PRUNE' => $lang['Forum_pruning'], @@ -392,8 +487,13 @@ } // There is no problem having duplicate forum names so we won't check for it. - $sql = "INSERT INTO " . FORUMS_TABLE . " (forum_id, forum_name, cat_id, forum_desc, forum_order, forum_status, prune_enable" . $field_sql . ") - VALUES ('" . $next_id . "', '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', $next_order, " . intval($HTTP_POST_VARS['forumstatus']) . ", " . intval($HTTP_POST_VARS['prune_enable']) . $value_sql . ")"; + if (intval($HTTP_POST_VARS['old_cat_id']) != intval($HTTP_POST_VARS[POST_CAT_URL])) + { + $HTTP_POST_VARS['attached_forum_id']=-1; + } + + $sql = "INSERT INTO " . FORUMS_TABLE . " (forum_id, forum_name, cat_id, attached_forum_id, forum_desc, forum_order, forum_status, prune_enable" . $field_sql . ") + VALUES ('" . $next_id . "', '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", " . intval($HTTP_POST_VARS['attached_forum_id']) . ", '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', $next_order, " . intval($HTTP_POST_VARS['forumstatus']) . ", " . intval($HTTP_POST_VARS['prune_enable']) . $value_sql . ")"; if( !$result = $db->sql_query($sql) ) { message_die(GENERAL_ERROR, "Couldn't insert row in forums table", "", __LINE__, __FILE__, $sql); @@ -431,8 +531,32 @@ } } + if (isset($HTTP_POST_VARS['detach_enabled']) && isset($HTTP_POST_VARS['has_subforums'])) + { + $sql = "UPDATE ". FORUMS_TABLE. " SET attached_forum_id=-1 WHERE attached_forum_id=" . intval($HTTP_POST_VARS[POST_FORUM_URL]); + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't detach subforums", "", __LINE__, __FILE__, $sql); + } + + } + + if (intval($HTTP_POST_VARS['old_cat_id']) != intval($HTTP_POST_VARS[POST_CAT_URL])) + { + $HTTP_POST_VARS['attached_forum_id']=-1; + if (isset($HTTP_POST_VARS['has_subforums']) && !isset($HTTP_POST_VARS['detach_enabled'])) + { + $sql = "UPDATE ". FORUMS_TABLE ." SET cat_id=". intval($HTTP_POST_VARS[POST_CAT_URL]) ." WHERE attached_forum_id=" . intval($HTTP_POST_VARS[POST_FORUM_URL]); + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't update subforums to new category", "", __LINE__, __FILE__, $sql); + } + + } + } + $sql = "UPDATE " . FORUMS_TABLE . " - SET forum_name = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", forum_desc = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . ", prune_enable = " . intval($HTTP_POST_VARS['prune_enable']) . " + SET forum_name = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]) .", attached_forum_id = " . intval($HTTP_POST_VARS['attached_forum_id']) . ", forum_desc = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . ", prune_enable = " . intval($HTTP_POST_VARS['prune_enable']) . " WHERE forum_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]); if( !$result = $db->sql_query($sql) ) { @@ -968,6 +1092,8 @@ $forum_rows = $db->sql_fetchrowset($q_forums); } + $subforum_rows = $forum_rows; + // // Okay, let's build the index // @@ -998,21 +1124,79 @@ if ($forum_rows[$j]['cat_id'] == $cat_id) { - $template->assign_block_vars("catrow.forumrow", array( - 'FORUM_NAME' => $forum_rows[$j]['forum_name'], - 'FORUM_DESC' => $forum_rows[$j]['forum_desc'], - 'ROW_COLOR' => $row_color, - 'NUM_TOPICS' => $forum_rows[$j]['forum_topics'], - 'NUM_POSTS' => $forum_rows[$j]['forum_posts'], + $sub_error=false; + $do_template=false; + if ($forum_rows[$j]['attached_forum_id'] !=-1) + { + $ok=''; + for($k = 0; $k < $total_forums; $k++) + { + $subforum_id = $subforum_rows[$k]['forum_id']; - 'U_VIEWFORUM' => append_sid($phpbb_root_path."viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"), - 'U_FORUM_EDIT' => append_sid("admin_forums.$phpEx?mode=editforum&" . POST_FORUM_URL . "=$forum_id"), - 'U_FORUM_DELETE' => append_sid("admin_forums.$phpEx?mode=deleteforum&" . POST_FORUM_URL . "=$forum_id"), - 'U_FORUM_MOVE_UP' => append_sid("admin_forums.$phpEx?mode=forum_order&move=-15&" . POST_FORUM_URL . "=$forum_id"), - 'U_FORUM_MOVE_DOWN' => append_sid("admin_forums.$phpEx?mode=forum_order&move=15&" . POST_FORUM_URL . "=$forum_id"), - 'U_FORUM_RESYNC' => append_sid("admin_forums.$phpEx?mode=forum_sync&" . POST_FORUM_URL . "=$forum_id")) - ); + if ($subforum_id == $forum_rows[$j]['attached_forum_id'] && $forum_rows[$k]['attached_forum_id']==-1) + { + $ok=TRUE;//normal parent found + } + } + if ($forum_rows[$j]['attached_forum_id']==$forum_id) $ok=FALSE; //attached to itself + if ($forum_rows[$j]['attached_forum_id']==0) $ok=FALSE; //invalid parent + if (!$ok) + { + $do_template=TRUE; + $sub_error=true; + } + } + else + { + $do_template=true; + }//attached_forum_id'] ==-1 + + if ($do_template) + { + $template->assign_block_vars("catrow.forumrow", array( + 'FORUM_NAME' => $forum_rows[$j]['forum_name'], + 'FORUM_DESC' => $forum_rows[$j]['forum_desc'], + 'ROW_COLOR' => $row_color, + 'NUM_TOPICS' => $forum_rows[$j]['forum_topics'], + 'NUM_POSTS' => $forum_rows[$j]['forum_posts'], + + 'U_VIEWFORUM' => append_sid($phpbb_root_path."viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_EDIT' => append_sid("admin_forums.$phpEx?mode=editforum&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_DELETE' => append_sid("admin_forums.$phpEx?mode=deleteforum&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_MOVE_UP' => append_sid("admin_forums.$phpEx?mode=forum_order&move=-15&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_MOVE_DOWN' => append_sid("admin_forums.$phpEx?mode=forum_order&move=15&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_RESYNC' => append_sid("admin_forums.$phpEx?mode=forum_sync&" . POST_FORUM_URL . "=$forum_id")) + ); + if ($sub_error) + { + $template->assign_block_vars ('catrow.forumrow.switch_error',array()); + } + + for($k = 0; $k < $total_forums; $k++) + { + $subforum_id = $subforum_rows[$k]['forum_id']; + if ($subforum_rows[$k]['attached_forum_id'] == $forum_id) + { + $template->assign_block_vars("catrow.forumrow", array( + 'FORUM_NAME' => $subforum_rows[$k]['forum_name'], + 'FORUM_DESC' => $subforum_rows[$k]['forum_desc'], + 'ROW_COLOR' => $row_color, + 'NUM_TOPICS' => $subforum_rows[$k]['forum_topics'], + 'NUM_POSTS' => $subforum_rows[$k]['forum_posts'], + + 'U_VIEWFORUM' => append_sid($phpbb_root_path."viewforum.$phpEx?" . POST_FORUM_URL . "=$subforum_id"), + 'U_FORUM_EDIT' => append_sid("admin_forums.$phpEx?mode=editforum&" . POST_FORUM_URL . "=$subforum_id"), + 'U_FORUM_DELETE' => append_sid("admin_forums.$phpEx?mode=deleteforum&" . POST_FORUM_URL . "=$subforum_id"), + 'U_FORUM_MOVE_UP' => append_sid("admin_forums.$phpEx?mode=forum_order&move=-15&" . POST_FORUM_URL . "=$subforum_id"), + 'U_FORUM_MOVE_DOWN' => append_sid("admin_forums.$phpEx?mode=forum_order&move=15&" . POST_FORUM_URL . "=$subforum_id"), + 'U_FORUM_RESYNC' => append_sid("admin_forums.$phpEx?mode=forum_sync&" . POST_FORUM_URL . "=$subforum_id")) + ); + $template->assign_block_vars ('catrow.forumrow.switch_attached_forum',array()); + } + } + } + }// if ... forumid == catid } // for ... forums Modified: main/trunk/includes/functions.php =================================================================== --- main/trunk/includes/functions.php 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/includes/functions.php 2006-12-24 06:08:00 UTC (rev 278) @@ -21,6 +21,54 @@ * ***************************************************************************/ + +function check_unread($forum_id) +{ +global $new_topic_data, $tracking_topics, $tracking_forums, $HTTP_COOKIE_VARS, $board_config; + 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]) ) + { + if ( empty($tracking_topics[$check_topic_id]) ) + { + $unread_topics = true; + $forum_last_post_time = max($check_post_time, $forum_last_post_time); + + } + 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; + } + } + + } + +return $unread_topics; + +} + function get_db_stat($mode) { global $db; @@ -201,6 +249,8 @@ function make_jumpbox($action, $match_forum_id = 0) { global $template, $userdata, $lang, $db, $nav_links, $phpEx, $SID; + + global $parent_lookup; // $is_auth = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata); @@ -245,6 +295,18 @@ $boxstring_forums = ''; for($j = 0; $j < $total_forums; $j++) { + + if ($parent_lookup==$forum_rows[$j]['forum_id'] && !$assigned) + { + $template->assign_block_vars('switch_parent_link', array() ); + + $template->assign_vars(array( + 'PARENT_NAME' => $forum_rows[$j]['forum_name'], + 'PARENT_URL'=>append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_rows[$j]['forum_id']) + )); + $assigned = TRUE; + } + if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $forum_rows[$j]['auth_view'] <= AUTH_REG ) { Modified: main/trunk/index.php =================================================================== --- main/trunk/index.php 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/index.php 2006-12-24 06:08:00 UTC (rev 278) @@ -158,11 +158,12 @@ break; default: - $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id - FROM (( " . FORUMS_TABLE . " f + $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 ) - ORDER BY f.cat_id, f.forum_order"; + 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"; break; } if ( !($result = $db->sql_query($sql)) ) @@ -175,6 +176,8 @@ { $forum_data[] = $row; } + $attach = $forum_data; + $db->sql_freeresult($result); if ( !($total_forums = count($forum_data)) ) @@ -341,7 +344,62 @@ if ( $forum_data[$j]['cat_id'] == $cat_id ) { $forum_id = $forum_data[$j]['forum_id']; + + $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']; + } + else + { + $attach_img = $images['icon_minipost']; + $l_attach_img = $lang['No_new_posts']; + } + } + else + { + $attach_img = $images['icon_minipost']; + $l_attach_img = $lang['No_new_posts']; + } + + $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'] ) + ); + } + } + if ( $is_auth_ary[$forum_id]['auth_view'] ) { if ( $forum_data[$j]['forum_status'] == FORUM_LOCKED ) @@ -354,45 +412,7 @@ $unread_topics = false; if ( $userdata['session_logged_in'] ) { - 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]) ) - { - if ( empty($tracking_topics[$check_topic_id]) ) - { - $unread_topics = true; - $forum_last_post_time = max($check_post_time, $forum_last_post_time); - - } - 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; - } - } - - } + $unread_topics = check_unread($forum_id); } $folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum']; @@ -404,13 +424,19 @@ if ( $forum_data[$j]['forum_last_post_id'] ) { + 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 = '<a href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '">'.$forum_data[$j]['topic_title'].' <img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a>'; - $last_post = $last_post_time . '<br />'; - + $last_post .= '<br /> '; + $last_post .= ' '.$last_post_time; + $last_post .= '<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>'; + } else { @@ -424,8 +450,8 @@ } else { - $l_moderators = ' '; - $moderator_list = ' '; + $l_moderators = ''; + $moderator_list = ''; } $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; @@ -447,12 +473,36 @@ 'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id")) ); + + $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'] + )); + } + } + + } } } } } } // for ... categories +} }// if ... total_categories else Modified: main/trunk/language/lang_english/lang_admin.php =================================================================== --- main/trunk/language/lang_english/lang_admin.php 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/language/lang_english/lang_admin.php 2006-12-24 06:08:00 UTC (rev 278) @@ -759,6 +759,12 @@ $lang['Login_reset_time'] = 'Login lock time'; $lang['Login_reset_time_explain'] = 'Time in minutes the user have to wait until he is allowed to login again after exceeding the number of allowed login attempts.'; +$lang['Attached_Field_Title'] = 'Attached to forum'; +$lang['Attached_Description'] = "This field has been added by sub-forums mod. It will display all attachable forums (if available) in this category"; +$lang['Detach_Description'] = "Detach all forums"; +$lang['Has_attachments'] = 'This forum has other forums attached to it. If you assign new category to this forum it will move all it\'s subforums to new category unless you select detach checkbox'; +$lang['No_attach_forums'] = 'No attachable forums in this category'; + // // That's all Folks! // ------------------------------------------------- Modified: main/trunk/language/lang_english/lang_main.php =================================================================== --- main/trunk/language/lang_english/lang_main.php 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/language/lang_english/lang_main.php 2006-12-24 06:08:00 UTC (rev 278) @@ -1020,6 +1020,9 @@ $lang['Session_invalid'] = 'Invalid Session. Please resubmit the form.'; +$lang['Attached_forum'] = 'Subforum'; +$lang['Attached_forums'] = 'Subforum'; + // // That's all, Folks! // ------------------------------------------------- Modified: main/trunk/posting.php =================================================================== --- main/trunk/posting.php 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/posting.php 2006-12-24 06:08:00 UTC (rev 278) @@ -974,6 +974,12 @@ 'pollbody' => 'posting_poll_body.tpl', 'reviewbody' => 'posting_topic_review.tpl') ); + +if ($post_info[attached_forum_id] > 0) +{ + $parent_lookup=$post_info[attached_forum_id]; +} + make_jumpbox('viewforum.'.$phpEx); $template->assign_vars(array( Modified: main/trunk/templates/subSilver/admin/forum_admin_body.tpl =================================================================== --- main/trunk/templates/subSilver/admin/forum_admin_body.tpl 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/templates/subSilver/admin/forum_admin_body.tpl 2006-12-24 06:08:00 UTC (rev 278) @@ -17,7 +17,19 @@ </tr> <!-- BEGIN forumrow --> <tr> - <td class="row2"><span class="gen"><a href="{catrow.forumrow.U_VIEWFORUM}" target="_new">{catrow.forumrow.FORUM_NAME}</a></span><br /><span class="gensmall">{catrow.forumrow.FORUM_DESC}</span></td> + <td class="row2"><span class="gen"> + <!-- BEGIN switch_attached_forum --> + |__ + <!-- END switch_attached_forum --> + <!-- BEGIN switch_error --> + ERROR + <!-- END switch_error --> +<a href="{catrow.forumrow.U_VIEWFORUM}" target="_new">{catrow.forumrow.FORUM_NAME}</a></span><br /> +<span class="gensmall"> +<!-- BEGIN switch_attached_forum --> + +<!-- END switch_attached_forum --> +{catrow.forumrow.FORUM_DESC}</span></td> <td class="row1" align="center" valign="middle"><span class="gen">{catrow.forumrow.NUM_TOPICS}</span></td> <td class="row2" align="center" valign="middle"><span class="gen">{catrow.forumrow.NUM_POSTS}</span></td> <td class="row1" align="center" valign="middle"><span class="gen"><a href="{catrow.forumrow.U_FORUM_EDIT}">{L_EDIT}</a></span></td> Modified: main/trunk/templates/subSilver/admin/forum_edit_body.tpl =================================================================== --- main/trunk/templates/subSilver/admin/forum_edit_body.tpl 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/templates/subSilver/admin/forum_edit_body.tpl 2006-12-24 06:08:00 UTC (rev 278) @@ -20,6 +20,18 @@ <td class="row1">{L_CATEGORY}</td> <td class="row2"><select name="c">{S_CAT_LIST}</select></td> </tr> + <tr> + <td class="row1">{L_ATTACHED_FORUM}</td> + <td class="row2"> + <!-- BEGIN switch_attached_yes --> + <select name="attached_forum_id">{S_ATTACHED_FORUM_ID}</select> + <!-- END switch_attached_yes --> + <!-- BEGIN switch_attached_no --> + {L_DETACH_DESC} <input type="checkbox" name="detach_enabled" value="1" {S_DETACH_ENABLED} /><br /> + <!-- END switch_attached_no --> + {L_ATTACHED_DESC} + </td> + </tr> <tr> <td class="row1">{L_FORUM_STATUS}</td> <td class="row2"><select name="forumstatus">{S_STATUS_LIST}</select></td> Modified: main/trunk/templates/subSilver/index_body.tpl =================================================================== --- main/trunk/templates/subSilver/index_body.tpl 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/templates/subSilver/index_body.tpl 2006-12-24 06:08:00 UTC (rev 278) @@ -30,7 +30,18 @@ <td class="row1" align="center" valign="middle" height="50"><img src="{catrow.forumrow.FORUM_FOLDER_IMG}" width="46" height="25" alt="{catrow.forumrow.L_FORUM_FOLDER_ALT}" title="{catrow.forumrow.L_FORUM_FOLDER_ALT}" /></td> <td class="row1" width="100%" height="50"><span class="forumlink"> <a href="{catrow.forumrow.U_VIEWFORUM}" class="forumlink">{catrow.forumrow.FORUM_NAME}</a><br /> </span> <span class="genmed">{catrow.forumrow.FORUM_DESC}<br /> - </span><span class="gensmall">{catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}</span></td> + </span><span class="gensmall">{catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}</span> + <!-- BEGIN switch_attached_forums --> + <!-- BEGIN br --> + <br /> + <!-- END br --> + <span class="genmed">{catrow.forumrow.switch_attached_forums.L_ATTACHED_FORUMS}: + <!-- BEGIN attached_forums --> + <a class="nav" href="{catrow.forumrow.switch_attached_forums.attached_forums.U_VIEWFORUM}"><img alt="{catrow.forumrow.switch_attached_forums.attached_forums.L_FORUM_IMAGE}" border="0" src="{catrow.forumrow.switch_attached_forums.attached_forums.FORUM_IMAGE}" title="{catrow.forumrow.switch_attached_forums.attached_forums.L_FORUM_IMAGE}" />{catrow.forumrow.switch_attached_forums.attached_forums.FORUM_NAME}</a> + <!-- END attached_forums --> + <span class="genmed"> + <!-- END switch_attached_forums --> +</td> <td class="row2" align="center" valign="middle" height="50"><span class="gensmall">{catrow.forumrow.TOPICS}</span></td> <td class="row2" align="center" valign="middle" height="50"><span class="gensmall">{catrow.forumrow.POSTS}</span></td> <td class="row2" align="center" valign="middle" height="50" nowrap="nowrap"> <span class="gensmall">{catrow.forumrow.LAST_POST}</span></td> Modified: main/trunk/templates/subSilver/posting_body.tpl =================================================================== --- main/trunk/templates/subSilver/posting_body.tpl 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/templates/subSilver/posting_body.tpl 2006-12-24 06:08:00 UTC (rev 278) @@ -263,6 +263,9 @@ <table width="100%" cellspacing="2" cellpadding="2" border="0" align="center"> <tr> <td align="left"><span class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a> + <!-- BEGIN switch_parent_link --> + -> <a class="nav" href="{PARENT_URL}">{PARENT_NAME}</a> + <!-- END switch_parent_link --> <!-- BEGIN switch_not_privmsg --> -> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td> <!-- END switch_not_privmsg --> Modified: main/trunk/templates/subSilver/viewforum_body.tpl =================================================================== --- main/trunk/templates/subSilver/viewforum_body.tpl 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/templates/subSilver/viewforum_body.tpl 2006-12-24 06:08:00 UTC (rev 278) @@ -7,11 +7,36 @@ </tr> <tr> <td align="left" valign="middle" width="50"><a href="{U_POST_NEW_TOPIC}"><img src="{POST_IMG}" border="0" alt="{L_POST_NEW_TOPIC}" /></a></td> - <td align="left" valign="middle" class="nav" width="100%"><span class="nav"> <a href="{U_INDEX}" class="nav">{L_INDEX}</a> -> <a class="nav" href="{U_VIEW_FORUM}">{FORUM_NAME}</a></span></td> + <td align="left" valign="middle" class="nav" width="100%"><span class="nav"> <a href="{U_INDEX}" class="nav">{L_INDEX}</a> + + <!-- BEGIN switch_parent_link --> + -> <a class="nav" href="{PARENT_URL}">{PARENT_NAME}</a> + <!-- END switch_parent_link --> + -> <a class="nav" href="{U_VIEW_FORUM}">{FORUM_NAME}</a></span></td> <td align="right" valign="bottom" class="nav" nowrap="nowrap"><span class="gensmall"><a href="{U_MARK_READ}">{L_MARK_TOPICS_READ}</a></span></td> </tr> </table> - + <!-- BEGIN switch_attached_list --> + <br /> + <table width="100%" border="0" cellpadding="4" cellspacing="1" width="100%" class="forumline"> + <tr> + <th colspan="2" class="thCornerL" height="15" nowrap="nowrap"> {switch_attached_list.L_ATTACHED_FORUM} </th> + <th width="50" class="thTop" nowrap="nowrap"> {switch_attached_list.L_ATTACHED_TOPICS} </th> + <th width="50" class="thTop" nowrap="nowrap"> {switch_attached_list.L_ATTACHED_POSTS} </th> + <th width="50" class="thTop" nowrap="nowrap"> {switch_attached_list.L_LAST_POST} </th> + </tr> + <!-- BEGIN switch_attached_present --> + <tr> + <td class="row1" align="center" valign="middle" height="38"><img src="{switch_attached_list.switch_attached_present.FORUM_FOLDER_IMG}" width="46" height="25" alt="{switch_attached_list.switch_attached_present.L_FORUM_FOLDER_ALT}" title="{switch_attached_list.switch_attached_present.L_FORUM_FOLDER_ALT}" /></td> + <td class="row1" width="75%"><span class="forumlink"><a class="forumlink" href="{switch_attached_list.switch_attached_present.U_VIEWFORUM}">{switch_attached_list.switch_attached_present.FORUM_NAME}</a></span><br /><span class="genmed">{switch_attached_list.switch_attached_present.FORUM_DESC}</span></td> + <td class="row2" align="center" valign="middle"><span class="gensmall">{switch_attached_list.switch_attached_present.TOPICS}</span></td> + <td class="row2" align="center" valign="middle"><span class="gensmall">{switch_attached_list.switch_attached_present.POSTS}</span></td> + <td class="row2" align="center" nowrap="nowrap" valign="middle"><span class="gensmall">{switch_attached_list.switch_attached_present.LAST_POST_ID}</span></td> + </tr> + <!-- END switch_attached_present --> + </table> + <br /> +<!-- END switch_attached_list --> <table border="0" cellpadding="4" cellspacing="1" width="100%" class="forumline"> <tr> <th colspan="2" align="center" height="25" class="thCornerL" nowrap="nowrap"> {L_TOPICS} </th> @@ -46,7 +71,12 @@ <table width="100%" cellspacing="2" border="0" align="center" cellpadding="2"> <tr> <td align="left" valign="middle" width="50"><a href="{U_POST_NEW_TOPIC}"><img src="{POST_IMG}" border="0" alt="{L_POST_NEW_TOPIC}" /></a></td> - <td align="left" valign="middle" width="100%"><span class="nav"> <a href="{U_INDEX}" class="nav">{L_INDEX}</a> -> <a class="nav" href="{U_VIEW_FORUM}">{FORUM_NAME}</a></span></td> + + <td align="left" valign="middle" width="100%"><span class="nav"> <a href="{U_INDEX}" class="nav">{L_INDEX}</a> + <!-- BEGIN switch_parent_link --> + -> <a class="nav" href="{PARENT_URL}">{PARENT_NAME}</a> + <!-- END switch_parent_link --> + -> <a class="nav" href="{U_VIEW_FORUM}">{FORUM_NAME}</a></span></td> <td align="right" valign="middle" nowrap="nowrap"><span class="gensmall">{S_TIMEZONE}</span><br /><span class="nav">{PAGINATION}</span> </td> </tr> Modified: main/trunk/templates/subSilver/viewtopic_body.tpl =================================================================== --- main/trunk/templates/subSilver/viewtopic_body.tpl 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/templates/subSilver/viewtopic_body.tpl 2006-12-24 06:08:00 UTC (rev 278) @@ -11,6 +11,11 @@ <tr> <td align="left" valign="bottom" nowrap="nowrap"><span class="nav"><a href="{U_POST_NEW_TOPIC}"><img src="{POST_IMG}" border="0" alt="{L_POST_NEW_TOPIC}" align="middle" /></a> <a href="{U_POST_REPLY_TOPIC}"><img src="{REPLY_IMG}" border="0" alt="{L_POST_REPLY_TOPIC}" align="middle" /></a></span></td> <td align="left" valign="middle" width="100%"><span class="nav"> <a href="{U_INDEX}" class="nav">{L_INDEX}</a> + + <!-- BEGIN switch_parent_link --> + -> <a class="nav" href="{PARENT_URL}">{PARENT_NAME}</a> + <!-- END switch_parent_link --> + -> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td> -> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td> </tr> </table> @@ -72,6 +77,10 @@ <tr> <td align="left" valign="middle" nowrap="nowrap"><span class="nav"><a href="{U_POST_NEW_TOPIC}"><img src="{POST_IMG}" border="0" alt="{L_POST_NEW_TOPIC}" align="middle" /></a> <a href="{U_POST_REPLY_TOPIC}"><img src="{REPLY_IMG}" border="0" alt="{L_POST_REPLY_TOPIC}" align="middle" /></a></span></td> <td align="left" valign="middle" width="100%"><span class="nav"> <a href="{U_INDEX}" class="nav">{L_INDEX}</a> + <!-- BEGIN switch_parent_link --> + -> <a class="nav" href="{PARENT_URL}">{PARENT_NAME}</a> + <!-- END switch_parent_link --> + -> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td> -> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td> <td align="right" valign="top" nowrap="nowrap"><span class="gensmall">{S_TIMEZONE}</span><br /><span class="nav">{PAGINATION}</span> </td> Modified: main/trunk/viewforum.php =================================================================== --- main/trunk/viewforum.php 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/viewforum.php 2006-12-24 06:08:00 UTC (rev 278) @@ -64,7 +64,8 @@ { $sql = "SELECT * FROM " . FORUMS_TABLE . " - WHERE forum_id = $forum_id"; + WHERE forum_id = $forum_id OR attached_forum_id =$forum_id + ORDER BY attached_forum_id ASC"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql); @@ -74,7 +75,12 @@ { message_die(GENERAL_MESSAGE, 'Forum_not_exist'); } +$attachments = ''; +if ($db->sql_numrows ($result) > 1) +{ + $attachments=TRUE; +} // // If the query doesn't return any rows this isn't a valid forum. Inform // the user. @@ -393,6 +399,12 @@ $template->set_filenames(array( 'body' => 'viewforum_body.tpl') ); + +if ($forum_row[attached_forum_id] > 0) +{ + $parent_lookup=$forum_row[attached_forum_id]; +} + make_jumpbox('viewforum.'.$phpEx); $template->assign_vars(array( @@ -445,6 +457,142 @@ // // Okay, lets dump out the page ... // + +if ($attachments) +{ + + // + // Obtain a list of topic ids which contain + // posts made since user last visited + // + if ( $userdata['session_logged_in'] ) + { + $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']; + } + } + + $sql2 = "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) + WHERE attached_forum_id = " . $forum_id . " + GROUP by f.forum_id ORDER BY f.forum_order"; + + $result2 = $db->sql_query ($sql2); + if (!$result2 ) + { + message_die ('Could not gather attached forum info', __LINE__, __FILE__, $sql2); + } + + if ($db->sql_numrows ($result2) != 0) + { + while( $row = $db->sql_fetchrow($result2) ) + { + $forum_data[] = $row; + } + $is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data); + + $x=0; + foreach ($forum_data as $row2 => $value) + { + if ($is_auth_ary[$value['forum_id']]['auth_view']) + { + $x++; + if ($x==1) + { + $template->assign_block_vars ('switch_attached_list', + array( 'L_ATTACHED_FORUM' => $lang['Attached_forums'], + 'L_ATTACHED_TOPICS' => $lang['Topics'], + 'L_ATTACHED_POSTS' => $lang['Posts'], + 'L_LAST_POST'=>$lang['Last_Post'] + ) + ); + + } + $attach_forum_link = append_sid('viewforum.php?f=' . $value['forum_id']); + $attach_forum_name = '<a href="' . append_sid('viewforum.php?f=' . $value['forum_id']) . '">' . $value['forum_name'] . '</a>' ; + $attach_forum_desc = $value['forum_desc']; + $attach_forum_topics = $value['forum_topics']; + $attach_forum_posts = $value['forum_posts']; + $last_post_id = $value['forum_last_post_id']; + + if ( $value['forum_status'] == FORUM_LOCKED ) + { + $folder_image = $images['forum_locked']; + $folder_alt = $lang['Forum_locked']; + } + else + { + $unread_topics = false; + if ( $userdata['session_logged_in'] ) + { + $unread_topics=check_unread($value['forum_id']); + } + + $folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum']; + $folder_alt = ( $unread_topics ) ? $lang['New_posts'] : $lang['No_new_posts']; + } + + if ( $value['forum_last_post_id'] ) + { + + if (strlen($value['topic_title'])>=25) + { + $value['topic_title']=substr($value['topic_title'],0,25). "..."; + } + + $last_post_time = create_date($board_config['default_dateformat'], $value['post_time'], $board_config['board_timezone']); + $last_post = '<a href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $value['forum_last_post_id']) . '#' . $value['forum_last_post_id'] . '">'.$value['topic_title'].' <img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a>'; + + $last_post .= '<br /> '; + $last_post .= ' '.$last_post_time; + $last_post .= '<br /> '; + $last_post .= ( $value['user_id'] == ANONYMOUS ) ? ( ($value['post_username'] != '' ) ? $value['post_username'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $value['user_id']) . '">' . $value['username'] . '</a> '; + + + + } + else + { + $last_post = $lang['No_Posts']; + } + + + + + $template->assign_block_vars ('switch_attached_list.switch_attached_present', + array + ( + 'FORUM_FOLDER_IMG' => $folder_image, + 'L_FORUM_FOLDER_ALT' => $folder_alt, + 'FORUM_NAME' => $attach_forum_name, + 'U_VIEWFORUM' => $attach_forum_link, + 'FORUM_DESC' => $attach_forum_desc, + 'TOPICS' => $attach_forum_topics, + 'POSTS' => $attach_forum_posts, + 'LAST_POST_ID' => $last_post, + )); + } + } + + } + $db->sql_freeresult ($result2); +} + if( $total_topics ) { for($i = 0; $i < $total_topics; $i++) Modified: main/trunk/viewtopic.php =================================================================== --- main/trunk/viewtopic.php 2006-12-24 00:31:58 UTC (rev 277) +++ main/trunk/viewtopic.php 2006-12-24 06:08:00 UTC (rev 278) @@ -147,7 +147,7 @@ $order_sql = (!$post_id) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments ORDER BY p.post_id ASC"; -$sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments" . $count_sql . " +$sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments, f.attached_forum_id" . $count_sql . " FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $join_sql_table . " WHERE $join_sql AND f.forum_id = t.forum_id @@ -569,6 +569,12 @@ $template->set_filenames(array( 'body' => 'viewtopic_body.tpl') ); + +if (intval($forum_topic_data['attached_forum_id'])>0) +{ + $parent_lookup=intval($forum_topic_data['attached_forum_id']); +} + make_jumpbox('viewforum.'.$phpEx, $forum_id); // This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |