Commit | Line | Data |
---|---|---|
f9a0ea69 | 1 | <?php // $Id$ |
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 | ||
1242eb8f | 5 | if (!isset($filtertype)) { |
6 | $filtertype = ''; | |
7 | } | |
8 | if (!isset($filterselect)) { | |
9 | $filterselect = ''; | |
10 | } | |
f9a0ea69 | 11 | |
57f2e16c | 12 | //make sure everything is cleaned properly |
13 | $filtertype = clean_param($filtertype, PARAM_ALPHA); | |
14 | $filterselect = clean_param($filterselect, PARAM_INT); | |
15 | ||
f9a0ea69 | 16 | if (empty($currenttab) or empty($user) or empty($course)) { |
1242eb8f | 17 | //error('You cannot call this script in that way'); |
f9a0ea69 | 18 | } |
19 | ||
1242eb8f | 20 | if (($filtertype == 'site' && $filterselect) || ($filtertype=='user' && $filterselect)) { |
21 | $user = get_record('user','id',$filterselect); | |
22 | } | |
f9a0ea69 | 23 | |
24 | $inactive = NULL; | |
e1ddfa6b | 25 | $activetwo = NULL; |
f9a0ea69 | 26 | $toprow = array(); |
27 | ||
1242eb8f | 28 | /************************************** |
29 | * Site Level participation or Blogs * | |
30 | **************************************/ | |
31 | if ($filtertype == 'site') { | |
f9a0ea69 | 32 | |
1242eb8f | 33 | $site = get_site(); |
6ba65fa0 | 34 | print_heading(format_string($site->fullname)); |
1242eb8f | 35 | |
36 | if ($CFG->bloglevel >= 4) { | |
bd574b2a | 37 | if (has_capability('moodle/course:viewparticipants', get_context_instance(CONTEXT_SYSTEM, SITEID))) { |
adc7b679 | 38 | $toprow[] = new tabobject('participants', $CFG->wwwroot.'/user/index.php?id='.SITEID, |
39 | get_string('participants')); | |
40 | } | |
f9a0ea69 | 41 | |
1242eb8f | 42 | $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?filtertype=site&', |
7b07bc55 | 43 | get_string('blogs','blog')); |
1242eb8f | 44 | } |
f9a0ea69 | 45 | |
1242eb8f | 46 | /************************************** |
47 | * Course Level participation or Blogs * | |
48 | **************************************/ | |
49 | } else if ($filtertype == 'course' && $filterselect) { | |
f9a0ea69 | 50 | |
1242eb8f | 51 | $course = get_record('course','id',$filterselect); |
6ba65fa0 | 52 | print_heading(format_string($course->fullname)); |
f9a0ea69 | 53 | |
1242eb8f | 54 | if ($CFG->bloglevel >= 3) { |
55 | ||
56 | $toprow[] = new tabobject('participants', $CFG->wwwroot.'/user/index.php?id='.$filterselect.'&group=0', | |
57 | get_string('participants')); //the groupid hack is necessary, otherwise the group in the session willbe used | |
58 | ||
7b07bc55 | 59 | $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?filtertype=course&filterselect='.$filterselect, get_string('blogs','blog')); |
f9a0ea69 | 60 | } |
f9a0ea69 | 61 | |
1242eb8f | 62 | /************************************** |
63 | * Group Level participation or Blogs * | |
64 | **************************************/ | |
65 | } else if ($filtertype == 'group' && $filterselect) { | |
f9a0ea69 | 66 | |
f3f7610c ML |
67 | $group_name = groups_get_group_name($filterselect); //TODO: |
68 | print_heading($group_name); | |
f9a0ea69 | 69 | |
1242eb8f | 70 | if ($CFG->bloglevel >= 2) { |
f9a0ea69 | 71 | |
1242eb8f | 72 | $toprow[] = new tabobject('participants', $CFG->wwwroot.'/user/index.php?id='.$course->id.'&group='.$filterselect, |
73 | get_string('participants')); | |
f9a0ea69 | 74 | |
1242eb8f | 75 | |
7b07bc55 | 76 | $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?filtertype=group&filterselect='.$filterselect, get_string('blogs','blog')); |
1242eb8f | 77 | } |
f9a0ea69 | 78 | |
1242eb8f | 79 | /************************************** |
80 | * User Level participation or Blogs * | |
81 | **************************************/ | |
82 | } else { | |
83 | if (isset($userid)) { | |
84 | $user = get_record('user','id', $userid); | |
85 | } | |
d02eeded | 86 | print_heading(fullname($user, has_capability('moodle/site:viewfullnames', get_context_instance(CONTEXT_COURSE, $course->id)))); |
7077ca83 | 87 | |
88 | $toprow[] = new tabobject('profile', $CFG->wwwroot.'/user/view.php?id='.$user->id.'&course='.$course->id, get_string('profile')); | |
f9a0ea69 | 89 | |
b0c90e6e | 90 | $systemcontext = get_context_instance(CONTEXT_SYSTEM); |
e96f2a77 | 91 | $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); |
4b10f08b | 92 | $personalcontext = get_context_instance(CONTEXT_USER, $user->id); |
4801fe93 | 93 | |
1242eb8f | 94 | /// Can only edit profile if it belongs to user or current user is admin and not editing primary admin |
95 | ||
ad6226fb | 96 | $mainadmin = get_admin(); |
56f52742 | 97 | |
b0c90e6e | 98 | if(empty($CFG->loginhttps)) { |
99 | $wwwroot = $CFG->wwwroot; | |
100 | } else { | |
101 | $wwwroot = str_replace('http:','https:',$CFG->wwwroot); | |
102 | } | |
103 | ||
104 | $edittype = 'none'; | |
1cb3da36 | 105 | if (isguestuser($user)) { |
106 | // guest account can not be edited | |
107 | ||
108 | } else if (is_mnet_remote_user($user)) { | |
56f52742 | 109 | // cannot edit remote users |
1242eb8f | 110 | |
1cb3da36 | 111 | } else if (isguestuser() or !isloggedin()) { |
112 | // guests and not logged in can not edit own profile | |
113 | ||
b0c90e6e | 114 | } else if ($USER->id == $user->id) { |
115 | if (has_capability('moodle/user:update', $systemcontext)) { | |
116 | $edittype = 'advanced'; | |
1cb3da36 | 117 | } else if (has_capability('moodle/user:editownprofile', $systemcontext)) { |
b0c90e6e | 118 | $edittype = 'normal'; |
f3221af9 | 119 | } |
b0c90e6e | 120 | |
121 | } else if ($user->id != $mainadmin->id) { | |
122 | //no editing of primary admin! | |
123 | if (has_capability('moodle/user:update', $systemcontext)) { | |
124 | $edittype = 'advanced'; | |
125 | } else if (has_capability('moodle/user:editprofile', $personalcontext)) { | |
126 | //teachers, parents, etc. | |
127 | $edittype = 'normal'; | |
ad6226fb | 128 | } |
f9a0ea69 | 129 | } |
130 | ||
b0c90e6e | 131 | if ($edittype == 'advanced') { |
132 | $toprow[] = new tabobject('editprofile', $wwwroot.'/user/editadvanced.php?id='.$user->id.'&course='.$course->id, get_string('editmyprofile')); | |
133 | } else if ($edittype == 'normal') { | |
134 | $toprow[] = new tabobject('editprofile', $wwwroot.'/user/edit.php?id='.$user->id.'&course='.$course->id, get_string('editmyprofile')); | |
135 | } | |
136 | ||
1242eb8f | 137 | /// Everyone can see posts for this user |
b3e900ce | 138 | |
139 | /// add logic to see course read posts permission | |
d78596d8 | 140 | if (has_capability('moodle/user:readuserposts', $personalcontext) || has_capability('mod/forum:viewdiscussion', get_context_instance(CONTEXT_COURSE, $course->id))) { |
b3e900ce | 141 | $toprow[] = new tabobject('forumposts', $CFG->wwwroot.'/mod/forum/user.php?id='.$user->id.'&course='.$course->id, |
142 | get_string('forumposts', 'forum')); | |
1242eb8f | 143 | |
b3e900ce | 144 | if (in_array($currenttab, array('posts', 'discussions'))) { |
145 | $inactive = array('forumposts'); | |
146 | $activetwo = array('forumposts'); | |
1242eb8f | 147 | |
b3e900ce | 148 | $secondrow = array(); |
149 | $secondrow[] = new tabobject('posts', $CFG->wwwroot.'/mod/forum/user.php?course='.$course->id. | |
1242eb8f | 150 | '&id='.$user->id.'&mode=posts', get_string('posts', 'forum')); |
b3e900ce | 151 | $secondrow[] = new tabobject('discussions', $CFG->wwwroot.'/mod/forum/user.php?course='.$course->id. |
3f7353c5 | 152 | '&id='.$user->id.'&mode=discussions', get_string('discussions', 'forum')); |
b3e900ce | 153 | } |
f9a0ea69 | 154 | |
b3e900ce | 155 | } |
e96f2a77 | 156 | |
157 | /// Personal blog entries tab | |
0c939d6c | 158 | require_once($CFG->dirroot.'/blog/lib.php'); |
159 | if ($CFG->bloglevel >= BLOG_USER_LEVEL and // blogs must be enabled | |
160 | (has_capability('moodle/user:readuserblogs', $personalcontext) // can review posts (parents etc) | |
b0c90e6e | 161 | or has_capability('moodle/blog:manageentries', $systemcontext) // entry manager can see all posts |
162 | or ($user->id == $USER->id and has_capability('moodle/blog:create', $systemcontext)) // viewing self | |
163 | or (has_capability('moodle/blog:view', $systemcontext) or has_capability('moodle/blog:view', $coursecontext)) | |
0c939d6c | 164 | ) // able to read blogs in site or course context |
165 | ) { //end if | |
e96f2a77 | 166 | |
167 | $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?userid='.$user->id.'&courseid='.$course->id, get_string('blog', 'blog')); | |
1242eb8f | 168 | } |
1242eb8f | 169 | |
170 | /// Current user must be teacher of the course or the course allows user to view their reports | |
7e2d7c92 | 171 | |
172 | //print_object($course); | |
173 | //print_object($user); | |
b3e900ce | 174 | |
175 | // add in logic to check course read report | |
1845e470 | 176 | if (has_capability('moodle/user:viewuseractivitiesreport', $personalcontext) || ($course->showreports and $USER->id == $user->id) || has_capability('moodle/user:viewuseractivitiesreport', $coursecontext)) { |
1242eb8f | 177 | |
178 | $toprow[] = new tabobject('reports', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
179 | '&user='.$user->id.'&mode=outline', get_string('activityreports')); | |
180 | ||
7e2d7c92 | 181 | if (in_array($currenttab, array('outline', 'complete', 'todaylogs', 'alllogs', 'stats', 'grade'))) { |
1242eb8f | 182 | $inactive = array('reports'); |
183 | $activetwo = array('reports'); | |
184 | ||
185 | $secondrow = array(); | |
186 | $secondrow[] = new tabobject('outline', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
187 | '&user='.$user->id.'&mode=outline', get_string('outlinereport')); | |
188 | $secondrow[] = new tabobject('complete', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
189 | '&user='.$user->id.'&mode=complete', get_string('completereport')); | |
190 | $secondrow[] = new tabobject('todaylogs', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
191 | '&user='.$user->id.'&mode=todaylogs', get_string('todaylogs')); | |
192 | $secondrow[] = new tabobject('alllogs', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
193 | '&user='.$user->id.'&mode=alllogs', get_string('alllogs')); | |
194 | if (!empty($CFG->enablestats)) { | |
195 | $secondrow[] = new tabobject('stats',$CFG->wwwroot.'/course/user.php?id='.$course->id. | |
196 | '&user='.$user->id.'&mode=stats',get_string('stats')); | |
197 | } | |
7e2d7c92 | 198 | |
f9c471df | 199 | if ($course->showgrades) { |
200 | $secondrow[] = new tabobject('grade', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
7e2d7c92 | 201 | '&user='.$user->id.'&mode=grade', get_string('grade')); |
f9c471df | 202 | } |
7e2d7c92 | 203 | |
1242eb8f | 204 | } |
205 | ||
206 | } | |
207 | ||
208 | } //close last bracket (individual tags) | |
209 | ||
7e2d7c92 | 210 | |
211 | /// this needs permission checkings | |
0a8a95c9 | 212 | |
fcade7d0 | 213 | |
214 | 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 | |
215 | $usercontext = get_context_instance(CONTEXT_USER, $user->id); | |
216 | if (has_capability('moodle/role:assign',$usercontext)) { | |
217 | $toprow[] = new tabobject('roles', $CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.$usercontext->id.'&userid='.$user->id.'&courseid='.$course->id | |
218 | ,get_string('roles')); | |
219 | ||
220 | if (in_array($currenttab, array('assign', 'override'))) { | |
221 | $inactive = array('roles'); | |
222 | $activetwo = array('roles'); | |
223 | ||
224 | $secondrow = array(); | |
225 | $secondrow[] = new tabobject('assign', $CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.$usercontext->id.'&userid='.$user->id.'&courseid='.$course->id | |
226 | ,get_string('assignroles', 'role')); | |
227 | $secondrow[] = new tabobject('override', $CFG->wwwroot.'/'.$CFG->admin.'/roles/override.php?contextid='.$usercontext->id.'&userid='.$user->id.'&courseid='.$course->id | |
228 | ,get_string('overrideroles', 'role')); | |
229 | ||
230 | } | |
0a8a95c9 | 231 | } |
232 | } | |
f9a0ea69 | 233 | /// Add second row to display if there is one |
234 | ||
235 | if (!empty($secondrow)) { | |
236 | $tabs = array($toprow, $secondrow); | |
237 | } else { | |
238 | $tabs = array($toprow); | |
239 | } | |
240 | ||
f9a0ea69 | 241 | /// Print out the tabs and continue! |
242 | ||
e1ddfa6b | 243 | print_tabs($tabs, $currenttab, $inactive, $activetwo); |
f9a0ea69 | 244 | |
245 | ?> |