public function __construct($name, $addonDir = null) { $this->name = $name; $this->addonDir = is_null($addonDir) ? FLUX_ADDON_DIR . "/{$name}" : $addonDir; $this->configDir = "{$this->addonDir}/config"; $this->moduleDir = "{$this->addonDir}/modules"; $this->themeDir = "{$this->addonDir}/themes/" . Flux::config('ThemeName'); $files = array('addonConfig' => "{$this->configDir}/addon.php", 'accessConfig' => "{$this->configDir}/access.php"); foreach ($files as $configName => $filename) { if (file_exists($filename)) { $this->{$configName} = Flux::parseConfigFile($filename); } if (!$this->{$configName} instanceof Flux_Config) { $tempArr = array(); $this->{$configName} = new Flux_Config($tempArr); } } // Use new language system for messages (also supports addons). $this->messagesConfig = Flux::parseLanguageConfigFile($name); }
if ($hasUpdates = $installer->updateNeeded()) { Flux::config('ThemeName', 'installer'); } $sessionKey = Flux::config('SessionKey'); $sessionExpireDuration = Flux::config('SessionCookieExpire') * 60 * 60; session_set_cookie_params($sessionExpireDuration, Flux::config('BaseURI')); ini_set('session.gc_maxlifetime', $sessionExpireDuration); ini_set('session.name', $sessionKey); @session_start(); if (empty($_SESSION[$sessionKey]) || !is_array($_SESSION[$sessionKey])) { $_SESSION[$sessionKey] = array(); } // Initialize session data. Flux::$sessionData = new Flux_SessionData($_SESSION[$sessionKey], $hasUpdates); // Initialize authorization component. $accessConfig = Flux::parseConfigFile(FLUX_CONFIG_DIR . '/access.php'); // Merge with add-on configs. foreach (Flux::$addons as $addon) { $accessConfig->merge($addon->accessConfig); } $accessConfig->set('unauthorized.index', AccountLevel::ANYONE); $authComponent = Flux_Authorization::getInstance($accessConfig, Flux::$sessionData); if (!Flux::config('DebugMode')) { ini_set('display_errors', 0); } // Dispatch requests->modules->actions->views. $dispatcher = Flux_Dispatcher::getInstance(); $dispatcher->setDefaultModule(Flux::config('DefaultModule')); $dispatcher->dispatch(array('basePath' => Flux::config('BaseURI'), 'useCleanUrls' => Flux::config('UseCleanUrls'), 'modulePath' => FLUX_MODULE_DIR, 'themePath' => FLUX_THEME_DIR, 'themeName' => Flux::$sessionData->theme, 'missingActionModuleAction' => Flux::config('DebugMode') ? array('errors', 'missing_action') : array('main', 'page_not_found'), 'missingViewModuleAction' => Flux::config('DebugMode') ? array('errors', 'missing_view') : array('main', 'page_not_found'))); } catch (Exception $e) { $exceptionDir = FLUX_DATA_DIR . '/logs/errors/exceptions';