ÿØÿà JFIF    ÿÛ „  ( %"1!%)+...383,7(-.+  -+++--++++---+-+-----+---------------+---+-++7-----ÿÀ  ß â" ÿÄ     ÿÄ H    !1AQaq"‘¡2B±ÁÑð#R“Ò Tbr‚²á3csƒ’ÂñDS¢³$CÿÄ   ÿÄ %  !1AQa"23‘ÿÚ   ? ôÿ ¨pŸªáÿ —åYõõ\?àÒü©ŠÄï¨pŸªáÿ —åYõõ\?àÓü©ŠÄá 0Ÿªáÿ Ÿå[úƒ ú®ði~TÁbqÐ8OÕpÿ ƒOò¤Oè`–RÂáœá™êi€ßÉ< FtŸI“öÌ8úDf´°å}“¾œ6  öFá°y¥jñÇh†ˆ¢ã/ÃÐ:ªcÈ "Y¡ðÑl>ÿ ”ÏËte:qž\oäŠe÷󲍷˜HT4&ÿ ÓÐü6ö®¿øþßèô Ÿ•7Ñi’•j|“ñì>b…þS?*Óôÿ ÓÐü*h¥£ír¶ü UãS炟[AÐaè[ûª•õ&õj?†Éö+EzP—WeÒírJFt ‘BŒ†Ï‡%#tE Øz ¥OÛ«!1›üä±Í™%ºÍãö]°î(–:@<‹ŒÊö×òÆt¦ãº+‡¦%ÌÁ²h´OƒJŒtMÜ>ÀÜÊw3Y´•牋4ǍýʏTì>œú=Íwhyë,¾Ôò×õ¿ßÊa»«þˆѪQ|%6ž™A õ%:øj<>É—ÿ Å_ˆCbõ¥š±ý¯Ýƒï…¶|RëócÍf溪“t.СøTÿ *Ä¿-{†çàczůŽ_–^XþŒ±miB[X±d 1,é”zEù»& î9gœf™9Ð'.;—™i}!ôšåîqêÛ٤ёý£½ÆA–àôe"A$˝Úsäÿ ÷Û #°xŸëí(l »ý3—¥5m! rt`†0~'j2(]S¦¦kv,ÚÇ l¦øJA£Šƒ J3E8ÙiŽ:cÉžúeZ°€¯\®kÖ(79«Ž:¯X”¾³Š&¡* ….‰Ž(ÜíŸ2¥ª‡×Hi²TF¤ò[¨íÈRëÉ䢍mgÑ.Ÿ<öäS0í„ǹÁU´f#Vß;Õ–…P@3ío<ä-±»Ž.L|kªÀê›fÂ6@»eu‚|ÓaÞÆŸ…¨ááå>åŠ?cKü6ùTÍÆ”†sĤÚ;H2RÚ†õ\Ö·Ÿn'¾ ñ#ºI¤Å´%çÁ­‚â7›‹qT3Iï¨ÖÚ5I7Ë!ÅOóŸ¶øÝñØôת¦$Tcö‘[«Ö³šÒ';Aþ ¸èíg A2Z"i¸vdÄ÷.iõ®§)¿]¤À†–‡É&ä{V¶iŽ”.Ó×Õÿ û?h¬Mt–íª[ÿ Ñÿ ÌV(í}=ibÔ¡›¥¢±b Lô¥‡piη_Z<‡z§èŒ)iÖwiÇ 2hÙ3·=’d÷8éŽ1¦¸c¤µ€7›7Ø ð\á)} ¹fËí›pAÃL%âc2 í§æQz¿;T8sæ°qø)QFMð‰XŒÂ±N¢aF¨…8¯!U  Z©RÊ ÖPVÄÀÍin™Ì-GˆªÅËŠ›•zË}º±ŽÍFò¹}Uw×#ä5B¤{î}Ð<ÙD é©¤&‡ïDbàÁôMÁ.. /** * Enrol users form. * * Simple form to search for users and add them using a manual enrolment to this course. * * @package enrol_manual * @copyright 2016 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); require_once($CFG->libdir.'/formslib.php'); class enrol_manual_enrol_users_form extends moodleform { /** * Form definition. * @return void */ public function definition() { global $PAGE, $DB, $CFG; require_once($CFG->dirroot . '/enrol/locallib.php'); $context = $this->_customdata->context; // Get the course and enrolment instance. $coursecontext = $context->get_course_context(); $course = $DB->get_record('course', ['id' => $coursecontext->instanceid]); $manager = new course_enrolment_manager($PAGE, $course); $instance = null; foreach ($manager->get_enrolment_instances() as $tempinstance) { if ($tempinstance->enrol == 'manual') { if ($instance === null) { $instance = $tempinstance; break; } } } $mform = $this->_form; $mform->setDisableShortforms(); $mform->disable_form_change_checker(); $periodmenu = enrol_get_period_list(); // Work out the apropriate default settings. $defaultperiod = $instance->enrolperiod; if ($instance->enrolperiod > 0 && !isset($periodmenu[$instance->enrolperiod])) { $periodmenu[$instance->enrolperiod] = format_time($instance->enrolperiod); } if (empty($extendbase)) { if (!$extendbase = get_config('enrol_manual', 'enrolstart')) { // Default to now if there is no system setting. $extendbase = 4; } } // Build the list of options for the starting from dropdown. $now = time(); $today = make_timestamp(date('Y', $now), date('m', $now), date('d', $now), 0, 0, 0); $dateformat = get_string('strftimedatefullshort'); // Enrolment start. $basemenu = array(); if ($course->startdate > 0) { $basemenu[2] = get_string('coursestart') . ' (' . userdate($course->startdate, $dateformat) . ')'; } $basemenu[3] = get_string('today') . ' (' . userdate($today, $dateformat) . ')'; $basemenu[4] = get_string('now', 'enrol_manual') . ' (' . userdate($now, get_string('strftimedatetimeshort')) . ')'; $mform->addElement('header', 'main', get_string('enrolmentoptions', 'enrol')); $options = array( 'ajax' => 'enrol_manual/form-potential-user-selector', 'multiple' => true, 'courseid' => $course->id, 'enrolid' => $instance->id, 'perpage' => $CFG->maxusersperpage, 'userfields' => implode(',', \core_user\fields::get_identity_fields($context, true)) ); $mform->addElement('autocomplete', 'userlist', get_string('selectusers', 'enrol_manual'), array(), $options); // Confirm the user can search for cohorts before displaying select. if (has_capability('moodle/cohort:manage', $context) || has_capability('moodle/cohort:view', $context)) { // Check to ensure there is at least one visible cohort before displaying the select box. // Ideally it would be better to call external_api::call_external_function('core_cohort_search_cohorts') // (which is used to populate the select box) instead of duplicating logic but there is an issue with globals // being borked (in this case $PAGE) when combining the usage of fragments and call_external_function(). require_once($CFG->dirroot . '/cohort/lib.php'); $availablecohorts = cohort_get_cohorts($context->id, 0, 1, ''); $availablecohorts = $availablecohorts['cohorts']; if (!($context instanceof context_system)) { $availablecohorts = array_merge($availablecohorts, cohort_get_available_cohorts($context, COHORT_ALL, 0, 1, '')); } if (!empty($availablecohorts)) { $options = ['contextid' => $context->id, 'multiple' => true]; $mform->addElement('cohort', 'cohortlist', get_string('selectcohorts', 'enrol_manual'), $options); } } $roles = get_assignable_roles($context, ROLENAME_BOTH); $mform->addElement('select', 'roletoassign', get_string('assignrole', 'enrol_manual'), $roles); $mform->setDefault('roletoassign', $instance->roleid); $mform->addAdvancedStatusElement('main'); $mform->addElement('checkbox', 'recovergrades', get_string('recovergrades', 'enrol')); $mform->setAdvanced('recovergrades'); $mform->setDefault('recovergrades', $CFG->recovergradesdefault); $mform->addElement('select', 'startdate', get_string('startingfrom'), $basemenu); $mform->setDefault('startdate', $extendbase); $mform->setAdvanced('startdate'); $mform->addElement('select', 'duration', get_string('enrolperiod', 'enrol'), $periodmenu); $mform->setDefault('duration', $defaultperiod); $mform->setAdvanced('duration'); $mform->disabledIf('duration', 'timeend[enabled]', 'checked', 1); $mform->addElement('date_time_selector', 'timeend', get_string('enroltimeend', 'enrol'), ['optional' => true]); $mform->setAdvanced('timeend'); $mform->addElement('hidden', 'id', $course->id); $mform->setType('id', PARAM_INT); $mform->addElement('hidden', 'action', 'enrol'); $mform->setType('action', PARAM_ALPHA); $mform->addElement('hidden', 'enrolid', $instance->id); $mform->setType('enrolid', PARAM_INT); } /** * Validate the submitted form data. * * @param array $data array of ("fieldname"=>value) of submitted data * @param array $files array of uploaded files "element_name"=>tmp_file_path * @return array of "element_name"=>"error_description" if there are errors, * or an empty array if everything is OK (true allowed for backwards compatibility too). */ public function validation($data, $files) { $errors = parent::validation($data, $files); if (!empty($data['startdate']) && !empty($data['timeend'])) { if ($data['startdate'] >= $data['timeend']) { $errors['timeend'] = get_string('enroltimeendinvalid', 'enrol'); } } return $errors; } }