X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialContributions.php;h=6fc8306a524bfe5c7eb9a51f34dbd24da1523f6b;hb=5bb72fcaf659dd7a44fb9112e32f99e49fd1a318;hp=4775a7f92810d173e10d915d832ec020e084445d;hpb=16c80e429be5904fb42a93f260f8de3d18f0c692;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialContributions.php b/includes/specials/SpecialContributions.php index 4775a7f928..6fc8306a52 100644 --- a/includes/specials/SpecialContributions.php +++ b/includes/specials/SpecialContributions.php @@ -40,14 +40,12 @@ class SpecialContributions extends IncludableSpecialPage { $this->setHeaders(); $this->outputHeader(); $out = $this->getOutput(); + // Modules required for viewing the list of contributions (also when included on other pages) $out->addModuleStyles( [ 'mediawiki.special', 'mediawiki.special.changeslist', - 'mediawiki.widgets.DateInputWidget.styles', ] ); - $out->addModules( 'mediawiki.special.contributions' ); $this->addHelpLink( 'Help:User contributions' ); - $out->enableOOUI(); $this->opts = []; $request = $this->getRequest(); @@ -83,21 +81,39 @@ class SpecialContributions extends IncludableSpecialPage { $this->opts['newOnly'] = $request->getBool( 'newOnly' ); $this->opts['hideMinor'] = $request->getBool( 'hideMinor' ); - $nt = Title::makeTitleSafe( NS_USER, $target ); - if ( !$nt ) { - $out->addHTML( $this->getForm() ); - - return; - } - $userObj = User::newFromName( $nt->getText(), false ); - if ( !$userObj ) { - $out->addHTML( $this->getForm() ); + $id = 0; + if ( $this->opts['contribs'] === 'newbie' ) { + $userObj = User::newFromName( $target ); // hysterical raisins + $out->addSubtitle( $this->msg( 'sp-contributions-newbies-sub' ) ); + $out->setHTMLTitle( $this->msg( + 'pagetitle', + $this->msg( 'sp-contributions-newbies-title' )->plain() + )->inContentLanguage() ); + } elseif ( ExternalUserNames::isExternal( $target ) ) { + $userObj = User::newFromName( $target, false ); + if ( !$userObj ) { + $out->addHTML( $this->getForm() ); + return; + } - return; - } - $id = $userObj->getId(); + $out->addSubtitle( $this->contributionsSub( $userObj ) ); + $out->setHTMLTitle( $this->msg( + 'pagetitle', + $this->msg( 'contributions-title', $target )->plain() + )->inContentLanguage() ); + } else { + $nt = Title::makeTitleSafe( NS_USER, $target ); + if ( !$nt ) { + $out->addHTML( $this->getForm() ); + return; + } + $userObj = User::newFromName( $nt->getText(), false ); + if ( !$userObj ) { + $out->addHTML( $this->getForm() ); + return; + } + $id = $userObj->getId(); - if ( $this->opts['contribs'] != 'newbie' ) { $target = $nt->getText(); $out->addSubtitle( $this->contributionsSub( $userObj ) ); $out->setHTMLTitle( $this->msg( @@ -110,12 +126,6 @@ class SpecialContributions extends IncludableSpecialPage { if ( !IP::isValidRange( $target ) ) { $this->getSkin()->setRelevantUser( $userObj ); } - } else { - $out->addSubtitle( $this->msg( 'sp-contributions-newbies-sub' ) ); - $out->setHTMLTitle( $this->msg( - 'pagetitle', - $this->msg( 'sp-contributions-newbies-title' )->plain() - )->inContentLanguage() ); } $ns = $request->getVal( 'namespace', null ); @@ -497,6 +507,14 @@ class SpecialContributions extends IncludableSpecialPage { $this->opts['hideMinor'] = false; } + // Modules required only for the form + $this->getOutput()->addModules( [ + 'mediawiki.userSuggest', + 'mediawiki.special.contributions', + ] ); + $this->getOutput()->addModuleStyles( 'mediawiki.widgets.DateInputWidget.styles' ); + $this->getOutput()->enableOOUI(); + $form = Html::openElement( 'form', [ @@ -544,8 +562,6 @@ class SpecialContributions extends IncludableSpecialPage { $filterSelection = Html::rawElement( 'div', [], '' ); } - $this->getOutput()->addModules( 'mediawiki.userSuggest' ); - $labelNewbies = Xml::radioLabel( $this->msg( 'sp-contributions-newbies' )->text(), 'contribs',