From f9c471dfd99f7c39173e85ce20713c9f094022b1 Mon Sep 17 00:00:00 2001 From: moodler Date: Tue, 31 Oct 2006 15:08:22 +0000 Subject: [PATCH] Merged MDL-7150 fixes (don't try to show grades when there aren't any) --- course/user.php | 6 ++++-- grade/lib.php | 15 +++++++++------ user/tabs.php | 6 +++--- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/course/user.php b/course/user.php index 3b7329b552..5ad148a3f0 100644 --- a/course/user.php +++ b/course/user.php @@ -69,8 +69,10 @@ switch ($mode) { case "grade": $course = get_record('course', 'id', required_param('id', PARAM_INT)); - require_once($CFG->dirroot.'/grade/lib.php'); - print_student_grade($user, $course); + if (!empty($course->showgrades)) { + require_once($CFG->dirroot.'/grade/lib.php'); + print_student_grade($user, $course); + } break; case "todaylogs" : diff --git a/grade/lib.php b/grade/lib.php index 30c9b7f0a5..0e4d5fe5c6 100644 --- a/grade/lib.php +++ b/grade/lib.php @@ -2959,26 +2959,29 @@ function print_student_grade($user, $course) { $sectionmods = explode(",", $section->sequence); foreach ($sectionmods as $sectionmod) { $mod = $mods[$sectionmod]; - $instance = get_record("$mod->modname", "id", "$mod->instance"); + if (empty($mod->modname)) { + continue; // Just in case, see MDL-7150 + } + $instance = get_record($mod->modname, 'id', $mod->instance); $libfile = "$CFG->dirroot/mod/$mod->modname/lib.php"; if (file_exists($libfile)) { require_once($libfile); - $gradefunction = $mod->modname."_grades"; + $gradefunction = $mod->modname.'_grades'; if (function_exists($gradefunction)) { // Skip modules without grade function if ($modgrades = $gradefunction($mod->instance)) { if (!empty($modgrades->maxgrade)) { if ($mod->visible) { - $maxgrade = "$modgrades->maxgrade"; + $maxgrade = $modgrades->maxgrade; } else { - $maxgrade = "$modgrades->maxgrade"; + $maxgrade = $modgrades->maxgrade; } } else { - $maxgrade = ""; + $maxgrade = ''; } if ($maxgrade) { - echo "
"; + echo '
'; if (!empty($modgrades->grades[$user->id])) { $currentgrade = $modgrades->grades[$user->id]; echo "$mod->modfullname: ".format_string($instance->name,true)." - $currentgrade/$maxgrade"; } else { diff --git a/user/tabs.php b/user/tabs.php index f79ae7f8ce..5aef17547c 100644 --- a/user/tabs.php +++ b/user/tabs.php @@ -170,10 +170,10 @@ '&user='.$user->id.'&mode=stats',get_string('stats')); } - // needs permission checking!!! - - $secondrow[] = new tabobject('grade', $CFG->wwwroot.'/course/user.php?id='.$course->id. + if ($course->showgrades) { + $secondrow[] = new tabobject('grade', $CFG->wwwroot.'/course/user.php?id='.$course->id. '&user='.$user->id.'&mode=grade', get_string('grade')); + } } -- 2.39.5