function xmldb_block_demostudent_upgrade($oldversion = 0) { global $CFG; $result = true; // Assign moodle/course:viewhiddencourses capability to demostudent role. if ($oldversion < 2013100201) { if (get_capability_info('moodle/course:viewhiddencourses')) { $demostudentroleid = get_roleid_by_roleshortname('demostudent'); assign_capability('moodle/course:viewhiddencourses', CAP_ALLOW, $demostudentroleid, 1); } upgrade_plugin_savepoint(true, 2013100201, 'block', 'demostudent'); } return $result; }
private function render_view($viewrole = 'demostudent') { global $CFG, $COURSE, $USER, $OUTPUT; $this->content->text = ''; // If the demostudent role is missing from the system, give a warning. $demostudentroleid = get_roleid_by_roleshortname('demostudent'); if (!$demostudentroleid) { // Test this by changing mdl_role.shortname from 'demostudent' to 'demostudent2' in the DB. $this->content->text .= get_string('warningmissingrole', 'block_demostudent'); } // If the course is not available to students, give a warning to everyone who sees the block. if (!$COURSE->visible) { $this->content->text .= get_string('warningcoursenotvisible', 'block_demostudent'); } $this->content->text .= get_string('viewis' . $viewrole, 'block_demostudent'); $buttontext = get_string('buttonfor' . $viewrole, 'block_demostudent'); $buttontooltip = get_string('switchfrom' . $viewrole . 'view', 'block_demostudent'); $buttonunenroltext = get_string('buttonforunenrol', 'block_demostudent'); $buttonunenroltooltip = get_string('unenroltip', 'block_demostudent'); $this->content->text .= '<div class="searchform">'; $this->content->text .= '<form action="' . $CFG->wwwroot . '/blocks/demostudent/switchview.php" style="display:inline"><fieldset class="invisiblefieldset">'; $this->content->text .= '<legend class="accesshide">' . $buttontooltip . '</legend>'; $this->content->text .= '<input name="url" type="hidden" value="' . $this->page->url . '" />'; $this->content->text .= '<input name="viewrole" type="hidden" value="' . $viewrole . '" />'; $this->content->text .= '<input name="courseid" type="hidden" value="' . $this->page->course->id . '" />'; $this->content->text .= '<input name="sesskey" type="hidden" value="' . $USER->sesskey . '" />'; $this->content->text .= '<button id="switchview_button" type="submit" title="' . $buttontooltip . '">' . $buttontext . '</button><br />'; // Somebody add some help here: $this->content->text .= $OUTPUT->help_icon('demostudent'); ! $this->content->text .= '</fieldset></form>'; $this->content->text .= '</div>'; $this->content->text .= get_string('advicefor' . $viewrole, 'block_demostudent'); if ($viewrole == 'demostudent' && $this->ismoonfull()) { $this->content->text .= get_string('advicetwowindows', 'block_demostudent'); } if ($viewrole == 'instructor') { // Need to allow the instructor to unenrol the demo student, add another form. $this->content->text .= '<div class="searchform">'; $this->content->text .= '<form action="' . $CFG->wwwroot . '/blocks/demostudent/remove.php" style="display:inline">'; $this->content->text .= '<fieldset class="invisiblefieldset">'; $this->content->text .= '<input name="viewrole" type="hidden" value="' . $viewrole . '" />'; $this->content->text .= '<input name="courseid" type="hidden" value="' . $this->page->course->id . '" />'; $this->content->text .= '<input name="sesskey" type="hidden" value="' . $USER->sesskey . '" />'; $this->content->text .= '<button id="unenrol_button" type="submit" title="' . $buttonunenroltooltip . '">' . $buttonunenroltext . '</button><br />'; $this->content->text .= '</fieldset></form>'; $this->content->text .= '</div>'; } }
$demostudentuser = get_complete_user_data('username', $demostudentusername); if (!$demostudentuser) { // DemoStudent account does not exist yet. Let's create it. // Test this by deleting your DemoStudent account from mdl_user DB table. $demostudentuser = create_demostudent_account($demostudentusername); if (!$demostudentuser) { // Test this by setting $demostudentuser to false. print get_string('errorfailedtocreateuser', 'block_demostudent', $demostudentusername); print get_string('returntocourse', 'block_demostudent', $url); exit; } } // Else DemoStudent user already exists for this instructor. $demostudentid = $demostudentuser->id; // Enrol DemoStudent in this course (as a demostudent). $demostudentroleid = get_roleid_by_roleshortname('demostudent'); if (!$demostudentroleid) { print get_string('warningmissingrole', 'block_demostudent'); } if (!is_enrolled($coursecontext, $demostudentuser)) { if (!enrol_try_internal_enrol($courseid, $demostudentid, $demostudentroleid)) { // Enrolment failed. Haven't seen this happen yet. trigger_error('DemoStudent user enrolment failed!<br>Parameters:<br>' . '<br> url=' . var_export($url, true) . '<br> viewrole=' . var_export($viewrole, true) . '<br> courseid=' . var_export($courseid, true) . '<br>Globals:' . '<br> userid=' . var_export($userid, true) . '<br> username='******'<br>Locals:' . '<br> demostudentid=' . var_export($demostudentid, true) . '<br> demostudentroleid=' . var_export($demostudentroleid, true) . '<br> coursecontext=' . var_export($coursecontext, true) . '<br> demostudentuser='******'s possible that the function failed, but that the user is nevertheless enrolled. // If the user is not enrolled, a later check will take care of things. } } // Aditionally, if we are switching from 'instructor' view (i.e., not in 'firstuse' mode), switch user. if ($viewrole == 'instructor') { if (is_siteadmin($demostudentid)) { // This should never happen. Haven't seen it happen yet.