Esempio n. 1
0
 public function import_configuration()
 {
     $this->logLine('Starting configuration import');
     // PRE-CONFIG start - create and register blank config instances - do not load!
     $config_aliases = array('core', 'core_backup', 'emote', 'menu', 'search', 'notify');
     foreach ($config_aliases as $alias) {
         e107::getConfig($alias, false)->clearPrefCache();
     }
     // PRE-CONFIG end
     // Basic stuff to get the handlers/classes to work.
     //	$udirs = "admin/|plugins/|temp";
     //	$e_SELF = $_SERVER['PHP_SELF'];
     //	$e_HTTP = preg_replace("#".$udirs."#i", "", substr($e_SELF, 0, strrpos($e_SELF, "/"))."/");
     //define("MAGIC_QUOTES_GPC", (ini_get('magic_quotes_gpc') ? true : false));
     //	define('CHARSET', 'utf-8');
     //	define("e_LANGUAGE", $this->previous_steps['language']);
     //	define('e_SELF', 'http://'.$_SERVER['HTTP_HOST']) . ($_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_FILENAME']);
     $themeImportFile = array();
     $themeImportFile[0] = $this->e107->e107_dirs['THEMES_DIRECTORY'] . $this->previous_steps['prefs']['sitetheme'] . "/install.xml";
     $themeImportFile[1] = $this->e107->e107_dirs['THEMES_DIRECTORY'] . $this->previous_steps['prefs']['sitetheme'] . "/install/install.xml";
     $themeImportFile[3] = $this->e107->e107_dirs['CORE_DIRECTORY'] . "xml/default_install.xml";
     if (vartrue($this->previous_steps['generate_content'])) {
         foreach ($themeImportFile as $file) {
             if (is_readable($file)) {
                 $XMLImportfile = $file;
                 break;
             }
         }
     } else {
         $XMLImportfile = $this->e107->e107_dirs['CORE_DIRECTORY'] . "xml/default_install.xml";
     }
     $tp = e107::getParser();
     define('PREVIEWTHEMENAME', "");
     // Notice Removal.
     include_lan($this->e107->e107_dirs['LANGUAGES_DIRECTORY'] . $this->previous_steps['language'] . "/lan_prefs.php");
     include_lan($this->e107->e107_dirs['LANGUAGES_DIRECTORY'] . $this->previous_steps['language'] . "/admin/lan_theme.php");
     //should be 'add' not 'replace' - but 'add' doesn't insert arrays correctly.
     // [SecretR] should work now - fixed log errors (argument noLogs = true) change to false to enable log
     e107::getXml()->e107Import($XMLImportfile, 'add', true, false);
     // Add missing core pref values
     $this->logLine('Core prefs written');
     //Create default plugin-table entries.
     //		e107::getConfig('core')->clearPrefCache();
     e107::getPlugin()->update_plugins_table();
     $this->logLine('Plugins table updated');
     // Install Theme-required plugins
     if (vartrue($this->previous_steps['install_plugins'])) {
         if ($themeInfo = $this->get_theme_xml($this->previous_steps['prefs']['sitetheme'])) {
             if (isset($themeInfo['plugins']['plugin'])) {
                 foreach ($themeInfo['plugins']['plugin'] as $k => $plug) {
                     $this->install_plugin($plug['@attributes']['name']);
                     $this->logLine('Theme-related plugin installed: ' . $plug['@attributes']['name']);
                 }
             }
         }
     }
     // Media import
     /*
     e107::getMedia()->import('news',e_IMAGE.'newspost_images/') //TODO remove when news are pluginized
     	->import('page',e_IMAGE.'custom/') //TODO remove when pages are pluginized
     	// ->importIcons(e_PLUGIN) - icons for plugins are imported on install
     	->importIcons(e_IMAGE."icons/")
     	->importIcons(e_THEME.$this->previous_steps['prefs']['sitetheme']."/images/")
     	->importIcons(e_THEME.$this->previous_steps['prefs']['sitetheme']."/icons/");
     $this->logLine('Media imported to media manager');
     */
     e107::getSingleton('e107plugin')->save_addon_prefs();
     // save plugin addon pref-lists. eg. e_latest_list.
     $this->logLine('Addon prefs saved');
     $tm = e107::getSingleton('themeHandler');
     $tm->noLog = true;
     // false to enable log
     $tm->setTheme($this->previous_steps['prefs']['sitetheme']);
     // Admin log fix - don't allow logs to be called inside pref handler
     e107::getConfig('core')->setParam('nologs', false);
     // change to true to enable log
     $pref = e107::getConfig('core')->getPref();
     // Set Preferences defined during install - overwriting those that may exist in the XML.
     $this->previous_steps['prefs']['sitelanguage'] = $this->previous_steps['language'];
     $this->previous_steps['prefs']['sitelang_init'] = $this->previous_steps['language'];
     $this->previous_steps['prefs']['siteadmin'] = $this->previous_steps['admin']['display'];
     $this->previous_steps['prefs']['siteadminemail'] = $this->previous_steps['admin']['email'];
     $this->previous_steps['prefs']['install_date'] = time();
     $this->previous_steps['prefs']['siteurl'] = e_HTTP;
     $this->previous_steps['prefs']['sitetag'] = LAN_PREF_2;
     $this->previous_steps['prefs']['sitedisclaimer'] = LAN_PREF_3;
     $this->previous_steps['prefs']['replyto_name'] = $this->previous_steps['admin']['display'];
     $this->previous_steps['prefs']['replyto_email'] = $this->previous_steps['admin']['email'];
     // Cookie name fix, ended up with 406 error when non-latin words used
     $cookiename = preg_replace('/[^a-z0-9]/i', '', trim($this->previous_steps['prefs']['sitename']));
     $this->previous_steps['prefs']['cookie_name'] = ($cookiename ? substr($cookiename, 0, 4) . '_' : 'e_') . 'cookie';
     ### URL related prefs
     // set all prefs so that they are available, required for adminReadModules() - it checks which plugins are installed
     e107::getConfig('core')->setPref($this->previous_steps['prefs']);
     $url_modules = eRouter::adminReadModules();
     $url_locations = eRouter::adminBuildLocations($url_modules);
     $url_config = eRouter::adminBuildConfig(array(), $url_modules);
     $this->previous_steps['prefs']['url_aliases'] = array();
     $this->previous_steps['prefs']['url_config'] = $url_config;
     $this->previous_steps['prefs']['url_modules'] = $url_modules;
     $this->previous_steps['prefs']['url_locations'] = $url_locations;
     eRouter::clearCache();
     $this->logLine('Core URL config set to default state');
     // Set prefs, save
     e107::getConfig('core')->setPref($this->previous_steps['prefs']);
     e107::getConfig('core')->save(FALSE, TRUE);
     // save preferences made during install.
     $this->logLine('Core prefs set to install choices');
     // Create the admin user - replacing any that may be been included in the XML.
     $ip = $_SERVER['REMOTE_ADDR'];
     $userp = "1, '{$this->previous_steps['admin']['display']}', '{$this->previous_steps['admin']['user']}', '', '" . md5($this->previous_steps['admin']['password']) . "', '', '{$this->previous_steps['admin']['email']}', '', '', 0, " . time() . ", 0, 0, 0, 0, 0, '{$ip}', 0, '', 0, 1, '', '', '0', '', " . time() . ", ''";
     $qry = "REPLACE INTO {$this->previous_steps['mysql']['prefix']}user VALUES ({$userp})";
     $this->dbqry("REPLACE INTO {$this->previous_steps['mysql']['prefix']}user VALUES ({$userp})");
     $this->logLine('Admin user created');
     mysql_close($this->dbLink);
     return false;
 }
Esempio n. 2
0
 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();
     }
 }
Esempio n. 3
0
 /**
  * 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();
 }