Okay, I bit and went through the whole thing, now I still have it not showing.
forum.php
<?php
/***********************************************************************
Copyright (C) 2002-2005 Rickard Andersson (rickard@punbb.org)
This file is part of PunBB.
PunBB 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.
PunBB is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
************************************************************************/
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
if ($pun_user['g_read_board'] == '0')
message($lang_common['No view']);
// Load the index.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/index.php';
$page_title = pun_htmlspecialchars($pun_config['o_board_title']);
define('PUN_ALLOW_INDEX', 1);
require PUN_ROOT.'header.php';
include PUN_ROOT.'/include/user/newsbox.php';
include('mod_active_topics.php');
$sfcount=0;
$sfdb = array($_parent_id_, $_topics_, $_posts_, $_last_post_id_, $_last_poster_, $_last_post_);
$forums_info = $db->query('SELECT f.num_topics, f.num_posts, f.parent_forum_id, f.last_post_id, f.last_poster, f.last_post, f.id, f.forum_name, p.poster_id as last_poster_id, t.subject FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'posts AS p ON (p.id=f.last_post_id) LEFT JOIN '.$db->prefix.'topics AS t ON t.last_post_id=f.last_post_id ORDER BY disp_position') or error(implode($db->error(),''),__FILE__,__LINE__,$db->error());
while($current = $db->fetch_assoc($forums_info)) {
if ($current['parent_forum_id'] != 0)
{
$sfdb[$sfcount][0] = $current['parent_forum_id'];
$sfdb[$sfcount][1] = $current['num_topics'];
$sfdb[$sfcount][2] = $current['num_posts'];
$sfdb[$sfcount][3] = $current['last_post_id'];
$sfdb[$sfcount][4] = $current['last_poster'];
$sfdb[$sfcount][5] = $current['last_post'];
$sfdb[$sfcount][6] = $current['id'];
$sfdb[$sfcount][7] = $current['forum_name'];
$sfdb[$sfcount][8] = $current['last_poster_id'];
$sfcount++;
}
}
echo '<script type="text/javascript" src="include/global.js"></script>';
// Print the categories and forums
$result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.forum_desc, f.redirect_url, f.moderators, f.num_topics, f.num_posts, f.last_post, f.last_post_id, f.last_poster, f.parent_forum_id, p.poster_id as last_poster_id, t.subject FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id LEFT JOIN '.$db->prefix.'topics AS t ON t.last_post_id=f.last_post_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') LEFT JOIN '.$db->prefix.'posts AS p ON (p.id=f.last_post_id) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND (f.parent_forum_id IS NULL OR f.parent_forum_id=0) ORDER BY c.disp_position, c.id, f.disp_position', true) or error('Unable to fetch category/forum list', __FILE__, __LINE__, $db->error());$cur_category = 0;
$cat_count = 0;
// stuff for toggling categories
$cat_ids = (isset($_COOKIE['collapseprefs']))? $_COOKIE['collapseprefs'].',': FALSE;
while ($cur_forum = $db->fetch_assoc($result))
{
$moderators = '';
if ($cur_forum['cid'] != $cur_category) // A new category since last iteration?
{
if ($cur_category != 0)
echo "\t\t\t".'</tbody>'."\n\t\t\t".'</table>'."\n\t\t".'</div>'."\n\t".'</div>'."\n".'</div>'."\n\n";
++$cat_count;
// Setting varibles for toggling categories
$div_box = strstr($cat_ids, $cat_count.',')? ' style="display:none"' : '';
$exp_img = (is_file('img/'.$pun_user['style'].'/misc/exp_down.png')? 'img/'.$pun_user['style'].'/misc/': 'img/') . (strpos($div_box,'none') ? 'exp_down.png' : 'exp_up.png');
?>
<div id="idx<?php echo $cat_count ?>" class="blocktable">
<h2>
<a href="javascript:togglecategory(<?php echo $cat_count?>);"><img align="right" src="<?php echo $exp_img?>" alt="Collapse" id="img_<?php echo $cat_count?>" /></a>
<span><?php echo pun_htmlspecialchars($cur_forum['cat_name']) ?></span>
</h2>
<div class="box" id="box_<?php echo $cat_count ?>"<?php echo $div_box?>>
<div class="inbox">
<table cellspacing="0">
<thead>
<tr>
<th class="tcl" scope="col"><?php echo $lang_common['Forum'] ?></th>
<th class="tc2" scope="col"><?php echo $lang_index['Topics'] ?></th>
<th class="tc3" scope="col"><?php echo $lang_common['Posts'] ?></th>
<th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th>
</tr>
</thead>
<tbody>
<?php
$cur_category = $cur_forum['cid'];
}
$item_status = '';
$icon_text = $lang_common['Normal icon'];
$icon_type = 'icon';
// Are there new posts?
if (!$pun_user['is_guest'] && $cur_forum['last_post'] > $pun_user['last_visit'])
{
$item_status = 'inew';
$icon_text = $lang_common['New icon'];
$icon_type = 'icon inew';
}
// Is this a redirect forum?
if ($cur_forum['redirect_url'] != '')
{
$forum_field = '<h3><a href="'.pun_htmlspecialchars($cur_forum['redirect_url']).'" title="'.$lang_index['Link to'].' '.pun_htmlspecialchars($cur_forum['redirect_url']).'">'.pun_htmlspecialchars($cur_forum['forum_name']).'</a></h3>';
$num_topics = $num_posts = ' ';
$item_status = 'iredirect';
$icon_text = $lang_common['Redirect icon'];
$icon_type = 'icon';
$l_post = '';
}
else
{
//$forum_field = '<h3><a href="viewforum.php?id='.$cur_forum['fid'].'">'.pun_htmlspecialchars($cur_forum['forum_name']).'</a></h3>';
$forum_field = '<h3><a href="extern.php?type=rss&action=active&fid='.$cur_forum['fid'].'"><img src="img/rss.png" border="0" alt="RSS" align="right" /></a><a href="viewforum.php?id='.$cur_forum['fid'].'">'.pun_htmlspecialchars($cur_forum['forum_name']).'</a></h3>';
################################################################################
########################### Sub Forum MOD (start) ##############################
################################################################################
$n_t = 0;
$n_p = 0;
$l_pid = $cur_forum['last_post_id'];
$l_pr = $cur_forum['last_poster'];
$l_pr_id = $cur_forum['last_poster_id'];
$l_post = $cur_forum['last_post'];
for ($i = 0; $i < $sfcount; $i++)
{
if ($sfdb[$i][0] == $cur_forum['fid'])
{
$n_t = $n_t + $sfdb[$i][1];
$n_p = $n_p + $sfdb[$i][2];
if ($l_pid < $sfdb[$i][3])
{
$l_pid = $sfdb[$i][3];
$l_pr = $sfdb[$i][4];
$l_pr_id = $sfdb[$i][8];
$l_post = $sfdb[$i][5];
}
}
}
$num_topics = $n_t + $cur_forum['num_topics'];
$num_posts = $n_p + $cur_forum['num_posts'];
################################################################################
########################### Sub Forum MOD ( end ) ##############################
################################################################################
}
if ($cur_forum['forum_desc'] != '')
$forum_field .= "\n\t\t\t\t\t\t\t\t".$cur_forum['forum_desc'];
// Display the last topic
$idm = $l_pr_su;
if(strlen($idm) > 30) {
$idmComp = str_replace('"', "''", $idm);
$idm = substr($idm, 0, 30).'...';
} else
$idmComp = '';
// If there is a last_post/last_poster.
if ($l_post != '') {
$idmT = (isset($idmComp)) ? ' title="'.$idmComp.'"' : '';
$last_post = 'Re: <a href="viewtopic.php?pid='.$l_pid.'#p'.$l_pid.'"'.$idmT.'>'.$idm.'</a><br />'.format_time($l_post).'<br /><span class="byuser">'.$lang_common['by'].' <a href="profile.php?id='.$l_pr_id.'">'.pun_htmlspecialchars($l_pr).'</a></span>';
} else
$last_post = ' ';
if ($cur_forum['moderators'] != '')
{
$mods_array = unserialize($cur_forum['moderators']);
$moderators = array();
while (list($mod_username, $mod_id) = @each($mods_array))
$moderators[] = '<a href="profile.php?id='.$mod_id.'">'.pun_htmlspecialchars($mod_username).'</a>';
$moderators = "\t\t\t\t\t\t\t\t".'<p>('.$lang_common['Moderated by'].': <font style="font-weight: bold;">'.implode(', ', $moderators).'</font>)</p>'."\n";
}
if (!empty($sfdb)) {
foreach ($sfdb as $sub_forums) {
if (!$pun_user['is_guest']) {
if ($cur_forum['fid'] == $sub_forums[0]) {
if (forum_is_new($cur_forum['fid'], $cur_forum['last_post']) || forum_is_new($sub_forums[6], $sub_forums[5])) {
$item_status = 'inew';
$icon_text = $lang_common['New icon'];
$icon_type = 'icon inew';
}
}
}
}
}
?>
<tr<?php if ($item_status != '') echo ' class="'.$item_status.'"'; ?>>
<td class="tcl">
<div class="intd">
<div class="<?php echo $icon_type ?>"><div class="nosize"><?php echo $icon_text ?></div></div>
<div class="tclcon">
<?php echo $forum_field."\n".$moderators ?>
<?php
$sub_forums_list = array();
if(!empty($sfdb)) {
foreach ($sfdb as $sub_forums) {
if($cur_forum['fid'] == $sub_forums[0]) {
$sub_forums_list[] = '<a class="sub_name" href="viewforum.php?id='.$sub_forums[6].'"><span class="sub_name">'.pun_htmlspecialchars($sub_forums[7]).'</span></a>';
}
}
if(!empty($sub_forums_list)) {
$sub_forums_list = "\t\t\t\t\t\t\t\t".'<span class="sub_title">Sub Forums:</span> '.implode(', ', $sub_forums_list)."\n";
if ($cur_forum['forum_desc'] != NULL) {
echo "<div style='margin-top: 4px;'>";
}
echo "$sub_forums_list</div>";
}
}
?>
</div>
</div>
</td>
<td class="tc2"><?php echo $num_topics ?></td>
<td class="tc3"><?php echo $num_posts ?></td>
<td class="tcr"><?php echo $last_post ?></td>
</tr>
<?php
}
// Did we output any categories and forums?
if ($cur_category > 0)
echo "\t\t\t".'</tbody>'."\n\t\t\t".'</table>'."\n\t\t".'</div>'."\n\t".'</div>'."\n".'</div>'."\n\n";
else
echo '<div id="idx0" class="block"><div class="box"><div class="inbox"><p>'.$lang_index['Empty board'].'</p></div></div></div>';
// Collect some statistics from the database
$result = $db->query('SELECT COUNT(id)-1 FROM '.$db->prefix.'users') or error('Unable to fetch total user count', __FILE__, __LINE__, $db->error());
$stats['total_users'] = $db->result($result);
$result = $db->query('SELECT id, username FROM '.$db->prefix.'users ORDER BY registered DESC LIMIT 1') or error('Unable to fetch newest registered user', __FILE__, __LINE__, $db->error());
$stats['last_user'] = $db->fetch_assoc($result);
$result = $db->query('SELECT SUM(num_topics), SUM(num_posts) FROM '.$db->prefix.'forums') or error('Unable to fetch topic/post count', __FILE__, __LINE__, $db->error());
list($stats['total_topics'], $stats['total_posts']) = $db->fetch_row($result);
$result = $db->query('SELECT COUNT(id) FROM '.$db->prefix.'polls') or error('Impossible de reFIND le nombre total de sondage', __FILE__, __LINE__, $db->error());
$stats['total_polls'] = $db->result($result);
?>
<div class="block">
<h2><span><?php echo $lang_index['Board info'] ?></span></h2>
<div class="box">
<div id="brdstats" class="inbox">
<dl class="conr">
<dt><strong><?php echo $lang_index['Board stats'] ?></strong></dt>
<dd><?php echo $lang_index['No of users'].': <strong>'. $stats['total_users'] ?></strong></dd>
<dd><?php echo $lang_index['No of topics'].': <strong>'.$stats['total_topics'] ?></strong></dd>
<dd><?php echo $lang_index['No of polls'].': <strong>'.$stats['total_polls'] ?></strong></dd>
<dd><?php echo $lang_index['No of posts'].': <strong>'.$stats['total_posts'] ?></strong></dd>
</dl>
<dl class="con1">
<dt><strong><?php echo $lang_index['User info'] ?></strong></dt>
<dd><?php echo $lang_index['Newest user'] ?>: <a href="profile.php?id=<?php echo $stats['last_user']['id'] ?>"><?php echo pun_htmlspecialchars($stats['last_user']['username']) ?></a></dd>
<?php
if ($pun_config['o_users_online'] == '1')
{
// Fetch users online info and generate strings for output
$num_guests = 0;
$users = array();
$result = $db->query('SELECT user_id, ident, color FROM '.$db->prefix.'online WHERE idle=0 ORDER BY ident', true) or error('Unable to fetch online list', __FILE__, __LINE__, $db->error());
while ($pun_user_online = $db->fetch_assoc($result))
{
if ($pun_user_online['user_id'] > 1)
$users[] = "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_online['user_id'].'"><span style="color: '.$pun_user_online['color'].'">'.pun_htmlspecialchars($pun_user_online['ident']).'</span></a>';
else
++$num_guests;
}
$num_users = count($users);
echo "\t\t\t\t".'<dd>'. $lang_index['Users online'].': <strong>'.$num_users.'</strong></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Guests online'].': <strong>'.$num_guests.'</strong></dd>'."\n\t\t\t".'</dl>'."\n";
include('botdetect.php');
$botStatus = isBotOnline();
if ($num_users > 0 || $botStatus != '') {
echo "\t\t\t".'<dl id="onlinelist" class= "clearb">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Online'].': </strong></dt>'."\t\t\t\t".implode(',</dd> ', $users);
if($botStatus != '' & $num_users == 0)
echo substr($botStatus, 1);
else
echo $botStatus;
echo '</dd>'."\n\t\t\t".'</dl>'."\n";
}
echo "\t\t\t".'<div class="clearer"></div>'."\n";
}
else
echo "\t\t".'</dl>'."\n\t\t\t".'<div class="clearer"></div>'."\n";
?>
</div>
</div><div id="announce" class="block">
<div id="stats1"><span>Top 15 most active users</span></div>
<div class="box">
<div class="inbox">
<div>
<?php
$result = $db->query('SELECT id, username, num_posts FROM '.$db->prefix.'users ORDER BY num_posts DESC, username LIMIT 15') or error('Unable to fetch user data', __FILE__, __LINE__, $db->error());
while ($data = $db->fetch_assoc($result))
{
if ($data['id'] != 1)
{
echo "\t\t\t\t\t\t".'<a href="profile.php?id='.$data['id'].'">'.pun_htmlspecialchars($data['username']).'</a> ('.$data['num_posts'].') '."\n";
}
}
?>
</div>
</div>
</div>
<?php
?>
<div id="most_users_online" class="block">
<div id="stats3"><span><?php echo $lang_index['most_users_online'] ?></span></div>
<div class="box">
<div style="padding-top: 4px;" align="center" class="inbox">
<?php
if($num_users > $pun_config['o_max_users_online'])
{
$db->query("UPDATE ".$db->prefix."config SET conf_value = '".$num_users."' WHERE conf_name = 'o_max_users_online'");
echo $lang_index['Max users online'].": <strong>".$num_users."</strong>\n";
unlink(PUN_ROOT.'cache/cache_config.php');
}
else
echo $lang_index['Max users online'].": [<strong>".$pun_config['o_max_users_online']."</strong>]\n";
/* To disable guest counting, remove the last 2 characters of this line
if($num_guests > $pun_config['o_max_guests_online'])
{
$db->query("UPDATE ".$db->prefix."config SET conf_value = '".$num_users."' WHERE conf_name = 'o_max_guests_online'");
echo "<br />".$lang_index['Max guests online'].": <strong>".$num_guests."</strong>\n";
unlink(PUN_ROOT.'cache/cache_config.php');
}
else
echo $lang_index['Max guests online'].": <strong>".$pun_config['o_max_guests_online']."</strong>\n";
// */
?>
</div></div>
<div id="legend" class="block">
<div id="stats2"><span><?php echo $lang_index['board_legend'] ?></span></div>
<div class="box">
<div style="padding-top: 10px;" align="center" class="inbox">
<img style="vertical-align: middle;" src="img/<?php echo $pun_user['style'] ?>/new.png" alt="New posts" /> <small><?php echo $lang_index['New posts']; ?></small>
<img style="vertical-align: middle;" src="img/<?php echo $pun_user['style'] ?>/normal.png" alt="No new posts" /><small> <?php echo $lang_index['No new posts']; ?></small>
<img style="vertical-align: middle;" src="img/<?php echo $pun_user['style'] ?>/sticky.png" alt="Sticky thread" /><small> <?php echo $lang_index['Sticky thread']; ?></small>
<img style="vertical-align: middle;" src="img/<?php echo $pun_user['style'] ?>/closed.png" alt="Closed thread" /><small> <?php echo $lang_index['Closed thread']; ?></small>
<img style="vertical-align: middle;" src="img/<?php echo $pun_user['style'] ?>/moved.png" alt="Moved thread" /><small> <?php echo $lang_index['Moved thread']; ?></small><br /><br />
</div></div>
</div></div>
</div></div>
<?php
$footer_style = 'index';
require PUN_ROOT.'footer.php';
?>
viewforum
<?php
/***********************************************************************
Copyright (C) 2002-2005 Rickard Andersson (rickard@punbb.org)
This file is part of PunBB.
PunBB 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.
PunBB is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
************************************************************************/
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
if ($pun_user['g_read_board'] == '0')
message($lang_common['No view']);
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
if ($id < 1)
message($lang_common['Bad request']);
// Load the viewforum.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/forum.php';
require PUN_ROOT.'lang/'.$pun_user['language'].'/index.php';
require PUN_ROOT.'lang/'.$pun_user['language'].'/topic_rating.php';
// Load poll language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/polls.php';
// Fetch some info about the forum
$result = $db->query('SELECT f.forum_name, pf.forum_name AS parent_forum, f.forum_note, f.head_note, f.show_note, f.redirect_url, f.moderators, f.num_topics, f.sort_by, f.parent_forum_id, fp.post_topics, fp.post_polls FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') LEFT JOIN '.$db->prefix.'forums AS pf ON f.parent_forum_id=pf.id WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$id) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
//$result = $db->query('SELECT f.forum_name, pf.forum_name AS parent_forum, f.forum_note, f.head_note, f.show_note, f.redirect_url, f.moderators, f.num_topics, f.sort_by, f.parent_forum_id, fp.post_topics FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') LEFT JOIN '.$db->prefix.'forums AS pf ON f.parent_forum_id=pf.id WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$id) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
if (!$db->num_rows($result))
message($lang_common['Bad request']);
$cur_forum = $db->fetch_assoc($result);
// Is this a redirect forum? In that case, redirect!
if ($cur_forum['redirect_url'] != '')
{
header('Location: '.$cur_forum['redirect_url']);
exit;
}
// Sort out who the moderators are and if we are currently a moderator (or an admin)
$mods_array = array();
if ($cur_forum['moderators'] != '')
$mods_array = unserialize($cur_forum['moderators']);
$is_admmod = ($pun_user['g_id'] == PUN_ADMIN || ($pun_user['g_id'] == PUN_MOD && array_key_exists($pun_user['username'], $mods_array))) ? true : false;
// Can we or can we not post new topics?
if (($cur_forum['post_topics'] == '' && $pun_user['g_post_topics'] == '1') || $cur_forum['post_topics'] == '1' || $is_admmod)
$post_link = "\t\t".'<p class="postlink conr"><a href="post.php?fid='.$id.'" title="'.$lang_forum['Post topic'].'">new topic</a>'."\n";
else
$post_link = '';
if (($cur_forum['post_polls'] == '' && $pun_user['g_post_polls'] == '1') || $cur_forum['post_polls'] == '1' || $is_admmod)
$post_link .= "\t\t".' | <a href="post.php?fid='.$id.'&type=poll">poll</a></p>'."\n";
// Determine the topic offset (based on $_GET['p'])
$num_pages = ceil($cur_forum['num_topics'] / $pun_user['disp_topics']);
$p = (!isset($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $num_pages) ? 1 : $_GET['p'];
$start_from = $pun_user['disp_topics'] * ($p - 1);
// Generate paging links
$paging_links = $lang_common['Pages'].': '.paginate($num_pages, $p, 'viewforum.php?id='.$id);
$page_title = pun_htmlspecialchars($pun_config['o_board_title'].' / '.$cur_forum['forum_name']);
define('PUN_ALLOW_INDEX', 1);
require PUN_ROOT.'header.php';
$subforum_result = $db->query('SELECT f.forum_desc, f.forum_name, f.id, f.last_post, f.last_post_id, f.last_poster, f.moderators, f.num_posts, f.num_topics, f.redirect_url, p.poster_id AS last_poster_id FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'posts AS p ON (p.id=f.last_post_id) WHERE parent_forum_id='.$id.' ORDER BY disp_position') or error('Unable to fetch sub forum info',__FILE__,__LINE__,$db->error());
if($db->num_rows($subforum_result))
{
?>
<div class="linkst">
<div class="inbox">
<ul><li><a href="forum.php"><?php echo $lang_common['Forum'] ?></a> </li><li>» <?php echo pun_htmlspecialchars($cur_forum['forum_name'])?></li></ul>
<div class="clearer"></div>
</div>
</div>
<div id="vf" class="blocktable">
<h2><span>Sub forums</span></h2>
<div class="box">
<div class="inbox">
<table cellspacing="0">
<thead>
<tr>
<th class="tcl" scope="col"><?php echo $lang_common['Forum'] ?></th>
<th class="tc2" scope="col"><?php echo $lang_index['Topics'] ?></th>
<th class="tc3" scope="col"><?php echo $lang_common['Posts'] ?></th>
<th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th>
</tr>
</thead>
<tbody>
<?php
while($cur_subforum = $db->fetch_assoc($subforum_result))
{
$item_status = '';
$icon_text = $lang_common['Normal icon'];
$icon_type = 'icon';
// Are there new posts?
if ($cur_forum['fid'] == $sub_forums[0] && !$pun_user['is_guest'] && forum_is_new($cur_forum['fid'], $cur_forum['last_post']))
{
$item_status = 'inew';
$icon_text = $lang_common['New icon'];
$icon_type = 'icon inew';
}
// Is this a redirect forum?
if ($cur_forum['redirect_url'] != '')
{
$forum_field = '<h3><a href="'.pun_htmlspecialchars($cur_subforum['redirect_url']).'" title="'.$lang_index['Link to'].' '.pun_htmlspecialchars($cur_subforum['redirect_url']).'">'.pun_htmlspecialchars($cur_subforum['forum_name']).'</a></h3>';
$num_topics = $num_posts = ' ';
$item_status = 'iredirect';
$icon_text = $lang_common['Redirect icon'];
$icon_type = 'icon';
}
else
{
$forum_field = '<h3><a href="extern.php?type=rss&action=active&fid='.$cur_subforum['id'].'"><img src="img/rss.png" border="0" alt="RSS" align="right" /></a><a href="viewforum.php?id='.$cur_subforum['id'].'">'.pun_htmlspecialchars($cur_subforum['forum_name']).'</a></h3>';
$num_topics = $cur_subforum['num_topics'];
$num_posts = $cur_subforum['num_posts'];
}
if ($cur_subforum['forum_desc'] != '')
$forum_field .= "\n\t\t\t\t\t\t\t\t".$cur_subforum['forum_desc'];
// If there is a last_post/last_poster.
if ($cur_subforum['last_post'] != '')
$last_post = '<a href="viewtopic.php?pid='.$cur_subforum['last_post_id'].'#p'.$cur_subforum['last_post_id'].'">'.format_time($cur_subforum['last_post']).'</a><br /> <span class="byuser">'.$lang_common['by'].' <a href="profile.php?id='.$cur_subforum['last_poster_id'].'">'.pun_htmlspecialchars($cur_subforum['last_poster']).'</a></span>';
else
$last_post = ' ';
if ($cur_subforum['moderators'] != '')
{
$mods_array = unserialize($cur_subforum['moderators']);
$moderators = array();
while (list($mod_username, $mod_id) = @each($mods_array))
$moderators[] = '<a href="profile.php?id='.$mod_id.'"><font style="font-weight: bold;">'.pun_htmlspecialchars($mod_username).'</font></a>';
$moderators = "\t\t\t\t\t\t\t\t".'<p>('.$lang_common['Moderated by'].': '.implode(', ', $moderators).')</p>'."\n";
}
?>
<tr<?php if ($item_status != '') echo ' class="'.$item_status.'"'; ?>>
<td class="tcl">
<div class="intd">
<div class="<?php echo $icon_type ?>"><div class="nosize"><?php echo $icon_text ?></div></div>
<div class="tclcon">
<?php echo $forum_field;
if ($cur_subforum['moderators'] != '') {
echo "\n".$moderators;
}
?>
</div>
</div>
</td>
<td class="tc2"><?php echo $num_topics ?></td>
<td class="tc3"><?php echo $num_posts ?></td>
<td class="tcr"><?php echo $last_post ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</div>
</div>
<?php
}
?>
<div class="linkst">
<div class="inbox">
<p class="pagelink conl"><?php echo $paging_links ?></p>
<?php
echo $post_link;
if($cur_forum['parent_forum'])
echo "\t\t".'<ul><li><a href="forum.php">'.$lang_common['Forum'].'</a> </li><li>» <a href="viewforum.php?id='.$cur_topic['parent_forum_id'].'">'.pun_htmlspecialchars($cur_topic['parent_forum']).'</a> </li><li>» <a href="viewforum.php?id='.$cur_topic['forum_id'].'">'.pun_htmlspecialchars($cur_topic['forum_name']).'</a> </li><li>» '.pun_htmlspecialchars($cur_topic['subject']).'</li></ul>';
else
echo "\t\t".'<ul><li><a href="forum.php">'.$lang_common['Forum'].'</a> </li><li>» '.pun_htmlspecialchars($cur_forum['forum_name']).'</li></ul>';
?>
<div class="clearer"></div>
</div>
</div>
<?php if ($cur_forum['show_note'] == 1){ ?>
<div class="blocktable">
<div class="note" style="padding: 6px;"><span><?php echo pun_htmlspecialchars($cur_forum['head_note']) ?></span></div>
<div class="note_box">
<div class="inbox">
<p style="padding-left: 8px;"> <?php echo ($cur_forum['forum_note']) ?></p>
</div>
</div><br />
<h2><span><?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></span></h2>
<?php } else { ?>
<div id="vf2" class="blocktable">
<h2><span><?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></span></h2>
<?php } ?>
<div class="box">
<div class="inbox">
<table cellspacing="0">
<thead>
<tr>
<th class="tcl" scope="col"><?php echo $lang_common['Topic'] ?></th>
<th class="tc2" scope="col"><?php echo $lang_common['Replies'] ?></th>
<th class="tc3" scope="col"><?php echo $lang_forum['Views'] ?></th>
<th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th>
</tr>
</thead>
<tbody>
<?php
// Fetch list of topics to display on this page
if ($pun_user['is_guest'] || $pun_config['o_show_dot'] == '0')
{
// Without "the dot"
$sql = 'SELECT id, poster, subject, posted, last_post, last_post_id, last_poster, num_views, num_replies, closed, sticky, moved_to, question, rating, icon_topic, labels FROM '.$db->prefix.'topics WHERE forum_id='.$id.' ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'];
}
else
{
// With "the dot"
switch ($db_type)
{
case 'mysql':
case 'mysqli':
$sql = 'SELECT p.poster_id AS has_posted, t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, t.question, t.rating, t.icon_topic, t.labels FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'posts AS p ON t.id=p.topic_id AND p.poster_id='.$pun_user['id'].' WHERE t.forum_id='.$id.' GROUP BY t.id ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'];
break;
case 'sqlite':
$sql = 'SELECT p.poster_id AS has_posted, t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, t.question, t.rating, t.icon_topic, t.labels FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'posts AS p ON t.id=p.topic_id AND p.poster_id='.$pun_user['id'].' WHERE t.id IN(SELECT id FROM '.$db->prefix.'topics WHERE forum_id='.$id.' ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'].') GROUP BY t.id ORDER BY t.sticky DESC, t.last_post DESC';
break;
default:
$sql = 'SELECT p.poster_id AS has_posted, t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, t.question, t.rating, t.icon_topic, t.labels FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'posts AS p ON t.id=p.topic_id AND p.poster_id='.$pun_user['id'].' WHERE t.forum_id='.$id.' GROUP BY t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, t.question, p.poster_id ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'];
break;
}
}
$result = $db->query($sql) or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
// If there are topics in this forum.
if ($db->num_rows($result))
{
while ($cur_topic = $db->fetch_assoc($result))
{
$icon_text = $lang_common['Normal icon'];
$item_status = '';
$icon_type = 'icon';
if ($cur_topic['moved_to'] == null)
$last_post = '<a href="viewtopic.php?pid='.$cur_topic['last_post_id'].'#p'.$cur_topic['last_post_id'].'">'.format_time($cur_topic['last_post']).'</a> <br /><span class="byuser">'.$lang_common['by'].' <font style="font-weight: bold;">'.pun_htmlspecialchars($cur_topic['last_poster']).'</font></span>';
else
$last_post = ' ';
if ($pun_config['o_censoring'] == '1')
$cur_topic['subject'] = censor_words($cur_topic['subject']);
if ($cur_topic['question'] != '')
{
if ($pun_config['o_censoring'] == '1')
$cur_topic['question'] = censor_words($cur_topic['question']);
if ($cur_topic['moved_to'] != 0)
$subject = $lang_forum['Moved'].': ' . $lang_polls['Poll'].': <a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <br /><span class="byuser">'.$lang_common['by'].' <font style="font-weight: bold;">'.pun_htmlspecialchars($cur_topic['poster']).'</font></span><br />[ '.pun_htmlspecialchars($cur_topic['question']).' ]';
else if ($cur_topic['closed'] == '0')
$subject = '<img src="img/'.$pun_user['style'].'/misc/poll.png" alt="'.$lang_polls['New poll'].'" /> <a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <br /><span class="byuser">'.$lang_common['by'].' <font style="font-weight: bold;">'.pun_htmlspecialchars($cur_topic['poster']).'</font></span><br />[ '.pun_htmlspecialchars($cur_topic['question']).' ]';
else
{
$subject = $lang_polls['Poll'] . ': <a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <br /><span class="byuser">'.$lang_common['by'].' <font style="font-weight: bold;">'.pun_htmlspecialchars($cur_topic['poster']).'</font></span><br />[ '.pun_htmlspecialchars($cur_topic['question']).' ]';
$icon_text = $lang_common['Closed icon'];
$item_status = 'iclosed';
}
if (!$pun_user['is_guest'] && $cur_topic['last_post'] > $pun_user['last_visit'] && $cur_topic['moved_to'] == null)
{
$icon_text .= ' '.$lang_common['New icon'];
$item_status .= ' inew';
$icon_type = 'icon inew';
$subject = '<strong>'.$subject.'</strong>';
$subject_new_posts = '<span class="newtext">[ <a href="viewtopic.php?id='.$cur_topic['id'].'&action=new" title="'.$lang_common['New posts info'].'">'.$lang_common['New posts'].'</a> ]</span>';
}
else
$subject_new_posts = null;
// Should we display the dot or not? :)
if (!$pun_user['is_guest'] && $pun_config['o_show_dot'] == '1')
{
if ($cur_topic['has_posted'] == $pun_user['id'])
$subject = '<strong>·</strong> '.$subject;
else
$subject = ' '.$subject;
}
}
else
{
if ($cur_topic['moved_to'] != 0)
{
$item_status .= 'imoved';
$icon_type = 'icon imoved';
$subject = $lang_forum['Moved'].': <a href="viewtopic.php?id='.$cur_topic['moved_to'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <br /><span class="byuser">'.$lang_common['by'].' <font style="font-weight: bold;">'.pun_htmlspecialchars($cur_topic['poster']).'</font></span>';
}
else if ($cur_topic['closed'] == '0')
$subject = '<a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <br /><span style="font-weight: normal;" class="">'.$lang_common['by'].' <font style="font-weight: bold;">'.pun_htmlspecialchars($cur_topic['poster']).'</font></span>';
else
{
$subject = '<a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <br /><span class="">'.$lang_common['by'].' <font style="font-weight: bold;">'.pun_htmlspecialchars($cur_topic['poster']).'</font></span>';
$icon_text = $lang_common['Closed icon'];
$item_status = 'iclosed';
}
if (!$pun_user['is_guest'] && $cur_topic['last_post'] > $pun_user['last_visit'] && $cur_topic['moved_to'] == null)
{
$icon_text .= ' '.$lang_common['New icon'];
$item_status .= ' inew';
$icon_type = 'icon inew';
$subject = '<strong>'.$subject.'</strong>';
$subject_new_posts = '<span class="newtext">[ <a href="viewtopic.php?id='.$cur_topic['id'].'&action=new" title="'.$lang_common['New posts info'].'">'.$lang_common['New posts'].'</a> ]</span>';
}
else
$subject_new_posts = null;
// Should we display the dot or not? :)
if (!$pun_user['is_guest'] && $pun_config['o_show_dot'] == '1')
{
if ($cur_topic['has_posted'] == $pun_user['id'])
$subject = '<img src="img/'.$pun_user['style'].'/buttons/btn_just_posted.png" title="'.$lang_forum['User has just posted'].'" alt="'.$lang_forum['User has just posted'].'" /> '.$subject;
else
$subject = ' '.$subject;
}
}
if ($cur_topic['sticky'] == '1')
{
$subject = '<span class="stickytext">'.$lang_forum['Sticky'].': </span>'.$subject;
$item_status .= ' isticky';
$icon_text .= ' '.$lang_forum['Sticky'];
}
if ($cur_topic['icon_topic'] != 0)
{
$icon_topic = '<img src="./img/icons/'.$cur_topic['icon_topic'].'.gif" alt="" />';
$subject = $icon_topic.' '.$subject;
}
$num_pages_topic = ceil(($cur_topic['num_replies'] + 1) / $pun_user['disp_posts']);
if ($num_pages_topic > 1)
$subject_multipage = '[ '.paginate($num_pages_topic, -1, 'viewtopic.php?id='.$cur_topic['id']).' ]';
else
$subject_multipage = null;
// Should we show the "New posts" and/or the multipage links?
if (!empty($subject_new_posts) || !empty($subject_multipage))
{
$subject .= ' '.(!empty($subject_new_posts) ? $subject_new_posts : '');
$subject .= !empty($subject_multipage) ? ' '.$subject_multipage : '';
}
$labels = (!empty($pun_config['o_topic_labels']))? $cur_topic['labels']: '';
?>
<tr<?php if ($item_status != '') echo ' class="'.trim($item_status).'"'; ?>>
<td class="tcl">
<div class="intd">
<div class="<?php echo $icon_type ?>"><div class="nosize"><?php echo trim($icon_text) ?></div></div>
<div class="subject-alignment"><div class="tclcon">
<?php echo $subject."\n" ?>
<?php echo '<br /><span>( '.$lang_topic_rating['Topic rating'].' <strong>'.$cur_topic['rating'].'</strong> )</span>'."\n"; // Modified for Rate Topic ?>
</div>
</div></div>
<?php if (!empty($labels)) echo '<div class="topiclabels">' . $lang_common['Labels'] . ': ['. show_labels($labels) . ']</div>'; ?>
</td>
<td class="tc2"><?php echo ($cur_topic['moved_to'] == null) ? $cur_topic['num_replies'] : ' ' ?></td>
<td class="tc3"><?php echo ($cur_topic['moved_to'] == null) ? $cur_topic['num_views'] : ' ' ?></td>
<td class="tcr"><?php echo $last_post ?></td>
</tr>
<?php
}
}
else
{
?>
<tr>
<td class="tcl" colspan="4"><?php echo $lang_forum['Empty forum'] ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</div>
</div>
<div class="linksb">
<div class="inbox">
<p class="pagelink conl"><?php echo $paging_links ?></p>
<?php
echo $post_link;
if($cur_forum['parent_forum'])
echo "\t\t".'<ul><li><a href="forum.php">'.$lang_common['Forum'].'</a> </li><li>» <a href="viewforum.php?id='.$cur_forum['parent_forum_id'].'">'.pun_htmlspecialchars($cur_forum['parent_forum']).'</a> </li><li>» '.pun_htmlspecialchars($cur_forum['forum_name']).'</li></ul>';
else
echo "\t\t".'<ul><li><a href="forum.php">'.$lang_common['Forum'].'</a> </li><li>» '.pun_htmlspecialchars($cur_forum['forum_name']).'</li></ul>';
?>
<div class="clearer"></div>
</div>
</div>
<?php
$forum_id = $id;
$footer_style = 'viewforum';
require PUN_ROOT.'footer.php';