protected $page;
/** @var integer */
protected $pageId;
+ /** @var string */
+ protected $timestamp;
/**
* @param WikiPage $page Page we are updating
* @param integer|null $pageId ID of the page we are updating [optional]
+ * @param string|null $timestamp TS_MW timestamp of deletion
* @throws MWException
*/
- function __construct( WikiPage $page, $pageId = null ) {
+ function __construct( WikiPage $page, $pageId = null, $timestamp = null ) {
parent::__construct( false ); // no implicit transaction
$this->page = $page;
} else {
throw new InvalidArgumentException( "Page ID not known. Page doesn't exist?" );
}
+
+ $this->timestamp = $timestamp ?: wfTimestampNow();
}
public function doUpdate() {
[
'rc_type != ' . RC_LOG,
'rc_namespace' => $title->getNamespace(),
- 'rc_title' => $title->getDBkey()
+ 'rc_title' => $title->getDBkey(),
+ 'rc_timestamp < ' .
+ $this->mDb->addQuotes( $this->mDb->timestamp( $this->timestamp ) )
],
__METHOD__
);
'wiki' => $this->mDb->getWikiID(),
'job' => new JobSpecification(
'deleteLinks',
- [ 'pageId' => $this->pageId ],
+ [ 'pageId' => $this->pageId, 'timestamp' => $this->timestamp ],
[ 'removeDuplicates' => true ],
$this->page->getTitle()
)
return false;
}
+ $timestamp = isset( $this->params['timestamp'] ) ? $this->params['timestamp'] : null;
+
$page = WikiPage::factory( $this->title ); // title when deleted
- $update = new LinksDeletionUpdate( $page, $pageId );
+ $update = new LinksDeletionUpdate( $page, $pageId, $timestamp );
DataUpdate::runUpdates( [ $update ] );
return true;