public static function init($args = array()) { $defaults = array('authLevel' => 1, 'keep' => FALSE, 'noSession' => FALSE, 'sessionID' => NULL, 'install' => FALSE); // merge submitted parameters $p = Pommo_Api::getParams($defaults, $args); // Return if not config.php file present if (!self::$_hasConfigFile) { return false; } // Bypass Reading of Config, SESSION creation, and authentication checks // and return if 'install' passed if ($p['install']) { return; } // load configuration data. Note: cannot save in session, as session // needs unique key -- this is simplest method. self::$_config = Pommo_Api::configGetBase(); // toggle DB debugging if (self::$_debug) { self::$_dbo->debug(TRUE); } // Bypass SESSION creation, reading of config, authentication checks // and return if 'noSession' passed if ($p['noSession']) { return; } // Start the session if (!empty($p['sessionID'])) { session_id($p['sessionID']); } self::startSession(); // check for "session" language -- user defined language on the fly. if (self::$_slanguage) { self::$_session['slanguage'] = self::$_slanguage; } if (isset(self::$_session['slanguage'])) { if (self::$_session['slanguage'] == 'en') { self::$_l10n = FALSE; } else { self::$_l10n = TRUE; require_once self::$_baseDir . 'classes/Pommo_Helper_L10n.php'; Pommo_Helper_L10n::init(self::$_session['slanguage'], self::$_baseDir); } self::$_slanguage = self::$_session['slanguage']; } // if authLevel == '*' || _poMMo_support (0 if poMMo not installed, // 1 if installed) if (defined('_poMMo_support')) { require_once self::$_baseDir . 'classes/Pommo_Install.php'; $p['authLevel'] = Pommo_Install::verify() ? 1 : 0; } // check authentication levels self::$_auth = new Pommo_Auth(array('requiredLevel' => $p['authLevel'])); // clear SESSION 'data' unless keep is passed. // TODO --> phase this out in favor of page state system? // -- add "persistent" flag & complicate state initilization... if (!$p['keep']) { self::$_session['data'] = array(); } }