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 | |
e96f2a77 | 90 | $sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID); |
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 | |
98 | if (is_mnet_remote_user($user)) { | |
99 | // cannot edit remote users | |
100 | } | |
101 | else if ((!empty($USER->id) and ($USER->id == $user->id) and !isguest()) or | |
afb5b0ae | 102 | ((has_capability('moodle/user:update', $sitecontext) || has_capability('moodle/user:update', $personalcontext)) and ($user->id != $mainadmin->id)) ) { |
1242eb8f | 103 | |
104 | if(empty($CFG->loginhttps)) { | |
105 | $wwwroot = $CFG->wwwroot; | |
106 | } else { | |
2c3432e6 | 107 | $wwwroot = str_replace('http:','https:',$CFG->wwwroot); |
f3221af9 | 108 | } |
afb5b0ae | 109 | if ((has_capability('moodle/user:update', $sitecontext) || has_capability('moodle/user:update', $personalcontext))and ($user->id==$USER->id or $user->id != $mainadmin->id)) { |
ad6226fb | 110 | $toprow[] = new tabobject('editprofile', $wwwroot.'/user/editadvanced.php?id='.$user->id.'&course='.$course->id, get_string('editmyprofile')); |
111 | } else { | |
112 | $toprow[] = new tabobject('editprofile', $wwwroot.'/user/edit.php?id='.$user->id.'&course='.$course->id, get_string('editmyprofile')); | |
113 | } | |
f9a0ea69 | 114 | } |
115 | ||
1242eb8f | 116 | /// Everyone can see posts for this user |
b3e900ce | 117 | |
118 | /// add logic to see course read posts permission | |
d78596d8 | 119 | if (has_capability('moodle/user:readuserposts', $personalcontext) || has_capability('mod/forum:viewdiscussion', get_context_instance(CONTEXT_COURSE, $course->id))) { |
b3e900ce | 120 | $toprow[] = new tabobject('forumposts', $CFG->wwwroot.'/mod/forum/user.php?id='.$user->id.'&course='.$course->id, |
121 | get_string('forumposts', 'forum')); | |
1242eb8f | 122 | |
b3e900ce | 123 | if (in_array($currenttab, array('posts', 'discussions'))) { |
124 | $inactive = array('forumposts'); | |
125 | $activetwo = array('forumposts'); | |
1242eb8f | 126 | |
b3e900ce | 127 | $secondrow = array(); |
128 | $secondrow[] = new tabobject('posts', $CFG->wwwroot.'/mod/forum/user.php?course='.$course->id. | |
1242eb8f | 129 | '&id='.$user->id.'&mode=posts', get_string('posts', 'forum')); |
b3e900ce | 130 | $secondrow[] = new tabobject('discussions', $CFG->wwwroot.'/mod/forum/user.php?course='.$course->id. |
aa91a2f2 | 131 | '&id='.$user->id.'&mode=discussions', get_string('discussionsstartedby', 'forum')); |
b3e900ce | 132 | } |
f9a0ea69 | 133 | |
b3e900ce | 134 | } |
e96f2a77 | 135 | |
136 | /// Personal blog entries tab | |
0c939d6c | 137 | require_once($CFG->dirroot.'/blog/lib.php'); |
138 | if ($CFG->bloglevel >= BLOG_USER_LEVEL and // blogs must be enabled | |
139 | (has_capability('moodle/user:readuserblogs', $personalcontext) // can review posts (parents etc) | |
e96f2a77 | 140 | or has_capability('moodle/blog:manageentries', $sitecontext) // entry manager can see all posts |
141 | or ($user->id == $USER->id and has_capability('moodle/blog:create', $sitecontext)) // viewing self | |
0c939d6c | 142 | or (has_capability('moodle/blog:view', $sitecontext) or has_capability('moodle/blog:view', $coursecontext)) |
143 | ) // able to read blogs in site or course context | |
144 | ) { //end if | |
e96f2a77 | 145 | |
146 | $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?userid='.$user->id.'&courseid='.$course->id, get_string('blog', 'blog')); | |
1242eb8f | 147 | } |
1242eb8f | 148 | |
149 | /// Current user must be teacher of the course or the course allows user to view their reports | |
7e2d7c92 | 150 | |
151 | //print_object($course); | |
152 | //print_object($user); | |
b3e900ce | 153 | |
154 | // add in logic to check course read report | |
0c05b71f | 155 | if (has_capability('moodle/user:viewuseractivitiesreport', $personalcontext) || ($course->showreports and $USER->id == $user->id)) { |
1242eb8f | 156 | |
157 | $toprow[] = new tabobject('reports', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
158 | '&user='.$user->id.'&mode=outline', get_string('activityreports')); | |
159 | ||
7e2d7c92 | 160 | if (in_array($currenttab, array('outline', 'complete', 'todaylogs', 'alllogs', 'stats', 'grade'))) { |
1242eb8f | 161 | $inactive = array('reports'); |
162 | $activetwo = array('reports'); | |
163 | ||
164 | $secondrow = array(); | |
165 | $secondrow[] = new tabobject('outline', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
166 | '&user='.$user->id.'&mode=outline', get_string('outlinereport')); | |
167 | $secondrow[] = new tabobject('complete', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
168 | '&user='.$user->id.'&mode=complete', get_string('completereport')); | |
169 | $secondrow[] = new tabobject('todaylogs', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
170 | '&user='.$user->id.'&mode=todaylogs', get_string('todaylogs')); | |
171 | $secondrow[] = new tabobject('alllogs', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
172 | '&user='.$user->id.'&mode=alllogs', get_string('alllogs')); | |
173 | if (!empty($CFG->enablestats)) { | |
174 | $secondrow[] = new tabobject('stats',$CFG->wwwroot.'/course/user.php?id='.$course->id. | |
175 | '&user='.$user->id.'&mode=stats',get_string('stats')); | |
176 | } | |
7e2d7c92 | 177 | |
f9c471df | 178 | if ($course->showgrades) { |
179 | $secondrow[] = new tabobject('grade', $CFG->wwwroot.'/course/user.php?id='.$course->id. | |
7e2d7c92 | 180 | '&user='.$user->id.'&mode=grade', get_string('grade')); |
f9c471df | 181 | } |
7e2d7c92 | 182 | |
1242eb8f | 183 | } |
184 | ||
185 | } | |
186 | ||
187 | } //close last bracket (individual tags) | |
188 | ||
7e2d7c92 | 189 | |
190 | /// this needs permission checkings | |
0a8a95c9 | 191 | |
fcade7d0 | 192 | |
193 | 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 | |
194 | $usercontext = get_context_instance(CONTEXT_USER, $user->id); | |
195 | if (has_capability('moodle/role:assign',$usercontext)) { | |
196 | $toprow[] = new tabobject('roles', $CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.$usercontext->id.'&userid='.$user->id.'&courseid='.$course->id | |
197 | ,get_string('roles')); | |
198 | ||
199 | if (in_array($currenttab, array('assign', 'override'))) { | |
200 | $inactive = array('roles'); | |
201 | $activetwo = array('roles'); | |
202 | ||
203 | $secondrow = array(); | |
204 | $secondrow[] = new tabobject('assign', $CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.$usercontext->id.'&userid='.$user->id.'&courseid='.$course->id | |
205 | ,get_string('assignroles', 'role')); | |
206 | $secondrow[] = new tabobject('override', $CFG->wwwroot.'/'.$CFG->admin.'/roles/override.php?contextid='.$usercontext->id.'&userid='.$user->id.'&courseid='.$course->id | |
207 | ,get_string('overrideroles', 'role')); | |
208 | ||
209 | } | |
0a8a95c9 | 210 | } |
211 | } | |
f9a0ea69 | 212 | /// Add second row to display if there is one |
213 | ||
214 | if (!empty($secondrow)) { | |
215 | $tabs = array($toprow, $secondrow); | |
216 | } else { | |
217 | $tabs = array($toprow); | |
218 | } | |
219 | ||
f9a0ea69 | 220 | /// Print out the tabs and continue! |
221 | ||
e1ddfa6b | 222 | print_tabs($tabs, $currenttab, $inactive, $activetwo); |
f9a0ea69 | 223 | |
224 | ?> |