X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialMovepage.php;h=298d6c4edb41829a704184540f86338a128f2743;hb=ac8f144c042ae9d06f2baeb3c713afcc2a9a778a;hp=3a12cf3ce3cb67030183d1b4e6bf0e358da7e78a;hpb=00ac2882bbfa81c226250efc06586a5ab50bf3f8;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialMovepage.php b/includes/specials/SpecialMovepage.php index 3a12cf3ce3..298d6c4edb 100644 --- a/includes/specials/SpecialMovepage.php +++ b/includes/specials/SpecialMovepage.php @@ -462,7 +462,7 @@ class MovePageForm extends UnlistedSpecialPage { 'name' => 'wpMove', 'value' => $this->msg( 'movepagebtn' )->text(), 'label' => $this->msg( 'movepagebtn' )->text(), - 'flags' => [ 'constructive', 'primary' ], + 'flags' => [ 'primary', 'progressive' ], 'type' => 'submit', ] ), [ @@ -783,32 +783,57 @@ class MovePageForm extends UnlistedSpecialPage { LogEventsList::showLogExtract( $out, 'move', $title ); } + /** + * Show subpages of the page being moved. Section is not shown if both current + * namespace does not support subpages and no talk subpages were found. + * + * @param Title $title Page being moved. + */ function showSubpages( $title ) { - if ( !MWNamespace::hasSubpages( $title->getNamespace() ) ) { + $nsHasSubpages = MWNamespace::hasSubpages( $title->getNamespace() ); + $subpages = $title->getSubpages(); + $count = $subpages instanceof TitleArray ? $subpages->count() : 0; + + $titleIsTalk = $title->isTalkPage(); + $subpagesTalk = $title->getTalkPage()->getSubpages(); + $countTalk = $subpagesTalk instanceof TitleArray ? $subpagesTalk->count() : 0; + $totalCount = $count + $countTalk; + + if ( !$nsHasSubpages && $countTalk == 0 ) { return; } - $subpages = $title->getSubpages(); - $count = $subpages instanceof TitleArray ? $subpages->count() : 0; + $this->getOutput()->wrapWikiMsg( + '== $1 ==', + [ 'movesubpage', ( $titleIsTalk ? $count : $totalCount ) ] + ); + + if ( $nsHasSubpages ) { + $this->showSubpagesList( $subpages, $count, 'movesubpagetext', true ); + } + if ( !$titleIsTalk && $countTalk > 0 ) { + $this->showSubpagesList( $subpagesTalk, $countTalk, 'movesubpagetalktext' ); + } + } + + function showSubpagesList( $subpages, $pagecount, $wikiMsg, $noSubpageMsg = false ) { $out = $this->getOutput(); - $out->wrapWikiMsg( '== $1 ==', [ 'movesubpage', $count ] ); # No subpages. - if ( $count == 0 ) { + if ( $pagecount == 0 && $noSubpageMsg ) { $out->addWikiMsg( 'movenosubpage' ); - return; } - $out->addWikiMsg( 'movesubpagetext', $this->getLanguage()->formatNum( $count ) ); + $out->addWikiMsg( $wikiMsg, $this->getLanguage()->formatNum( $pagecount ) ); $out->addHTML( "