Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.5 > vBulletin 3.5 Add-ons

Reply
 
Thread Tools
multiple site controller Details »»
multiple site controller
Version: 1.00, by robert_2004 robert_2004 is offline
Developer Last Online: Aug 2008 Show Printable Version Email this Page

Version: 3.5.5 Rating:
Released: 10-31-2006 Last Update: 11-01-2006 Installs: 7
Uses Plugins
Code Changes Additional Files Is in Beta Stage  
No support by the author.

This mod will allow you to combine multiple sites that you own and master, into the one set of files and database - easier to maintain, to update, to administer, and to master.

Even though this page is fairly long - there is a lot of info to set it up, but it's bloody easy to install, and easy to work with once installed.

What you can do:
- auto detect which site they have come to, and setup the right usergroup and style.
- run different styles on different sites.
- allow/deny different usergroups to different forums and version of site
- multiple forums with permissions set to individual sites
- multiple calendars with permissions set to individual sites

What you can't do:
- allow users to choose their own style (**coming soon**)
- can't run some plugins on some domains, and not on the others - all plugins must/will be active across the whole board.
- can't work if you have subdomains (at this point) - i dunno, it may - i just have 1 line which auto places 'www' on your domain.
- it is lacking an upgrade system to bring two forums together. I built this from the start - meaning my testing server was my original site, then i started a second test site, and started adding people to it - THERE IS NO MERGE SCRIPT *YET*. although, you might be able to use the vB to merge - CAN SOMEONE PLEASE VERIFIY / COMMENT ON THIS. (i.e. if you have 3000users/25,000posts in your main, and you want to bring 5000users/45,000posts from your 2nd site to combine them, we don't have anything on offer to reset the ID numbers, etc. possible the imPEX thinggy will resort all of that for you.)



----------
Important - My Current Setup:

i'm running vb 3.5 with vBa's CMPS.
i have it set up:
/public_html/index.php (cmps index)
/public_html/domains.php (this current mod)
/public_html/forum/ (all the forums' files)


USERGROUPS
With the usergroups - you are going to have to add the short_http into the start of the usergroup name - so please take this into account (as the system searches the short_http to grab the usergroup for the person viewing, to put them into that usergroup).

i set it up to not use the original 'registered users', but rather, each site has it's own 'registered users' usergroup.
The admin, super mod, banner member - i.e anything you want/think can work across ALL the sites can stay as one, the rest of the sites should have their own usergroups:
Code:
Please make sure that the custom usergroups are defined as below:
The number after the http_site (1st,2nd, etc) MUST correspond to the corresponding default vB usergroup id!

1.1st 1 - Unregistered / Not Logged In      
1.1st 2 - Registered Users                  
1.1st 3 - Users Awaiting Email Confirmation 
1.1st 5 - Super Moderators
1.1st 7 - Moderators
2.2nd 1 - Unregistered / Not Logged In      
2.2nd 2 - Registered Users 
2.2nd 3 - Users Awaiting Email Confirmation 
2.2nd5 - Super Moderators
2.2nd 7 - Moderators                 

the first number: i put in just to order the domains (as i don't use '1st' and '2nd' on my testmachine - i use NORTH and WEST - but west was the first site, so i wanted it to be displayed first on the list)
the second number: '1st' and '2nd' are the http_site - the short hand name for each site - if you are running two computer games sites, one counter strike and the other world of warcraft, then 'CS' and 'WOW' are suitable.
the third number: corresponds to the original usergroup id with the same name.
---------


Example:
none at this point.

hacks and addons:
- adding events to multple calendars at once (coming soon)
- calendar custom fields working on multiple calendars
------------------------



[Temp area - installation steps]
cpanel -> add parked domains
mysql database change
domains.php
global.php
register.php
class_dm_user.php
functions.php
create styles
add plugin - domains.php
add plugin - force style

-------------------
FIRSTLY, backup YOUR database!!!

[Step 1 - Park your Domains ]
go into your cPanel or Plesk, or your hosting control system, and park your domains to your account - this will make all your domains, myFirstDomain.com and mySecondDomain.com all display the front page of your first initial site.


[Step 2 - mySQL Changes ]
none that i can remember / find at this point.


[Step 3 - /public_html/domains.php ]
create this file and insert the following:
PHP Code:
<?php

  
###### multiple site controller #########
################################
// https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615

/* THIS FILE IS THE DOMAIN CHECKER FOR EACH FILE AND PAGE 
    THAT IS SHOWN ON THE SITE.

    IT WILL HELP SECURITY RISKS, AS IF A LINK CANNOT BE
    MADE BETWEEN THE CURRENT HTTP_HOST, AND AN IF()
    STATEMENT IN THIS FILE, IT WILL OUTPUT AN ERROR.
     THIS ABOVE STATEMENT MAY CAUSE PROBLEMS IF YOU HAVE 
    SISTER-SITES, TRYING TO ACCESS
    FILES AND/OR DATABASE

   IF ANOTHER SITE IS ADDED TO THE FAMILY, YOU WILL NEED
   TO CREATE THE IF() STATEMENT HERE TO ALLOW IT TO DISPLAY
   CORRECTLY.

   THIS FILE NEEDS TO BE CALLED VIA A PLUGIN
   AND AS IN INCLUDED() ON EVERY NON-FORUM PAGE

 TO CHANGE DOMAIN'S STYLE = adminCP ->Plugins -> Force Style for each Domain

*/

$http_host $_SERVER['HTTP_HOST'];
session_start();

// The Following will remove any problems by causing all your sites to begin with 'www'.
// Place WWW in front of all domains
if( strpos($_SERVER['HTTP_HOST'], 'www.') === false ) {
    
header("Location: http://www.$http_host$_SERVER[REQUEST_URI]");
}


if( 
preg_match('/MyFirstDomain.com/i'$http_host) ) {         #####     My First Domain #####
  // You can create any variables you want here:
    
$_SESSION['short_http'] = "1st";     // this is used in URL
    
$_SESSION['short_print'] = "1st";     // this is used for folder structure
    
$_SESSION['http_host']    = "MyFirstDomain.com";  
    
$_SESSION['site_title'] = "My First Domain!!";
    
$_SESSION['site_home_title'] = "First Domain Forum and Home";
}



elseif( 
preg_match('/MySecondDomain.com/i'$http_host) ) {     #####     My Second Domain         #####
    
$_SESSION['short_http'] = "2nd";
    
$_SESSION['short_print'] = "2nd";
    
$_SESSION['http_host']    = "MySecondDomain.com";
    
$_SESSION['site_title'] = "My Second Domain!!!";
    
$_SESSION['site_home_title'] = "Second Domain Forum and Home";
}


/*
  included an else clause here just to capture the unlikely 
  event that http_host is not passed. This can happen 
  with 1.0 useragents.
*/
else
{
  
header("upgradebrowser.html");
}



if (!
function_exists(findCustomGroup)) { 
function 
findCustomGroup($cid){
    global 
$vbulletin;
    
$customIds $vbulletin->db->query_read("SELECT usergroupid, title FROM " TABLE_PREFIX "usergroup");
    while (
$customId $vbulletin->db->fetch_array($customIds)){
        if (
strpos($customId['title'],$cid)){
            
$cId $customId['usergroupid'];
        }
    }
    return 
$cId;
}
}
if (!
function_exists(findAwaitingGroups)) { 
function 
findAwaitingGroups(){
    global 
$vbulletin;
    
$avug_array = array();
    
$avIds $vbulletin->db->query_read(" SELECT usergroupid, title FROM " TABLE_PREFIX "usergroup");
    while (
$avId $vbulletin->db->fetch_array($avIds)){
        if (
strpos($avId['title'],"Awaiting Email Confirmation")){
            
array_push($avug_array,$avId['usergroupid']);
        }
    }
    return 
$avug_array;
}
}
?>

[Step 4 - global.php]

find [line 115]
PHP Code:
$vbphrase init_language();

// set a default username
if ($vbulletin->userinfo['username'] == '')
{
    
$vbulletin->userinfo['username'] = $vbphrase['unregistered'];

below this, add
PHP Code:
// multiple site controller by Robert_2004
// https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615

require_once('../domains.php');

//let's set the appropriate site and forum titles as determined by the domains.php file.
//also used in providing the correct info in the appropriate emails (eg, activateaccount, welcomemail etc)
$vbulletin->options['hometitle'] = $_SESSION['site_home_title'];
$vbulletin->options['bbtitle'] = $_SESSION['site_title'];
$vbulletin->options['bburl'] = "http://www.".$_SESSION['http_host']."/forum";
$vbulletin->options['homeurl'] = "http://www.".$_SESSION['http_host'];
$vbulletin->options['http_host'] = $_SESSION['http_host'];

// set a default username
if ($vbulletin->userinfo['username'] == '')
{

    
//set the appropriate custom unregistered usergroup for all the guest accounts
    
$vbulletin->userinfo['username'] = $vbphrase['unregistered'];
    
$customUserGroup $_SESSION['short_print']." ".$vbulletin->userinfo['usergroupid'];         
    
$ncid findCustomGroup($customUserGroup);
    if (!empty(
$ncid)){
        
//print_r($vbulletin->userinfo);
        //do not tamper with usergroupid just yet but rather utilise a 
        //customusergroupid field which will be used to set the appropriate
        //forum permissions a little later on (function cache_permissions()).
        
$vbulletin->userinfo['usergroupid'] = $ncid;
    }

[Step 5 - register.php]
find [line 265]
PHP Code:
    // Set specified options
    
if (!empty($vbulletin->GPC['options']))
    {
        foreach (
$vbulletin->GPC['options'] AS $optionname => $onoff)
        {
            
$userdata->set_bitfield('options'$optionname$onoff);
        }
    } 
add, below:
PHP Code:
// multiple site controller by Robert_2004
// https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615
require_once('../domains.php'); 
find [line 285]
PHP Code:
    else
    {
        
$newusergroupid 2;
    } 
below, add:
PHP Code:
     // multiple site controller by Robert_2004
      // https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615
    //determine the correct unregistered custom usergroup
    
$customUserGroup $_SESSION['short_print']." ".$newusergroupid;
    
$ncid findCustomGroup($customUserGroup);
    
$newusergroupid $ncid
find:
PHP Code:
            // sort out emails and usergroups
            
if ($vbulletin->options['verifyemail'])
            {
                
$activateid build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 2), 0);

                eval(
fetch_email_phrases('activateaccount'));

                
vbmail($email$subject$messagetrue);

            } 
replace with
PHP Code:
            // sort out emails and usergroups
            
if ($vbulletin->options['verifyemail'])
            {
                
// multiple site controller by Robert_2004
      // https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615
                //with custom registered usergroups it's no longer sufficient to simply pass 4 or 2 to
                //the build_user_activation_id() so let's be more dynamic.
                //$activateid = build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 4 : 2 ), 0);
                //determine the appropriate registered usergroup to pass to build_user_activation_id()
                
$customRGroup $_SESSION['short_print']." 2";
                
$rcid findCustomGroup($customRGroup);
                
$activateid build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? $rcid ), 0);

                eval(
fetch_email_phrases('activateaccount'));

                
vbmail($email$subject$messagetrue);

            } 
find:
PHP Code:
    ($hook vBulletinHook::fetch_hook('register_activate_start')) ? eval($hook) : false;

    if (
$userinfo['usergroupid'] == 3
replace with
PHP Code:
    ($hook vBulletinHook::fetch_hook('register_activate_start')) ? eval($hook) : false;

    
// multiple site controller by Robert_2004
       // https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615
    
$customUserGroup $_SESSION['short_print']." ".$newusergroupid;
        
$ncid findCustomGroup($customUserGroup);
    
//grab all the relevant usergroupids for the various "Awaiting Validation" groups
    
$awug_array findAwaitingGroups();
    
//if ($userinfo['usergroupid'] == 3 )
    
if ($userinfo['usergroupid'] == || in_array($ncid,$awug_array)) 
find
PHP Code:
    $users $db->query_read("
        SELECT user.userid, user.usergroupid, username, email, activationid, languageid
        FROM " 
TABLE_PREFIX "user AS user
        LEFT JOIN " 
TABLE_PREFIX "useractivation AS useractivation ON(user.userid = useractivation.userid AND type = 0)
        WHERE email = '" 
$db->escape_string($vbulletin->GPC['email']) . "'"
    
); 
below, add:
PHP Code:
    // multiple site controller by Robert_2004
       // https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615
    
$customUserGroup $_SESSION['short_print']." ".$newusergroupid;
        
$ncid findCustomGroup($customUserGroup); 
find
PHP Code:
        while ($user $db->fetch_array($users))
        {
            if (
$user['usergroupid'] == 3)
            { 
// only do it if the user is in the correct usergroup
                // make random number
                
if (empty($user['activationid']))
                { 
//none exists so create one
                    
$user['activationid'] = build_user_activation_id($user['userid'], 20);
                }
                else
                {
                    
$user['activationid'] = vbrand(0100000000); 
replace with
PHP Code:
        while ($user $db->fetch_array($users))
        {
            
// multiple site controller by Robert_2004
       // https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615
            //if ($user['usergroupid'] == 3)
            
$awug_array findAwaitingGroups();
            if (
$user['usergroupid'] == || in_array($ncid,$awug_array))
            
            { 
// only do it if the user is in the correct usergroup
                // make random number
                
if (empty($user['activationid']))
                { 
//none exists so create one
                    // multiple site controller by Robert_2004
       // https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615
                    //$user['activationid'] = build_user_activation_id($user['userid'], 2, 0);
                    
if ($user['usergroupid'] == 3){
                        
$ncid $user['usergroupid'];
                    }
                    
$user['activationid'] = build_user_activation_id($user['userid'], $ncid0);
                    
                }
                else
                {
                    
$user['activationid'] = vbrand(0100000000); 
find
PHP Code:
    $userinfo verify_id('user'$vbulletin->GPC['u'], 11);
    
    if (
$userinfo['usergroupid'] == 3
replace with
PHP Code:
    $userinfo verify_id('user'$vbulletin->GPC['u'], 11);
    
    
// multiple site controller by Robert_2004
       // https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615
    
$customUserGroup $_SESSION['short_print']." ".$newusergroupid;
        
$ncid findCustomGroup($customUserGroup);
    
//if ($userinfo['usergroupid'] == 3)
    
$awug_array findAwaitingGroups();
    if (
$userinfo['usergroupid'] == || in_array($ncid,$awug_array)) 
find
PHP Code:
    $userinfo verify_id('user'$vbulletin->GPC['u'], 11);
    
    if (
$userinfo['usergroupid'] == 3
replace with
PHP Code:
    $userinfo verify_id('user'$vbulletin->GPC['u'], 11);
    
// multiple site controller by Robert_2004
       // https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615
    
$customUserGroup $_SESSION['short_print']." ".$newusergroupid;
        
$ncid findCustomGroup($customUserGroup);
    
//if ($userinfo['usergroupid'] == 3)
    
$awug_array findAwaitingGroups();
        if (
$userinfo['usergroupid'] == || in_array($ncid,$awug_array)) 


[Step 6 - class_dm_user.php]
find
PHP Code:
'usergroupid'        => array(TYPE_UINT,       REQ_YESVF_METHOD), 
below, add
PHP Code:
    // multiple site controller by Robert_2004
       // https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615
        
'customusergroupid'  =>array(TYPE_UINT,       REQ_NO), 

[Step 7 - functions.php]
find:
PHP Code:
    $intperms = array();
    
$_PERMQUERY = array();

    
// set the usergroupid of the user's primary usergroup
    
$USERGROUPID $user['usergroupid']; 
replace with:
PHP Code:
    $intperms = array();
    
$_PERMQUERY = array();
    
// multiple site controller by Robert_2004
       // https://vborg.vbsupport.ru/showthread.php?p=1108615#post1108615
    // if a user belongs to a custom Unregistered group then assign the custom usergroup id to foruminfo
    // so that when they browse the forums we can restrict them accordingly.
    
if (isset($user['customusergroupid'])){
        
$USERGROUPID $user['customusergroupid'];
    }
    else {
        
$USERGROUPID $user['usergroupid'];
    }
    
// set the usergroupid of the user's primary usergroup
        //$USERGROUPID = $user['usergroupid']; 
[Step 8 - styles]
either create child styles or import your styles
you'll figure out the best way to set them up

[step 9 - add plugins]
adminCP -> plugins -> add new plugin

product - vbulletin
hook location - global_start
title - Domains or anything you want
plugin php code -
PHP Code:
// PUT A DESCRIPTION HERE 
include('/home/{hosting_username}/public_html/domains.php'); 
(ACTIVATE PLUGIN)

NEXT PLUGIN:
product - vbulletin
hook location - style_fetch
title - Force Style for each Domain
code
PHP Code:
if( preg_match('/MyFirstDomain.com/i'$http_host) )
{
    
$styleid x// set this
}
elseif( 
preg_match('/MySecondDomain.com/i'$http_host) ) 
{
    
$styleid x

(ACTIVATE PLUGIN)


>>>>>>>> AND YOU ARE DONE!

Set all your forums - thee are permissions to set for forums, usergroups, CMPS pages, etc
- remember, all heirarchy works on forums, and usergroups



- now for you to help.
Firstly, CLICK INSTALL >>>>>>>>>>>>>>>>>>>>>>>>>>
- If someone can turn this into a plugin, please go ahead
- if someone can see something to fix - please write it
- if you can help with updating/improving some code - please do it
- this mod is open for anyone and everyone, if you want to do something with it and release it - you are more than welcome to - PM ME so i can put a link & description to your version (i.e if you make a lite version, or a to in a different direction with this mod).
- if you want any features or updates, please write so on this forum - if it's good enough for me, i'll get it done - otherwise we'll see.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #2  
Old 11-01-2006, 10:12 AM
Ziki's Avatar
Ziki Ziki is offline
 
Join Date: Nov 2005
Posts: 2,704
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can you explain me this I don't really get it.
Reply With Quote
  #3  
Old 11-01-2006, 10:37 AM
SkyCatcher's Avatar
SkyCatcher SkyCatcher is offline
 
Join Date: Feb 2003
Location: Germany
Posts: 310
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm assuming he means we can run multiple instances of vb on a machine and have all those forums share the same database.
Reply With Quote
  #4  
Old 11-01-2006, 10:47 AM
Hornstar Hornstar is offline
 
Join Date: Jun 2005
Location: Australia
Posts: 2,469
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This was sounding to good to be true.....
Reply With Quote
  #5  
Old 11-01-2006, 11:46 AM
MaestroX MaestroX is offline
 
Join Date: Aug 2006
Location: UK
Posts: 249
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This sounds interesting...
Reply With Quote
  #6  
Old 11-01-2006, 12:15 PM
Shazz's Avatar
Shazz Shazz is offline
 
Join Date: Jun 2006
Location: Utah
Posts: 4,758
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Um, this will be removed untill its done -.-
Reply With Quote
  #7  
Old 11-01-2006, 12:32 PM
robert_2004 robert_2004 is offline
 
Join Date: Sep 2004
Posts: 126
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

a couple of people have been wanting this, so it will go up over the next few days - please subscribe or bookmark this thread - believe me - it will be worth your time!
a large portion of you are running 2-3 vbulletin sites, and believe me, it's easier to take care of them when they are all under the one server -> hosting account -> files & database
Reply With Quote
  #8  
Old 11-01-2006, 12:34 PM
robert_2004 robert_2004 is offline
 
Join Date: Sep 2004
Posts: 126
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Shazz
Um, this will be removed untill its done -.-
well i can't just post it all up at once - i'm not that smart ^__^ - and if i don't get it up like this, it will never go up - cause i work 16 hour days
Reply With Quote
  #9  
Old 11-01-2006, 12:38 PM
Shazz's Avatar
Shazz Shazz is offline
 
Join Date: Jun 2006
Location: Utah
Posts: 4,758
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by robert_2004
well i can't just post it all up at once - i'm not that smart ^__^ - and if i don't get it up like this, it will never go up - cause i work 16 hour days
You should then release it when its ready..
Reply With Quote
  #10  
Old 11-01-2006, 12:39 PM
VaaKo VaaKo is offline
 
Join Date: Jul 2005
Location: Lebanon
Posts: 400
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can you upgrade it to 3.6.x?
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:16 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04972 seconds
  • Memory Usage 2,447KB
  • Queries Executed 23 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_code
  • (25)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete