Allow and use type Language instead of string for $lang of doEditSectionLink
authorFomafix <fomafix@googlemail.com>
Wed, 30 May 2018 04:33:01 +0000 (06:33 +0200)
committerFomafix <fomafix@googlemail.com>
Thu, 11 Oct 2018 16:16:43 +0000 (18:16 +0200)
Hard-deprecate that the parameters $tooltip and $lang are optional.
Hard-deprecate other types than Language for parameter $lang.

Change-Id: I3ce048e3d0de9a4e96e2aa05d75a4ce41c3ec964
Depends-On: Ibe295e7020e995eea52e319feaf59c635f8bb4dc

RELEASE-NOTES-1.32
includes/parser/ParserOutput.php
includes/skins/Skin.php

index 991708e..30dd966 100644 (file)
@@ -514,6 +514,9 @@ because of Phabricator reports.
   as a string. They should be given as a OOUI\FieldLayout object instead.
   Notably, this affects fields defined in the 'GetPreferences' hook, because
   Special:Preferences uses an OOUI form now. (If possible, don't use 'rawrow'.)
+* In Skin::doEditSectionLink omitting the parameters $tooltip and $lang is
+  deprecated. For the $lang parameter, types other than Language are
+  deprecated.
 
 === Other changes in 1.32 ===
 * (T198811) The following tables have had their UNIQUE indexes turned into
index 445981b..b507f2e 100644 (file)
@@ -338,7 +338,7 @@ class ParserOutput extends CacheTime {
                                        return $skin->doEditSectionLink( $editsectionPage,
                                                $editsectionSection,
                                                $editsectionContent,
-                                               $wgLang->getCode()
+                                               $wgLang
                                        );
                                },
                                $text
index ed4045d..8a385a1 100644 (file)
@@ -1610,15 +1610,20 @@ abstract class Skin extends ContextSource {
         * @param string $section The designation of the section being pointed to,
         *   to be included in the link, like "&section=$section"
         * @param string|null $tooltip The tooltip to use for the link: will be escaped
-        *   and wrapped in the 'editsectionhint' message
-        * @param string $lang Language code
+        *   and wrapped in the 'editsectionhint' message.
+        *   Not setting this parameter is deprecated.
+        * @param Language|string $lang Language object or language code string.
+        *   Type string is deprecated. Not setting this parameter is deprecated.
         * @return string HTML to use for edit link
         */
        public function doEditSectionLink( Title $nt, $section, $tooltip = null, $lang = false ) {
                // HTML generated here should probably have userlangattributes
                // added to it for LTR text on RTL pages
 
-               $lang = wfGetLangObj( $lang );
+               if ( !$lang instanceof Language ) {
+                       wfDeprecated( __METHOD__ . ' with other type than Language for $lang', '1.32' );
+                       $lang = wfGetLangObj( $lang );
+               }
 
                $attribs = [];
                if ( !is_null( $tooltip ) ) {