diff options
author | Craig Andrews <candrews@integralblue.com> | 2010-02-16 13:15:09 -0500 |
---|---|---|
committer | Craig Andrews <candrews@integralblue.com> | 2010-02-16 13:15:09 -0500 |
commit | 20d6a7caed6636c28cc7b95c584549691dff4388 (patch) | |
tree | bcf44f5f31a38ff08b363ab45ab486ace9ff1a99 /lib/statusnet.php | |
parent | 32084e33a266797b306158df29e48f057651b410 (diff) | |
parent | d5cbfe8071d56438cfa168dc3db56a959317eae0 (diff) |
Merge branch '0.9.x' into 1.0.x
Conflicts:
lib/queuemanager.php
lib/xmppmanager.php
plugins/Xmpp/Fake_XMPP.php
scripts/imdaemon.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 3951d9251..3f9a48e6a 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() |