MDL-54129 mod_lti: Show in course checkbox works properly.
[moodle.git] / mod / lti / edit_form.php
CommitLineData
996b0fd9 1<?php
61eb12d4
CS
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/>.
16//
996b0fd9
CS
17// This file is part of BasicLTI4Moodle
18//
19// BasicLTI4Moodle is an IMS BasicLTI (Basic Learning Tools for Interoperability)
20// consumer for Moodle 1.9 and Moodle 2.0. BasicLTI is a IMS Standard that allows web
21// based learning tools to be easily integrated in LMS as native ones. The IMS BasicLTI
22// specification is part of the IMS standard Common Cartridge 1.1 Sakai and other main LMS
23// are already supporting or going to support BasicLTI. This project Implements the consumer
24// for Moodle. Moodle is a Free Open source Learning Management System by Martin Dougiamas.
25// BasicLTI4Moodle is a project iniciated and leaded by Ludo(Marc Alier) and Jordi Piguillem
26// at the GESSI research group at UPC.
27// SimpleLTI consumer for Moodle is an implementation of the early specification of LTI
28// by Charles Severance (Dr Chuck) htp://dr-chuck.com , developed by Jordi Piguillem in a
29// Google Summer of Code 2008 project co-mentored by Charles Severance and Marc Alier.
30//
31// BasicLTI4Moodle is copyright 2009 by Marc Alier Forment, Jordi Piguillem and Nikolas Galanis
32// of the Universitat Politecnica de Catalunya http://www.upc.edu
e3f69b58 33// Contact info: Marc Alier Forment granludo @ gmail.com or marc.alier @ upc.edu.
996b0fd9
CS
34
35/**
36 * This file defines de main basiclti configuration form
37 *
2b17ec3d 38 * @package mod_lti
61eb12d4 39 * @copyright 2009 Marc Alier, Jordi Piguillem, Nikolas Galanis
996b0fd9 40 * marc.alier@upc.edu
61eb12d4
CS
41 * @copyright 2009 Universitat Politecnica de Catalunya http://www.upc.edu
42 * @author Marc Alier
43 * @author Jordi Piguillem
44 * @author Nikolas Galanis
45 * @author Charles Severance
8f45215d 46 * @author Chris Scribner
61eb12d4 47 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
996b0fd9
CS
48 */
49
50defined('MOODLE_INTERNAL') || die;
51
52require_once($CFG->libdir.'/formslib.php');
53require_once($CFG->dirroot.'/mod/lti/locallib.php');
54
b1e9a121 55class mod_lti_edit_types_form extends moodleform{
ea04a9f9 56 public function definition() {
8fa50fdd
MN
57 global $CFG;
58
996b0fd9
CS
59 $mform =& $this->_form;
60
7c2977bc 61 $istool = $this->_customdata && $this->_customdata->istool;
e3f69b58 62
63 // Add basiclti elements.
996b0fd9 64 $mform->addElement('header', 'setup', get_string('tool_settings', 'lti'));
e27cb316 65
996b0fd9 66 $mform->addElement('text', 'lti_typename', get_string('typename', 'lti'));
2664c851 67 $mform->setType('lti_typename', PARAM_TEXT);
ea04a9f9 68 $mform->addHelpButton('lti_typename', 'typename', 'lti');
996b0fd9
CS
69 $mform->addRule('lti_typename', null, 'required', null, 'client');
70
e3f69b58 71 $mform->addElement('text', 'lti_toolurl', get_string('toolurl', 'lti'), array('size' => '64'));
af9d3a92 72 $mform->setType('lti_toolurl', PARAM_URL);
b26dc53c 73 $mform->addHelpButton('lti_toolurl', 'toolurl', 'lti');
cc193e0d
RW
74
75 $mform->addElement('textarea', 'lti_description', get_string('tooldescription', 'lti'), array('rows' => 4, 'cols' => 60));
76 $mform->setType('lti_description', PARAM_TEXT);
77 $mform->addHelpButton('lti_description', 'tooldescription', 'lti');
e3f69b58 78 if (!$istool) {
79 $mform->addRule('lti_toolurl', null, 'required', null, 'client');
80 } else {
81 $mform->disabledIf('lti_toolurl', null);
82 }
996b0fd9 83
e3f69b58 84 if (!$istool) {
85 $mform->addElement('text', 'lti_resourcekey', get_string('resourcekey_admin', 'lti'));
86 $mform->setType('lti_resourcekey', PARAM_TEXT);
87 $mform->addHelpButton('lti_resourcekey', 'resourcekey_admin', 'lti');
e27cb316 88
e3f69b58 89 $mform->addElement('passwordunmask', 'lti_password', get_string('password_admin', 'lti'));
90 $mform->setType('lti_password', PARAM_TEXT);
91 $mform->addHelpButton('lti_password', 'password_admin', 'lti');
92 }
e27cb316 93
e3f69b58 94 if ($istool) {
95 $mform->addElement('textarea', 'lti_parameters', get_string('parameter', 'lti'), array('rows' => 4, 'cols' => 60));
96 $mform->setType('lti_parameters', PARAM_TEXT);
97 $mform->addHelpButton('lti_parameters', 'parameter', 'lti');
98 $mform->disabledIf('lti_parameters', null);
99 }
100
101 $mform->addElement('textarea', 'lti_customparameters', get_string('custom', 'lti'), array('rows' => 4, 'cols' => 60));
996b0fd9 102 $mform->setType('lti_customparameters', PARAM_TEXT);
b26dc53c 103 $mform->addHelpButton('lti_customparameters', 'custom', 'lti');
e27cb316 104
e3f69b58 105 if (!$istool && !empty($this->_customdata->isadmin)) {
692b5348 106 $mform->addElement('advcheckbox', 'lti_coursevisible', '&nbsp;', ' ' . get_string('show_in_course', 'lti'));
b26dc53c 107 $mform->addHelpButton('lti_coursevisible', 'show_in_course', 'lti');
af9d3a92 108 $mform->setDefault('lti_coursevisible', '1');
996b0fd9
CS
109 } else {
110 $mform->addElement('hidden', 'lti_coursevisible', '1');
111 }
1fe56a2a 112 $mform->setType('lti_coursevisible', PARAM_BOOL);
e27cb316 113
6831c7cd 114 $mform->addElement('hidden', 'typeid');
1fe56a2a 115 $mform->setType('typeid', PARAM_INT);
e27cb316 116
e3f69b58 117 $launchoptions = array();
996b0fd9
CS
118 $launchoptions[LTI_LAUNCH_CONTAINER_EMBED] = get_string('embed', 'lti');
119 $launchoptions[LTI_LAUNCH_CONTAINER_EMBED_NO_BLOCKS] = get_string('embed_no_blocks', 'lti');
8fa50fdd 120 $launchoptions[LTI_LAUNCH_CONTAINER_REPLACE_MOODLE_WINDOW] = get_string('existing_window', 'lti');
996b0fd9
CS
121 $launchoptions[LTI_LAUNCH_CONTAINER_WINDOW] = get_string('new_window', 'lti');
122
123 $mform->addElement('select', 'lti_launchcontainer', get_string('default_launch_container', 'lti'), $launchoptions);
124 $mform->setDefault('lti_launchcontainer', LTI_LAUNCH_CONTAINER_EMBED_NO_BLOCKS);
b26dc53c 125 $mform->addHelpButton('lti_launchcontainer', 'default_launch_container', 'lti');
1fe56a2a 126 $mform->setType('lti_launchcontainer', PARAM_INT);
e27cb316 127
3f358828 128 $mform->addElement('hidden', 'oldicon');
129 $mform->setType('oldicon', PARAM_URL);
130
131 $mform->addElement('text', 'lti_icon', get_string('icon_url', 'lti'), array('size' => '64'));
132 $mform->setType('lti_icon', PARAM_URL);
133 $mform->setAdvanced('lti_icon');
134 $mform->addHelpButton('lti_icon', 'icon_url', 'lti');
135
136 $mform->addElement('text', 'lti_secureicon', get_string('secure_icon_url', 'lti'), array('size' => '64'));
137 $mform->setType('lti_secureicon', PARAM_URL);
138 $mform->setAdvanced('lti_secureicon');
139 $mform->addHelpButton('lti_secureicon', 'secure_icon_url', 'lti');
140
e3f69b58 141 if (!$istool) {
142 // Add privacy preferences fieldset where users choose whether to send their data.
143 $mform->addElement('header', 'privacy', get_string('privacy', 'lti'));
144
145 $options = array();
146 $options[0] = get_string('never', 'lti');
147 $options[1] = get_string('always', 'lti');
148 $options[2] = get_string('delegate', 'lti');
149
150 $mform->addElement('select', 'lti_sendname', get_string('share_name_admin', 'lti'), $options);
151 $mform->setType('lti_sendname', PARAM_INT);
152 $mform->setDefault('lti_sendname', '2');
153 $mform->addHelpButton('lti_sendname', 'share_name_admin', 'lti');
154
155 $mform->addElement('select', 'lti_sendemailaddr', get_string('share_email_admin', 'lti'), $options);
156 $mform->setType('lti_sendemailaddr', PARAM_INT);
157 $mform->setDefault('lti_sendemailaddr', '2');
158 $mform->addHelpButton('lti_sendemailaddr', 'share_email_admin', 'lti');
159
160 // LTI Extensions.
161
162 // Add grading preferences fieldset where the tool is allowed to return grades.
163 $mform->addElement('select', 'lti_acceptgrades', get_string('accept_grades_admin', 'lti'), $options);
164 $mform->setType('lti_acceptgrades', PARAM_INT);
165 $mform->setDefault('lti_acceptgrades', '2');
166 $mform->addHelpButton('lti_acceptgrades', 'accept_grades_admin', 'lti');
167
168 $mform->addElement('checkbox', 'lti_forcessl', '&nbsp;', ' ' . get_string('force_ssl', 'lti'), $options);
169 $mform->setType('lti_forcessl', PARAM_BOOL);
170 if (!empty($CFG->mod_lti_forcessl)) {
171 $mform->setDefault('lti_forcessl', '1');
172 $mform->freeze('lti_forcessl');
173 } else {
174 $mform->setDefault('lti_forcessl', '0');
175 }
176 $mform->addHelpButton('lti_forcessl', 'force_ssl', 'lti');
177
178 if (!empty($this->_customdata->isadmin)) {
179 // Add setup parameters fieldset.
180 $mform->addElement('header', 'setupoptions', get_string('miscellaneous', 'lti'));
181
182 // Adding option to change id that is placed in context_id.
183 $idoptions = array();
184 $idoptions[0] = get_string('id', 'lti');
185 $idoptions[1] = get_string('courseid', 'lti');
186
187 $mform->addElement('text', 'lti_organizationid', get_string('organizationid', 'lti'));
188 $mform->setType('lti_organizationid', PARAM_TEXT);
189 $mform->addHelpButton('lti_organizationid', 'organizationid', 'lti');
190
191 $mform->addElement('text', 'lti_organizationurl', get_string('organizationurl', 'lti'));
af9d3a92 192 $mform->setType('lti_organizationurl', PARAM_URL);
e3f69b58 193 $mform->addHelpButton('lti_organizationurl', 'organizationurl', 'lti');
194 }
996b0fd9 195 }
e27cb316 196
996b0fd9 197 /* Suppress this for now - Chuck
e3f69b58 198 * mform->addElement('text', 'lti_organizationdescr', get_string('organizationdescr', 'lti'))
199 * mform->setType('lti_organizationdescr', PARAM_TEXT)
200 * mform->addHelpButton('lti_organizationdescr', 'organizationdescr', 'lti')
201 */
996b0fd9 202
e3f69b58 203 /*
996b0fd9
CS
204 // Add a hidden element to signal a tool fixing operation after a problematic backup - restore process
205 //$mform->addElement('hidden', 'lti_fix');
e3f69b58 206 */
e27cb316 207
996b0fd9
CS
208 $tab = optional_param('tab', '', PARAM_ALPHAEXT);
209 $mform->addElement('hidden', 'tab', $tab);
1fe56a2a 210 $mform->setType('tab', PARAM_ALPHAEXT);
e27cb316 211
996b0fd9
CS
212 $courseid = optional_param('course', 1, PARAM_INT);
213 $mform->addElement('hidden', 'course', $courseid);
1fe56a2a 214 $mform->setType('course', PARAM_INT);
e27cb316 215
e3f69b58 216 // Add standard buttons, common to all modules.
996b0fd9
CS
217 $this->add_action_buttons();
218
219 }
220}