vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Member Archives (https://vborg.vbsupport.ru/forumdisplay.php?f=202)
-   -   [release] hack for global.php to makeforumjump jump faster ! (https://vborg.vbsupport.ru/showthread.php?t=2985)

09-06-2000 03:07 PM

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;
}

09-06-2000 03:53 PM

fodder has this hack and the showthread hack helped your forum speed?

09-06-2000 04:01 PM

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

09-06-2000 04:26 PM

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;
  }
}


09-06-2000 04:33 PM

which bits did you change ?
my eyes are going !

it might have been the cut and paste
is the web page one better ?

fodder

09-06-2000 04:33 PM

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;
  }


09-06-2000 04:36 PM

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:

Originally posted by fodder
which bits did you change ?
my eyes are going !

it might have been the cut and paste
is the web page one better ?

fodder


09-06-2000 04:39 PM

It might be my eyes but I think that that comes just before
an eval statement ...?

Fodder

09-06-2000 04:40 PM

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 }

09-06-2000 04:42 PM

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


All times are GMT. The time now is 02:49 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01361 seconds
  • Memory Usage 1,790KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete