rendered paste body// Fetch list of topics to display on this page
if ($pun_user['is_guest'] || $pun_config['o_show_dot'] == '0')
{
// Without "has posted" indication
if ($cur_forum['approval'] == 1)
{
if ($is_admmod)
{
$approvalsql1 = 'p.approved AS has_unapproved, ';
$approvalsql2 = 'LEFT JOIN '.$db->prefix.'posts AS p ON t.id=p.topic_id AND p.approved=0 ';
$approvalsql3 = '';
$approvalsql4 = '';
}
else
{
$approvalsql1 = 'p.approved, ';
$approvalsql2 = 'LEFT JOIN '.$db->prefix.'posts AS p ON t.id=p.topic_id ';
$approvalsql3 = 'HAVING p.approved=1 ';
$approvalsql4 = ',p.id ';
}
switch ($db_type)
{
case 'mysql':
case 'mysqli':
$sql = 'SELECT '.$approvalsql1.'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 FROM '.$db->prefix.'topics AS t '.$approvalsql2.'WHERE t.forum_id='.$id.' GROUP BY t.id '.$approvalsql3.'ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC '.$approvalsql4.'LIMIT '.$start_from.', '.$pun_user['disp_topics'];
break;
case 'sqlite':
$sql = 'SELECT '.$approvalsql1.'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 FROM '.$db->prefix.'topics AS t '.$approvalsql2.'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 '.$approvalsql4.'LIMIT '.$start_from.', '.$pun_user['disp_topics'].') GROUP BY t.id '.$approvalsql3.'ORDER BY t.sticky DESC, t.last_post DESC';
break;
default:
$sql = 'SELECT '.$approvalsql1.'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 FROM '.$db->prefix.'topics AS t '.$approvalsql2.'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, p.poster_id '.$approvalsql3.'ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC '.$approvalsql4.'LIMIT '.$start_from.', '.$pun_user['disp_topics'];
break;
}
}
else
{
$sql = 'SELECT id, poster, subject, posted, last_post, last_post_id, last_poster, num_views, num_replies, closed, sticky, moved_to 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 "has posted" indication
// Check if we need to highlight or filter unapproved posts
if ($is_admmod && $cur_forum['approval'] == 1)
{
$approvalsql1 = 'pb.approved AS has_unapproved, ';
$approvalsql2 = 'LEFT JOIN '.$db->prefix.'posts AS pb ON t.id=pb.topic_id AND pb.approved=0 ';
$approvalsql3 = '';
$approvalsql4 = '';
}
elseif ($cur_forum['approval'] == 1)
{
$approvalsql1 = 'pb.approved, ';
$approvalsql2 = 'LEFT JOIN '.$db->prefix.'posts AS pb ON t.id=pb.topic_id ';
$approvalsql3 = 'HAVING pb.approved=1 ';
$approvalsql4 = ',pb.id ';
}
else
{
$approvalsql1 = '';
$approvalsql2 = '';
$approvalsql3 = '';
$approvalsql4 = '';
}
switch ($db_type)
{
case 'mysql':
case 'mysqli':
$sql = 'SELECT p.poster_id AS has_posted, '.$approvalsql1.'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 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'].' '.$approvalsql2.'WHERE t.forum_id='.$id.' GROUP BY t.id '.$approvalsql3.'ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC '.$approvalsql4.'LIMIT '.$start_from.', '.$pun_user['disp_topics'];
break;
case 'sqlite':
$sql = 'SELECT p.poster_id AS has_posted, '.$approvalsql1.'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 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'].' '.$approvalsql2.'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 '.$approvalsql4.'LIMIT '.$start_from.', '.$pun_user['disp_topics'].') GROUP BY t.id '.$approvalsql3.'ORDER BY t.sticky DESC, t.last_post DESC';
break;
default:
$sql = 'SELECT p.poster_id AS has_posted, '.$approvalsql1.'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 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'].' '.$approvalsql2.'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, p.poster_id '.$approvalsql3.'ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC '.$approvalsql4.'LIMIT '.$start_from.', '.$pun_user['disp_topics'];
break;
}
}