Merge "Reorganise the functions doing wfProfileOut and returning on all if branches."
[lhc/web/wiklou.git] / includes / WikiMap.php
index 94907ad..4a5e2bc 100644 (file)
@@ -1,4 +1,24 @@
 <?php
+/**
+ * Tools for dealing with other locally-hosted wikis.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
 
 /**
  * Helper tools for dealing with other locally-hosted wikis
@@ -28,13 +48,13 @@ class WikiMap {
                        array( 'lang' => $minor, 'site' => $major ) );
                return new WikiReference( $major, $minor, $canonicalServer, $path, $server );
        }
-       
+
        /**
         * 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)
-        * @return Wiki's name or $wiki_id if the wiki was not found
+        * @return string|int Wiki's name or $wiki_id if the wiki was not found
         */
        public static function getWikiName( $wikiID ) {
                $wiki = WikiMap::getWiki( $wikiID );
@@ -87,11 +107,11 @@ class WikiMap {
         */
        public static function getForeignURL( $wikiID, $page ) {
                $wiki = WikiMap::getWiki( $wikiID );
-               
+
                if ( $wiki ) {
-                       return $wiki->getUrl( $page );
+                       return $wiki->getFullUrl( $page );
                }
-                       
+
                return false;
        }
 }
@@ -106,6 +126,13 @@ class WikiReference {
        private $mServer; ///< server URL, may be protocol-relative, e.g. '//www.mediawiki.org'
        private $mPath;   ///< path, '/wiki/$1'
 
+       /**
+        * @param $major string
+        * @param $minor string
+        * @param $canonicalServer string
+        * @param $path string
+        * @param $server null|string
+        */
        public function __construct( $major, $minor, $canonicalServer, $path, $server = null ) {
                $this->mMajor = $major;
                $this->mMinor = $minor;
@@ -114,6 +141,10 @@ class WikiReference {
                $this->mServer = $server === null ? $canonicalServer : $server;
        }
 
+       /**
+        * @return string
+        * @throws MWException
+        */
        public function getHostname() {
                $prefixes = array( 'http://', 'https://' );
                foreach ( $prefixes as $prefix ) {
@@ -159,22 +190,30 @@ class WikiReference {
         * @return String: Url
         */
        public function getCanonicalUrl( $page ) {
-               return
-                       $this->mCanonicalServer .
-                       $this->getLocalUrl( $page );
+               return $this->mCanonicalServer . $this->getLocalUrl( $page );
        }
-       
+
+       /**
+        * Get a canonical server URL
+        * @return string
+        */
+       public function getCanonicalServer() {
+               return $this->mCanonicalServer;
+       }
+
        /**
         * Alias for getCanonicalUrl(), for backwards compatibility.
+        * @param $page string
+        * @return String
         */
        public function getUrl( $page ) {
                return $this->getCanonicalUrl( $page );
        }
-       
+
        /**
         * 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!)
         * @return String: URL
         */