Upstream tarball 10153
[amule.git] / src / webserver / default / amuleweb-main-search.php
blob4ee91b704e21cfebce4e5edec261cfc40dd03668
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <title>aMule control panel</title>
5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
7 <script language="JavaScript" type="text/JavaScript">
8 <!--
9 function MM_swapImgRestore() { //v3.0
10 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
13 function MM_preloadImages() { //v3.0
14 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
15 var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
16 if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
19 function MM_findObj(n, d) { //v4.01
20 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
21 d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
22 if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
23 for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
24 if(!x && d.getElementById) x=d.getElementById(n); return x;
27 function MM_swapImage() { //v3.0
28 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
29 if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
31 //-->
32 </script>
33 <link href="style.css" rel="stylesheet" type="text/css"><style type="text/css">
34 <!--
35 caption {
36 font-family: Helvetica;
37 font-size: 18px;
38 font-weight: bold;
39 color: #003161;
41 th {
42 font-family: Helvetica;
43 font-size: 14px;
44 font-height: 22px;
45 font-weight: bold;
46 color: #003161;
48 a:link {
49 color: #003161;
50 text-decoration: none;
52 a:active {
53 color: #003161;
54 text-decoration: none;
56 a:visited {
57 color: #003161;
58 text-decoration: none;
60 a:hover {
61 color: #c0c0c0;
62 text-decoration: underline;
64 td {
65 font-family: Helvetica;
66 font-size: 12px;
67 font-weight: normal;
69 label {
70 font-family: Helvetica;
71 font-size: 14px;
72 font-weight: bold;
74 .texte {
75 font-family: Helvetica;
76 font-size: 12px;
77 font-weight: normal;
79 label {
80 font-family:"trebuchet ms",sans-serif;
81 font-size: 12px;
82 font-weight:bold
84 input {
85 border:1px solid #003161;
86 background-color: white;
87 font-family:"trebuchet ms",sans-serif;
88 font-size: 12px;
89 color: #003161;
91 select, option {
92 background-color: white;
93 font-size: 12px;
94 color: #003161;
96 textarea {
97 border:1px solid #003161;
98 background-color: #90B6DB;
99 font-family:"trebuchet ms",sans-serif;
100 font-size: 12px;
101 color: white;
104 </style>
105 </head><script language="JavaScript" type="text/JavaScript">
106 function formCommandSubmit(command)
108 <?php
109 if ($_SESSION["guest_login"] != 0) {
110 echo 'alert("You logged in as guest - commands are disabled");';
111 echo "return;";
114 var frm=document.forms.mainform
115 frm.command.value=command
116 frm.submit()
119 </script>
120 <body background="images/fond.gif" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="MM_preloadImages('images/transf_1.png','images/shared_1.png','images/search_1.png','images/edkserv_1.png','images/sheserv_1.png','images/stats_1.png');">
121 <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
122 <tr valign="top">
123 <td width="143" height="64"><img src="images/logo.png" width="143" height="64"></td>
124 <td width="100%" height="64" align="right" background="images/fond_haut.png"> <table border="0" cellspacing="0" cellpadding="0">
125 <tr>
126 <td><a href="amuleweb-main-dload.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('transfert','','images/transf_1.png',1)"><img src="images/transf_0.png" alt="transfert" name="transfert" width="52" height="50" border="0"></a></td>
127 <td><a href="amuleweb-main-shared.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('shared','','images/shared_1.png',1)"><img src="images/shared_0.png" alt="shared" name="shared" width="52" height="50" border="0"></a></td>
128 <td><a href="amuleweb-main-search.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('search','','images/search_1.png',1)"><img src="images/search_0.png" alt="search" name="search" width="52" height="50" border="0"></a></td>
129 <td><a href="amuleweb-main-servers.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('edkserver','','images/edkserv_1.png',1)"><img src="images/edkserv_0.png" alt="edkserver" name="edkserver" width="52" height="50" border="0"></a></td>
130 <td><a href="amuleweb-main-kad.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('sheserv','','images/sheserv_1.png',1)"><img src="images/sheserv_0.png" alt="sheserv" name="sheserv" width="52" height="50" border="0"></a></td>
131 <td><a href="amuleweb-main-stats.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('statistiques','','images/stats_1.png',1)"><img src="images/stats_0.png" alt="statistiques" name="statistiques" width="52" height="50" border="0"></a></td>
132 <td><img src="images/col.png"></td>
133 <td width="10"></td>
134 <td width="190" align="right" class="texteinv"><a href="login.php">exit</a><br>
135 <a href="amuleweb-main-log.php">log &bull;</a> <a href="amuleweb-main-prefs.php">configuration</a></td>
136 <td width="10"></td>
137 </tr>
138 </table></td>
139 </tr>
140 <tr align="center" valign="top">
141 <td colspan="2">
142 <table width="100%" border="0" cellspacing="0" cellpadding="0">
143 <caption>
144 SEARCH
145 </caption>
146 <tr>
147 <td width="24"><img src="images/tab_top_left.png" width="24" height="24"></td>
148 <td background="images/tab_top.png">&nbsp;</td>
149 <td width="24"><img src="images/tab_top_right.png" width="24" height="24"></td>
150 </tr>
151 <tr>
152 <td width="24" background="images/tab_left.png">&nbsp;</td>
154 <td bgcolor="#FFFFFF"><form name="mainform" action="amuleweb-main-search.php" method="post">
155 <table width="100%" border="0" align="center" cellpadding="4" cellspacing="0">
156 <tr align="center">
157 <td align="center">
158 <input type="hidden" name="command" value="">
159 <input name="searchval" type="text" id="searchval4" size="60">
160 <input name="Search" type="submit" id="Search4" value="Search" onClick="javascript:formCommandSubmit('search');"></td>
161 <td align="right">Availability :</td>
162 <td align="left">
163 <input name="avail" type="text" id="avail13" size="6"></td>
164 <td align="left">Min Size : </td>
165 <td align="left">
166 <input name="minsize" type="text" id="minsize2" size="5">
167 <select name="minsizeu" id="select8">
168 <option>Byte</option>
169 <option>KByte</option>
170 <option selected>MByte</option>
171 <option>GByte</option>
172 </select></td>
173 </tr>
174 <tr>
175 <td align="center"><a href="amuleweb-main-search.php?search_sort=<?php echo($HTTP_GET_VARS["sort"]);?>">Click here to update the search results</a> </td>
176 <td align="right">Search type :</td>
177 <td>
178 <select name="searchtype" id="select">
179 <option selected>Local</option>
180 <option>Global</option>
181 <option>Kad</option>
182 </select></td>
183 <td>Max Size : </td>
184 <td>
185 <input name="maxsize" type="text" id="maxsize4" size="5">
186 <select name="maxsizeu" id="select10">
187 <option>Byte</option>
188 <option>KByte</option>
189 <option selected>MByte</option>
190 <option>GByte</option>
191 </select></td>
192 </tr>
193 </table>
194 <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
195 <th>&nbsp;</th>
196 <th><a href="amuleweb-main-search.php?sort=name">File Name</a></th>
197 <th><a href="amuleweb-main-search.php?sort=size">Size</a></th>
198 <th><a href="amuleweb-main-search.php?sort=sources">Sources</a></th>
199 </tr><tr><td colspan="9" height="1" bgcolor="#000000"></td></tr>
200 <?php
201 function CastToXBytes($size)
203 if ( $size < 1024 ) {
204 $result = $size . " b";
205 } elseif ( $size < 1048576 ) {
206 $result = ($size / 1024.0) . "kb";
207 } elseif ( $size < 1073741824 ) {
208 $result = ($size / 1048576.0) . "mb";
209 } else {
210 $result = ($size / 1073741824.0) . "gb";
212 return $result;
216 // declare it here, before any function reffered it in "global"
218 $sort_order;$sort_reverse;
220 function my_cmp($a, $b)
222 global $sort_order, $sort_reverse;
224 switch ( $sort_order) {
225 case "size": $result = $a->size > $b->size; break;
226 case "name": $result = $a->name > $b->name; break;
227 case "sources": $result = $a->sources > $b->sources; break;
230 if ( $sort_reverse ) {
231 $result = !$result;
234 return $result;
237 function str2mult($str)
239 $result = 1;
240 switch($str) {
241 case "Byte": $result = 1; break;
242 case "KByte": $result = 1024; break;
243 case "MByte": $result = 1012*1024; break;
244 case "GByte": $result = 1012*1024*1024; break;
246 return $result;
249 function cat2idx($cat)
251 $cats = amule_get_categories();
252 $result = 0;
253 foreach($cats as $i => $c) {
254 if ( $cat == $c) $result = $i;
256 return $result;
259 if ($_SESSION["guest_login"] == 0) {
260 if ( $HTTP_GET_VARS["command"] == "search") {
261 $search_type = -1;
262 switch($HTTP_GET_VARS["searchtype"]) {
263 case "Local": $search_type = 0; break;
264 case "Global": $search_type = 1; break;
265 case "Kad": $search_type = 2; break;
267 $min_size = $HTTP_GET_VARS["minsize"] == "" ? 0 : $HTTP_GET_VARS["minsize"];
268 $max_size = $HTTP_GET_VARS["maxsize"] == "" ? 0 : $HTTP_GET_VARS["maxsize"];
270 $min_size *= str2mult($HTTP_GET_VARS["minsizeu"]);
271 $max_size *= str2mult($HTTP_GET_VARS["maxsizeu"]);
273 amule_do_search_start_cmd($HTTP_GET_VARS["searchval"],
274 //$HTTP_GET_VARS["ext"], $HTTP_GET_VARS["filetype"],
275 "", "",
276 $search_type, $HTTP_GET_VARS["avail"], $min_size, $max_size);
277 } elseif ( $HTTP_GET_VARS["command"] == "download") {
278 foreach ( $HTTP_GET_VARS as $name => $val) {
279 // this is file checkboxes
280 if ( (strlen($name) == 32) and ($val == "on") ) {
281 $cat = $HTTP_GET_VARS["targetcat"];
282 $cat_idx = cat2idx($cat);
283 amule_do_search_download_cmd($name, $cat_idx);
286 } else {
289 $search = amule_load_vars("searchresult");
291 $sort_order = $HTTP_GET_VARS["sort"];
293 if ( $sort_order == "" ) {
294 $sort_order = $_SESSION["search_sort"];
295 } else {
296 if ( $_SESSION["search_sort_reverse"] == "" ) {
297 $_SESSION["search_sort_reverse"] = 0;
298 } else {
299 $_SESSION["search_sort_reverse"] = !$_SESSION["search_sort_reverse"];
303 $sort_reverse = $_SESSION["search_sort_reverse"];
304 if ( $sort_order != "" ) {
305 $_SESSION["search_sort"] = $sort_order;
306 usort(&$search, "my_cmp");
309 foreach ($search as $file) {
310 print "<tr>";
312 echo "<td class='texte'>", '<input type="checkbox" name="', $file->hash, '" >', "</td>";
314 echo "<td class='texte'>", $file->short_name, "</td>";
316 echo "<td class='texte' align='center'>", CastToXBytes($file->size), "</td>";
318 echo "<td class='texte' align='center'>", $file->sources, "</td>";
320 print "</tr></tr><tr><td colspan='9' height='1' bgcolor='#c0c0c0'></td></tr>";
324 <tr align="right">
325 <td colspan="4" scope="col">
326 <input name="Download" type="submit" id="Download6" value="Download" onClick="javascript:formCommandSubmit('download');" >
327 <select name="targetcat" id="select32">
328 <?php
329 $cats = amule_get_categories();
330 foreach($cats as $c) {
331 echo "<option>", $c, "</option>";
334 </select></td>
335 </table>
336 </form></td>
337 <td width="24" background="images/tab_right.png">&nbsp;</td>
338 </tr>
339 <tr>
340 <td width="24"><img src="images/tab_bottom_left.png" width="24" height="24"></td>
341 <td background="images/tab_bottom.png">&nbsp;</td>
342 <td width="24"><img src="images/tab_bottom_right.png" width="24" height="24"></td>
343 </tr>
344 </table></td>
345 </tr>
346 <tr valign="bottom">
347 <td height="25" colspan="2"> <table width="100%" height="40" border="0" cellpadding="0" cellspacing="0">
348 <tr align="center" valign="middle">
349 <td width="50%"> <iframe name="stats" src="footer.php" height="35" width="100%" scrolling="no" frameborder="0">edklink</iframe>
350 </td>
351 <td width="50%"> <iframe name="stats" src="stats.php" height="35" width="100%" scrolling="no" frameborder="0">connection</iframe>
352 </td>
353 </tr>
354 </table></td>
355 </tr>
356 </table>
357 </body>
358 </html>