weekly release 4.0dev
[moodle.git] / blocks / tags / 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 tag block instances.
19  *
20  * @package   block_tags
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 tag 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_tags_edit_form extends block_edit_form {
32     protected function specific_definition($mform) {
33         global $CFG;
34         // Fields for editing HTML block title and contents.
35         $mform->addElement('header', 'configheader', get_string('blocksettings', 'block'));
37         $mform->addElement('text', 'config_title', get_string('configtitle', 'block_tags'));
38         $mform->setType('config_title', PARAM_TEXT);
39         $mform->setDefault('config_title', get_string('pluginname', 'block_tags'));
41         $this->add_collection_selector($mform);
43         $numberoftags = array();
44         for ($i = 1; $i <= 200; $i++) {
45             $numberoftags[$i] = $i;
46         }
47         $mform->addElement('select', 'config_numberoftags', get_string('numberoftags', 'blog'), $numberoftags);
48         $mform->setDefault('config_numberoftags', 80);
50         $defaults = array(
51             core_tag_tag::STANDARD_ONLY => get_string('standardonly', 'block_tags'),
52             core_tag_tag::BOTH_STANDARD_AND_NOT => get_string('anytype', 'block_tags'));
53         $mform->addElement('select', 'config_showstandard', get_string('defaultdisplay', 'block_tags'), $defaults);
54         $mform->setDefault('config_showstandard', core_tag_tag::BOTH_STANDARD_AND_NOT);
56         $defaults = array(0 => context_system::instance()->get_context_name());
57         $parentcontext = context::instance_by_id($this->block->instance->parentcontextid);
58         if ($parentcontext->contextlevel > CONTEXT_COURSE) {
59             $coursecontext = $parentcontext->get_course_context();
60             $defaults[$coursecontext->id] = $coursecontext->get_context_name();
61         }
62         if ($parentcontext->contextlevel != CONTEXT_SYSTEM) {
63             $defaults[$parentcontext->id] = $parentcontext->get_context_name();
64         }
65         $mform->addElement('select', 'config_ctx', get_string('taggeditemscontext', 'block_tags'), $defaults);
66         $mform->addHelpButton('config_ctx', 'taggeditemscontext', 'block_tags');
67         $mform->setDefault('config_ctx', 0);
69         $mform->addElement('advcheckbox', 'config_rec', get_string('recursivecontext', 'block_tags'));
70         $mform->addHelpButton('config_rec', 'recursivecontext', 'block_tags');
71         $mform->setDefault('config_rec', 1);
72     }
74     /**
75      * Add the tag collection selector
76      *
77      * @param object $mform the form being built.
78      */
79     protected function add_collection_selector($mform) {
80         $tagcolls = core_tag_collection::get_collections_menu(false, false, get_string('anycollection', 'block_tags'));
81         if (count($tagcolls) <= 1) {
82             return;
83         }
85         $tagcollssearchable = core_tag_collection::get_collections_menu(false, true);
86         $hasunsearchable = false;
87         foreach ($tagcolls as $id => $name) {
88             if ($id && !array_key_exists($id, $tagcollssearchable)) {
89                 $hasunsearchable = true;
90                 $tagcolls[$id] = $name . '*';
91             }
92         }
94         $mform->addElement('select', 'config_tagcoll', get_string('tagcollection', 'block_tags'), $tagcolls);
95         if ($hasunsearchable) {
96             $mform->addHelpButton('config_tagcoll', 'tagcollection', 'block_tags');
97         }
98         $mform->setDefault('config_tagcoll', 0);
99     }