Completed
Branch master (227f0c)
by
unknown
30:54
created

RevDelArchiveList::doQuery()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 33
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 2
eloc 25
nc 2
nop 1
dl 0
loc 33
rs 8.8571
c 1
b 1
f 0
1
<?php
2
/**
3
 * This program is free software; you can redistribute it and/or modify
4
 * it under the terms of the GNU General Public License as published by
5
 * the Free Software Foundation; either version 2 of the License, or
6
 * (at your option) any later version.
7
 *
8
 * This program is distributed in the hope that it will be useful,
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
 * GNU General Public License for more details.
12
 *
13
 * You should have received a copy of the GNU General Public License along
14
 * with this program; if not, write to the Free Software Foundation, Inc.,
15
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16
 * http://www.gnu.org/copyleft/gpl.html
17
 *
18
 * @file
19
 * @ingroup RevisionDelete
20
 */
21
22
/**
23
 * List for archive table items, i.e. revisions deleted via action=delete
24
 */
25
class RevDelArchiveList extends RevDelRevisionList {
26
	public function getType() {
27
		return 'archive';
28
	}
29
30
	public static function getRelationType() {
31
		return 'ar_timestamp';
32
	}
33
34
	/**
35
	 * @param IDatabase $db
36
	 * @return mixed
37
	 */
38
	public function doQuery( $db ) {
39
		$timestamps = [];
40
		foreach ( $this->ids as $id ) {
41
			$timestamps[] = $db->timestamp( $id );
42
		}
43
44
		$tables = [ 'archive' ];
45
		$fields = Revision::selectArchiveFields();
46
		$conds = [
47
			'ar_namespace' => $this->title->getNamespace(),
48
			'ar_title' => $this->title->getDBkey(),
49
			'ar_timestamp' => $timestamps,
50
		];
51
		$join_conds = [];
52
		$options = [ 'ORDER BY' => 'ar_timestamp DESC' ];
53
54
		ChangeTags::modifyDisplayQuery(
55
			$tables,
56
			$fields,
57
			$conds,
58
			$join_conds,
59
			$options,
60
			''
61
		);
62
63
		return $db->select( $tables,
64
			$fields,
65
			$conds,
66
			__METHOD__,
67
			$options,
68
			$join_conds
69
		);
70
	}
71
72
	public function newItem( $row ) {
73
		return new RevDelArchiveItem( $this, $row );
74
	}
75
76
	public function doPreCommitUpdates() {
77
		return Status::newGood();
78
	}
79
80
	public function doPostCommitUpdates() {
81
		return Status::newGood();
82
	}
83
}
84