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

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

snapshot of elgg 0.1.2a

Line 
1 <?php
2
3     global $search_exclusions;
4     $url = url;
5
6     if (isset($parameter) && $parameter[0] == "file") {
7         
8         $search_exclusions[] = "folder";
9         $owner = (int) $_REQUEST['owner'];
10         $accessline = "(" . run("users:access_level_sql_where",$_SESSION['userid']) . ")";
11         $searchline_files = "$accessline and tagtype = 'file' and owner = $owner and tag = '".addslashes($parameter[1])."'";
12         $searchline_folders = "$accessline and tagtype = 'folder' and owner = $owner and tag = '".addslashes($parameter[1])."'";
13         $file_refs = db_query("select ref from tags where $searchline_files");
14         $folder_refs = db_query("select ref from tags where $searchline_folders");
15         $searchline = "";
16         if (sizeof($folder_refs) > 0) {
17             foreach($folder_refs as $folder) {
18                 if ($searchline != "") {
19                     $searchline .= " or ";
20                 }
21                 $searchline .= "file_folders.ident = " . $folder->ref;
22             }
23             $folders = db_query("select file_folders.name, users.name as userfullname, users.username, file_folders.ident from file_folders
24                                 left join users on users.ident = file_folders.owner where ($searchline)
25                                 order by name asc");
26             $run_result .= "<h2>Folders owned by " . stripslashes($folders[0]->userfullname) . " in category '".$parameter[1]."'</h2>\n";
27             foreach($folders as $folder) {
28                 $run_result .= run("templates:draw", array(
29                                     'context' => 'folder',
30                                     'username' => stripslashes($folder->username),
31                                     'url' => url.stripslashes($folder->username)."/files/".$folder->ident,
32                                     'ident' => $folder->ident,
33                                     'name' => stripslashes($folder->name),
34                                     'menu' => "",
35                                     'icon' => url . "_files/folder.png",
36                                     'keywords' => ""
37                                 )
38                                 );
39             }
40         }
41         $searchline = "";
42         if (sizeof($file_refs) > 0) {
43             foreach($file_refs as $file) {
44                 if ($searchline != "") {
45                     $searchline .= " or ";
46                 }
47                 $searchline .= "files.ident = " . $file->ref;
48             }
49             $files = db_query("select files.*, users.username, users.name as userfullname from files
50                                 left join users on users.ident = files.owner where ($searchline)
51                                 order by title asc")
52                                 or die(mysql_error());
53             $run_result .= "<h2>Files owned by " . stripslashes($files[0]->userfullname) . " in category '".$parameter[1]."'</h2>\n";
54             foreach($files as $file) {
55                 $run_result .= run("templates:draw", array(
56                                     'context' => 'file',
57                                     'username' => $file->username,
58                                     'title' => stripslashes($file->title),
59                                     'ident' => $file->ident,
60                                     'folder' => $file->folder,
61                                     'description' => stripslashes($file->description),
62                                     'originalname' => stripslashes($file->originalname),
63                                     'url' => url.$file->username."/files/".$file->folder."/".$file->ident."/".$file->originalname,
64                                     'menu' => "",
65                                     'icon' => url."_files/file.png",
66                                     'keywords' => ""
67                                 )
68                                 );
69             }
70             $run_result .= "<p><small>[ <a href=\"".url.$files[0]->username . "/files/rss/" . $parameter[1] . "\">RSS feed for files owned by " . stripslashes($files[0]->userfullname) . " in category '".$parameter[1]."'</a> ]</small></p>\n";
71         }
72         $searchline = "(tagtype = 'file' or tagtype = 'folder') and tag = '".addslashes($parameter[1])."'";
73         $searchline = "(" . run("users:access_level_sql_where",$_SESSION['userid']) . ") and " . $searchline;
74         $sql = "select distinct users.* from tags left join users on users.ident = tags.owner where ($searchline)";
75         if ($parameter[0] == "file") {
76             $sql .= " and users.ident != " . $owner;
77         }
78         $users = db_query($sql);
79         
80         if (sizeof($users) > 0) {
81             $run_result .= "<h2>Users with files or folders in category '".$parameter[1]."'</h2>\n";
82             $body = "<table><tr>";
83             $i = 1;
84             foreach($users as $key => $info) {
85     
86                     // $info = $info[0];
87                     if ($info->icon != -1) {
88                         $icon = db_query("select filename from icons where ident = " . $info->icon . " and owner = " . $info->ident);
89                         if (sizeof($icon) == 1) {
90                             $icon = $icon[0]->filename;
91                         } else {
92                             $icon = "default.png";
93                         }
94                     } else {
95                         $icon = "default.png";
96                     }
97                     list($width, $height, $type, $attr) = getimagesize(path . "_icons/data/" . $icon);
98                     if (sizeof($users) > 4) {
99                         $width = round($width / 2);
100                         $height = round($height / 2);
101                     }
102         $friends_userid = $info->ident;
103         $friends_name = htmlentities(stripslashes($info->name));
104         $friends_menu = run("users:infobox:menu",array($info->ident));
105         $link_keyword = urlencode($parameter[1]);
106         $body .= <<< END
107         <td align="center">
108             <a href="{$url}search/index.php?file={$link_keyword}&owner={$friends_userid}">
109             <img src="{$url}_icons/data/{$icon}" width="{$width}" height="{$height}" alt="{$friends_name}" border="0" /></a><br />
110             <span class="userdetails">
111                 {$friends_name}
112                 {$friends_menu}
113             </span>
114         </td>
115 END;
116                     if ($i % 5 == 0) {
117                         $body .= "\n</tr><tr>\n";
118                     }
119                     $i++;
120             }
121             $body .= "</tr></table>";
122             $run_result .= $body;
123         }
124         
125     }
126
127 ?>
Note: See TracBrowser for help on using the browser.