on-demand release 4.2dev+
[moodle.git] / mod / lti / register_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  * This file defines the main tool registration configuration form
19  *
20  * @package mod_lti
21  * @copyright  2014 Vital Source Technologies http://vitalsource.com
22  * @author     Stephen Vickers
23  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24  */
26 defined('MOODLE_INTERNAL') || die;
28 require_once($CFG->libdir.'/formslib.php');
29 require_once($CFG->dirroot.'/mod/lti/locallib.php');
31 /**
32  * The mod_lti_register_types_form class.
33  *
34  * @package    mod_lti
35  * @since      Moodle 2.8
36  * @copyright  2014 Vital Source Technologies http://vitalsource.com
37  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
38  */
39 class mod_lti_register_types_form extends moodleform {
41     /**
42      * Set up the form definition.
43      */
44     public function definition() {
45         global $CFG;
47         $mform    =& $this->_form;
49         $mform->addElement('header', 'setup', get_string('registration_options', 'lti'));
51         // Tool Provider name.
53         $strrequired = get_string('required');
54         $mform->addElement('text', 'lti_registrationname', get_string('registrationname', 'lti'));
55         $mform->setType('lti_registrationname', PARAM_TEXT);
56         $mform->addHelpButton('lti_registrationname', 'registrationname', 'lti');
57         $mform->addRule('lti_registrationname', $strrequired, 'required', null, 'client');
59         // Registration URL.
61         $mform->addElement('text', 'lti_registrationurl', get_string('registrationurl', 'lti'), array('size' => '64'));
62         $mform->setType('lti_registrationurl', PARAM_URL);
63         $mform->addHelpButton('lti_registrationurl', 'registrationurl', 'lti');
64         $mform->addRule('lti_registrationurl', $strrequired, 'required', null, 'client');
66         // LTI Capabilities.
68         $options = array_keys(lti_get_capabilities());
69         natcasesort($options);
70         $attributes = array( 'multiple' => 1, 'size' => min(count($options), 10) );
71         $mform->addElement('select', 'lti_capabilities', get_string('capabilities', 'lti'),
72             array_combine($options, $options), $attributes);
73         $mform->setType('lti_capabilities', PARAM_TEXT);
74         $mform->addHelpButton('lti_capabilities', 'capabilities', 'lti');
75         $mform->addRule('lti_capabilities', $strrequired, 'required', null, 'client');
77         // LTI Services.
79         $services = lti_get_services();
80         $options = array();
81         foreach ($services as $service) {
82             $options[$service->get_id()] = $service->get_name();
83         }
84         $attributes = array( 'multiple' => 1, 'size' => min(count($options), 10) );
85         $mform->addElement('select', 'lti_services', get_string('services', 'lti'), $options, $attributes);
86         $mform->setType('lti_services', PARAM_TEXT);
87         $mform->addHelpButton('lti_services', 'services', 'lti');
88         $mform->addRule('lti_services', $strrequired, 'required', null, 'client');
90         $mform->addElement('hidden', 'toolproxyid');
91         $mform->setType('toolproxyid', PARAM_INT);
93         $tab = optional_param('tab', '', PARAM_ALPHAEXT);
94         $mform->addElement('hidden', 'tab', $tab);
95         $mform->setType('tab', PARAM_ALPHAEXT);
97         $courseid = optional_param('course', 1, PARAM_INT);
98         $mform->addElement('hidden', 'course', $courseid);
99         $mform->setType('course', PARAM_INT);
101         // Add standard buttons, common to all modules.
103         $this->add_action_buttons();
104     }
106     /**
107      * Set up rules for disabling fields.
108      */
109     public function disable_fields() {
111         $mform    =& $this->_form;
113         $mform->disabledIf('lti_registrationurl', null);
114         $mform->disabledIf('lti_capabilities', null);
115         $mform->disabledIf('lti_services', null);
117     }