diff options
author | Evan Prodromou <evan@status.net> | 2010-02-16 12:46:02 -0500 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2010-02-16 12:46:02 -0500 |
commit | 3d170bfa30168280a9c11e944f886460d7cc18c7 (patch) | |
tree | 0d99d6164fce4b35ceeff86acdda21722f4681e3 /lib/statusnet.php | |
parent | 71ecd689019a8086570c677af47ead4e02227fb3 (diff) | |
parent | 81b6b58e33f55054b7e5dd546f06dbdb5696ed92 (diff) |
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
Diffstat (limited to 'lib/statusnet.php')
-rw-r--r-- | lib/statusnet.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/lib/statusnet.php b/lib/statusnet.php index 4f82fdaa6..7c4df84b4 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -103,6 +103,60 @@ class StatusNet } /** + * Get identifier of the currently active site configuration + * @return string + */ + public static function currentSite() + { + return common_config('site', 'nickname'); + } + + /** + * Change site configuration to site specified by nickname, + * if set up via Status_network. If not, sites other than + * the current will fail horribly. + * + * May throw exception or trigger a fatal error if the given + * site is missing or configured incorrectly. + * + * @param string $nickname + */ + public static function switchSite($nickname) + { + if ($nickname == StatusNet::currentSite()) { + return true; + } + + $sn = Status_network::staticGet($nickname); + if (empty($sn)) { + return false; + throw new Exception("No such site nickname '$nickname'"); + } + + $server = $sn->getServerName(); + StatusNet::init($server); + } + + /** + * Pull all local sites from status_network table. + * + * Behavior undefined if site is not configured via Status_network. + * + * @return array of nicknames + */ + public static function findAllSites() + { + $sites = array(); + $sn = new Status_network(); + $sn->find(); + while ($sn->fetch()) { + $sites[] = $sn->nickname; + } + return $sites; + } + + + /** * Fire initialization events for all instantiated plugins. */ protected static function initPlugins() |