2da452f7102baf7e732b9c540af28d92448c7b7f
[moodle.git] / blog / index.php
1 <?php // $Id$
3 /**
4  * file index.php
5  * index page to view blogs. if no blog is specified then site wide entries are shown
6  * if a blog id is specified then the latest entries from that blog are shown
7  */
9 if (!file_exists('../config.php')) {
10     header('Location: ../install.php');
11     die;
12 }
13 require_once('../config.php');
15 require_once($CFG->dirroot .'/blog/lib.php');
16 require_once($CFG->libdir .'/blocklib.php');
18 $id = optional_param('id', 0, PARAM_INT);
19 $limit = optional_param('limit', 0, PARAM_INT);
20 $start = optional_param('formstart', 0, PARAM_INT);
22 $userid = optional_param('userid',0,PARAM_INT);
23 $groupid = optional_param('groupid',0,PARAM_INT);
24 $courseid = optional_param('courseid',0,PARAM_INT);
25 $tag = s(urldecode(optional_param('tag', '', PARAM_NOTAGS)));
26 $tagid = optional_param('tagid', 0, PARAM_INT);
27 $postid = optional_param('postid',0,PARAM_INT);
29 $filtertype = optional_param('filtertype', '', PARAM_ALPHA);
30 $filterselect = optional_param('filterselect', 0, PARAM_INT);
32 /// overwrite filter code here
33 /// the the following code does the rights checkings?
35 if ($filtertype) {
36     switch ($filtertype) {
38         case 'site':
39             if ($filterselect) {
40                 $userid = $filterselect;
41             } else {
42                 $userid = 0;
43             }
44             $course = get_site();
45             $courseid = SITEID;
46         break;
48         case 'course':
49             if ($filterselect) {
50                 $courseid = $filterselect;
51                 $course = get_record('course','id',$courseid);
52             }
53             $userid =0;
54             $groupid = 0;
55             
56         break;
58         case 'group':
59             if ($filterselect) {
60                 $groupid = $filterselect;
61                 $group = get_record('groups','id',$groupid);
62                 $course = get_record('course','id',$group->courseid);
63                 $courseid = $course->id;
64             } else {
65                 $groupid = 0;
66             }
67             $userid = 0;
68             
69         break;
71         case 'user':
72             if ($filterselect) {
73                 $userid = $filterselect;
74             }
75             $groupid = 0;
77         break;
78         default:
79         break;
80     }
82 } else if ($userid) {    //default to user
83     $filtertype = 'user';
84     $filterselect = $userid;
85 } else {
86     $filtertype = 'site';
87     $filterselect = '';
88 }
91 /// rights checking
93 switch ($filtertype) {
94     case 'site':
95         if ($CFG->bloglevel < BLOG_SITE_LEVEL) {
96             error ('site blogs is not enabled');
97         } else if ($CFG->bloglevel < BLOG_GLOBAL_LEVEL) {
98             require_login();
99         }
100     break;
101     case 'course':
102         if ($CFG->bloglevel < BLOG_COURSE_LEVEL) {
103             error ('course blogs is not enabled');
104         }
106         if (!isstudent($filterselect) && !isteacher($filterselect)) {
107             error ('you must be a student in this course to view course blogs');
108         }
109         /// check if viewer is student
110     break;
111     case 'group':
112         if ($CFG->bloglevel < BLOG_GROUP_LEVEL) {
113             error ('group blogs is not enabled');
114         }
115         if (!isteacheredit($course) and (groupmode($course) == SEPARATEGROUPS)) {
116             if (!ismember($filterselect)) {
117                 error ('you are not in this group');
118             }
119         }
120         /// check if user is editting teacher, or if spg, is member
121     break;
122     case 'user':
123         if ($CFG->bloglevel < BLOG_USER_LEVEL) {
124             error ('Blogs is not enabled');
125         }
127         blog_user_can_view_user_post($filterselect);
129         /// check to see if the viewer is sharing no_group, visible group course.
130         /// if not , check if the viewer is in any spg group as the user
131     break;
132     default:
133     break;
136 //first set the start and end day equal to the day argument passed in from the get vars
137 if ($limit == 'none') {
138     $limit = get_user_preferences('blogpagesize',8);
141 $blogFilter =& new BlogFilter($userid, $postid, $limit, $start,$filtertype, $filterselect, $tagid, $tag);
143 include($CFG->dirroot .'/blog/header.php');
145 //prints the tabs
146 $currenttab = 'blogs';
147 $user = $USER;
148 if (!$course) {
149     $course = get_record('course','id',optional_param('courseid', SITEID, PARAM_INT));
151 require_once($CFG->dirroot .'/user/tabs.php');
153 blog_print_html_formatted_entries($blogFilter, $filtertype, $filterselect);
155 include($CFG->dirroot .'/blog/footer.php');
157 ?>