]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - includes/actions/EditAction.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / includes / actions / EditAction.php
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 );
59                         $editor->setContextTitle( $this->getTitle() );
60                         $editor->edit();
61                 }
62         }
63
64         public function doesWrites() {
65                 return true;
66         }
67 }