I highly recommend everybody using this hack to install also "Thread Preview Hack". Some level of data redundancy is the only way to go with this kind of hack. Then you can remove extra queries in loop (putting query into a loop is always the worst solution and should be avoided).
For those who have installed this hack and have also "firstpostid" column in thread table here is code you can use for pulling news:
Code:
// news by nakkid (modified)
// -------------------------
$newsquery=$DB_site->query("SELECT thread.threadid,thread.title,thread.dateline,thread.postusername,thread.postuserid,
thread.replycount,thread.iconid,post.pagetext,icon.title AS icontitle,icon.iconpath
FROM thread
LEFT JOIN post ON thread.firstpostid = post.postid
LEFT JOIN icon ON icon.iconid = post.iconid
WHERE forumid='$newsforum' ORDER BY thread.dateline DESC LIMIT $newsposts");
while ($news=$DB_site->fetch_array($newsquery)) {
$newsthreadid=$news[threadid];
$newstitle=$news[title];
$newstime=vbdate($timeformat,$news[dateline]);
$newsdate=vbdate($dateformat,$news[dateline]);
$newsusername=$news[postusername];
$newsuserid=$news[postuserid];
$comments=$news[replycount];
$newstext=bbcodeparse($news[pagetext],$newsforum,1);
$newstext=str_replace("<br />","",$newstext);
if ($news[iconid]=='0') {
$news[icontitle]="";
$news[iconpath]="https://vborg.vbsupport.ru/images/icons/icon.gif";
}
eval("\$newsbits .= \"".gettemplate('home_newsbit')."\";");
}
eval("\$news = \"".gettemplate('home_news')."\";");
Also there is an error on first few lines where templatesused string is filled (missing commas) which caused extra queries. Here is fixed code:
Code:
$templatesused='error_nopermission,home,home_buddy1,home_buddy2,home_footer,home_header,home_headinclude,home_left';
$templatesused.=',home_login,home_logout,home_news,home_newsbit,home_nothreads,home_poll,home_pollresult,home_right';
$templatesused.=',home_threadbit,home_threads,forumhome_loggedinuser,forumhome_loggedinusers,maxloggedin';
This thread is so long that I hope I'm not reposting something already fixed