| [ Index ] |
PHP Cross Reference of Moodle 1.9.3 [Build 15-Oct-2008] |
[Summary view] [Print] [Text view]
1 <?php // $Id: tabs.php,v 1.43.2.4 2008/04/18 03:10:31 dongsheng Exp $ 2 /// This file to be included so we can assume config.php has already been included. 3 /// We also assume that $user, $course, $currenttab have been set 4 5 if (!isset($filtertype)) { 6 $filtertype = ''; 7 } 8 if (!isset($filterselect)) { 9 $filterselect = ''; 10 } 11 12 //make sure everything is cleaned properly 13 $filtertype = clean_param($filtertype, PARAM_ALPHA); 14 $filterselect = clean_param($filterselect, PARAM_INT); 15 16 if (empty($currenttab) or empty($user) or empty($course)) { 17 //error('You cannot call this script in that way'); 18 } 19 20 if (($filtertype == 'site' && $filterselect) || ($filtertype=='user' && $filterselect)) { 21 $user = get_record('user','id',$filterselect); 22 } 23 24 $inactive = NULL; 25 $activetwo = NULL; 26 $toprow = array(); 27 28 /************************************** 29 * Site Level participation or Blogs * 30 **************************************/ 31 if ($filtertype == 'site') { 32 33 $site = get_site(); 34 print_heading(format_string($site->fullname)); 35 36 if ($CFG->bloglevel >= 4) { 37 if (has_capability('moodle/site:viewparticipants', get_context_instance(CONTEXT_SYSTEM))) { 38 $toprow[] = new tabobject('participants', $CFG->wwwroot.'/user/index.php?id='.SITEID, 39 get_string('participants')); 40 } 41 42 $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?filtertype=site&', 43 get_string('blogs','blog')); 44 } 45 46 /************************************** 47 * Course Level participation or Blogs * 48 **************************************/ 49 } else if ($filtertype == 'course' && $filterselect) { 50 51 $course = get_record('course','id',$filterselect); 52 $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); 53 print_heading(format_string($course->fullname)); 54 55 $toprow[] = new tabobject('participants', $CFG->wwwroot.'/user/index.php?id='.$filterselect, 56 get_string('participants')); 57 58 if ($CFG->bloglevel >= 3) { 59 $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?filtertype=course&filterselect='.$filterselect, get_string('blogs','blog')); 60 } 61 62 if (has_capability('moodle/notes:manage', $coursecontext) || has_capability('moodle/notes:view', $coursecontext)) { 63 $toprow[] = new tabobject('notes', $CFG->wwwroot.'/notes/index.php?filtertype=course&filterselect=' . $filterselect, get_string('notes', 'notes')); 64 } 65 66 /************************************** 67 * Group Level participation or Blogs * 68 **************************************/ 69 } else if ($filtertype == 'group' && $filterselect) { 70 71 $group_name = groups_get_group_name($filterselect); 72 print_heading($group_name); 73 74 if ($CFG->bloglevel >= 2) { 75 76 $toprow[] = new tabobject('participants', $CFG->wwwroot.'/user/index.php?id='.$course->id.'&group='.$filterselect, 77 get_string('participants')); 78 79 80 $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?filtertype=group&filterselect='.$filterselect, get_string('blogs','blog')); 81 } 82 83 /************************************** 84 * User Level participation or Blogs * 85 **************************************/ 86 } else { 87 if (isset($userid)) { 88 $user = get_record('user','id', $userid); 89 } 90 print_heading(fullname($user, has_capability('moodle/site:viewfullnames', get_context_instance(CONTEXT_COURSE, $course->id)))); 91 92 $systemcontext = get_context_instance(CONTEXT_SYSTEM); 93 $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); 94 $personalcontext = get_context_instance(CONTEXT_USER, $user->id); 95 96 if ($user->id == $USER->id || has_capability('moodle/user:viewdetails', $coursecontext) || has_capability('moodle/user:viewdetails', $personalcontext) ) { 97 $toprow[] = new tabobject('profile', $CFG->wwwroot.'/user/view.php?id='.$user->id.'&course='.$course->id, get_string('profile')); 98 } 99 100 101 /// Can only edit profile if it belongs to user or current user is admin and not editing primary admin 102 103 if(empty($CFG->loginhttps)) { 104 $wwwroot = $CFG->wwwroot; 105 } else { 106 $wwwroot = str_replace('http:','https:',$CFG->wwwroot); 107 } 108 109 $edittype = 'none'; 110 if (isguestuser($user)) { 111 // guest account can not be edited 112 113 } else if (is_mnet_remote_user($user)) { 114 // cannot edit remote users 115 116 } else if (isguestuser() or !isloggedin()) { 117 // guests and not logged in can not edit own profile 118 119 } else if ($USER->id == $user->id) { 120 if (has_capability('moodle/user:update', $systemcontext)) { 121 $edittype = 'advanced'; 122 } else if (has_capability('moodle/user:editownprofile', $systemcontext)) { 123 $edittype = 'normal'; 124 } 125 126 } else { 127 if (has_capability('moodle/user:update', $systemcontext) and !is_primary_admin($user->id)){ 128 $edittype = 'advanced'; 129 } else if (has_capability('moodle/user:editprofile', $personalcontext) and !is_primary_admin($user->id)){ 130 //teachers, parents, etc. 131 $edittype = 'normal'; 132 } 133 } 134 135 if ($edittype == 'advanced') { 136 $toprow[] = new tabobject('editprofile', $wwwroot.'/user/editadvanced.php?id='.$user->id.'&course='.$course->id, get_string('editmyprofile')); 137 } else if ($edittype == 'normal') { 138 $toprow[] = new tabobject('editprofile', $wwwroot.'/user/edit.php?id='.$user->id.'&course='.$course->id, get_string('editmyprofile')); 139 } 140 141 /// Everyone can see posts for this user 142 143 /// add logic to see course read posts permission 144 if (has_capability('moodle/user:readuserposts', $personalcontext) || has_capability('mod/forum:viewdiscussion', get_context_instance(CONTEXT_COURSE, $course->id))) { 145 $toprow[] = new tabobject('forumposts', $CFG->wwwroot.'/mod/forum/user.php?id='.$user->id.'&course='.$course->id, 146 get_string('forumposts', 'forum')); 147 148 if (in_array($currenttab, array('posts', 'discussions'))) { 149 $inactive = array('forumposts'); 150 $activetwo = array('forumposts'); 151 152 $secondrow = array(); 153 $secondrow[] = new tabobject('posts', $CFG->wwwroot.'/mod/forum/user.php?course='.$course->id. 154 '&id='.$user->id.'&mode=posts', get_string('posts', 'forum')); 155 $secondrow[] = new tabobject('discussions', $CFG->wwwroot.'/mod/forum/user.php?course='.$course->id. 156 '&id='.$user->id.'&mode=discussions', get_string('discussions', 'forum')); 157 } 158 159 } 160 161 /// Personal blog entries tab 162 require_once($CFG->dirroot.'/blog/lib.php'); 163 if ($CFG->bloglevel >= BLOG_USER_LEVEL and // blogs must be enabled 164 (has_capability('moodle/user:readuserblogs', $personalcontext) // can review posts (parents etc) 165 or has_capability('moodle/blog:manageentries', $systemcontext) // entry manager can see all posts 166 or ($user->id == $USER->id and has_capability('moodle/blog:create', $systemcontext)) // viewing self 167 or (has_capability('moodle/blog:view', $systemcontext) or has_capability('moodle/blog:view', $coursecontext)) 168 ) // able to read blogs in site or course context 169 ) { //end if 170 171 $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?userid='.$user->id.'&courseid='.$course->id, get_string('blog', 'blog')); 172 } 173 174 if (has_capability('moodle/notes:manage', $coursecontext) || has_capability('moodle/notes:view', $coursecontext)) { 175 $toprow[] = new tabobject('notes', $CFG->wwwroot.'/notes/index.php?course='.$course->id . '&user=' . $user->id, get_string('notes', 'notes')); 176 } 177 178 /// Current user must be teacher of the course or the course allows user to view their reports 179 180 //print_object($course); 181 //print_object($user); 182 183 // add in logic to check course read report 184 if (has_capability('moodle/user:viewuseractivitiesreport', $personalcontext) || ($course->showreports and $USER->id == $user->id) || has_capability('moodle/user:viewuseractivitiesreport', $coursecontext)) { 185 186 $toprow[] = new tabobject('reports', $CFG->wwwroot.'/course/user.php?id='.$course->id. 187 '&user='.$user->id.'&mode=outline', get_string('activityreports')); 188 189 if (in_array($currenttab, array('outline', 'complete', 'todaylogs', 'alllogs', 'stats', 'grade'))) { 190 $inactive = array('reports'); 191 $activetwo = array('reports'); 192 193 $secondrow = array(); 194 $secondrow[] = new tabobject('outline', $CFG->wwwroot.'/course/user.php?id='.$course->id. 195 '&user='.$user->id.'&mode=outline', get_string('outlinereport')); 196 $secondrow[] = new tabobject('complete', $CFG->wwwroot.'/course/user.php?id='.$course->id. 197 '&user='.$user->id.'&mode=complete', get_string('completereport')); 198 $secondrow[] = new tabobject('todaylogs', $CFG->wwwroot.'/course/user.php?id='.$course->id. 199 '&user='.$user->id.'&mode=todaylogs', get_string('todaylogs')); 200 $secondrow[] = new tabobject('alllogs', $CFG->wwwroot.'/course/user.php?id='.$course->id. 201 '&user='.$user->id.'&mode=alllogs', get_string('alllogs')); 202 if (!empty($CFG->enablestats)) { 203 $secondrow[] = new tabobject('stats',$CFG->wwwroot.'/course/user.php?id='.$course->id. 204 '&user='.$user->id.'&mode=stats',get_string('stats')); 205 } 206 207 if ($course->showgrades) { 208 $secondrow[] = new tabobject('grade', $CFG->wwwroot.'/course/user.php?id='.$course->id. 209 '&user='.$user->id.'&mode=grade', get_string('grade')); 210 } 211 212 } 213 214 } 215 216 } //close last bracket (individual tags) 217 218 219 /// this needs permission checkings 220 221 222 if (!empty($showroles) and !empty($user)) { // this variable controls whether this roles is showed, or not, so only user/view page should set this flag 223 $usercontext = get_context_instance(CONTEXT_USER, $user->id); 224 if (has_capability('moodle/role:assign',$usercontext)) { 225 $toprow[] = new tabobject('roles', $CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.$usercontext->id.'&userid='.$user->id.'&courseid='.$course->id 226 ,get_string('roles')); 227 228 if (in_array($currenttab, array('assign', 'override'))) { 229 $inactive = array('roles'); 230 $activetwo = array('roles'); 231 232 $secondrow = array(); 233 $secondrow[] = new tabobject('assign', $CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.$usercontext->id.'&userid='.$user->id.'&courseid='.$course->id 234 ,get_string('localroles', 'role')); 235 $secondrow[] = new tabobject('override', $CFG->wwwroot.'/'.$CFG->admin.'/roles/override.php?contextid='.$usercontext->id.'&userid='.$user->id.'&courseid='.$course->id 236 ,get_string('overridepermissions', 'role')); 237 238 } 239 } 240 } 241 /// Add second row to display if there is one 242 243 if (!empty($secondrow)) { 244 $tabs = array($toprow, $secondrow); 245 } else { 246 $tabs = array($toprow); 247 } 248 249 if ($currenttab == 'editprofile' && ($user->id == $USER->id) && user_not_fully_set_up($USER)) { 250 /// We're being forced here to fix profile 251 notify(get_string('moreprofileinfoneeded')); 252 } else { 253 /// Print out the tabs and continue! 254 print_tabs($tabs, $currenttab, $inactive, $activetwo); 255 } 256 257 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed Jan 14 11:33:29 2009 | Cross-referenced by PHPXref 0.7 |