public static function init($config = null) { ob_start(); global $includes; if ($includes == null) { $includes = array(); } self::$instance = new YoPressBase(); if ($config == null) { throw new Exception('YoPress: Please pass the config to init!'); } self::$config = $config; UrlManagerModule::instance(); load_theme_textdomain(self::$config['textDomain']); spl_autoload_register(array(self::$instance, 'loader')); self::$instance->webView = new YoPressWebView(); self::$instance->component = new YoPressComponentManager(); $action = UrlManagerModule::instance()->getActionName(); self::$config['modules'][] = 'Storage'; self::$config['modules'][] = 'Helper'; self::$config['modules'][] = array('module' => 'Form', 'adminOnly' => true); self::$instance->loadModules(); /* resolve post request to update options for components */ if (is_admin() && $action == self::$instance->getAdminPageId() && isset($_POST[YoPressFormModel::FORM_NAME])) { YoPressStorageModule::instance()->attributes = $_POST[YoPressFormModel::FORM_NAME]; YoPressStorageModule::instance()->synchronize(); } self::$instance->registerHooks(); self::$instance->registerWidgets(); self::$instance->registerComponents($action); self::$instance->registerDependencies($action); self::$instance->addActions(); }