67 wfDeprecated( __METHOD__ .
' without $context',
'1.42' );
69 $this->mOriginalPageOutCallback =
70 $importer->setPageOutCallback( [ $this,
'reportPage' ] );
71 $this->mOriginalLogCallback =
72 $importer->setLogItemCallback( [ $this,
'reportLogItem' ] );
73 $importer->setNoticeCallback( [ $this,
'reportNotice' ] );
74 $this->mIsUpload = $upload;
75 $this->mInterwiki = $interwiki;
76 $this->reason = is_string( $reason ) ? $reason :
"";
115 $successCount, $pageInfo ) {
116 ( $this->mOriginalPageOutCallback )( $pageIdentity, $foreignTitle, $revisionCount, $successCount, $pageInfo );
118 if ( $pageIdentity ===
null ) {
119 # Invalid or non-importable title; a notice is already displayed
124 $services = MediaWikiServices::getInstance();
125 $linkRenderer = $services->getLinkRenderer();
126 if ( $successCount > 0 ) {
130 "<li>" . $linkRenderer->makeLink( $pageIdentity ) .
" " .
132 $this->msg(
'import-revision-count' )->numParams( $successCount )->escaped() .
137 $logParams = [
'4:number:count' => $successCount ];
138 if ( $this->mIsUpload ) {
139 $detail = $this->
msg(
'import-logentry-upload-detail' )->numParams(
140 $successCount )->inContentLanguage()->text();
143 $pageTitle = $foreignTitle->getFullText();
144 $fullInterwikiPrefix = $this->mInterwiki;
145 $this->getHookRunner()->onImportLogInterwikiLink(
146 $fullInterwikiPrefix, $pageTitle );
148 $interwikiTitleStr = $fullInterwikiPrefix .
':' . $pageTitle;
149 $interwiki =
'[[:' . $interwikiTitleStr .
']]';
150 $detail = $this->
msg(
'import-logentry-interwiki-detail' )->numParams(
151 $successCount )->params( $interwiki )->inContentLanguage()->text();
152 $action =
'interwiki';
153 $logParams[
'5:title-link:interwiki'] = $interwikiTitleStr;
155 if ( $this->reason ) {
156 $detail .= $this->
msg(
'colon-separator' )->inContentLanguage()->text()
160 $wikiPage = $services->getWikiPageFactory()->newFromTitle( $pageIdentity );
161 $dummyRevRecord = $wikiPage->newPageUpdater( $this->
getUser() )
162 ->setCause( PageUpdater::CAUSE_IMPORT )
167 $logEntry->setTarget( $pageIdentity );
168 $logEntry->setComment( $this->reason );
169 $logEntry->setPerformer( $this->
getUser() );
170 $logEntry->setParameters( $logParams );
172 $logEntry->setAssociatedRevId( $dummyRevRecord->getId() );
173 if ( count( $this->logTags ) ) {
174 $logEntry->addTags( $this->logTags );
176 $logid = $logEntry->insert();
177 $logEntry->publish( $logid );
179 $this->
getOutput()->addHTML(
"<li>" . $linkRenderer->makeKnownLink( $pageIdentity ) .
" " .
180 $this->msg(
'import-nonewrevisions' )->escaped() .
"</li>\n" );
186 if ( $this->mLogItemCount > 0 ) {
187 $msg = $this->
msg(
'imported-log-entries' )->numParams( $this->mLogItemCount )->parse();
188 $out->addHTML( Html::rawElement(
'li', [], $msg ) );
189 } elseif ( $this->mPageCount == 0 && $this->mLogItemCount == 0 ) {
190 $out->addHTML(
"</ul>\n" );
192 return Status::newFatal(
'importnopages' );
194 $out->addHTML(
"</ul>\n" );
196 return Status::newGood( $this->mPageCount );