The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Details »» | |||||||||||||||||||||||||
Let us know what you think ...
Replace the makeforumjump section in global.php with this hold your breath and pray ! (it joins 2 sql queries into one - we've got it running on forums.gameplay.com ;-) ) also downloadable from http://forums.gameplay.com/global_hack_pt1.html (err yes there is at least another one on it's way ...) fodder // ###################### Start makeforumjump ####################### function makeforumjump () { // this generates the jump to box global $DB_site, $forumid, $optionselected, $usecategories, $jumpforumid, $jumpforumtitle, $jumpforumbits, $curforumid; global $hideprivateforums, $defaultselected, $forumjump, $bbuserid, $bbusergroupid; if ($forumid != "") { $curforumid = $forumid; } else { if ($threadid != "") { $getforumid = $DB_site->query_first ("SELECT forumid FROM thread WHERE threadid=$threadid"); $curforumid = $getforumid["forumid"]; } } $categorys = $DB_site->query ("SELECT category.categoryid, category.title as ctitle, category.displayorder , forum.forumid, forum.title as ftitle, forum.displayorder FROM category,forum WHERE forum.categoryid=category.categoryid AND forum.displayorder <>0 and category.displayorder<>0 and forum.active=1 order by category.displayorder, forum.displayorder"); $this_cat=0; $old_categoryid=0; $old_ctitle=""; while ($category = $DB_site->fetch_array ($categorys)) { $forum=$category; if ( $this_cat != $category["categoryid"] ) { if ($this_cat >0) { if ($usecategories == 1 and $forumshown == 1) { $jumpforumid = ""; $jumpforumtitle = ""; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); if ($curforumid == "cat$old_categoryid") { $optionselected = "selected"; } $jumpforumid = "cat$old_categoryid"; $jumpforumtitle = "Category: $old_ctitle"; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); $optionselected = ""; $jumpforumid = ""; $jumpforumtitle = "--------------------"; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); } // add forum bits $jumpforumbits.= $tempjumpforumbits; } $optionselected = ""; $forumshown = 0; $tempjumpforumbits = ""; $this_cat = $category["categoryid"]; $old_categoryid = $this_cat; $old_ctitle=$category["ctitle"]; } if ($hideprivateforums == 1) { $getperms = getpermissions ($bbuserid, $bbusergroupid, $forum["forumid"]); } else { $getperms["canview"] = 1; } if ($getperms["canview"] == 1) { $forumshown = 1; $jumpforumid = $forum["forumid"]; $jumpforumtitle = " " . $forum["ftitle"]; else { $optionselected = ""; } eval ("\$tempjumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); } // end if $getperms... } if ($usecategories == 1 and $forumshown == 1) { $jumpforumid = ""; $jumpforumtitle = ""; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); //if ($curforumid == "cat".$category["categoryid"]) if ($curforumid == "cat$old_categoryid") { $optionselected = "selected"; } // $jumpforumid = "cat" . $category["categoryid"]; $jumpforumid = "cat$old_categoryid"; // $jumpforumtitle = "Category: " . $category["ctitle"]; $jumpforumtitle = "Category: $old_ctitle"; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); $optionselected = ""; $jumpforumid = ""; $jumpforumtitle = "--------------------"; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); } // add forum bits $jumpforumbits.= $tempjumpforumbits; if ($selectedone != 1) { $defaultselected = "selected"; } eval ("\$forumjump = \"".gettemplate ("forumjump")."\";"); } if ($curforumid == $jumpforumid) { $optionselected = "selected"; $selectedone = 1; } Show Your Support
|
Comments |
#2
|
|||
|
|||
fodder has this hack and the showthread hack helped your forum speed?
|
#3
|
|||
|
|||
Seems to.
The main thrill about is is that it reduces the load on the database server. We have about 1.1 million posts these days so anything that makes our db server's life easier is very welcome ! in summary what it does is compress the category select in with the forum select so that you are only doing one sql query rather than 1+ number of forums in your db .. It helps a bit The next hack ( coming in about 10 mins ) also does help the db loading. If you want to see the difference tell mysql to do logging tail the log and compare the two. The next hack makes that test look very very very very scary indeed fodder |
#4
|
|||
|
|||
There are a couple errors in your code involving extra and missing brackets so I wonder how you are running it. Here is a "fixed" version as in it seems to work
Code:
// ###################### Start makeforumjump ####################### function makeforumjump () { // this generates the jump to box global $DB_site, $forumid, $optionselected, $usecategories, $jumpforumid, $jumpforumtitle, $jumpforumbits, $curforumid; global $hideprivateforums, $defaultselected, $forumjump, $bbuserid, $bbusergroupid; if ($forumid != "") { $curforumid = $forumid; } else { if ($threadid != "") { $getforumid = $DB_site->query_first ("SELECT forumid FROM thread WHERE threadid=$threadid"); $curforumid = $getforumid["forumid"]; } } $categorys = $DB_site->query ("SELECT category.categoryid, category.title as ctitle, category.displayorder , forum.forumid, forum.title as ftitle, forum.displayorder FROM category,forum WHERE forum.categoryid=category.categoryid AND forum.displayorder <>0 and category.displayorder<>0 and forum.active=1 order by category.displayorder, forum.displayorder"); $this_cat=0; $old_categoryid=0; $old_ctitle=""; while ($category = $DB_site->fetch_array ($categorys)) { $forum=$category; if ( $this_cat != $category["categoryid"] ) { if ($this_cat >0) { if ($usecategories == 1 and $forumshown == 1) { $jumpforumid = ""; $jumpforumtitle = ""; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); if ($curforumid == "cat$old_categoryid") { $optionselected = "selected"; } $jumpforumid = "cat$old_categoryid"; $jumpforumtitle = "Category: $old_ctitle"; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); $optionselected = ""; $jumpforumid = ""; $jumpforumtitle = "--------------------"; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); } // add forum bits $jumpforumbits.= $tempjumpforumbits; } $optionselected = ""; $forumshown = 0; $tempjumpforumbits = ""; $this_cat = $category["categoryid"]; $old_categoryid = $this_cat; $old_ctitle=$category["ctitle"]; } if ($hideprivateforums == 1) { $getperms = getpermissions ($bbuserid, $bbusergroupid, $forum["forumid"]); } else { $getperms["canview"] = 1; } if ($getperms["canview"] == 1) { $forumshown = 1; $jumpforumid = $forum["forumid"]; $jumpforumtitle = " " . $forum["ftitle"]; } else { $optionselected = ""; } eval ("\$tempjumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); } // end if $getperms... if ($usecategories == 1 and $forumshown == 1) { $jumpforumid = ""; $jumpforumtitle = ""; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); //if ($curforumid == "cat".$category["categoryid"]) if ($curforumid == "cat$old_categoryid") { $optionselected = "selected"; } // $jumpforumid = "cat" . $category["categoryid"]; $jumpforumid = "cat$old_categoryid"; // $jumpforumtitle = "Category: " . $category["ctitle"]; $jumpforumtitle = "Category: $old_ctitle"; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); $optionselected = ""; $jumpforumid = ""; $jumpforumtitle = "--------------------"; eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";"); } // add forum bits $jumpforumbits.= $tempjumpforumbits; if ($selectedone != 1) { $defaultselected = "selected"; } eval ("\$forumjump = \"".gettemplate ("forumjump")."\";"); if ($curforumid == $jumpforumid) { $optionselected = "selected"; $selectedone = 1; } } |
#5
|
|||
|
|||
which bits did you change ?
my eyes are going ! it might have been the cut and paste is the web page one better ? fodder |
#6
|
|||
|
|||
Also what is the point of this code which comes at the end of the function, is not returned from the function and occurs after all templates are set. I can see it hopes to set the combobox to display the current forum but has little hope of working coming after the template. This code needs to be checked over closely before being installed. IMHO
Code:
if ($curforumid == $jumpforumid) { $optionselected = "selected"; $selectedone = 1; } |
#7
|
|||
|
|||
I gave up waiting on your web page version to load but I just looked at it and it is different than your pasted one!
Quote:
|
#8
|
|||
|
|||
It might be my eyes but I think that that comes just before
an eval statement ...? Fodder |
#9
|
|||
|
|||
Look at the end of the code you pasted - it comes after the eval and also notice you don't close the function off with a }
|
#10
|
|||
|
|||
Like I said the cut and paste may have gone wrong
Try the downloadable version from the URL given http://forums.gameplay.com/global_hack_pt1.html That has a greater chance of being right ... Fodder |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|