remove old readme
[atutor.git] / docs / mods / _standard / file_storage / move.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['new_folder'] = abs($_POST['new_folder']);\r
34 \r
35         if ($_POST['folder'] == $_POST['new_folder']) {\r
36                 // src = dest\r
37                 $msg->addFeedback('CANCELLED');\r
38                 header('Location: '.url_rewrite('mods/_standard/file_storage/index.php'.$owner_arg_prefix.'folder='.$_POST['new_folder'], AT_PRETTY_URL_IS_HEADER));\r
39                 exit;\r
40         }\r
41 \r
42         if (isset($_POST['files'])) {\r
43                 foreach ($_POST['files'] as $file) {\r
44                         $file = abs($file);\r
45                         // check if this file name already exists\r
46                         $sql = "SELECT file_name FROM ".TABLE_PREFIX."files WHERE file_id=$file";\r
47                         $result = mysql_query($sql, $db);\r
48                         $row = mysql_fetch_assoc($result);\r
49 \r
50                         $sql = "SELECT file_id FROM ".TABLE_PREFIX."files WHERE folder_id={$_POST['new_folder']} AND file_id<>$file AND file_name='{$row['file_name']}' AND parent_file_id=0 AND owner_type=$owner_type AND owner_id=$owner_id ORDER BY file_id DESC LIMIT 1";\r
51                         $result = mysql_query($sql, $db);\r
52                         if ($row = mysql_fetch_assoc($result)) {\r
53                                 fs_delete_file($row['file_id'], $owner_type, $owner_id);\r
54                         }\r
55 \r
56                         $sql = "UPDATE ".TABLE_PREFIX."files SET folder_id={$_POST['new_folder']}, date=date WHERE file_id=$file AND owner_type=$owner_type AND owner_id=$owner_id";\r
57                         mysql_query($sql, $db);\r
58                 }\r
59                 $msg->addFeedback('FILES_MOVED');\r
60         }\r
61 \r
62         if (isset($_POST['folders'])) {\r
63                 foreach ($_POST['folders'] as $folder) {\r
64                         $file = abs($file);\r
65                         $sql = "UPDATE ".TABLE_PREFIX."folders SET parent_folder_id={$_POST['new_folder']} WHERE folder_id=$folder AND owner_type=$owner_type AND owner_id=$owner_id";\r
66                         mysql_query($sql, $db);\r
67                 }\r
68                 $msg->addFeedback('DIRS_MOVED');\r
69         }\r
70         header('Location: '.url_rewrite('mods/_standard/file_storage/index.php'.$owner_arg_prefix.'folder='.$_POST['new_folder'], AT_PRETTY_URL_IS_HEADER));\r
71         exit;\r
72 }\r
73 \r
74 require(AT_INCLUDE_PATH.'header.inc.php');\r
75 \r
76 $folder_id = abs($_GET['folder']);\r
77 \r
78 // can't use fs_get_folders() because we want all folders, not just at one level\r
79 $folders = array();\r
80 $sql = "SELECT folder_id, parent_folder_id, title FROM ".TABLE_PREFIX."folders WHERE owner_type=$owner_type AND owner_id=$owner_id ORDER BY parent_folder_id, title";\r
81 $result = mysql_query($sql, $db);\r
82 while ($row = mysql_fetch_assoc($result)) {\r
83         $folders[$row['parent_folder_id']][$row['folder_id']] = $row;\r
84 }\r
85 \r
86 ?>\r
87 \r
88 <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">\r
89 <?php if ($_GET['files']): foreach ($_GET['files'] as $tmpfile): ?>\r
90         <input type="hidden" name="files[]" value="<?php echo $tmpfile; ?>" />\r
91 <?php endforeach; endif; ?>\r
92 \r
93 <?php if ($_GET['folders']): foreach ($_GET['folders'] as $tmpfolder): ?>\r
94         <input type="hidden" name="folders[]" value="<?php echo $tmpfolder; ?>" />\r
95 <?php endforeach; endif; ?>\r
96 \r
97 <input type="hidden" name="folder" value="<?php echo $folder_id; ?>" />\r
98 <input type="hidden" name="ot" value="<?php echo $owner_type; ?>" />\r
99 <input type="hidden" name="oid" value="<?php echo $owner_id; ?>" />\r
100 <div class="input-form">\r
101         <div class="row">\r
102                 <p><?php echo _AT('select_directory'); ?></p>\r
103         </div>\r
104 \r
105         <div class="row">\r
106                 <ul>\r
107                         <li class="folders"><input type="radio" name="new_folder" value="0" id="fhome" <?php\r
108                                 if ($folder_id == 0) {\r
109                                         echo ' checked="checked"';\r
110                                 }\r
111                         ?>/><label for="fhome"><?php echo fs_get_workspace($owner_type, $owner_id); ?></label>\r
112                         <?php \r
113                                 if ($folder_id == $current_folder_id) {\r
114                                         echo ' '._AT('current_location');\r
115                                 }\r
116                         ?>\r
117                         <?php fs_print_folders($folder_id, 0, $folders); ?>\r
118                         </li>\r
119                 </ul>\r
120         </div>\r
121 \r
122         <div class="row buttons">\r
123                 <input type="submit" name="submit" value="<?php echo _AT('move'); ?>" />\r
124                 <input type="submit" name="cancel" value="<?php echo _AT('cancel'); ?>" />\r
125         </div>\r
126 </div>\r
127 </form>\r
128 \r
129 <?php require(AT_INCLUDE_PATH.'footer.inc.php'); ?>