MDL-7077, MDL-10181, adding notes for students
[moodle.git] / user / groupaddnote.php
1 <?php  // $Id$\r
2 require_once("../config.php");\r
3 require_once($CFG->dirroot .'/notes/lib.php');\r
4 \r
5 $id    = required_param('id', PARAM_INT);              // course id\r
6 $users = optional_param('userid', array(), PARAM_INT); // array of user id\r
7 $content = optional_param('content', '', PARAM_RAW); // note content\r
8 $rating = optional_param('rating', 0, PARAM_INT); // note rating\r
9 $state = optional_param('state', '', PARAM_ALPHA); // note publish state\r
10 \r
11 if (! $course = get_record('course', 'id', $id)) {\r
12     error("Course ID is incorrect");\r
13 }\r
14 \r
15 $context = get_context_instance(CONTEXT_COURSE, $id);\r
16 require_login($course->id);\r
17 \r
18 // to create notes the current user needs a capability\r
19 require_capability('moodle/notes:manage', $context);\r
20 \r
21 if (!empty($users) && !empty($content) && confirm_sesskey()) {\r
22     $note = new object();\r
23     $note->courseid = $id;\r
24     $note->format = FORMAT_PLAIN;\r
25     $note->content = $content;\r
26     $note->rating = $rating;\r
27     $note->publishstate = $state;\r
28     foreach ($users as $k => $v) {\r
29         if(!$user = get_record('user', 'id', $v)) {\r
30             continue;\r
31         }\r
32         $note->id = 0;\r
33         $note->userid = $v;\r
34         if (note_save($note)) {\r
35             add_to_log($note->courseid, 'notes', 'add', 'index.php?course='.$note->courseid.'&amp;user='.$note->userid . '#note-' . $note->id , 'add note');\r
36         }\r
37     }\r
38     \r
39     redirect("$CFG->wwwroot/user/index.php?id=$id");\r
40 }\r
41 \r
42 /// Print headers\r
43 \r
44 $straddnote = get_string('groupaddnewnote', 'notes');\r
45 if ($course->id != SITEID) {\r
46     print_header("$course->shortname: ".get_string('extendenrol'), $course->fullname,\r
47     "<a href=\"../course/view.php?id=$course->id\">$course->shortname</a> -> ".\r
48     $straddnote, "", "", true, "&nbsp;", navmenu($course));\r
49 } else {\r
50     print_header("$course->shortname: ".get_string('extendenrol'), $course->fullname,\r
51     $straddnote, "", "", true, "&nbsp;", navmenu($course));\r
52 }\r
53 \r
54 // this will contain all available the based On select options, but we'll disable some on them on a per user basis\r
55 \r
56 print_heading($straddnote);\r
57 echo '<form method="post" action="groupaddnote.php" >';\r
58 echo '<div style="width:100%;text-align:center;">';\r
59 echo '<input type="hidden" name="id" value="'.$course->id.'" />';\r
60 echo '<input type="hidden" name="sesskey" value="'.$USER->sesskey.'" />';\r
61 $rating_names = note_get_rating_names();\r
62 $state_names = note_get_state_names();\r
63 \r
64 // the first time list hack\r
65 if (empty($users)) {\r
66     foreach ($_POST as $k => $v) {\r
67         if (preg_match('/^user(\d+)$/',$k,$m)) {\r
68             $users[] = $m[1];\r
69         }\r
70     }\r
71 }\r
72 \r
73 $userlist = array();\r
74 foreach ($users as $k => $v) {\r
75     if(!$user = get_record('user', 'id', $v)) {\r
76         continue;\r
77     }\r
78     echo '<input type="hidden" name="userid['.$k.']" value="'.$v.'" />';\r
79     $userlist[] = fullname($user, true);\r
80 }\r
81 echo '<p>';\r
82 echo get_string('users'). ': ' . implode(', ', $userlist) . '.';\r
83 echo '</p>';\r
84 \r
85 echo '<p>' . get_string('content', 'notes') . '<br /><textarea name="content" rows="5" cols="50">' . strip_tags(@$content) . '</textarea></p>';\r
86 echo '<p>' . get_string('rating', 'notes') . ' ' . choose_from_menu($rating_names, 'rating', empty($rating) ? NOTES_RATING_NORMAL : $rating, '', '', '0', true) . '</p>';\r
87 echo '<p>' . get_string('publishstate', 'notes') . ' ' . choose_from_menu($state_names, 'state', empty($state) ? NOTES_STATE_PUBLIC : $state, '', '', '0', true) . '</p>';\r
88 \r
89 echo '<input type="submit" value="' . get_string('savechanges'). '" /></div></form>';\r
90 print_footer($course);\r