remove old readme
[atutor.git] / mods / _standard / file_storage / assignment.php
1 <?php\r
2 /****************************************************************/\r
3 /* ATutor                                                                                                               */\r
4 /****************************************************************/\r
5 /* Copyright (c) 2002-2010                                      */\r
6 /* Inclusive Design Institute                                   */\r
7 /* http://atutor.ca                                                                                             */\r
8 /*                                                              */\r
9 /* This program is free software. You can redistribute it and/or*/\r
10 /* modify it under the terms of the GNU General Public License  */\r
11 /* as published by the Free Software Foundation.                                */\r
12 /****************************************************************/\r
13 // $Id$\r
14 \r
15 define('AT_INCLUDE_PATH', '../../../include/');\r
16 require(AT_INCLUDE_PATH.'vitals.inc.php');\r
17 require(AT_INCLUDE_PATH.'../mods/_standard/file_storage/file_storage.inc.php');\r
18 \r
19 $owner_type = abs($_REQUEST['ot']);\r
20 $owner_id   = abs($_REQUEST['oid']);\r
21 $owner_arg_prefix = '?ot='.$owner_type.SEP.'oid='.$owner_id. SEP;\r
22 if (!($owner_status = fs_authenticate($owner_type, $owner_id)) || !query_bit($owner_status, WORKSPACE_AUTH_WRITE)) { \r
23         $msg->addError('ACCESS_DENIED');\r
24         header('Location: '.url_rewrite('mods/_standard/file_storage/index.php', AT_PRETTY_URL_IS_HEADER));\r
25         exit;\r
26 }\r
27 \r
28 if (isset($_POST['cancel'])) {\r
29         $msg->addFeedback('CANCELLED');\r
30         header('Location: '.url_rewrite('mods/_standard/file_storage/index.php'.$owner_arg_prefix.'folder='.abs($_POST['folder']), AT_PRETTY_URL_IS_HEADER));\r
31         exit;\r
32 } else if (isset($_POST['submit'])) {\r
33         $_POST['assignment'] = abs($_POST['assignment']);\r
34         $assignment_row    = fs_get_assignment($_POST['assignment']);\r
35 \r
36         if (!$assignment_row) {\r
37                 $msg->addError('ACCESS_DENIED');\r
38                 header('Location: '.url_rewrite('mods/_standard/file_storage/index.php', AT_PRETTY_URL_IS_HEADER));\r
39                 exit;\r
40         }\r
41 \r
42         if (!$assignment_row['assign_to']) {\r
43                 if (!$_SESSION['enroll']) {\r
44                         $msg->addError('ACCESS_DENIED');\r
45                         header('Location: '.url_rewrite('mods/_standard/file_storage/index.php', AT_PRETTY_URL_IS_HEADER));\r
46                         exit;\r
47                 }\r
48 \r
49         } else {\r
50                 $sql = "SELECT group_id FROM ".TABLE_PREFIX."groups WHERE group_id=$owner_id AND type_id=$assignment_row[assign_to]";\r
51                 $result = mysql_query($sql, $db);\r
52                 if (!$row = mysql_fetch_assoc($result)) {\r
53                         $msg->addError('ACCESS_DENIED');\r
54                         header('Location: '.url_rewrite('mods/_standard/file_storage/index.php', AT_PRETTY_URL_IS_HEADER));\r
55                         exit;\r
56                 }\r
57         }\r
58 \r
59         if ($assignment_row['u_date_cutoff'] && ($assignment_row['u_date_cutoff'] < time())) {\r
60                 $msg->addError('ASSIGNMENT_CUTOFF');\r
61                 header('Location: '.url_rewrite('mods/_standard/file_storage/index.php'.$owner_arg_prefix.'folder='.$_POST['folder'], AT_PRETTY_URL_IS_HEADER));\r
62                 exit;\r
63         }\r
64 \r
65         foreach ($_POST['files'] as $file) {\r
66                 $file = abs($file);\r
67                 fs_copy_file($file, $owner_type, $owner_id, WORKSPACE_ASSIGNMENT, $_POST['assignment'], $owner_id);\r
68         }\r
69 \r
70         $msg->addFeedback('ASSIGNMENT_HANDED_IN');\r
71         header('Location: '.url_rewrite('mods/_standard/file_storage/index.php'.$owner_arg_prefix.'folder='.$_POST['folder'], AT_PRETTY_URL_IS_HEADER));\r
72         exit;\r
73 }\r
74 \r
75 // get all the assignments assigned to $owner_id (which is either a student ID or a group type ID)\r
76 if ($owner_type == WORKSPACE_GROUP) {\r
77         // get all the assignments assigned to this group type\r
78 \r
79         $sql = "SELECT type_id FROM ".TABLE_PREFIX."groups WHERE group_id=$owner_id LIMIT 1";\r
80         $result = mysql_query($sql, $db);\r
81         $row = mysql_fetch_assoc($result);\r
82 \r
83         $sql = "SELECT assignment_id, title, date_due, date_cutoff FROM ".TABLE_PREFIX."assignments WHERE assign_to=$row[type_id] AND course_id=$_SESSION[course_id] AND (date_cutoff=0 OR UNIX_TIMESTAMP(date_cutoff) > ".time().") ORDER BY title";\r
84 \r
85 } else if ($owner_type == WORKSPACE_PERSONAL) {\r
86         // get all the assignments assigned to students\r
87 \r
88         $sql = "SELECT assignment_id, title, date_due FROM ".TABLE_PREFIX."assignments WHERE assign_to=0 AND course_id=$_SESSION[course_id] AND (date_cutoff=0 OR UNIX_TIMESTAMP(date_cutoff) > ".time().") ORDER BY title";\r
89 } else {\r
90         exit('wrong workspace');\r
91 }\r
92 \r
93 $assignments = array();\r
94 $result = mysql_query($sql, $db);\r
95 while ($row = mysql_fetch_assoc($result)) {\r
96         $assignments[] = $row;\r
97 }\r
98 \r
99 if (!$assignments) {\r
100         $msg->addError('NO_ASSIGNMENTS_FOUND');\r
101         header('Location: '.url_rewrite('mods/_standard/file_storage/index.php'.$owner_arg_prefix.'folder='.$_GET['folder'], AT_PRETTY_URL_IS_HEADER));\r
102         exit;\r
103 }\r
104 \r
105 require(AT_INCLUDE_PATH.'header.inc.php');\r
106 \r
107 ?>\r
108 <form method="post" action="<?php echo $_SERVER['PHP_SELF'].$owner_arg_prefix; ?>">\r
109 <input type="hidden" name="folder" value="<?php echo abs($_GET['folder']); ?>" />\r
110 <?php foreach ($_GET['files'] as $key => $file): ?>\r
111         <?php $_GET['files'][$key] = $file = abs($file); ?>\r
112         <input type="hidden" name="files[]" value="<?php echo $file; ?>" />\r
113 <?php endforeach; ?>\r
114 \r
115 <div class="input-form">\r
116         \r
117         <div class="row">\r
118                 <span class="required" title="<?php echo _AT('required_field'); ?>">*</span><label for="name"><?php echo _AT('assignment'); ?></label><br />\r
119                 <select name="assignment" size="<?php echo min(5, count($assignments)); ?>">\r
120                         <?php foreach ($assignments as $assignment): ?>\r
121                                 <?php if ($assignment['date_due'] != '0000-00-00 00:00:00'): ?>\r
122                                         <option value="<?php echo $assignment['assignment_id']; ?>"><?php echo $assignment['title']; ?> - <?php echo _AT('due') . ': ' . AT_date(_AT('filemanager_date_format'), $assignment['date_due'], AT_DATE_MYSQL_DATETIME); ?></option>\r
123                                 <?php else: ?>\r
124                                         <option value="<?php echo $assignment['assignment_id']; ?>"><?php echo $assignment['title']; ?> - <?php echo _AT('no_due_date'); ?></option>\r
125                                 <?php endif; ?>\r
126                         <?php endforeach; ?>\r
127                 </select>\r
128         </div>\r
129 \r
130         <div class="row">\r
131                 <?php echo _AT('files'); ?>\r
132                 <ul style="list-style: none; margin: 0px; padding: 0px 10px;">\r
133                         <?php\r
134                                 $file_list = implode(',', $_GET['files']);\r
135                                 $sql = "SELECT file_name FROM ".TABLE_PREFIX."files WHERE file_id IN ($file_list) AND owner_type=$owner_type AND owner_id=$owner_id ORDER BY file_name";\r
136                                 $result = mysql_query($sql, $db);\r
137                         ?>\r
138                         <?php while ($row = mysql_fetch_assoc($result)): ?>\r
139                                 <li><img src="images/file_types/<?php echo fs_get_file_type_icon($row['file_name']); ?>.gif" height="16" width="16" alt="" title="" /> <?php echo $row['file_name']; ?></li>\r
140                         <?php endwhile; ?>\r
141                 </ul>\r
142         </div>\r
143 \r
144         <div class="buttons row">\r
145                 <input type="submit" name="submit" value="<?php echo _AT('submit'); ?>" />\r
146                 <input type="submit" name="cancel" value="<?php echo _AT('cancel'); ?>" />\r
147         </div>\r
148 </div>\r
149 </form>\r
150 \r
151 <?php require(AT_INCLUDE_PATH.'footer.inc.php'); ?>