View Full Version : latest threads in forumdisplay.php?
i want to show the latest 10 threads, pulled from all forums in forumdisplay.php. i have this code:// get latest threads
$forums=$DB_site->query("SELECT * FROM forum WHERE active=1");
$forumids='forumid IN (0';
while ($forum=$DB_site->fetch_array($forums)) {
$getperms=getpermissions($forum['forumid']);
if ($getperms[canview]) {
$forumids .= "," . $forum['forumid'];
}
}
$forumids.=')';
unset($forum);
$getthreads=$DB_site->query("SELECT * FROM thread WHERE $forumids AND visible=1 ORDER BY lastpost DESC LIMIT 10");
while ($lastthread=$DB_site->fetch_array($getthreads)) {
$threadid=$lastthread[threadid];
$titleextra='';
if (strlen($lastthread[title])>32) {
$titleextra="...";
}
$threadtitle=substr($lastthread[title], 0, 29);
}
eval("\$lastthreadbits .= \"".gettemplate('home_threadbits')."\";");everything is working fine... hmm the problem is that it's making me jump from 21 to 40!!!! queries. is there a way to cache somehow those pesky queries? thanks for your help.
i dont see 19 queries... only 4
Admin
05-07-2002, 12:07 PM
getpermissions() = lots of queries, and shouldn't be used in a loop I believe.
is the perms that add a query for each thread... you have an idea how it would be the code to pull it out of the loop?
i honestly dont know. as you know firefly, i look at the VB script code and try to make something similar. thare are certain things i do not manage yet. let me know if you could write the loop part here for me. thanks.
Scott MacVicar
05-07-2002, 05:49 PM
try this
//perms
$fperm=$DB_site->query("SELECT canview,forumid FROM forumpermission WHERE usergroupid='$bbuserinfo[usergroupid]'");
while($fperms = $DB_site->fetch_array($fperm)) {
$perms["$fperms[forumid]"] = $fperms;
}
$DB_site->free_result($fperm);
unset($fperms);
//forums
$forum=$DB_site->query("SELECT forumid FROM forum");
while ($forums=$DB_site->fetch_array($forum)) {
if($fperms["$forums[forumid]"]["canview"] == 1) {
$forumperms[]=$forums["forumid"];
}
else {
$forumperms[]=$forums["forumid"];
}
}
$DB_site->free_result($forum);
unset($forums);
if(!empty($forumperms)) {
$forumperms='AND forumid='.implode(' OR forumid=',$forumperms);
}
$getthreads=$DB_site->query("SELECT * FROM thread WHERE open='1' AND open<>10 $forumperms ORDER BY lastpost DESC LIMIT 10");
you should add open<>10 in the query as that is moved threads which you don't want, as it will pick up the moved thread plus the redirect left in the old forum.
thanks alot scott.
now, can i pm you about an issue that i develloped with a different file? i cannot post the contents of the file because it contains 60% VB script code. i already asked firefly for help. just leting you know that is nothing related to this thread here. i ask this because maybe firefly is busy and i dont want to pm every single one of you every day.
if any of you is willing to take a look at the file (firefly, ppn or zzed), please post an answer here and i will attach the file in your pm. is about a misterious query that is added every time i refresh the page. originally it starts with 21 queries on the page, when i login. as soon as i refresh, it adds a new query, for a total of 22. i cant seem to find where it must be unset the forgotten variable, in that file.
one more time, thanks.
KuraFire
05-07-2002, 08:48 PM
Doesn't work at all for me, PPN.
Using your code exactly except for the last query line (mine is: $threadsql = $DB_site->query("SELECT lastposter, threadid, title, replycount FROM thread WHERE open<>10 $forumperms ORDER BY lastpost DESC LIMIT 69"); ) this just didn't work. I made a thread in my admin&mods forum, but a normal member still sees the thread listed while viewing my newsportal. :(
Originally posted by nakkid
if any of you is willing to take a look at the file (firefly, ppn or zzed), please post an answer here and i will attach the file in your pm. is about a misterious query that is added every time i refresh the page. originally it starts with 21 queries on the page, when i login. as soon as i refresh, it adds a new query, for a total of 22.i found it! :) thanks alot guys.
Scott MacVicar
05-07-2002, 09:19 PM
does your newsportal include global.php and load the $bbuserinfo array?
KuraFire
05-07-2002, 09:51 PM
it includes global.php but I have nothing added myself pertaining to a $bbuserinfo array or anything like that.
i was wondering if any of the big guns can look at the file ensemble and let me know if there is some wierd code i have in there?
i have a modified forumdisplay.php file that does what it shows in this pic:
News Page (https://vborg.vbsupport.ru/attachment.php?s=&postid=249059)
for some reason, even with the right perms set for a usergroup, it will still show the last threads in the hidden forums.
also, i added comments in that file so you can easy follow the changes i did and evaluate better the code.
firefly or PPN, i would apreciate your help on this. if interested, let me know and i will PM the modified file.
thanks.
Scott MacVicar
05-08-2002, 06:06 AM
email me then
scott.macvicar@vbulletin.org
Just leaving for school I will check in once i get there.
try setting $bbuserinfo[usergroupid] to 1 in the query
thanks PPN. i emailed you the file.
Scott MacVicar
05-08-2002, 06:35 AM
$doperms=$DB_site->query("SELECT canview,forumid FROM forumpermission WHERE usergroupid='$bbuserinfo[usergroupid]'");
while ($doperm = $DB_site->fetch_array($doperms)) {
$perms["$doperm[forumid]"] = $doperm;
}
$DB_site->free_result($doperms);
unset($doperm);
$forum=$DB_site->query("SELECT forumid FROM forum");
while ($forums=$DB_site->fetch_array($forum)) {
if($perms["$forums[forumid]"]["canview"] == 1 || !isset($perms["$forums[forumid]"]["canview"])) {
$forumperms[]=$forums["forumid"];
}
}
$DB_site->free_result($forum);
unset($forums);
if(!empty($forumperms)) {
$forumperms='AND forumid='.implode(' OR forumid=',$forumperms);
}
i had a variable name wrong
thanks alot scott. when you have a chance, can you look at the file and let me know if there is any unbalanced code? i shrinked alot the forumdisplay.php file. just making sure someone with php experince can give me the ok on that.
i'm concerned about some unset queries and also about some errors that might be in there without knowing (for example the access array)...
KuraFire
05-08-2002, 08:43 AM
Thanks Scott, your new code works just fine, I've included it in my newsportal hack and will give you credit. :)
Scott MacVicar
05-08-2002, 10:38 AM
sure no problem, just glad to help.
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.