public function ConfigObserver() { if (isset($_POST['update'])) { $config = is_array($_POST['eurl_config']) ? e107::getParser()->post_toForm($_POST['eurl_config']) : ''; $modules = eRouter::adminReadModules(); $locations = eRouter::adminBuildLocations($modules); $aliases = eRouter::adminSyncAliases(e107::getPref('url_aliases'), $config); e107::getConfig()->set('url_aliases', $aliases)->set('url_config', $config)->set('url_modules', $modules)->set('url_locations', $locations)->save(); eRouter::clearCache(); } }
/** * Rebuild URL configuration values * Note - new core system pref values will be set, but not saved * e107::getConfig()->save() is required outside after execution of this method * @return void */ public function rebuildUrlConfig() { $modules = eRouter::adminReadModules(); // get all available locations, non installed plugins will be ignored $config = eRouter::adminBuildConfig(e107::getPref('url_config'), $modules); // merge with current config $locations = eRouter::adminBuildLocations($modules); // rebuild locations pref $aliases = eRouter::adminSyncAliases(e107::getPref('url_aliases'), $config); // rebuild aliases // set new values, changes should be saved outside this methods e107::getConfig()->set('url_aliases', $aliases)->set('url_config', $config)->set('url_modules', $modules)->set('url_locations', $locations); eRouter::clearCache(); }