From e8e509865e062f57034596a3f536e31d56f16872 Mon Sep 17 00:00:00 2001 From: sam_marshall Date: Fri, 17 Apr 2009 11:07:59 +0000 Subject: [PATCH] MDL-17816: Changes to the way availability conditions are displayed when viewing course --- course/lib.php | 29 +++++++++++++++++++++++++---- lang/en_utf8/condition.php | 4 ++-- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/course/lib.php b/course/lib.php index 7b4a95d5b7..7f499b0de0 100644 --- a/course/lib.php +++ b/course/lib.php @@ -1454,6 +1454,27 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false, } } + // In some cases the activity is visible to user, but it is + // dimmed. This is done if viewhiddenactivities is true and if: + // 1. the activity is not visible, or + // 2. the activity has dates set which do not include current, or + // 3. the activity has any other conditions set (regardless of whether + // current user meets them) + $canviewhidden = has_capability( + 'moodle/course:viewhiddenactivities', + get_context_instance(CONTEXT_MODULE, $mod->id)); + $accessiblebutdim = false; + if ($canviewhidden) { + $accessiblebutdim = !$mod->visible; + if (!empty($CFG->enableavailability)) { + $accessiblebutdim = $accessiblebutdim || + $mod->availablefrom > time() || + ($mod->availableuntil && $mod->availableuntil < time()) || + count($mod->conditionsgrade) > 0 || + count($mod->conditionscompletion) > 0; + } + } + echo '
  • '; // Unique ID if ($ismoving) { echo 'modname == "label") { - if (!$mod->visible || !$mod->uservisible) { + if ($accessiblebutdim || !$mod->uservisible) { echo '
    '. get_string('hiddenfromstudents').''; } echo format_text($extra, FORMAT_HTML, $labelformatoptions); - if (!$mod->visible || !$mod->uservisible) { + if ($accessiblebutdim || !$mod->uservisible) { echo "
    "; } if (!empty($CFG->enablegroupings) && !empty($mod->groupingid) && has_capability('moodle/course:managegroups', get_context_instance(CONTEXT_COURSE, $course->id))) { @@ -1529,7 +1550,7 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false, // about visibility, without the actual link if ($mod->uservisible) { // Display normal module link - if ($mod->visible) { + if (!$accessiblebutdim) { $linkcss = ''; $accesstext =''; } else { @@ -1668,7 +1689,7 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false, // see the activity itself, or for staff) if (!$mod->uservisible) { echo '
    '.$mod->availableinfo.'
    '; - } else if ($isediting && !empty($CFG->enableavailability)) { + } else if ($canviewhidden && !empty($CFG->enableavailability)) { $ci = new condition_info($mod); $fullinfo = $ci->get_full_information(); if($fullinfo) { diff --git a/lang/en_utf8/condition.php b/lang/en_utf8/condition.php index 4aae29d6f2..f10decf23e 100644 --- a/lang/en_utf8/condition.php +++ b/lang/en_utf8/condition.php @@ -32,6 +32,6 @@ $string['requires_grade_range']='Not available unless you get a particular score $string['showavailability']='Before activity is available'; $string['showavailability_show']='Show activity greyed-out, with restriction information'; $string['showavailability_hide']='Hide activity entirely'; -$string['userrestriction_visible']='Activity conditionally restricted: ‘$a’'; -$string['userrestriction_hidden']='Activity conditionally restricted (completely hidden, no message): ‘$a’'; +$string['userrestriction_visible']='Restricted: ‘$a’'; +$string['userrestriction_hidden']='Restricted (completely hidden, no message): ‘$a’'; ?> -- 2.39.5