/** * Core function for creation of form defined in block_panopto_edit_form class */ protected function specific_definition($mform) { global $COURSE, $CFG; // Construct the Panopto data proxy object. $panoptodata = new panopto_data($COURSE->id); if (!empty($panoptodata->servername) && !empty($panoptodata->instancename) && !empty($panoptodata->applicationkey)) { $mform->addElement('header', 'configheader', get_string('block_edit_header', 'block_panopto')); $params = new stdClass(); $params->course_id = $COURSE->id; $params->return_url = $_SERVER['REQUEST_URI']; $querystring = http_build_query($params, '', '&'); $provisionurl = "{$CFG->wwwroot}/blocks/panopto/provision_course.php?" . $querystring; $addtopanopto = get_string('add_to_panopto', 'block_panopto'); $or = get_string('or', 'block_panopto'); $mform->addElement('html', "<a href='{$provisionurl}'>{$addtopanopto}</a><br><br>-- {$or} --<br><br>"); $courselist = $panoptodata->get_course_options(); $mform->addElement('selectgroups', 'config_course', get_string('existing_course', 'block_panopto'), $courselist['courses']); $mform->setDefault('config_course', $courselist['selected']); // Set course context to get roles. $context = context_course::instance($COURSE->id); // Get current role mappings. $currentmappings = $panoptodata->get_course_role_mappings($COURSE->id); // Get roles that current user may assign in this course. $currentcourseroles = get_assignable_roles($context, $rolenamedisplay = ROLENAME_ALIAS, $withusercounts = false, $user = null); while ($role = current($currentcourseroles)) { $rolearray[key($currentcourseroles)] = $currentcourseroles[key($currentcourseroles)]; next($currentcourseroles); } $mform->addElement('header', 'rolemapheader', get_string('role_map_header', 'block_panopto')); $mform->addElement('html', get_string('role_map_info_text', 'block_panopto')); $createselect = $mform->addElement('select', 'config_creator', get_string('creator', 'block_panopto'), $rolearray, null); $createselect->setMultiple(true); // Set default selected to previous setting. if (!empty($currentmappings['creator'])) { $createselect->setSelected($currentmappings['creator']); } $pubselect = $mform->addElement('select', 'config_publisher', get_string('publisher', 'block_panopto'), $rolearray, null); $pubselect->setMultiple(true); // Set default selected to previous setting. if (!empty($currentmappings['publisher'])) { $pubselect->setSelected($currentmappings['publisher']); } } else { $mform->addElement('static', 'error', '', get_string('block_edit_error', 'block_panopto')); } }