Merge branch 'wip-MDL-59411-32' of git://github.com/marinaglancy/moodle into MOODLE_32_STABLE

This commit is contained in:
David Monllao
2017-07-17 15:48:28 +02:00
2 changed files with 33 additions and 7 deletions
+28 -1
View File
@@ -908,6 +908,34 @@ class core_course_renderer extends plugin_renderer_base {
return $output;
}
/**
* Message displayed to the user when they try to access unavailable activity following URL
*
* This method is a very simplified version of {@link course_section_cm()} to be part of the error
* notification only. It also does not check if module is visible on course page or not.
*
* The message will be displayed inside notification!
*
* @param cm_info $cm
* @return string
*/
public function course_section_cm_unavilable_error_message(cm_info $cm) {
if ($cm->uservisible) {
return null;
}
if (!$cm->availableinfo) {
return get_string('activityiscurrentlyhidden');
}
$altname = get_accesshide(' ' . $cm->modfullname);
$name = html_writer::empty_tag('img', array('src' => $cm->get_icon_url(),
'class' => 'iconlarge activityicon', 'alt' => ' ', 'role' => 'presentation')) .
html_writer::tag('span', ' '.$cm->get_formatted_name() . $altname, array('class' => 'instancename'));
$formattedinfo = \core_availability\info::format_info($cm->availableinfo, $cm->get_course());
return html_writer::div($name, 'activityinstance-error') .
html_writer::div($formattedinfo, 'availabilityinfo-error');
}
/**
* Renders HTML to display a list of course modules in a course section
* Also displays "move here" controls in Javascript-disabled mode
@@ -2036,7 +2064,6 @@ class core_course_renderer extends plugin_renderer_base {
set_attributes(array('class' => 'frontpage-category-names'));
return $this->coursecat_tree($chelper, coursecat::get(0));
}
}
/**
+5 -6
View File
@@ -2898,12 +2898,11 @@ function require_login($courseorid = null, $autologinguest = true, $cm = null, $
if ($preventredirect) {
throw new require_login_exception('Activity is hidden');
}
if ($course->id != SITEID) {
$url = new moodle_url('/course/view.php', array('id' => $course->id));
} else {
$url = new moodle_url('/');
}
redirect($url, get_string('activityiscurrentlyhidden'));
// Get the error message that activity is not available and why (if explanation can be shown to the user).
$PAGE->set_course($course);
$renderer = $PAGE->get_renderer('course');
$message = $renderer->course_section_cm_unavilable_error_message($cm);
redirect(course_get_url($course), $message, null, \core\output\notification::NOTIFY_ERROR);
}
// Set the global $COURSE.