changed git call from https to git readonly
[atutor.git] / mods / photo_album / handler / store.php
1 <?php\r
2 /*==============================================================\r
3   Photo Album\r
4  ==============================================================\r
5   Copyright (c) 2006 by Dylan Cheon & Kelvin Wong\r
6   Institute for Assistive Technology / University of Victoria\r
7   http://www.canassist.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  */\r
14 // $Id:\r
15 \r
16 /**\r
17  * @desc        This file stores or updates the image / comment data in the database\r
18  * @author      Dylan Cheon & Kelvin Wong\r
19  * @copyright   2006, Institute for Assistive Technology / University of Victoria \r
20  * @link        http://www.canassist.ca/                                    \r
21  * @license GNU\r
22  */\r
23  \r
24 define('AT_INCLUDE_PATH', '../../../include/');\r
25 require_once(AT_INCLUDE_PATH.'vitals.inc.php');\r
26 $_custom_css = $_base_path . 'mods/photo_album/module.css'; // use a custom stylesheet\r
27 require_once (AT_INCLUDE_PATH.'header.inc.php');\r
28 \r
29 \r
30         require_once ('../define.php');\r
31         require_once ('../include/general_func.php');\r
32         require_once ('../include/data_func.php');\r
33         $config_mode=get_config_mode($_SESSION['pa']['course_id']);\r
34         \r
35         if (isset($_POST['cancel_image'])){\r
36                 if ($_SESSION['pa']['mode']=='add'){\r
37                         if ($_SESSION['pa']['administrator_mode']==true){\r
38                                 $action='admin_image_list.php';\r
39                         } else if ($_SESSION['pa']['instructor_mode']==true){\r
40                                 $action='instructor_image.php';\r
41                         } else {\r
42                                 $action='index.php';\r
43                         }\r
44                 } else if ($_SESSION['pa']['mode']=='edit'){\r
45                         if ($_SESSION['pa']['my_pic_mode']==true){\r
46                                 $action='my_photo.php';\r
47                         } else {\r
48                                 $action='view.php?image_id='.$_SESSION['pa']['image_id'];\r
49                         }\r
50                 } else {\r
51                         $msg->addError('pa_var_unauthorized');\r
52                         out();\r
53                 }       \r
54                 redirect($action);\r
55         } else if ($_POST['cancel_comment']){\r
56                 $action='view.php?image_id='.$_SESSION['pa']['image_id'];\r
57                 redirect($action);\r
58         } else if ((isset($_POST['submit'])) && ($_SESSION['pa']['mode']=='add')){      //mode add\r
59                 if ($_SESSION['pa']['completed']==true){\r
60                         out();\r
61                 } else {\r
62                 $goback_url='handler/add_begin.php';\r
63                 if (($_SESSION['pa']['choose']==IMAGE) && ($_SESSION['pa']['image_uploaded']==true)){\r
64                         $store_path=ALBUM_IMAGE_STORE.$_SESSION['login'].'/';\r
65                         $_SESSION['pa']['title']=$_POST['title'];\r
66                         $_SESSION['pa']['alt']=$_POST['alt'];\r
67                         $_SESSION['pa']['description']=$_POST['description'];\r
68                         unset($_SESSION['pa']['error']);\r
69                         if ((empty($_POST['title']) || (strlen($_POST['title'])==0))){\r
70                                 $_SESSION['pa']['error']['title']=true;\r
71                                 $msg->addError('pa_user_title_empty');\r
72                                 redirect($goback_url);\r
73                         } else if (is_admin_for_course() && (empty($_POST['alt']) || (strlen($_POST['alt'])==0))){\r
74                                 $_SESSION['pa']['error']['alt']=true;\r
75                                 $msg->addError('pa_user_alt_empty');\r
76                                 redirect($goback_url);\r
77                         } else {        //input has no error                            \r
78                                 $view_image_name=modify_image_name($store_path, $_SESSION['pa']['view_image_name']);\r
79                                 $thumb_image_name=modify_image_name($store_path, $_SESSION['pa']['thumb_image_name']);          \r
80                                 $store_dir=AT_CONTENT_DIR.$store_path;\r
81                                 if (!is_dir($store_dir)){\r
82                                         if (!@mkdir($store_dir)){\r
83                                                 $msg->addError('pa_func_mkdir');\r
84                                                 out();\r
85                                         }\r
86                                         chmod ($store_dir, 0757);\r
87                                 }\r
88                                         \r
89                                 if (!copy(AT_CONTENT_DIR.$_SESSION['pa']['temp_folder'].$_SESSION['pa']['view_image_name'], AT_CONTENT_DIR.$store_path.$view_image_name)){\r
90                                         $msg->addError('pa_func_copy');\r
91                                         out();\r
92                                 }\r
93                                 if (!copy(AT_CONTENT_DIR.$_SESSION['pa']['temp_folder'].$_SESSION['pa']['thumb_image_name'], AT_CONTENT_DIR.$store_path.$thumb_image_name)){\r
94                                         $msg->addError('pa_func_copy');\r
95                                         out();\r
96                                 }\r
97                                 \r
98                                 if (is_admin_for_course()==true){\r
99                                         $store=store_image_in_database($_SESSION['pa']['course_id'], $_SESSION['login'], htmlspecialchars($_SESSION['pa']['title']), htmlspecialchars($_SESSION['pa']['description']), $view_image_name, $store_path, $thumb_image_name, htmlspecialchars($_SESSION['pa']['alt']), APPROVED);\r
100                                 } else if ($config_mode==CONFIG_ENABLED){       //student image add when config is enabled\r
101                                         $store=store_image_in_database($_SESSION['pa']['course_id'], $_SESSION['login'], htmlspecialchars($_SESSION['pa']['title']), htmlspecialchars($_SESSION['pa']['description']), $view_image_name, $store_path, $thumb_image_name, htmlspecialchars($_SESSION['pa']['title']), POSTED_NEW);\r
102                                 } else {        //student image add when config is disabled\r
103                                         $store=store_image_in_database($_SESSION['pa']['course_id'], $_SESSION['login'], htmlspecialchars($_SESSION['pa']['title']), htmlspecialchars($_SESSION['pa']['description']), $view_image_name, $store_path, $thumb_image_name, htmlspecialchars($_SESSION['pa']['title']), APPROVED);\r
104                                 }\r
105 \r
106                                 if ($store!=true){\r
107                                         $msg->addError('pa_func_store_image_in_database');\r
108                                         out();\r
109                                 } else {\r
110                                         $_SESSION['pa']['completed']=true;\r
111                                         if ((is_admin_for_course()==true) || ($config_mode==CONFIG_DISABLED)){\r
112                                                 $msg->addFeedback('pa_add_image_success_config_disabled');\r
113                                         } else if ($config_mode==CONFIG_ENABLED){\r
114                                                 $msg->addFeedback('pa_add_image_success_config_enabled');\r
115                                         }\r
116                                         out();\r
117                                 }\r
118                         }\r
119                 } else if ($_SESSION['pa']['choose']==COMMENT){ //store comment\r
120                         $comment=trim($_POST['comment']);\r
121                         if (empty($comment)){\r
122                                 $_SESSION['pa']['error']['comment']=true;\r
123                                 $msg->addError('pa_user_comment_empty');\r
124                                 redirect($goback_url);\r
125                         }\r
126                         if ((is_admin_for_course()==true) || ($config_mode==CONFIG_DISABLED)){\r
127                                 $store=store_comment_in_database($_SESSION['pa']['course_id'], $_SESSION['login'], htmlspecialchars($_POST['comment']), $_SESSION['pa']['image_id'], APPROVED);\r
128                         } else {\r
129                                 $store=store_comment_in_database($_SESSION['pa']['course_id'], $_SESSION['login'], htmlspecialchars($_POST['comment']), $_SESSION['pa']['image_id'], POSTED_NEW);\r
130                         }       \r
131                                 \r
132                         if ($store==true){\r
133                                 $_SESSION['pa']['completed']=true;\r
134                                 if ((is_admin_for_course()==true) || ($config_mode==CONFIG_DISABLED)){\r
135                                         $msg->addFeedback('pa_add_comment_success_config_disable');\r
136                                 } else if ($config_mode==CONFIG_ENABLED){\r
137                                         $msg->addFeedback('pa_add_comment_success_config_enabled');\r
138                                 }\r
139                                 redirect('view.php?image_id='.$_SESSION['pa']['image_id']);\r
140                         } else {\r
141                                 $msg->addError('pa_func_store_comment_in_database');\r
142                                 out();\r
143                         }\r
144                 } else {\r
145                         $msg->addError('pa_var_unauthorized');\r
146                         out();\r
147                 }\r
148         }\r
149                 \r
150         /* mode is edit */\r
151         } else if (($_SESSION['pa']['mode']=='edit')&& (isset($_POST['submit']))){\r
152                 if ($_SESSION['pa']['completed']==true){\r
153                         out();\r
154                 } else {\r
155                 $goback_url='handler/edit_begin.php';   \r
156                 if (($_SESSION['pa']['choose']==IMAGE) && ($_SESSION['pa']['image_checked']==true)){\r
157                         $_SESSION['pa']['description']=$_POST['description'];\r
158                         $_SESSION['pa']['title']=$_POST['title'];\r
159                         $_SESSION['pa']['alt']=$_POST['alt'];\r
160                         if ((empty($_SESSION['pa']['title'])) || ((strlen($_SESSION['pa']['title']))==0)){\r
161                                 $_SESSION['pa']['error']['title']=true;\r
162                                 $msg->addError('pa_user_title_empty');\r
163                                 redirect($goback_url);\r
164                         } else if (is_admin_for_course() && (empty($_SESSION['pa']['alt']) || (strlen($_SESSION['pa']['alt'])==0))){\r
165                                 $msg->addError('pa_user_alt_empty');\r
166                                 $_SESSION['pa']['error']['alt']=true;\r
167                                 redirect($goback_url);\r
168                         }\r
169                         if ($_SESSION['pa']['image_copy_required']==true){\r
170                                 $data_array=get_single_data(IMAGE, $_SESSION['pa']['image_id'], $_SESSION['pa']['course_id']);\r
171                                 $store_dir=AT_CONTENT_DIR.ALBUM_IMAGE_STORE.$data_array['login'].'/';\r
172                                 $old_view_image=AT_CONTENT_DIR.$data_array['location'].$data_array['view_image_name'];\r
173                                 $old_thumb_image=AT_CONTENT_DIR.$data_array['location'].$data_array['thumb_image_name'];\r
174                                 $image_view_name=modify_image_name($data_array['location'], $_SESSION['pa']['view_image_name']);\r
175                                 $image_thumb_name=modify_image_name($data_array['location'], $_SESSION['pa']['thumb_image_name']);\r
176                                 if (!copy(AT_CONTENT_DIR.$_SESSION['pa']['temp_folder'].$_SESSION['pa']['view_image_name'], $store_dir.$image_view_name)){\r
177                                         $msg->addError('pa_func_copy');\r
178                                         out();\r
179                                 } \r
180                                 if (!copy(AT_CONTENT_DIR.$_SESSION['pa']['temp_folder'].$_SESSION['pa']['thumb_image_name'], $store_dir.$image_thumb_name)){\r
181                                         $msg->addError('pa_func_copy');\r
182                                         out();\r
183                                 }\r
184                                 if (!@unlink($old_view_image)){\r
185                                         $msg->addError('pa_func_unlink');\r
186                                 }\r
187                                 if (!@unlink($old_thumb_image)){\r
188                                         $msg->addError('pa_func_unlink');\r
189                                 }\r
190                                         \r
191                                 if (is_admin_for_course() || $config_mode==CONFIG_DISABLED){\r
192                                         $update=update_image_in_database($_SESSION['pa']['course_id'], htmlspecialchars($_SESSION['pa']['title']), htmlspecialchars($_SESSION['pa']['description']), $image_view_name, $_SESSION['pa']['image_id'], $image_thumb_name, htmlspecialchars($_SESSION['pa']['alt']), APPROVED);\r
193                                 } else {\r
194                                         $update=update_image_in_database($_SESSION['pa']['course_id'], htmlspecialchars($_SESSION['pa']['title']), htmlspecialchars($_SESSION['pa']['description']), $image_view_name, $_SESSION['pa']['image_id'], $image_thumb_name,  htmlspecialchars($_SESSION['pa']['title']), POSTED_NEW);\r
195                                 }\r
196                                         \r
197                                 if ($update==false){\r
198                                         $msg->addError('pa_func_update_image_in_database');\r
199                                         out();\r
200                                 } else {\r
201                                         $_SESSION['pa']['completed']=true;\r
202                                         if ((is_admin_for_course()==true) || ($config_mode==CONFIG_DISABLED)){\r
203                                                 $msg->addFeedback('pa_edit_image_success_config_disabled');\r
204                                         } else if ($config_mode==CONFIG_ENABLED){\r
205                                                 $msg->addFeedback('pa_edit_image_success_config_enabled');\r
206                                         }\r
207                                         out();\r
208                                 }\r
209                         } else {        //image copy is not required, so just update the database with title and description\r
210                                 $data_array=get_single_data(IMAGE, $_SESSION['pa']['image_id'], $_SESSION['pa']['course_id']);\r
211                                 if (is_admin_for_course() || $config_mode==CONFIG_DISABLED){\r
212                                         $update=update_image_in_database($_SESSION['pa']['course_id'], htmlspecialchars($_SESSION['pa']['title']), htmlspecialchars($_SESSION['pa']['description']), $data_array['view_image_name'], $_SESSION['pa']['image_id'], $data_array['thumb_image_name'], htmlspecialchars($_SESSION['pa']['alt']), APPROVED);\r
213                                 } else {\r
214                                         $update=update_image_in_database($_SESSION['pa']['course_id'], htmlspecialchars($_SESSION['pa']['title']), htmlspecialchars($_SESSION['pa']['description']), $data_array['view_image_name'], $_SESSION['pa']['image_id'], $data_array['thumb_image_name'], htmlspecialchars($_SESSION['pa']['title']), POSTED_NEW);\r
215                                 }\r
216                                 \r
217                                 if ($update==false){\r
218                                         $msg->addError('pa_func_update_image_in_database');\r
219                                         out();\r
220                                 } else {\r
221                                         $_SESSION['pa']['completed']=true;\r
222                                         if ((is_admin_for_course()==true) || ($config_mode==CONFIG_DISABLED)){\r
223                                                 $msg->addFeedback('pa_edit_image_success_config_disabled');\r
224                                         } else if ($config_mode==CONFIG_ENABLED){\r
225                                                 $msg->addFeedback('pa_edit_image_success_config_enabled');\r
226                                         }\r
227                                         out();\r
228                                 }\r
229                         }\r
230                 } else if ($_SESSION['pa']['choose']==COMMENT){ \r
231                         $_SESSION['pa']['comment_checked']=true;\r
232                         $comment=trim($_POST['comment']);\r
233                         if (empty($comment)){\r
234                                 $_SESSION['pa']['error']['comment']=true;\r
235                                 $msg->addError('pa_user_comment_empty');\r
236                                 redirect($goback_url);\r
237                         }\r
238                         \r
239                         if ((is_admin_for_course()==true) || ($config_mode==CONFIG_DISABLED)){\r
240                                 $update=update_comment_in_database($_SESSION['pa']['course_id'], htmlspecialchars($_POST['comment']), $_SESSION['pa']['image_id'], $_SESSION['pa']['comment_id'], APPROVED);\r
241                         } else {\r
242                                 $update=update_comment_in_database($_SESSION['pa']['course_id'], htmlspecialchars($_POST['comment']), $_SESSION['pa']['image_id'], $_SESSION['pa']['comment_id'], POSTED_NEW);\r
243                         }\r
244                         \r
245                         if ($update==false){\r
246                                 $msg->addError('pa_func_update_comment_in_database');\r
247                                 out();\r
248                         } else {\r
249                                 if ((is_admin_for_course()==true) || ($config_mode==CONFIG_DISABLED)){\r
250                                         $msg->addFeedback('pa_edit_comment_success_config_disable');\r
251                                 } else if ($config_mode==CONFIG_ENABLED){\r
252                                         $msg->addFeedback('pa_edit_comment_success_config_enabled');\r
253                                 }\r
254                                 redirect('view.php?image_id='.$_SESSION['pa']['image_id']);\r
255                         }\r
256                 } else {\r
257                         $msg->addError('pa_var_unauthorized');\r
258                         out();\r
259                 }\r
260         }\r
261         } else {\r
262                 $msg->addError('pa_var_unauthorized');\r
263                 out();\r
264         }\r
265                 \r
266 ?>\r
267 \r
268 <?php require_once(AT_INCLUDE_PATH.'footer.inc.php'); ?>