X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fskins%2FSkinTemplate.php;h=ef45d15e2bc5ca7a4b13cd4f643d63d986b6893b;hb=e5eb5ac92815340f389048291d71ad9ddb75e690;hp=8f45f281c2319e17788ef89c6acc1c899bbb916b;hpb=c9e671dbebf2fbdda7ecbf35562dacb7de04cec0;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/skins/SkinTemplate.php b/includes/skins/SkinTemplate.php index 8f45f281c2..ef45d15e2b 100644 --- a/includes/skins/SkinTemplate.php +++ b/includes/skins/SkinTemplate.php @@ -617,16 +617,18 @@ class SkinTemplate extends Skin { $page = Title::newFromText( $request->getVal( 'title', '' ) ); } $page = $request->getVal( 'returnto', $page ); - $a = []; + $returnto = []; if ( strval( $page ) !== '' ) { - $a['returnto'] = $page; + $returnto['returnto'] = $page; $query = $request->getVal( 'returntoquery', $this->thisquery ); + $paramsArray = wfCgiToArray( $query ); + unset( $paramsArray['logoutToken'] ); + $query = wfArrayToCgi( $paramsArray ); if ( $query != '' ) { - $a['returntoquery'] = $query; + $returnto['returntoquery'] = $query; } } - $returnto = wfArrayToCgi( $a ); if ( $this->loggedin ) { $personal_urls['userpage'] = [ 'text' => $this->username, @@ -691,9 +693,10 @@ class SkinTemplate extends Skin { $personal_urls['logout'] = [ 'text' => $this->msg( 'pt-userlogout' )->text(), 'href' => self::makeSpecialUrl( 'Userlogout', - // userlogout link must always contain an & character, otherwise we might not be able + // Note: userlogout link must always contain an & character, otherwise we might not be able // to detect a buggy precaching proxy (T19790) - $title->isSpecial( 'Preferences' ) ? 'noreturnto' : $returnto ), + ( $title->isSpecial( 'Preferences' ) ? [] : $returnto ) + + [ 'logoutToken' => $this->getUser()->getEditToken( 'logoutToken', $this->getRequest() ) ] ), 'active' => false ]; } @@ -787,7 +790,8 @@ class SkinTemplate extends Skin { } } - $linkClass = MediaWikiServices::getInstance()->getLinkRenderer()->getLinkClasses( $title ); + $services = MediaWikiServices::getInstance(); + $linkClass = $services->getLinkRenderer()->getLinkClasses( $title ); // wfMessageFallback will nicely accept $message as an array of fallbacks // or just a single key @@ -799,8 +803,9 @@ class SkinTemplate extends Skin { if ( $msg->exists() ) { $text = $msg->text(); } else { - $text = MediaWikiServices::getInstance()->getContentLanguage()->getConverter()-> - convertNamespace( MWNamespace::getSubject( $title->getNamespace() ) ); + $text = $services->getContentLanguage()->getConverter()-> + convertNamespace( $services->getNamespaceInfo()-> + getSubject( $title->getNamespace() ) ); } // Avoid PHP 7.1 warning of passing $this by reference @@ -1083,7 +1088,8 @@ class SkinTemplate extends Skin { } if ( $title->quickUserCan( 'protect', $user ) && $title->getRestrictionTypes() && - MWNamespace::getRestrictionLevels( $title->getNamespace(), $user ) !== [ '' ] + MediaWikiServices::getInstance()->getNamespaceInfo()-> + getRestrictionLevels( $title->getNamespace(), $user ) !== [ '' ] ) { $mode = $title->isProtected() ? 'unprotect' : 'protect'; $content_navigation['actions'][$mode] = [