/** * @param string $servername hostname * @param string $pathname URL base path * @param string $wildcard hostname suffix to match wildcard config */ static function setupSite($servername, $pathname, $wildcard) { global $config; $sn = null; // XXX I18N, probably not crucial for hostnames // XXX This probably needs a tune up $sn = self::getFromHostname($servername, $wildcard); if (!empty($sn)) { // Redirect to the right URL if (!empty($sn->hostname) && empty($_SERVER['HTTPS']) && 0 != strcasecmp($sn->hostname, $servername)) { $sn->redirectTo('http://' . $sn->hostname . $_SERVER['REQUEST_URI']); } else { if (!empty($_SERVER['HTTPS']) && 0 != strcasecmp($sn->hostname, $servername) && 0 != strcasecmp($sn->nickname . '.' . $wildcard, $servername)) { $sn->redirectTo('https://' . $sn->nickname . '.' . $wildcard . $_SERVER['REQUEST_URI']); } } $dbhost = empty($sn->dbhost) ? 'localhost' : $sn->dbhost; $dbuser = empty($sn->dbuser) ? $sn->nickname : $sn->dbuser; $dbpass = $sn->dbpass; $dbname = empty($sn->dbname) ? $sn->nickname : $sn->dbname; $config['db']['database'] = "mysqli://{$dbuser}:{$dbpass}@{$dbhost}/{$dbname}"; $config['site']['name'] = $sn->sitename; $config['site']['nickname'] = $sn->nickname; self::$wildcard = $wildcard; $config['site']['wildcard'] =& self::$wildcard; if (!empty($sn->hostname)) { $config['site']['server'] = $sn->hostname; } if (!empty($sn->theme)) { $config['site']['theme'] = $sn->theme; } if (!empty($sn->logo)) { $config['site']['logo'] = $sn->logo; } return $sn; } else { return null; } }
static function registerEmail($email) { $domain = self::toDomain($email); if (FreeEmail::isFree($domain)) { throw new ClientException(_("Use your work email.")); } $sn = self::siteForDomain($domain); if (empty($sn)) { $installer = new DomainStatusNetworkInstaller($domain); // Do the thing $installer->main(); $sn = $installer->getStatusNetwork(); $config = $installer->getConfig(); Status_network::$wildcard = $config['WILDCARD']; } StatusNet::switchSite($sn->nickname); $confirm = EmailRegistrationPlugin::registerEmail($email); return $confirm; }
/** * @param string $servername hostname * @param string $pathname URL base path * @param string $wildcard hostname suffix to match wildcard config */ static function setupSite($servername, $pathname, $wildcard) { global $config; $sn = null; // XXX I18N, probably not crucial for hostnames // XXX This probably needs a tune up if (0 == strncasecmp(strrev($wildcard), strrev($servername), strlen($wildcard))) { // special case for exact match if (0 == strcasecmp($servername, $wildcard)) { $sn = self::memGet('nickname', ''); } else { $parts = explode('.', $servername); $sn = self::memGet('nickname', strtolower($parts[0])); } } else { $sn = self::memGet('hostname', strtolower($servername)); if (empty($sn)) { // Try for a no-www address if (0 == strncasecmp($servername, 'www.', 4)) { $sn = self::memGet('hostname', strtolower(substr($servername, 4))); } } } if (!empty($sn)) { // Redirect to the right URL if (!empty($sn->hostname) && empty($_SERVER['HTTPS']) && 0 != strcasecmp($sn->hostname, $servername)) { $sn->redirectTo('http://' . $sn->hostname . $_SERVER['REQUEST_URI']); } else { if (!empty($_SERVER['HTTPS']) && 0 != strcasecmp($sn->hostname, $servername) && 0 != strcasecmp($sn->nickname . '.' . $wildcard, $servername)) { $sn->redirectTo('https://' . $sn->nickname . '.' . $wildcard . $_SERVER['REQUEST_URI']); } } $dbhost = empty($sn->dbhost) ? 'localhost' : $sn->dbhost; $dbuser = empty($sn->dbuser) ? $sn->nickname : $sn->dbuser; $dbpass = $sn->dbpass; $dbname = empty($sn->dbname) ? $sn->nickname : $sn->dbname; $config['db']['database'] = "mysqli://{$dbuser}:{$dbpass}@{$dbhost}/{$dbname}"; $config['site']['name'] = $sn->sitename; $config['site']['nickname'] = $sn->nickname; self::$wildcard = $wildcard; $config['site']['wildcard'] =& self::$wildcard; if (!empty($sn->hostname)) { $config['site']['server'] = $sn->hostname; } if (!empty($sn->theme)) { $config['site']['theme'] = $sn->theme; } if (!empty($sn->logo)) { $config['site']['logo'] = $sn->logo; } return $sn; } else { return null; } }
function checkSchema() { $config = $this->getConfig(); Status_network::$wildcard = $config['WILDCARD']; StatusNet::switchSite($this->nickname); // We need to initialize the schema_version stuff to make later setup easier $schema = array(); require INSTALLDIR . '/db/core.php'; $tableDefs = $schema; $schema = Schema::get(); $schemaUpdater = new SchemaUpdater($schema); foreach ($tableDefs as $table => $def) { $schemaUpdater->register($table, $def); } $schemaUpdater->checkSchema(); Event::handle('CheckSchema'); }