*/
public static function init($server=null, $path=null, $conffile=null)
{
- StatusNet::initDefaults($server, $path);
- StatusNet::loadConfigFile($conffile);
+ Router::clear();
+ 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();
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'");
*/
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;
*
* @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;
}
*/
public static function initDefaults($server, $path)
{
- global $_server, $_path, $config;
+ global $_server, $_path, $config, $_PEAR;
Event::clearHandlers();
self::$plugins = array();
// 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'];
- // Backward compatibility
-
- $config['site']['design'] =& $config['design'];
-
if (function_exists('date_default_timezone_set')) {
/* Work internally in UTC */
date_default_timezone_set('UTC');
}
}
- 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, '/');
*
* @throws NoConfigException
*/
- protected function loadConfigFile($conffile=null)
+ protected static function loadConfigFile($conffile=null)
{
global $_server, $_path, $config;
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;
}
$config_files);
}
- // Fixup for statusnet.ini
- $_db_name = substr($config['db']['database'], strrpos($config['db']['database'], '/') + 1);
-
- if ($_db_name != 'statusnet' && !array_key_exists('ini_'.$_db_name, $config['db'])) {
- $config['db']['ini_'.$_db_name] = INSTALLDIR.'/classes/statusnet.ini';
- }
-
// Backwards compatibility
if (array_key_exists('memcached', $config)) {
if ($config['memcached']['enabled']) {
$config['cache']['base'] = $config['memcached']['base'];
}
}
+
if (array_key_exists('xmpp', $config)) {
if ($config['xmpp']['enabled']) {
addPlugin('xmpp', array(
));
}
}
+
+ // Check for database server; must exist!
+
+ if (empty($config['db']['database'])) {
+ throw new ServerException("No database server for this site.");
+ }
}
/**