The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#11
|
||||
|
||||
Zurih, can I give you an advice? Buy few PHP and MySQL books and start studying, it will help you understand better the code, as well to write it your way... the good way.
First, let me say that vBulletin is a very inteligent piece of software, that finds a good balance between the right usage of PHP/MySQL, in order to avoid any stress on the server. Many coders do not understand this simple thing and create monstreous pieces of code that make "old school" scream or laugh to die off... I imagine Scott, Stefan etc. having a winky smile while snooping at certain "code mods" (I laugh also at some of my first hacks released here at vb.org, they are really pathetic... ) released by people who want only to have 2000000000 hacks in their list with no quality or performance to be considered as part of VB software. Let's review the code above. Keep in mind that you ned this code into the main index.php, why do you need to bulk it with unneeded queries? Is useless, please don't do it. Simplify as much as possible you code and add as less hacks you need into the original VB software, unless you write it yourself and you are sure they are performant. If I would be you, I would do this: 1. Write a new template with the minimum content of latest threads, no need to add extra bells, people don't read it anyway. 2. Avoid extra queries or full table scans, keep it really simple. 3. Order by lastpost, not dateline... you want to get the latest threads where people posted, not the ones who where started at a certain date. One rule, less code is better always. Here it is a basic example: Code:
$forumperms = array(); foreach ($forumcache AS $forum) { $forumperms["$forum[forumid]"] = fetch_permissions($forum['forumid']); if (!($forumperms["$forum[forumid]"] and CANVIEW) or !($forumperms["$forum[forumid]"] and CANVIEWOTHERS)) { $limitfids .= ',' . $forum['forumid']; } } $getthreads = $DB_site->query(" SELECT thread.title, thread.date, thread.time, thread.replycount FROM " . TABLE_PREFIX . "thread AS thread WHERE open = '1' AND thread.lastpost >= " . (time() - 86400) . " AND forumid NOT IN (0$limitfids) AND thread.visible = '1' ORDER BY lastpost DESC LIMIT 5 "); while ($thread = $DB_site->fetch_array($getthreads)) { $thread['title'] = fetch_censored_text(fetch_trimmed_title(unhtmlspecialchars($thread['title']), 68)); $thread['date'] = vbdate($vboptions['dateformat'], $thread['lastpost'], 1); $thread['time'] = vbdate($vboptions['timeformat'], $thread['lastpost']); $thread['replycount'] = vb_number_format($thread['replycount']); eval('$threadbits .= "' . fetch_template('myowntemplate_latestthreadbit') . '";'); } unset($forum, $thread, $threads); $DB_site->free_result($getthreads); thread.lastpost >= " . (time() - 86400) . " You only grap threads where the last posts were made in the last day only... 60sec * 60min * 24hrs = 86400 (1 day) Simple and elegant, with the basic info only... And please, use the right syntax, tabs, brackets, etc. People need to show respect to the VB devs, by writing code the VB way, not the jungle way. If you buy those books, I bet you will have your way around in less then 6 months... Cheers. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|