MediaWiki  master
RevDelArchiveItem.php
Go to the documentation of this file.
1 <?php
26  protected static function initRevision( $list, $row ) {
28  [ 'page' => $list->title->getArticleID() ] );
29  }
30 
31  public function getIdField() {
32  return 'ar_timestamp';
33  }
34 
35  public function getTimestampField() {
36  return 'ar_timestamp';
37  }
38 
39  public function getAuthorIdField() {
40  return 'ar_user';
41  }
42 
43  public function getAuthorNameField() {
44  return 'ar_user_text';
45  }
46 
47  public function getAuthorActorField() {
48  return 'ar_actor';
49  }
50 
51  public function getId() {
52  # Convert DB timestamp to MW timestamp
53  return $this->revision->getTimestamp();
54  }
55 
56  public function setBits( $bits ) {
57  $dbw = wfGetDB( DB_MASTER );
58  $dbw->update( 'archive',
59  [ 'ar_deleted' => $bits ],
60  [
61  'ar_namespace' => $this->list->title->getNamespace(),
62  'ar_title' => $this->list->title->getDBkey(),
63  // use timestamp for index
64  'ar_timestamp' => $this->row->ar_timestamp,
65  'ar_rev_id' => $this->row->ar_rev_id,
66  'ar_deleted' => $this->getBits()
67  ],
68  __METHOD__ );
69 
70  return (bool)$dbw->affectedRows();
71  }
72 
73  protected function getRevisionLink() {
74  $date = $this->list->getLanguage()->userTimeAndDate(
75  $this->revision->getTimestamp(), $this->list->getUser() );
76 
77  if ( $this->isDeleted() && !$this->canViewContent() ) {
78  return htmlspecialchars( $date );
79  }
80 
81  return $this->getLinkRenderer()->makeLink(
82  SpecialPage::getTitleFor( 'Undelete' ),
83  $date,
84  [],
85  [
86  'target' => $this->list->title->getPrefixedText(),
87  'timestamp' => $this->revision->getTimestamp()
88  ]
89  );
90  }
91 
92  protected function getDiffLink() {
93  if ( $this->isDeleted() && !$this->canViewContent() ) {
94  return $this->list->msg( 'diff' )->escaped();
95  }
96 
97  return $this->getLinkRenderer()->makeLink(
98  SpecialPage::getTitleFor( 'Undelete' ),
99  $this->list->msg( 'diff' )->text(),
100  [],
101  [
102  'target' => $this->list->title->getPrefixedText(),
103  'diff' => 'prev',
104  'timestamp' => $this->revision->getTimestamp()
105  ]
106  );
107  }
108 }
static newFromArchiveRow( $row, $overrides=[])
Make a fake revision object from an archive table row.
Definition: Revision.php:172
RevisionListBase $list
The parent.
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
const DB_MASTER
Definition: defines.php:26
$row
The database result row.
static getTitleFor( $name, $subpage=false, $fragment='')
Get a localised Title object for a specified special page name If you don&#39;t need a full Title object...
Definition: SpecialPage.php:83
getLinkRenderer()
Returns an instance of LinkRenderer.
static initRevision( $list, $row)
Item class for a archive table row.