-
Notifications
You must be signed in to change notification settings - Fork 8
/
edit_form.php
114 lines (100 loc) · 5.51 KB
/
edit_form.php
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
// This file is part of Fbcomments - https://github.com/ankitagarwal/moodle-block_fbcomments
//
// Fbcomments is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Fbcomments 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Form for editing fbcomments block instances.
*
* @package block_fbcomments
* @copyright 2013 Ankit Agarwal <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Form for editing fbcomments block instances.
*
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class block_fbcomments_edit_form extends block_edit_form {
/**
* Definition of custom form.
*
* @param object $mform
*/
protected function specific_definition($mform) {
// Fields for editing HTML block title and contents.
$mform->addElement('header', 'configheader', get_string('blocksettings', 'block'));
$mform->addElement('text', 'config_title', get_string('configtitle', 'block_fbcomments'));
$mform->setType('config_title', PARAM_TEXT);
$mform->setDefault('config_title', get_string('newfbblock', 'block_fbcomments'));
$options = $this->get_page_options();
$mform->addElement('select', 'config_urltype', get_string('urltype', 'block_fbcomments'), $options);
$options = array('light' => get_string('lightcolor', 'block_fbcomments'), 'dark' => get_string('darkcolor', 'block_fbcomments'));
$mform->addElement('select', 'config_colorscheme', get_string('colorscheme', 'block_fbcomments'), $options);
$mform->setDefault('config_colorscheme', 'light');
$options = block_fbcomments::get_button_options();
$mform->addElement('select', 'config_enablelike', get_string('enablelike', 'block_fbcomments'), $options);
$mform->addElement('advcheckbox', 'config_enableshare', get_string('enableshare', 'block_fbcomments'));
$mform->addElement('advcheckbox', 'config_enablecomment', get_string('enablecomment', 'block_fbcomments'));
$mform->setType('config_enablelike', PARAM_INT);
$mform->setType('config_enablecomment', PARAM_BOOL);
$mform->setType('config_enableshare', PARAM_BOOL);
$mform->setDefault('config_enablelike', 1);
$mform->setDefault('config_enablecomment', 0);
$mform->setDefault('config_enableshare', 0);
$mform->disabledIf('config_enableshare', 'config_enablelike', 'eq', 0);
$mform->addElement('text', 'config_lang', get_string('lang', 'block_fbcomments'));
$mform->setDefault('config_lang', 'en_US');
$mform->setType('config_lang', PARAM_TEXT);
$mform->addHelpButton('config_lang', 'lang', 'block_fbcomments');
$mform->addElement('text', 'config_numposts', get_string('numposts', 'block_fbcomments'));
$mform->setType('config_numposts', PARAM_INT);
$mform->addRule('config_numposts', get_string("notnumeric", "block_fbcomments"), "numeric", null, "client");
$mform->setDefault('config_numposts', 10);
$mform->disabledIf('config_numposts', 'config_enablecomment', 'notchecked');
$options = block_fbcomments::get_order_by_options();
$mform->addElement('select', 'config_commentorder', get_string('commentorder', 'block_fbcomments'), $options);
$mform->setType('config_commentorder', PARAM_ALPHA);
$mform->addHelpButton('config_commentorder', 'commentorder', 'block_fbcomments');
$mform->disabledIf('config_commentorder', 'config_enablecomment', 'notchecked');
$mform->addElement('text', 'config_appid', get_string('appid', 'block_fbcomments'));
$mform->addHelpButton('config_appid', 'appid', 'block_fbcomments');
$mform->addRule('config_appid', get_string("notnumeric", "block_fbcomments"), "numeric", null, "client");
$mform->setType('config_appid', PARAM_INT);
$mform->disabledIf('config_appid', 'config_enablecomment', 'notchecked');
}
// No security checks needed as moodle automatically checks if submitted value for a select is in $options.
/**
* Get page options.
*
* @return array
*/
private function get_page_options() {
$options = array(1 => get_string('thispage', 'block_fbcomments'));
$pagecontext = $this->page->context;
$coursecontext = $pagecontext->get_course_context(IGNORE_MISSING);
if (has_capability('block/fbcomments:manageurl', context_system::instance())) {
// Most probably an admin.
$options[2] = get_string('siteroot', 'block_fbcomments');
}
if ($coursecontext && has_capability('block/fbcomments:manageurl', $coursecontext)) {
$options[3] = get_string('coursepage', 'block_fbcomments');
}
if ($pagecontext->contextlevel == CONTEXT_MODULE && has_capability('block/fbcomments:manageurl', $pagecontext)) {
$options[4] = get_string('modpage', 'block_fbcomments', $pagecontext->get_context_name(false));
}
return $options;
}
}