From 0150c561c5d362186663a90e6a966fe088497aa2 Mon Sep 17 00:00:00 2001 From: toyomoyo Date: Thu, 22 Mar 2007 08:11:30 +0000 Subject: [PATCH] fix for MDL-8966, customizable role names --- course/edit.php | 35 +++++++++++++++++++++++++++++++++++ course/edit_form.php | 15 +++++++++++++++ course/lib.php | 2 +- lib/accesslib.php | 12 ++++++++++++ user/index.php | 4 ++-- 5 files changed, 65 insertions(+), 3 deletions(-) diff --git a/course/edit.php b/course/edit.php index 98b31adea1e..8e0b8da3d27 100644 --- a/course/edit.php +++ b/course/edit.php @@ -218,6 +218,41 @@ function update_course($data) { $page = page_create_object(PAGE_COURSE_VIEW, $course->id); blocks_remove_inappropriate($page); + // put custom role names into db + $context = get_context_instance(CONTEXT_COURSE, $course->id); + + foreach ($data as $dname => $dvalue) { + + // is this the right param? + $dvalue = clean_param($dvalue, PARAM_NOTAGS); + + if (!strstr($dname, 'role_')) { + continue; + } + + $dt = explode('_', $dname); + $roleid = $dt[1]; + // make up our mind whether we want to delete, update or insert + + if (empty($dvalue)) { + + delete_records('role_names', 'contextid', $context->id, 'roleid', $roleid); + + } else if ($t = get_record('role_names', 'contextid', $context->id, 'roleid', $roleid)) { + + $t->text = $dvalue; + update_record('role_names', $t); + + } else { + + $t->contextid = $context->id; + $t->roleid = $roleid; + $t->text = $dvalue; + insert_record('role_names', $t); + } + + } + redirect($CFG->wwwroot."/course/view.php?id=$course->id"); } else { diff --git a/course/edit_form.php b/course/edit_form.php index 6a5d1d2c883..cd71c8aea1b 100644 --- a/course/edit_form.php +++ b/course/edit_form.php @@ -336,6 +336,21 @@ class course_edit_form extends moodleform { } $mform->setType('restrictmodules', PARAM_INT); +/// customizable role names in this course +//-------------------------------------------------------------------------------- + $mform->addElement('header','', get_string('roles')); + + if ($roles = get_records('role')) { + foreach ($roles as $role) { + $mform->addElement('text', 'role_'.$role->id, $role->name); + if ($coursecontext) { + if ($rolename = get_record('role_names', 'roleid', $role->id, 'contextid', $coursecontext->id)) { + $mform->setDefault('role_'.$role->id, $rolename->text); + } + } + } + } + //-------------------------------------------------------------------------------- $this->add_action_buttons(); //-------------------------------------------------------------------------------- diff --git a/course/lib.php b/course/lib.php index af2fc1caa9e..3b393056a28 100644 --- a/course/lib.php +++ b/course/lib.php @@ -1801,7 +1801,7 @@ function print_course($course) { if ($users = get_role_users($roleid, $context, true, '', 'u.lastname ASC', true)) { foreach ($users as $teacher) { $fullname = fullname($teacher, has_capability('moodle/site:viewfullnames', $context)); - $namesarray[] = format_string($role->name).': wwwroot.'/user/view.php?id='. $teacher->id.'&course='.SITEID.'">'.$fullname.''; } } diff --git a/lib/accesslib.php b/lib/accesslib.php index c57551b10cc..09e849eef47 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -3881,4 +3881,16 @@ function build_context_rel() { $db->debug = $savedb; } + + +// gets the custom name of the role in course +// TODO: proper documentation +function role_get_name($role, $context) { + + if ($r = get_record('role_names','roleid', $role->id,'contextid', $context->id)) { + return format_string($r->text); + } else { + return format_string($role->name); + } +} ?> diff --git a/user/index.php b/user/index.php index 88917dee5d1..3bcc2a25d9a 100644 --- a/user/index.php +++ b/user/index.php @@ -61,7 +61,7 @@ unset($roles[$role->id]); continue; } - $rolenames[$role->id] = strip_tags(format_string($role->name)); // Used in menus etc later on + $rolenames[$role->id] = strip_tags(role_get_name($role, $context)); // Used in menus etc later on } } @@ -402,7 +402,7 @@ error('That role does not exist'); } $a->number = $totalcount; - $a->role = $currentrole->name; + $a->role = role_get_name($currentrole, $context); $heading = get_string('xuserswiththerole', 'role', $a); if (user_can_assign($context, $roleid)) { $heading .= ' ';