What happens during initialization

Created by: spiderr, Last modification: 09 Dec 2004 (17:41 UTC) by fire
Table of Contents

What does the Kernel do when EACH page is served

For every page request, here is what the KernelPackage will do:


TikiSystem::scanPackages() is an important function, and if you are reading this page, you should try to trace that function out. scanPackages will:
1. Define 2 constants for every bitweaverPackage.
The kernel will assume every directory in the bitweaver root is a package, and will make the constants <directoryname>_PKG_URL and <directoryname>_PKG_PATH. For example, the wiki/ directory will cause WIKI_PKG_URL and WIKI_PKG_PATH to be defined. These constants should be used when including files, such as
include_once (HTML_PKG_PATH.'htmlpages_lib.php');
or for setting URL's such as
header ("location: ".POLLS_PKG_PATH."results.php?pollId=$pollId");

Fires documentation Initiative Introduction

ok everyone, this is Fire, I'm taking it upon myself to interview the the great minds of bitweaver in order to document and explain how the tickipro ticks...

I am starting with a bottom up approach - thats right! With the very first file that is accessed when someone visits your bitweaver site - index.php... from here, I will go through line by line documenting the main functions that get executed, and what the heck actually happens. I am going to try to explain the system as simple as possible...

... you see... I actually don't know how the heck the thing works yet.. so... uh, Im gonna get good'ole spider, xing, and drewslater and others who wanna help (who I probably haven't met yet) to help me demystify this nice web application! Fortunately, bitweaver seams to be really well put together, so my task shouldn't be that hard!

PS. Please bear with me all you senior gurus... I am a beginner, and I hope my attempts to do this are welcomed... I really hope my efforts will help others to join our project!!! Cheers

Ok! Here goes:

index.php whats in it?

  • New Users Beware - This doc is pending approval!!! It may have mistakes in it!

Besides determining whether or not bitweaver is plugged into a valid database or not, index.php

merely sets up the layout by calling:

and then does a smarty call to kernel/dynamic.tpl to display our beautiful bitweaver web application.

So what does loadLayout() do?

$gTikiSystem->loadLayout(); loads each module into a variable called TikiSystem->mLayout and then uses smarty to call kernel/dynamic.tpl which displays all the active modules on the webpage in order and in the right place! This allows administrators to customize the layout of bitweaver.. admins can place modules in the left,right, or center column.

Not enough control for ya????
If an administrator wants to modify the layout in other ways... like... say, adding a custom menu bar at the very top of the page... he must work with the theme system...

Please refer the .tpl's in the themes/force directories...

Other things to note:
  • The Theme and Layout Systems are independent of one another...
  • Layouts are displayed inside of themes

Voila... thats all folks!

Summary of index.php

  • Index.php checks if there is a database attached
  • Loads all modules into a var called TikiSystem->mLayout
  • Loads modules into correct order so they are displayed in the correct colume / position on the screen
  • then calls kernel/dynamic.tpl to display everything!