-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSpecialConfigWiki.php
More file actions
74 lines (66 loc) · 2.12 KB
/
SpecialConfigWiki.php
File metadata and controls
74 lines (66 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
/**
* Copyright (C) 2013 Orain, Kudu and contributors
*
* This file is part of ConfigWiki.
*
* ConfigWiki is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option)
* any later version.
*
* ConfigWiki is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License
* for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with ConfigWiki. If not, see <http://www.gnu.org/licenses/>.
*/
class SpecialConfigWiki extends SpecialPage {
function __construct() {
parent::__construct( 'ConfigWiki' );
}
function userCanEdit() {
return $this->getUser()->isAllowed( 'configwiki' );
}
function userCanEditProtected() {
return $this->getUser()->isAllowedAll( 'configwiki', 'configwiki-editprotected' );
}
function execute( $par ) {
$this->setHeaders();
$this->getOutput()->setPageTitle( $this->msg( 'configwiki' ) );
$dbr = wfGetDB( DB_SLAVE );
$res = $dbr->select(
array( 'g' => 'globalconfigwiki', 'l' => 'configwiki' ), // Aliases => tables
array( 'name', 'description', 'locked', 'default_value', 'local_value' ), // Fields
array( 'locked != TRUE'), // Condition
__METHOD__,
array(),
array( // Left outer join on configwiki
array( 'l' => array(
'LEFT OUTER JOIN',
array('g.name=l.name'),
)
),
);
$formDescriptor = array();
foreach ( $res as $row ) {
$formDescriptor[$row->name . '-desc'] = array(
'section' => $row->name,
'type' => 'info',
'label' => '',
'default' => $row->description,
);
$formDescriptor[$row->name . '-custom'] = array(
'section' => $row->name,
'type' => 'text',
'label' => 'Custom value',
'default' => $row->local_value,
);
}
$htmlForm = new HTMLForm( $formDescriptor, $this->getContext() );
$htmlForm->setSubmitText( 'Submit' );
$htmlForm->show();
}
}