58 wfDeprecated( __METHOD__ .
' without $context',
'1.42' );
60 $this->mOriginalPageOutCallback =
61 $importer->setPageOutCallback( [ $this,
'reportPage' ] );
62 $this->mOriginalLogCallback =
63 $importer->setLogItemCallback( [ $this,
'reportLogItem' ] );
64 $importer->setNoticeCallback( [ $this,
'reportNotice' ] );
65 $this->mIsUpload = $upload;
66 $this->mInterwiki = $interwiki;
67 $this->reason = is_string( $reason ) ? $reason :
"";
106 $successCount, $pageInfo ) {
107 call_user_func_array( $this->mOriginalPageOutCallback, func_get_args() );
109 if ( $pageIdentity ===
null ) {
110 # Invalid or non-importable title; a notice is already displayed
115 $services = MediaWikiServices::getInstance();
116 $linkRenderer = $services->getLinkRenderer();
117 if ( $successCount > 0 ) {
121 "<li>" . $linkRenderer->makeLink( $pageIdentity ) .
" " .
123 $this->msg(
'import-revision-count' )->numParams( $successCount )->escaped() .
128 $logParams = [
'4:number:count' => $successCount ];
129 if ( $this->mIsUpload ) {
130 $detail = $this->
msg(
'import-logentry-upload-detail' )->numParams(
131 $successCount )->inContentLanguage()->text();
134 $pageTitle = $foreignTitle->getFullText();
135 $fullInterwikiPrefix = $this->mInterwiki;
136 $this->getHookRunner()->onImportLogInterwikiLink(
137 $fullInterwikiPrefix, $pageTitle );
139 $interwikiTitleStr = $fullInterwikiPrefix .
':' . $pageTitle;
140 $interwiki =
'[[:' . $interwikiTitleStr .
']]';
141 $detail = $this->
msg(
'import-logentry-interwiki-detail' )->numParams(
142 $successCount )->params( $interwiki )->inContentLanguage()->text();
143 $action =
'interwiki';
144 $logParams[
'5:title-link:interwiki'] = $interwikiTitleStr;
146 if ( $this->reason ) {
147 $detail .= $this->
msg(
'colon-separator' )->inContentLanguage()->text()
151 $comment = CommentStoreComment::newUnsavedComment( $detail );
152 $dbw = $services->getConnectionProvider()->getPrimaryDatabase();
153 $revStore = $services->getRevisionStore();
154 $nullRevRecord = $revStore->newNullRevision(
163 if ( $nullRevRecord !==
null ) {
164 $inserted = $revStore->insertRevisionOn( $nullRevRecord, $dbw );
165 $nullRevId = $inserted->getId();
166 $parentRevId = $inserted->getParentId();
167 $page = $services->getWikiPageFactory()->newFromTitle( $pageIdentity );
170 $page->updateRevisionOn( $dbw, $inserted );
173 $this->getHookRunner()->onRevisionFromEditComplete(
174 $page, $inserted, $parentRevId, $this->
getUser(), $fakeTags
180 $logEntry->setTarget( $pageIdentity );
181 $logEntry->setComment( $this->reason );
182 $logEntry->setPerformer( $this->
getUser() );
183 $logEntry->setParameters( $logParams );
186 $logEntry->setAssociatedRevId( $nullRevId );
187 if ( count( $this->logTags ) ) {
188 $logEntry->addTags( $this->logTags );
190 $logid = $logEntry->insert();
191 $logEntry->publish( $logid );
193 $this->
getOutput()->addHTML(
"<li>" . $linkRenderer->makeKnownLink( $pageIdentity ) .
" " .
194 $this->msg(
'import-nonewrevisions' )->escaped() .
"</li>\n" );