Completed
Branch master (939199)
by
unknown
39:35
created

EditAction::doesWrites()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * action=edit handler
4
 *
5
 * Copyright © 2012 Timo Tijhof
6
 *
7
 * This program is free software; you can redistribute it and/or modify
8
 * it under the terms of the GNU General Public License as published by
9
 * the Free Software Foundation; either version 2 of the License, or
10
 * (at your option) any later version.
11
 *
12
 * This program is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU General Public License
18
 * along with this program; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
20
 *
21
 * @file
22
 * @ingroup Actions
23
 * @author Timo Tijhof
24
 */
25
26
/**
27
 * Page edition handler
28
 *
29
 * This is a wrapper that will call the EditPage class or a custom editor from an extension.
30
 *
31
 * @ingroup Actions
32
 */
33
class EditAction extends FormlessAction {
34
35
	public function getName() {
36
		return 'edit';
37
	}
38
39
	public function onView() {
40
		return null;
41
	}
42
43
	public function show() {
44
		$this->useTransactionalTimeLimit();
45
46
		$out = $this->getOutput();
47
		$out->setRobotPolicy( 'noindex,nofollow' );
48
		if ( $this->getContext()->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
49
			$out->addModuleStyles( [
50
				'mediawiki.ui.input',
51
				'mediawiki.ui.checkbox',
52
			] );
53
		}
54
		$page = $this->page;
55
		$user = $this->getUser();
56
57
		if ( Hooks::run( 'CustomEditor', [ $page, $user ] ) ) {
58
			$editor = new EditPage( $page );
0 ignored issues
show
Bug introduced by
It seems like $page defined by $this->page on line 54 can also be of type object<Page> or object<WikiPage>; however, EditPage::__construct() does only seem to accept object<Article>, maybe add an additional type check?

If a method or function can return multiple different values and unless you are sure that you only can receive a single value in this context, we recommend to add an additional type check:

/**
 * @return array|string
 */
function returnsDifferentValues($x) {
    if ($x) {
        return 'foo';
    }

    return array();
}

$x = returnsDifferentValues($y);
if (is_array($x)) {
    // $x is an array.
}

If this a common case that PHP Analyzer should handle natively, please let us know by opening an issue.

Loading history...
59
			$editor->edit();
60
		}
61
	}
62
63
	public function doesWrites() {
64
		return true;
65
	}
66
}
67