diff options
author | Brion Vibber <brion@pobox.com> | 2010-02-16 09:25:09 -0800 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-02-16 09:25:09 -0800 |
commit | d5cbfe8071d56438cfa168dc3db56a959317eae0 (patch) | |
tree | c00ca6c3e0d1bd2fb9b05a515c337b6afce3a070 /lib/statusnet.php | |
parent | d4f6235d7b8a40bd1b51370e7eb405cdb14e61fb (diff) | |
parent | 81b6b58e33f55054b7e5dd546f06dbdb5696ed92 (diff) |
Merge branch 'testing' into 0.9.x
Conflicts:
lib/iomaster.php
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() |