PageRenderTime 44ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/src/webserver/default/amuleweb-main-search.php

https://bitbucket.org/gzf/umule
PHP | 358 lines | 326 code | 26 blank | 6 comment | 42 complexity | 79d2067d50796b3ff1536df62e626230 MD5 | raw file
Possible License(s): GPL-2.0, AGPL-1.0, LGPL-2.0, LGPL-2.1
  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=UTF-8">
  6. <script language="JavaScript" type="text/JavaScript">
  7. <!--
  8. function MM_swapImgRestore() { //v3.0
  9. var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
  10. }
  11. function MM_preloadImages() { //v3.0
  12. var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
  13. var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
  14. if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
  15. }
  16. function MM_findObj(n, d) { //v4.01
  17. var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
  18. d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  19. if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  20. for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  21. if(!x && d.getElementById) x=d.getElementById(n); return x;
  22. }
  23. function MM_swapImage() { //v3.0
  24. var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  25. if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
  26. }
  27. //-->
  28. </script>
  29. <link href="style.css" rel="stylesheet" type="text/css"><style type="text/css">
  30. <!--
  31. caption {
  32. font-family: Helvetica;
  33. font-size: 18px;
  34. font-weight: bold;
  35. color: #003161;
  36. }
  37. th {
  38. font-family: Helvetica;
  39. font-size: 14px;
  40. font-height: 22px;
  41. font-weight: bold;
  42. color: #003161;
  43. }
  44. a:link {
  45. color: #003161;
  46. text-decoration: none;
  47. }
  48. a:active {
  49. color: #003161;
  50. text-decoration: none;
  51. }
  52. a:visited {
  53. color: #003161;
  54. text-decoration: none;
  55. }
  56. a:hover {
  57. color: #c0c0c0;
  58. text-decoration: underline;
  59. }
  60. td {
  61. font-family: Helvetica;
  62. font-size: 12px;
  63. font-weight: normal;
  64. }
  65. label {
  66. font-family: Helvetica;
  67. font-size: 14px;
  68. font-weight: bold;
  69. }
  70. .texte {
  71. font-family: Helvetica;
  72. font-size: 12px;
  73. font-weight: normal;
  74. }
  75. label {
  76. font-family:"trebuchet ms",sans-serif;
  77. font-size: 12px;
  78. font-weight:bold
  79. }
  80. input {
  81. border:1px solid #003161;
  82. background-color: white;
  83. font-family:"trebuchet ms",sans-serif;
  84. font-size: 12px;
  85. color: #003161;
  86. }
  87. select, option {
  88. background-color: white;
  89. font-size: 12px;
  90. color: #003161;
  91. }
  92. textarea {
  93. border:1px solid #003161;
  94. background-color: #90B6DB;
  95. font-family:"trebuchet ms",sans-serif;
  96. font-size: 12px;
  97. color: white;
  98. }
  99. -->
  100. </style>
  101. </head><script language="JavaScript" type="text/JavaScript">
  102. function formCommandSubmit(command)
  103. {
  104. <?php
  105. if ($_SESSION["guest_login"] != 0) {
  106. echo 'alert("You logged in as guest - commands are disabled");';
  107. echo "return;";
  108. }
  109. ?>
  110. var frm=document.forms.mainform
  111. frm.command.value=command
  112. frm.submit()
  113. }
  114. </script>
  115. <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');">
  116. <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
  117. <tr valign="top">
  118. <td width="143" height="64"><img src="images/logo.png" width="143" height="64"></td>
  119. <td width="100%" height="64" align="right" background="images/fond_haut.png"> <table border="0" cellspacing="0" cellpadding="0">
  120. <tr>
  121. <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>
  122. <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>
  123. <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>
  124. <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>
  125. <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>
  126. <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>
  127. <td><img src="images/col.png"></td>
  128. <td width="10"></td>
  129. <td width="190" align="right" class="texteinv"><a href="login.php">exit</a><br>
  130. <a href="amuleweb-main-log.php">log &bull;</a> <a href="amuleweb-main-prefs.php">configuration</a></td>
  131. <td width="10"></td>
  132. </tr>
  133. </table></td>
  134. </tr>
  135. <tr align="center" valign="top">
  136. <td colspan="2">
  137. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  138. <caption>
  139. SEARCH
  140. </caption>
  141. <tr>
  142. <td width="24"><img src="images/tab_top_left.png" width="24" height="24"></td>
  143. <td background="images/tab_top.png">&nbsp;</td>
  144. <td width="24"><img src="images/tab_top_right.png" width="24" height="24"></td>
  145. </tr>
  146. <tr>
  147. <td width="24" background="images/tab_left.png">&nbsp;</td>
  148. <td bgcolor="#FFFFFF"><form name="mainform" action="amuleweb-main-search.php" method="post">
  149. <table width="100%" border="0" align="center" cellpadding="4" cellspacing="0">
  150. <tr align="center">
  151. <td align="center">
  152. <input type="hidden" name="command" value="">
  153. <input name="searchval" type="text" id="searchval4" size="60">
  154. <input name="Search" type="submit" id="Search4" value="Search" onClick="javascript:formCommandSubmit('search');"></td>
  155. <td align="right">Availability :</td>
  156. <td align="left">
  157. <input name="avail" type="text" id="avail13" size="6"></td>
  158. <td align="left">Min Size : </td>
  159. <td align="left">
  160. <input name="minsize" type="text" id="minsize2" size="5">
  161. <select name="minsizeu" id="select8">
  162. <option>Byte</option>
  163. <option>KByte</option>
  164. <option selected>MByte</option>
  165. <option>GByte</option>
  166. </select></td>
  167. </tr>
  168. <tr>
  169. <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>
  170. <td align="right">Search type :</td>
  171. <td>
  172. <select name="searchtype" id="select">
  173. <option selected>Local</option>
  174. <option>Global</option>
  175. <option>Kad</option>
  176. </select></td>
  177. <td>Max Size : </td>
  178. <td>
  179. <input name="maxsize" type="text" id="maxsize4" size="5">
  180. <select name="maxsizeu" id="select10">
  181. <option>Byte</option>
  182. <option>KByte</option>
  183. <option selected>MByte</option>
  184. <option>GByte</option>
  185. </select></td>
  186. </tr>
  187. </table>
  188. <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  189. <th>&nbsp;</th>
  190. <th><a href="amuleweb-main-search.php?sort=name">File Name</a></th>
  191. <th><a href="amuleweb-main-search.php?sort=size">Size</a></th>
  192. <th><a href="amuleweb-main-search.php?sort=sources">Sources</a></th>
  193. </tr><tr><td colspan="9" height="1" bgcolor="#000000"></td></tr>
  194. <?php
  195. function CastToXBytes($size)
  196. {
  197. if ( $size < 1024 ) {
  198. $result = $size . " b";
  199. } elseif ( $size < 1048576 ) {
  200. $result = ($size / 1024.0) . "kb";
  201. } elseif ( $size < 1073741824 ) {
  202. $result = ($size / 1048576.0) . "mb";
  203. } else {
  204. $result = ($size / 1073741824.0) . "gb";
  205. }
  206. return $result;
  207. }
  208. //
  209. // declare it here, before any function reffered it in "global"
  210. //
  211. $sort_order;$sort_reverse;
  212. function my_cmp($a, $b)
  213. {
  214. global $sort_order, $sort_reverse;
  215. switch ( $sort_order) {
  216. case "size": $result = $a->size > $b->size; break;
  217. case "name": $result = $a->name > $b->name; break;
  218. case "sources": $result = $a->sources > $b->sources; break;
  219. }
  220. if ( $sort_reverse ) {
  221. $result = !$result;
  222. }
  223. return $result;
  224. }
  225. function str2mult($str)
  226. {
  227. $result = 1;
  228. switch($str) {
  229. case "Byte": $result = 1; break;
  230. case "KByte": $result = 1024; break;
  231. case "MByte": $result = 1012*1024; break;
  232. case "GByte": $result = 1012*1024*1024; break;
  233. }
  234. return $result;
  235. }
  236. function cat2idx($cat)
  237. {
  238. $cats = amule_get_categories();
  239. $result = 0;
  240. foreach($cats as $i => $c) {
  241. if ( $cat == $c) $result = $i;
  242. }
  243. return $result;
  244. }
  245. if ($_SESSION["guest_login"] == 0) {
  246. if ( $HTTP_GET_VARS["command"] == "search") {
  247. $search_type = -1;
  248. switch($HTTP_GET_VARS["searchtype"]) {
  249. case "Local": $search_type = 0; break;
  250. case "Global": $search_type = 1; break;
  251. case "Kad": $search_type = 2; break;
  252. }
  253. $min_size = $HTTP_GET_VARS["minsize"] == "" ? 0 : $HTTP_GET_VARS["minsize"];
  254. $max_size = $HTTP_GET_VARS["maxsize"] == "" ? 0 : $HTTP_GET_VARS["maxsize"];
  255. $min_size *= str2mult($HTTP_GET_VARS["minsizeu"]);
  256. $max_size *= str2mult($HTTP_GET_VARS["maxsizeu"]);
  257. amule_do_search_start_cmd($HTTP_GET_VARS["searchval"],
  258. //$HTTP_GET_VARS["ext"], $HTTP_GET_VARS["filetype"],
  259. "", "",
  260. $search_type, $HTTP_GET_VARS["avail"], $min_size, $max_size);
  261. } elseif ( $HTTP_GET_VARS["command"] == "download") {
  262. foreach ( $HTTP_GET_VARS as $name => $val) {
  263. // this is file checkboxes
  264. if ( (strlen($name) == 32) and ($val == "on") ) {
  265. $cat = $HTTP_GET_VARS["targetcat"];
  266. $cat_idx = cat2idx($cat);
  267. amule_do_search_download_cmd($name, $cat_idx);
  268. }
  269. }
  270. } else {
  271. }
  272. }
  273. $search = amule_load_vars("searchresult");
  274. $sort_order = $HTTP_GET_VARS["sort"];
  275. if ( $sort_order == "" ) {
  276. $sort_order = $_SESSION["search_sort"];
  277. } else {
  278. if ( $_SESSION["search_sort_reverse"] == "" ) {
  279. $_SESSION["search_sort_reverse"] = 0;
  280. } else {
  281. $_SESSION["search_sort_reverse"] = !$_SESSION["search_sort_reverse"];
  282. }
  283. }
  284. $sort_reverse = $_SESSION["search_sort_reverse"];
  285. if ( $sort_order != "" ) {
  286. $_SESSION["search_sort"] = $sort_order;
  287. usort(&$search, "my_cmp");
  288. }
  289. foreach ($search as $file) {
  290. print "<tr>";
  291. echo "<td class='texte'>", '<input type="checkbox" name="', $file->hash, '" >', "</td>";
  292. echo "<td class='texte'>", $file->short_name, "</td>";
  293. echo "<td class='texte' align='center'>", CastToXBytes($file->size), "</td>";
  294. echo "<td class='texte' align='center'>", $file->sources, "</td>";
  295. print "</tr></tr><tr><td colspan='9' height='1' bgcolor='#c0c0c0'></td></tr>";
  296. }
  297. ?>
  298. <tr align="right">
  299. <td colspan="4" scope="col">
  300. <input name="Download" type="submit" id="Download6" value="Download" onClick="javascript:formCommandSubmit('download');" >
  301. <select name="targetcat" id="select32">
  302. <?php
  303. $cats = amule_get_categories();
  304. foreach($cats as $c) {
  305. echo "<option>", $c, "</option>";
  306. }
  307. ?>
  308. </select></td>
  309. </table>
  310. </form></td>
  311. <td width="24" background="images/tab_right.png">&nbsp;</td>
  312. </tr>
  313. <tr>
  314. <td width="24"><img src="images/tab_bottom_left.png" width="24" height="24"></td>
  315. <td background="images/tab_bottom.png">&nbsp;</td>
  316. <td width="24"><img src="images/tab_bottom_right.png" width="24" height="24"></td>
  317. </tr>
  318. </table></td>
  319. </tr>
  320. <tr valign="bottom">
  321. <td height="25" colspan="2"> <table width="100%" height="40" border="0" cellpadding="0" cellspacing="0">
  322. <tr align="center" valign="middle">
  323. <td width="50%"> <iframe name="stats" src="footer.php" height="35" width="100%" scrolling="no" frameborder="0">edklink</iframe>
  324. </td>
  325. <td width="50%"> <iframe name="stats" src="stats.php" height="35" width="100%" scrolling="no" frameborder="0">connection</iframe>
  326. </td>
  327. </tr>
  328. </table></td>
  329. </tr>
  330. </table>
  331. </body>
  332. </html>