/** Initialisation.
  *   - setup error handling
  *   - load configuration data
  *   - set up theme
  */
 function __init()
 {
     // Load config
     $conf =& new Config();
     $conf->parseConfig('/home/mbertier/dev/htdocs/mb/conf/microbuilder-conf.ini', 'GenericConf');
     //        $conf->parseConfig( '/var/www/localhost/mb/conf/microbuilder-conf.ini', 'GenericConf' );
     $confroot =& $conf->getRoot();
     $confarray = $confroot->toArray();
     $this->conf =& $confarray['root'];
     // Error Handling
     $this->err =& PEAR_ErrorStack::singleton('MicroBuilder');
     // -- Callback
     $errcallback =& new MicroBuilder_ErrorCallback();
     $this->err->setDefaultCallback(array(&$errcallback, 'errorCallback'));
     // -- Error messages templates
     $msg = array(MB_NONEXISTENT_THEME => "Requested theme '%theme%' could not be found.", MB_NONEXISTENT_MODULE => "Requested module '%module%' could not be found.", MB_NONEXISTENT_BLOCK => "Requested block '%module%::%block%' could not be found.");
     $this->err->setErrorMessageTemplate($msg);
     $msgcallback =& new MicroBuilder_MessageCallback();
     $msgcallback->verbosity = $this->conf['error_verbosity'];
     $this->err->setMessageCallback(array(&$msgcallback, 'messageCallback'));
     // -- Logger
     $logpath = $this->conf['prefix'] . '/logs/' . $this->conf['log_file'];
     $log =& Log::singleton('file', $logpath, 'MicroBuilder error log');
     PEAR_ErrorStack::setDefaultLogger($log);
     // Constants
     // -- this conf constants are needed by factories to access conf (factories are static)
     define("MB_CONF_PREFIX", $this->conf['prefix']);
     define("MB_ERROR_VERBOSITY", $this->conf['error_verbosity']);
     // Theme
     // -- UI description
     $this->ui =& new MicroBuilder_UI();
     // -- Theme object
     $this->theme =& MicroBuilder_Theme_Factory::make($this->conf['default_theme']);
     $this->theme->setTitle($this->conf['site_name']);
 }