Ok, Here's a bigger, more practical chunk...
PHP Code:
$getnews = $db->query_read("
SELECT t.threadid, t.title, t.lastpost, t.forumid, t.open, t.replycount, t.postusername, t.postuserid, t.lastposter, t.dateline, t.views, t.visible, t.firstpostid, f.title AS forumtitle, post.pagetext AS preview
FROM " . TABLE_PREFIX . "forum f
INNER JOIN " . TABLE_PREFIX . "thread t ON t.forumid = f.forumid AND t.visible = 1 AND " . $desclimit . " > ( SELECT count(" . $desclimit . ") FROM " . TABLE_PREFIX . "thread WHERE forumid = f.forumid AND visible = 1 AND dateline > t.dateline )
LEFT OUTER JOIN " . TABLE_PREFIX . "post AS post ON post.postid = t.firstpostid WHERE t.forumid IN (" . implode(',', $myforumid) . ")
ORDER BY field(f.forumid," . implode(',', $myforumid) . "), t.dateline desc
");
while($news = $db->fetch_array($getnews))
{
$news['title'] = preg_replace('/\<[a-zA-Z0-9 \<\<\,\>\>\.\?\/\:\;\~\"\`\!\@\#\$\%\^\&\*\(\)\_\-\+\=]*\>/', '', $news['title']);
$news['title'] = fetch_trimmed_title(fetch_censored_text(unhtmlspecialchars($news['title'])), $titlelen);
$news['forumtitle'] = stripslashes($news['forumtitle']);
$news['date'] = vbdate($vbulletin->options['dateformat'], $news['dateline']);
$news['time'] = vbdate($vbulletin->options['timeformat'], $news['dateline']);
$news['replycount'] = vb_number_format($news['replycount']);
$news['views'] = vb_number_format($news['views']);
$news['postusername'] = $news['postusername'];
$news['lastposter'] = $news['lastposter'];
$news['preview'] = preg_replace('/\<[a-zA-Z0-9 \<\<\,\>\>\.\?\/\:\;\~\"\`\!\@\#\$\%\^\&\*\(\)\_\-\+\=]*\>/', '', $news['preview']);
$news['pagetext'] = htmlspecialchars_uni(strip_bbcode(fetch_censored_text(substr($news['preview'], 0, $charlimit))));
$news['endoftextless'] = '... <br /> <font size=2><a href="showthread.php?t='. $news['threadid'] .'" title="'. $news['preview'] .'" target="blank">[Read more here]</a></font>';
$news['endoftextmore'] = '<br /> <font size=2><a href="showthread.php?t='. $news['threadid'] .'" title="'. $news['preview'] .'" target="blank">[Click here for source]</a></font>';
$endoftext = (strlen($news['pagetext']) > $charlimit) ? $news['endoftextless'] : $news['endoftextmore'];
if (!isset($vbnewscms_articlebit))
{
eval('$vbnewscms_articlebit .= "' . fetch_template('vbnewscms_sectionhead') . '";');
}
if (isset($vbnewscms_articlebit))
{
eval('$vbnewscms_articlebit .= "' . fetch_template('vbnewscms_articlebit') . '";');
}
if (!isset($vbnewscms_sectionend))
{
eval('$vbnewscms_sectionend .= "' . fetch_template('vbnewscms_sectionend') . '";');
}
}
It still has 3 other bugs aside from this one, but this is the worst offender.