weekly release 4.0dev
[moodle.git] / blocks / tags / edit_form.php
CommitLineData
7b2b1a91 1<?php
4ca6cfbf
PS
2// This file is part of Moodle - http://moodle.org/
3//
7b2b1a91 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.
4ca6cfbf 13//
7b2b1a91 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/>.
16
17/**
18 * Form for editing tag block instances.
19 *
f25a6839 20 * @package block_tags
7b2b1a91 21 * @copyright 2009 Tim Hunt
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
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 */
31class block_tags_edit_form extends block_edit_form {
32 protected function specific_definition($mform) {
b0c62e00 33 global $CFG;
7b2b1a91 34 // Fields for editing HTML block title and contents.
35 $mform->addElement('header', 'configheader', get_string('blocksettings', 'block'));
36
cb261915 37 $mform->addElement('text', 'config_title', get_string('configtitle', 'block_tags'));
071e68f9 38 $mform->setType('config_title', PARAM_TEXT);
be8e0d8a 39 $mform->setDefault('config_title', get_string('pluginname', 'block_tags'));
7b2b1a91 40
b0c62e00
MG
41 $this->add_collection_selector($mform);
42
7b2b1a91 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);
b0c62e00
MG
49
50 $defaults = array(
e11d7380
MG
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);
b0c62e00
MG
55
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);
68
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 }
73
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 }
84
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 }
93
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);
7b2b1a91 99 }
100}