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
  #12  
Old 11-01-2006, 07:49 PM
C.Birch C.Birch is offline
 
Join Date: Apr 2002
Posts: 459
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

does this not break vb's terms of use?
Reply With Quote
  #13  
Old 11-02-2006, 03:02 AM
SuperFly SuperFly is offline
 
Join Date: Feb 2005
Location: Mentor,Ohio
Posts: 253
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

No, it does not create more sites under one license, but if you have multiple licenses with diffrent sites on parts of server, it lets you manage them all in 1.
Reply With Quote
  #14  
Old 11-02-2006, 01:53 PM
robert_2004 robert_2004 is offline
 
Join Date: Sep 2004
Posts: 126
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

okay, all the details have been uploaded.
Please test on your localhost/testserver first, otherwise BACKUP YOUR FILES AND DATABASE!!!
Reply With Quote
  #15  
Old 11-12-2006, 02:17 AM
jstep jstep is offline
 
Join Date: Jan 2006
Posts: 23
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

a great hack...just having a bit of trouble installing

I think i did everything

could it be that my first domain is not hte main domain on cpanel, so I had to use a redirect instead?
Reply With Quote
  #16  
Old 11-16-2006, 04:14 AM
robert_2004 robert_2004 is offline
 
Join Date: Sep 2004
Posts: 126
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

quite possible - fool around with the domains file
Reply With Quote
  #17  
Old 11-17-2006, 10:04 AM
Datenpapst Datenpapst is offline
 
Join Date: Mar 2004
Location: Vienna
Posts: 301
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

how far is this hack? Will there be a xml product plugin and will it also work for 3.6.

Any Demo here?
Reply With Quote
  #18  
Old 11-21-2006, 07:04 PM
jstep jstep is offline
 
Join Date: Jan 2006
Posts: 23
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

im hoping for an xml product plugin, but I think robert said he could not do this, and was looking for someone else to do it
Reply With Quote
  #19  
Old 02-06-2007, 08:34 AM
C Braithwaite's Avatar
C Braithwaite C Braithwaite is offline
 
Join Date: Jan 2006
Location: Leeds
Posts: 293
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If i understand the way this works properly, and the vbulletin license, you need to have 1 license per domain (or separate set of content), don't you?
Reply With Quote
  #20  
Old 02-11-2007, 08:46 PM
woodysfj40 woodysfj40 is offline
 
Join Date: Jun 2004
Posts: 80
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

correct...I keep hoping vB will do a multi-forum setup down the road as an official release...purchasing multi-licenses or a "group" license of sorts.
Reply With Quote
  #21  
Old 03-18-2007, 08:40 AM
jahshaka jahshaka is offline
 
Join Date: Jan 2006
Posts: 42
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

whats the status of this? i would love to use it but am running vb3.6!!!
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 06:01 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.12698 seconds
  • Memory Usage 2,452KB
  • Queries Executed 25 (?)
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
  • (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
  • (3)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)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