diff options
Diffstat (limited to 'includes/WikiMap.php')
-rw-r--r-- | includes/WikiMap.php | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/includes/WikiMap.php b/includes/WikiMap.php index 4a5e2bcf..da4416de 100644 --- a/includes/WikiMap.php +++ b/includes/WikiMap.php @@ -28,7 +28,7 @@ class WikiMap { /** * Get a WikiReference object for $wikiID * - * @param $wikiID String: wiki'd id (generally database name) + * @param string $wikiID wiki'd id (generally database name) * @return WikiReference object or null if the wiki was not found */ public static function getWiki( $wikiID ) { @@ -37,13 +37,18 @@ class WikiMap { $wgConf->loadFullData(); list( $major, $minor ) = $wgConf->siteFromDB( $wikiID ); - if( $major === null ) { + if ( $major === null ) { return null; } - $canonicalServer = $wgConf->get( 'wgCanonicalServer', $wikiID, $major, - array( 'lang' => $minor, 'site' => $major ) ); $server = $wgConf->get( 'wgServer', $wikiID, $major, array( 'lang' => $minor, 'site' => $major ) ); + + $canonicalServer = $wgConf->get( 'wgCanonicalServer', $wikiID, $major, + array( 'lang' => $minor, 'site' => $major ) ); + if ( $canonicalServer === false || $canonicalServer === null ) { + $canonicalServer = $server; + } + $path = $wgConf->get( 'wgArticlePath', $wikiID, $major, array( 'lang' => $minor, 'site' => $major ) ); return new WikiReference( $major, $minor, $canonicalServer, $path, $server ); @@ -53,7 +58,7 @@ class WikiMap { * Convenience to get the wiki's display name * * @todo We can give more info than just the wiki id! - * @param $wikiID String: wiki'd id (generally database name) + * @param string $wikiID wiki'd id (generally database name) * @return string|int Wiki's name or $wiki_id if the wiki was not found */ public static function getWikiName( $wikiID ) { @@ -68,24 +73,24 @@ class WikiMap { /** * Convenience to get a link to a user page on a foreign wiki * - * @param $wikiID String: wiki'd id (generally database name) - * @param $user String: user name (must be normalised before calling this function!) - * @param $text String: link's text; optional, default to "User:$user" + * @param string $wikiID wiki'd id (generally database name) + * @param string $user user name (must be normalised before calling this function!) + * @param string $text link's text; optional, default to "User:$user" * @return String: HTML link or false if the wiki was not found */ - public static function foreignUserLink( $wikiID, $user, $text=null ) { + public static function foreignUserLink( $wikiID, $user, $text = null ) { return self::makeForeignLink( $wikiID, "User:$user", $text ); } /** * Convenience to get a link to a page on a foreign wiki * - * @param $wikiID String: wiki'd id (generally database name) - * @param $page String: page name (must be normalised before calling this function!) - * @param $text String: link's text; optional, default to $page + * @param string $wikiID wiki'd id (generally database name) + * @param string $page page name (must be normalised before calling this function!) + * @param string $text link's text; optional, default to $page * @return String: HTML link or false if the wiki was not found */ - public static function makeForeignLink( $wikiID, $page, $text=null ) { + public static function makeForeignLink( $wikiID, $page, $text = null ) { if ( !$text ) { $text = $page; } @@ -101,8 +106,8 @@ class WikiMap { /** * Convenience to get a url to a page on a foreign wiki * - * @param $wikiID String: wiki'd id (generally database name) - * @param $page String: page name (must be normalised before calling this function!) + * @param string $wikiID wiki'd id (generally database name) + * @param string $page page name (must be normalised before calling this function!) * @return String: URL or false if the wiki was not found */ public static function getForeignURL( $wikiID, $page ) { @@ -176,7 +181,7 @@ class WikiReference { * Helper function for getUrl() * * @todo FIXME: This may be generalized... - * @param $page String: page name (must be normalised before calling this function!) + * @param string $page page name (must be normalised before calling this function!) * @return String: Url fragment */ private function getLocalUrl( $page ) { @@ -186,7 +191,7 @@ class WikiReference { /** * Get a canonical (i.e. based on $wgCanonicalServer) URL to a page on this foreign wiki * - * @param $page String: page name (must be normalised before calling this function!) + * @param string $page page name (must be normalised before calling this function!) * @return String: Url */ public function getCanonicalUrl( $page ) { @@ -211,15 +216,14 @@ class WikiReference { } /** - * Get a URL based on $wgServer, like Title::getFullUrl() would produce + * Get a URL based on $wgServer, like Title::getFullURL() would produce * when called locally on the wiki. * - * @param $page String: page name (must be normalized before calling this function!) + * @param string $page page name (must be normalized before calling this function!) * @return String: URL */ public function getFullUrl( $page ) { - return - $this->mServer . + return $this->mServer . $this->getLocalUrl( $page ); } } |