Merge "Perform a permission check on the title when changing the page language"
[lhc/web/wiklou.git] / includes / logging / PatrolLogFormatter.php
1 <?php
2 /**
3 * Formatter for new user log entries.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 * http://www.gnu.org/copyleft/gpl.html
19 *
20 * @file
21 * @author Niklas Laxström
22 * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
23 * @since 1.22
24 */
25 use MediaWiki\MediaWikiServices;
26
27 /**
28 * This class formats patrol log entries.
29 *
30 * @since 1.19
31 */
32 class PatrolLogFormatter extends LogFormatter {
33 protected function getMessageKey() {
34 $params = $this->getMessageParameters();
35 if ( isset( $params[5] ) && $params[5] ) {
36 $key = 'logentry-patrol-patrol-auto';
37 } else {
38 $key = 'logentry-patrol-patrol';
39 }
40
41 return $key;
42 }
43
44 protected function getMessageParameters() {
45 $params = parent::getMessageParameters();
46
47 $target = $this->entry->getTarget();
48 $oldid = $params[3];
49 $revision = $this->context->getLanguage()->formatNum( $oldid, true );
50
51 if ( $this->plaintext ) {
52 $revlink = $revision;
53 } elseif ( $target->exists() ) {
54 $query = [
55 'oldid' => $oldid,
56 'diff' => 'prev'
57 ];
58 $revlink = MediaWikiServices::getInstance()->getLinkRenderer()->makeLink(
59 $target, $revision, [], $query );
60 } else {
61 $revlink = htmlspecialchars( $revision );
62 }
63
64 $params[3] = Message::rawParam( $revlink );
65
66 return $params;
67 }
68
69 protected function getParametersForApi() {
70 $entry = $this->entry;
71 $params = $entry->getParameters();
72
73 static $map = [
74 '4:number:curid',
75 '5:number:previd',
76 '6:bool:auto',
77 '4::curid' => '4:number:curid',
78 '5::previd' => '5:number:previd',
79 '6::auto' => '6:bool:auto',
80 ];
81 foreach ( $map as $index => $key ) {
82 if ( isset( $params[$index] ) ) {
83 $params[$key] = $params[$index];
84 unset( $params[$index] );
85 }
86 }
87
88 return $params;
89 }
90 }