- // We don't know whether this function was called before
- // or after moving the root page, so check both
- // $this and $nt
- if ( $oldSubpage->getArticleID() == $this->getArticleID()
- || $oldSubpage->getArticleID() == $nt->getArticleID()
- ) {
- // When moving a page to a subpage of itself,
- // don't move it twice
- continue;
- }
- $newPageName = preg_replace(
- '#^' . preg_quote( $this->mDbkeyform, '#' ) . '#',
- StringUtils::escapeRegexReplacement( $nt->getDBkey() ), # T23234
- $oldSubpage->getDBkey() );
- if ( $oldSubpage->isTalkPage() ) {
- $newNs = $nt->getTalkPage()->getNamespace();
- } else {
- $newNs = $nt->getSubjectPage()->getNamespace();
- }
- # T16385: we need makeTitleSafe because the new page names may
- # be longer than 255 characters.
- $newSubpage = self::makeTitleSafe( $newNs, $newPageName );
+ $mp = new MovePage( $this, $nt );
+ $method = $auth ? 'moveSubpagesIfAllowed' : 'moveSubpages';
+ $result = $mp->$method( $wgUser, $reason, $createRedirect, $changeTags );