+
+ public static function load($modname, $include = null)
+ {
+ global $platal;
+ $modname = strtolower($modname);
+ if (isset($platal->__mods[$modname])) {
+ if (is_null($include)) {
+ return;
+ }
+ $platal->__mods[$modname]->load($include);
+ } else {
+ if (is_null($include)) {
+ require_once PLModule::path($modname) . '.php';
+ } else {
+ require_once PLModule::path($modname) . '/' . $include;
+ }
+ }
+ }
+
+ public static function assert($cond, $error, $userfriendly)
+ {
+ global $globals;
+ if ($cond === false) {
+ header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error');
+ $file = fopen($globals->spoolroot . '/spool/tmp/assert_erros', 'a');
+ fwrite($file, '<pre>' . pl_entities($error) . '</pre>\n');
+ fclose($file);
+
+ Platal::page()->kill($userfriendly);
+ }
+ }
+
+ public function &buildLogger($uid, $suid = 0)
+ {
+ if (defined('PL_LOGGER_CLASS')) {
+ $class = PL_LOGGER_CLASS;
+ return new $class($uid, $suid);
+ } else {
+ return PlLogger::dummy($uid, $suid);
+ }
+ }
+
+ protected function &buildPage()
+ {
+ $pageclass = PL_PAGE_CLASS;
+ $page = new $pageclass();
+ return $page;
+ }
+
+ static public function &page()
+ {
+ if (is_null(self::$_page)) {
+ global $platal;
+ self::$_page = $platal->buildPage();
+ }
+ return self::$_page;
+ }
+
+ protected function &buildSession()
+ {
+ $sessionclass = PL_SESSION_CLASS;
+ $session = new $sessionclass();
+ return $session;
+ }
+
+ static public function &session()
+ {
+ global $session;
+ return $session;
+ }
+
+ protected function &buildGlobals()
+ {
+ $globalclass = PL_GLOBALS_CLASS;
+ $globals = new $globalclass();
+ return $globals;
+ }
+
+ static public function &globals()
+ {
+ global $globals;
+ return $globals;
+ }