Current File : /home/jvzmxxx/wiki1/extensions/Flow/includes/Import/Postprocessor/SpecialLogTopic.php
<?php

namespace Flow\Import\Postprocessor;

use Flow\Import\IImportHeader;
use Flow\Import\IImportPost;
use Flow\Import\IImportTopic;
use Flow\Import\PageImportState;
use Flow\Import\TopicImportState;
use Flow\Model\PostRevision;
use ManualLogEntry;
use User;

/**
 * Records topic imports to Special:Log.
 */
class SpecialLogTopic implements PostProcessor {
	/**
	 * @var bool Indicates if new posts have been seen since the last commit operation
	 */
	protected $newPosts = false;

	/**
	 * @var User The user to attribute logs to
	 */
	protected $user;

	public function __construct( User $user ) {
		$this->user = $user;
	}

	public function afterHeaderImported( PageImportState $state, IImportHeader $topic ) {
		// nothing to do
	}

	public function afterPostImported( TopicImportState $state, IImportPost $post, PostRevision $newPost ) {
		$this->newPosts = true;
	}

	public function afterTopicImported( TopicImportState $state, IImportTopic $topic ) {
		if ( !$this->newPosts ) {
			return;
		}
		$logEntry = new ManualLogEntry( 'import', $topic->getLogType() );
		$logEntry->setTarget( $state->topicWorkflow->getOwnerTitle() );
		$logEntry->setPerformer( $this->user );
		$logEntry->setParameters( array(
			'topic' => $state->topicWorkflow->getArticleTitle()->getPrefixedText(),
		) + $topic->getLogParameters() );
		$logEntry->insert();

		$this->newPosts = false;
	}

	public function importAborted() {
		$this->newPosts = false;
	}
}