Merge "Document the 'sitewide' option for the Block class"
[lhc/web/wiklou.git] / includes / Linker.php
index d1434f8..2c7f44c 100644 (file)
@@ -112,17 +112,22 @@ class Linker {
                if ( $html !== null ) {
                        $text = new HtmlArmor( $html );
                } else {
-                       $text = $html; // null
+                       $text = null;
                }
+
                if ( in_array( 'known', $options, true ) ) {
                        return $linkRenderer->makeKnownLink( $target, $text, $customAttribs, $query );
-               } elseif ( in_array( 'broken', $options, true ) ) {
+               }
+
+               if ( in_array( 'broken', $options, true ) ) {
                        return $linkRenderer->makeBrokenLink( $target, $text, $customAttribs, $query );
-               } elseif ( in_array( 'noclasses', $options, true ) ) {
+               }
+
+               if ( in_array( 'noclasses', $options, true ) ) {
                        return $linkRenderer->makePreloadedLink( $target, $text, '', $customAttribs, $query );
-               } else {
-                       return $linkRenderer->makeLink( $target, $text, $customAttribs, $query );
                }
+
+               return $linkRenderer->makeLink( $target, $text, $customAttribs, $query );
        }
 
        /**
@@ -193,9 +198,9 @@ class Linker {
                                        getFormattedNsText( $namespace );
                        }
                        return $context->msg( 'invalidtitle-knownnamespace', $namespace, $name, $title )->text();
-               } else {
-                       return $context->msg( 'invalidtitle-unknownnamespace', $namespace, $title )->text();
                }
+
+               return $context->msg( 'invalidtitle-unknownnamespace', $namespace, $title )->text();
        }
 
        /**
@@ -207,14 +212,12 @@ class Linker {
                if ( $target->getNamespace() == NS_SPECIAL && !$target->isExternal() ) {
                        list( $name, $subpage ) = MediaWikiServices::getInstance()->getSpecialPageFactory()->
                                resolveAlias( $target->getDBkey() );
-                       if ( !$name ) {
-                               return $target;
+                       if ( $name ) {
+                               return SpecialPage::getTitleValueFor( $name, $subpage, $target->getFragment() );
                        }
-                       $ret = SpecialPage::getTitleValueFor( $name, $subpage, $target->getFragment() );
-                       return $ret;
-               } else {
-                       return $target;
                }
+
+               return $target;
        }
 
        /**
@@ -259,7 +262,9 @@ class Linker {
                return Html::element( 'img',
                        [
                                'src' => $url,
-                               'alt' => $alt ] );
+                               'alt' => $alt
+                       ]
+               );
        }
 
        /**
@@ -730,12 +735,15 @@ class Linker {
 
                if ( $wgUploadMissingFileUrl ) {
                        return wfAppendQuery( $wgUploadMissingFileUrl, $q );
-               } elseif ( $wgUploadNavigationUrl ) {
+               }
+
+               if ( $wgUploadNavigationUrl ) {
                        return wfAppendQuery( $wgUploadNavigationUrl, $q );
-               } else {
-                       $upload = SpecialPage::getTitleFor( 'Upload' );
-                       return $upload->getLocalURL( $q );
                }
+
+               $upload = SpecialPage::getTitleFor( 'Upload' );
+
+               return $upload->getLocalURL( $q );
        }
 
        /**
@@ -815,13 +823,20 @@ class Linker {
 
        /**
         * Make an external link
+        *
         * @since 1.16.3. $title added in 1.21
         * @param string $url URL to link to
+        * @param-taint $url escapes_html
         * @param string $text Text of link
+        * @param-taint $text escapes_html
         * @param bool $escape Do we escape the link text?
+        * @param-taint $escape none
         * @param string $linktype Type of external link. Gets added to the classes
+        * @param-taint $linktype escapes_html
         * @param array $attribs Array of extra attributes to <a>
+        * @param-taint $attribs escapes_html
         * @param Title|null $title Title object used for title specific link attributes
+        * @param-taint $title none
         * @return string
         */
        public static function makeExternalLink( $url, $text, $escape = true,
@@ -998,10 +1013,11 @@ class Linker {
        public static function userTalkLink( $userId, $userText ) {
                $userTalkPage = Title::makeTitle( NS_USER_TALK, $userText );
                $moreLinkAttribs['class'] = 'mw-usertoollinks-talk';
-               $userTalkLink = self::link( $userTalkPage,
-                                               wfMessage( 'talkpagelinktext' )->escaped(),
-                                               $moreLinkAttribs );
-               return $userTalkLink;
+
+               return self::link( $userTalkPage,
+                       wfMessage( 'talkpagelinktext' )->escaped(),
+                       $moreLinkAttribs
+               );
        }
 
        /**
@@ -1013,10 +1029,11 @@ class Linker {
        public static function blockLink( $userId, $userText ) {
                $blockPage = SpecialPage::getTitleFor( 'Block', $userText );
                $moreLinkAttribs['class'] = 'mw-usertoollinks-block';
-               $blockLink = self::link( $blockPage,
-                                        wfMessage( 'blocklink' )->escaped(),
-                                        $moreLinkAttribs );
-               return $blockLink;
+
+               return self::link( $blockPage,
+                       wfMessage( 'blocklink' )->escaped(),
+                       $moreLinkAttribs
+               );
        }
 
        /**
@@ -1027,10 +1044,10 @@ class Linker {
        public static function emailLink( $userId, $userText ) {
                $emailPage = SpecialPage::getTitleFor( 'Emailuser', $userText );
                $moreLinkAttribs['class'] = 'mw-usertoollinks-mail';
-               $emailLink = self::link( $emailPage,
-                                        wfMessage( 'emaillink' )->escaped(),
-                                        $moreLinkAttribs );
-               return $emailLink;
+               return self::link( $emailPage,
+                       wfMessage( 'emaillink' )->escaped(),
+                       $moreLinkAttribs
+               );
        }
 
        /**
@@ -1107,9 +1124,7 @@ class Linker {
 
                # Render autocomments and make links:
                $comment = self::formatAutocomments( $comment, $title, $local, $wikiId );
-               $comment = self::formatLinksInComment( $comment, $title, $local, $wikiId );
-
-               return $comment;
+               return self::formatLinksInComment( $comment, $title, $local, $wikiId );
        }
 
        /**
@@ -1166,9 +1181,11 @@ class Linker {
                                                $section = $auto;
                                                # Remove links that a user may have manually put in the autosummary
                                                # This could be improved by copying as much of Parser::stripSectionName as desired.
-                                               $section = str_replace( '[[:', '', $section );
-                                               $section = str_replace( '[[', '', $section );
-                                               $section = str_replace( ']]', '', $section );
+                                               $section = str_replace( [
+                                                       '[[:',
+                                                       '[[',
+                                                       ']]'
+                                               ], '', $section );
 
                                                // We don't want any links in the auto text to be linked, but we still
                                                // want to show any [[ ]]
@@ -1679,12 +1696,10 @@ class Linker {
                        $fallbackAnchor = htmlspecialchars( $fallbackAnchor );
                        $fallback = "<span id=\"$fallbackAnchor\"></span>";
                }
-               $ret = "<h$level$attribs"
+               return "<h$level$attribs"
                        . "$fallback<span class=\"mw-headline\" id=\"$anchorEscaped\">$html</span>"
                        . $link
                        . "</h$level>";
-
-               return $ret;
        }
 
        /**
@@ -1889,51 +1904,10 @@ class Linker {
                        }
 
                        return self::link( $title, $html, $attrs, $query, $options );
-               } else {
-                       $html = $context->msg( 'rollbacklink' )->escaped();
-                       return self::link( $title, $html, $attrs, $query, $options );
-               }
-       }
-
-       /**
-        * @deprecated since 1.28, use TemplatesOnThisPageFormatter directly
-        *
-        * Returns HTML for the "templates used on this page" list.
-        *
-        * Make an HTML list of templates, and then add a "More..." link at
-        * the bottom. If $more is null, do not add a "More..." link. If $more
-        * is a Title, make a link to that title and use it. If $more is a string,
-        * directly paste it in as the link (escaping needs to be done manually).
-        * Finally, if $more is a Message, call toString().
-        *
-        * @since 1.16.3. $more added in 1.21
-        * @param Title[] $templates Array of templates
-        * @param bool $preview Whether this is for a preview
-        * @param bool $section Whether this is for a section edit
-        * @param Title|Message|string|null $more An escaped link for "More..." of the templates
-        * @return string HTML output
-        */
-       public static function formatTemplates( $templates, $preview = false,
-               $section = false, $more = null
-       ) {
-               wfDeprecated( __METHOD__, '1.28' );
-
-               $type = false;
-               if ( $preview ) {
-                       $type = 'preview';
-               } elseif ( $section ) {
-                       $type = 'section';
                }
 
-               if ( $more instanceof Message ) {
-                       $more = $more->toString();
-               }
-
-               $formatter = new TemplatesOnThisPageFormatter(
-                       RequestContext::getMain(),
-                       MediaWikiServices::getInstance()->getLinkRenderer()
-               );
-               return $formatter->format( $templates, $type, $more );
+               $html = $context->msg( 'rollbacklink' )->escaped();
+               return self::link( $title, $html, $attrs, $query, $options );
        }
 
        /**
@@ -1963,23 +1937,6 @@ class Linker {
                return $outText;
        }
 
-       /**
-        * @deprecated since 1.28, use Language::formatSize() directly
-        *
-        * Format a size in bytes for output, using an appropriate
-        * unit (B, KB, MB or GB) according to the magnitude in question
-        *
-        * @since 1.16.3
-        * @param int $size Size to format
-        * @return string
-        */
-       public static function formatSize( $size ) {
-               wfDeprecated( __METHOD__, '1.28' );
-
-               global $wgLang;
-               return htmlspecialchars( $wgLang->formatSize( $size ) );
-       }
-
        /**
         * Given the id of an interface element, constructs the appropriate title
         * attribute from the system messages.  (Note, this is usually the id but