root/releases/0.1.2a/units/files/folder_view.php

Revision 7, 4.9 kB (checked in by sven, 3 years ago)

snapshot of elgg 0.1.2a

Line 
1 <?php
2
3     /*
4     *    View a specific folder
5     *    (Access rights are presumed)
6     */
7
8         $url = url;
9     
10     // If a folder has been specified, convert it to integer;
11     // otherwise assume we're in the root
12     
13         if (isset($parameter) && $parameter != "") {
14             $folder = (int) $parameter;
15         } else {
16             $folder = -1;
17         }
18         
19     // Find out who's the owner
20     
21         global $page_owner;
22         $owner_username = run("users:id_to_name",$page_owner);
23     
24     // If we're not in the parent folder, provide a link to return to the parent
25     
26         global $this_folder;
27         global $folder_name;
28     
29         if ($folder != -1) {
30             
31             $this_folder = db_query("select * from file_folders where ident = $folder and owner = $page_owner");
32             $this_folder = $this_folder[0];
33         
34             $folder_name = stripslashes($this_folder->name);
35                 
36         } else {
37             
38             $folder_name = "Root Folder";
39             
40         }
41         
42         $body = "<h2>" . $folder_name . "</h2>";
43         
44         if ($folder != -1) {
45             
46             $parent = (int) $this_folder->parent;
47             
48             if ($parent != -1) {
49                 $parent_details = db_query("select * from file_folders where ident = $parent and owner = $page_owner");
50                 $parent_details = $parent_details[0];
51                 $display_parent = $parent;
52             } else {
53                 $parent_details->name = "root folder";
54                 $parent_details->ident = -1;
55                 $display_parent = "";
56             }
57             
58             
59             $body .= "<p><a href=\"".url."$owner_username/files/$display_parent\">";
60             $body .= "Return to " . stripslashes($parent_details->name);
61             $body .= "</a></p>";
62         }
63         
64     // Firstly, get a list of folders
65     
66         $folders = db_query("select * from file_folders where parent = $folder and (" . run("users:access_level_sql_where") . ") and owner = $page_owner");
67     
68     // Display folders we actually have access to
69     
70         if (sizeof($folders) > 0) {
71             
72             $body .= <<< END
73
74                     <h3>
75                         Subfolders
76                     </h3>
77
78 END;
79             
80             foreach($folders as $folder_details) {
81                 
82                 if (run("users:access_level_check",$folder_details->access) == true) {
83                     $username = $owner_username;
84                     $ident = (int) $folder_details->ident;
85                     $name = stripslashes($folder_details->name);
86                     if ($folder_details->owner == $_SESSION['userid']) {
87                         $foldermenu = <<< END
88     [<a href="{$url}_files/action_redirection.php?action=delete_folder&delete_folder_id={$folder_details->ident}" onClick="return confirm('Are you sure you want to permanently delete this folder?')">Delete</a>]
89 END;
90                     } else {
91                         $foldermenu = "";
92                     }
93                     $keywords = run("display:output_field", array("","keywords","folder","folder",$ident,$folder_details->owner));
94                     if ($keywords) {
95                         $keywords = "Keywords: " . $keywords;
96                     }
97                     $body .= run("templates:draw", array(
98                                     'context' => 'folder',
99                                     'username' => $username,
100                                     'url' => $url . "$username/files/$ident",
101                                     'ident' => $ident,
102                                     'name' => $name,
103                                     'menu' => $foldermenu,
104                                     'icon' => $url . "_files/folder.png",
105                                     'keywords' => $keywords
106                                 )
107                                 );
108                 }
109                 
110             }
111         }
112     
113     // Then get a list of files
114     
115         $files = db_query("select * from files where folder = $folder and owner = $page_owner");   
116
117     // View files we actually have access to
118
119         if (sizeof($files) > 0) {
120             
121             foreach($files as $file) {
122                 
123                 if (run("users:access_level_check",$file->access) == true) {
124                     $username = $owner_username;
125                     $ident = (int) $file->ident;
126                     $folder = $file->folder;
127                     $title = stripslashes($file->title);
128                     $description = nl2br(stripslashes($file->description));
129                     $originalname = stripslashes($file->originalname);
130                     $filemenu = round(($file->size / 1000000),4) . "Mb ";
131                     if ($file->owner == $_SESSION['userid']) {
132                         $filemenu .= <<< END
133     [<a href="{$url}_files/edit_file.php?edit_file_id={$file->ident}">Edit</a>]
134     [<a href="{$url}_files/action_redirection.php?action=delete_file&delete_file_id={$file->ident}" onClick="return confirm('Are you sure you want to permanently delete this file?')">Delete</a>]
135 END;
136                     } else {
137                         $filemenu = "";
138                     }
139                     $keywords = run("display:output_field", array("","keywords","file","file",$ident,$file->owner));
140                     if ($keywords) {
141                         $keywords = "Keywords: " . $keywords;
142                     }
143                     $body .= run("templates:draw", array(
144                                     'context' => 'file',
145                                     'username' => $username,
146                                     'title' => $title,
147                                     'ident' => $ident,
148                                     'folder' => $folder,
149                                     'description' => $description,
150                                     'originalname' => $originalname,
151                                     'url' => $url . "$username/files/$folder/$ident/$originalname",
152                                     'menu' => $filemenu,
153                                     'icon' => $url . "_files/file.png",
154                                     'keywords' => $keywords
155                                 )
156                                 );
157                 }
158                 
159             }
160             
161         }
162         
163     // Deliver an apologetic message if there aren't any files or folders
164     
165         if (sizeof($files) ==0 && sizeof($folders) == 0) {
166             
167             $body .= "<p>This folder is currently empty.</p>";
168             
169         }
170         
171         $run_result .= $body;
172         
173 ?>
Note: See TracBrowser for help on using the browser.