X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fstatusnet.php;h=56ac0cb1d31c7c223678e88da9bb0b5eab969441;hb=039874195649f578c89d4435e99a0359501cda79;hp=ce0d41e51e7e94afac47a3b22a93574f54e4843a;hpb=7c6399a51a3e8a5e602db77ffe6ed7e4ce958825;p=quix0rs-gnu-social.git diff --git a/lib/statusnet.php b/lib/statusnet.php index ce0d41e51e..56ac0cb1d3 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -110,9 +110,13 @@ class StatusNet { Router::clear(); - StatusNet::initDefaults($server, $path); - StatusNet::loadConfigFile($conffile); + self::initDefaults($server, $path); + self::loadConfigFile($conffile); + $sprofile = common_config('site', 'profile'); + if (!empty($sprofile)) { + self::loadSiteProfile($sprofile); + } // Load settings from database; note we need autoload for this Config::loadSettings(); @@ -144,7 +148,7 @@ class StatusNet return true; } - $sn = Status_network::staticGet('nickname', $nickname); + $sn = Status_network::getKV('nickname', $nickname); if (empty($sn)) { return false; throw new Exception("No such site nickname '$nickname'"); @@ -177,6 +181,11 @@ class StatusNet */ protected static function initPlugins() { + // Load core plugins + foreach (common_config('plugins', 'core') as $name => $params) { + call_user_func('addPlugin', $name, $params); + } + // Load default plugins foreach (common_config('plugins', 'default') as $name => $params) { $key = 'disable-' . $name; @@ -218,27 +227,27 @@ class StatusNet * * @return bool */ - public function haveConfig() + public static function haveConfig() { return self::$have_config; } - public function isApi() + public static function isApi() { return self::$is_api; } - public function setApi($mode) + public static function setApi($mode) { self::$is_api = $mode; } - public function isAjax() + public static function isAjax() { return self::$is_ajax; } - public function setAjax($mode) + public static function setAjax($mode) { self::$is_ajax = $mode; } @@ -260,7 +269,7 @@ class StatusNet */ public static function initDefaults($server, $path) { - global $_server, $_path, $config; + global $_server, $_path, $config, $_PEAR; Event::clearHandlers(); self::$plugins = array(); @@ -292,7 +301,7 @@ class StatusNet // default configuration, overwritten in config.php // Keep DB_DataObject's db config synced to ours... - $config['db'] = &PEAR::getStaticProperty('DB_DataObject','options'); + $config['db'] = &$_PEAR->getStaticProperty('DB_DataObject','options'); $config['db'] = $default['db']; @@ -302,7 +311,14 @@ class StatusNet } } - protected function _sn_to_path($sn) + public static function loadSiteProfile($name) + { + global $config; + $settings = SiteProfile::getSettings($name); + $config = array_merge($config, $settings); + } + + protected static function _sn_to_path($sn) { $past_root = substr($sn, 1); $last_slash = strrpos($past_root, '/'); @@ -320,7 +336,7 @@ class StatusNet * * @throws NoConfigException */ - protected function loadConfigFile($conffile=null) + protected static function loadConfigFile($conffile=null) { global $_server, $_path, $config; @@ -351,6 +367,7 @@ class StatusNet if (@file_exists($_config_file)) { // Ignore 0-byte config files if (filesize($_config_file) > 0) { + common_log(LOG_INFO, "Including config file: " . $_config_file); include($_config_file); self::$have_config = true; } @@ -372,6 +389,7 @@ class StatusNet $config['cache']['base'] = $config['memcached']['base']; } } + if (array_key_exists('xmpp', $config)) { if ($config['xmpp']['enabled']) { addPlugin('xmpp', array( @@ -387,6 +405,12 @@ class StatusNet )); } } + + // Check for database server; must exist! + + if (empty($config['db']['database'])) { + throw new ServerException("No database server for this site."); + } } /**