MDL-65788 tool_policy: Prevent two modals rendering for guests.
[moodle.git] / blocks / rss_client / edit_form.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 /**
18  * Form for editing RSS client block instances.
19  *
20  * @package   block_rss_client
21  * @copyright 2009 Tim Hunt
22  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 /**
26  * Form for editing RSS client block instances.
27  *
28  * @copyright 2009 Tim Hunt
29  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
30  */
31 class block_rss_client_edit_form extends block_edit_form {
32     protected function specific_definition($mform) {
33         global $CFG, $DB, $USER;
35         // Fields for editing block contents.
36         $mform->addElement('header', 'configheader', get_string('blocksettings', 'block'));
38         $mform->addElement('selectyesno', 'config_display_description', get_string('displaydescriptionlabel', 'block_rss_client'));
39         $mform->setDefault('config_display_description', 0);
41         $mform->addElement('text', 'config_shownumentries', get_string('shownumentrieslabel', 'block_rss_client'), array('size' => 5));
42         $mform->setType('config_shownumentries', PARAM_INT);
43         $mform->addRule('config_shownumentries', null, 'numeric', null, 'client');
44         if (!empty($CFG->block_rss_client_num_entries)) {
45             $mform->setDefault('config_shownumentries', $CFG->block_rss_client_num_entries);
46         } else {
47             $mform->setDefault('config_shownumentries', 5);
48         }
50         $insql = '';
51         $params = array('userid' => $USER->id);
52         $rssconfig = unserialize(base64_decode($this->block->instance->configdata));
53         if ($rssconfig && !empty($rssconfig->rssid)) {
54             list($insql, $inparams) = $DB->get_in_or_equal($rssconfig->rssid, SQL_PARAMS_NAMED);
55             $insql = "OR id $insql ";
56             $params += $inparams;
57         }
59         $titlesql = "CASE WHEN {$DB->sql_isempty('block_rss_client','preferredtitle', false, false)}
60                       THEN {$DB->sql_compare_text('title', 64)} ELSE preferredtitle END";
62         $rssfeeds = $DB->get_records_sql_menu("
63                 SELECT id, $titlesql
64                   FROM {block_rss_client}
65                  WHERE userid = :userid OR shared = 1 $insql
66                  ORDER BY $titlesql",
67                 $params);
69         if ($rssfeeds) {
70             $select = $mform->addElement('select', 'config_rssid', get_string('choosefeedlabel', 'block_rss_client'), $rssfeeds);
71             $select->setMultiple(true);
73         } else {
74             $mform->addElement('static', 'config_rssid_no_feeds', get_string('choosefeedlabel', 'block_rss_client'),
75                     get_string('nofeeds', 'block_rss_client'));
76         }
78         if (has_any_capability(array('block/rss_client:manageanyfeeds', 'block/rss_client:manageownfeeds'), $this->block->context)) {
79             $mform->addElement('static', 'nofeedmessage', '',
80                     '<a href="' . $CFG->wwwroot . '/blocks/rss_client/managefeeds.php?courseid=' . $this->page->course->id . '">' .
81                     get_string('feedsaddedit', 'block_rss_client') . '</a>');
82         }
84         $mform->addElement('text', 'config_title', get_string('uploadlabel'));
85         $mform->setType('config_title', PARAM_NOTAGS);
87         $mform->addElement('selectyesno', 'config_block_rss_client_show_channel_link', get_string('clientshowchannellinklabel', 'block_rss_client'));
88         $mform->setDefault('config_block_rss_client_show_channel_link', 0);
90         $mform->addElement('selectyesno', 'config_block_rss_client_show_channel_image', get_string('clientshowimagelabel', 'block_rss_client'));
91         $mform->setDefault('config_block_rss_client_show_channel_image', 0);
92     }
93 }