PageRenderTime 83ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/cms/modules/search/admin/admin.php

https://github.com/akash6190/pragyan
PHP | 1308 lines | 1222 code | 81 blank | 5 comment | 107 complexity | c0579e72414a6b84cf3adb054adb6a18 MD5 | raw file
  1. <?php
  2. if(!defined('__PRAGYAN_CMS'))
  3. {
  4. header($_SERVER['SERVER_PROTOCOL'].' 403 Forbidden');
  5. echo "<h1>403 Forbidden<h1><h4>You are not authorized to access the page.</h4>";
  6. echo '<hr/>'.$_SERVER['SERVER_SIGNATURE'];
  7. exit(1);
  8. }
  9. /*******************************************
  10. * Sphider Version 1..3.*
  11. * This program is licensed under the GNU GPL.
  12. * By Ando Saabas ando(a t)cs.ioc.ee
  13. ********************************************/
  14. error_reporting (E_ALL ^ E_NOTICE);
  15. $include_dir = "../include";
  16. include "auth.php";
  17. include "$include_dir/commonfuncs.php";
  18. extract (getHttpVars());
  19. $settings_dir = "../settings";
  20. $template_dir = "../templates";
  21. include "$settings_dir/conf.php";
  22. set_time_limit (0);
  23. ?>
  24. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  25. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  26. <head>
  27. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  28. <title>Sphider administrator tools</title>
  29. <link rel="stylesheet" href="admin.css" type="text/css" />
  30. </head>
  31. <body>
  32. <?php
  33. if (!isset($f)) {
  34. $f=2;
  35. }
  36. $site_funcs = Array (22=> "default",21=> "default",4=> "default", 19=> "default", 1=> "default", 2 => "default", "add_site" => "default", 20=> "default", "edit_site" => "default", 5=>"default");
  37. $stat_funcs = Array ("statistics" => "default", "delete_log"=> "default");
  38. $settings_funcs = Array ("settings" => "default");
  39. $index_funcs = Array ("index" => "default");
  40. $index_funcs = Array ("index" => "default");
  41. $clean_funcs = Array ("clean" => "default", 15=>"default", 16=>"default", 17=>"default", 23=>"default");
  42. $cat_funcs = Array (11=> "default", 10=> "default", "categories" => "default", "edit_cat"=>"default", "delete_cat"=>"default", "add_cat" => "default", 7=> "default");
  43. $database_funcs = Array ("database" => "default");
  44. ?>
  45. <div id="admin">
  46. <div id="tabs">
  47. <ul>
  48. <?php
  49. if ($stat_funcs[$f] ) {
  50. $stat_funcs[$f] = "selected";
  51. } else {
  52. $stat_funcs[$f] = "default";
  53. }
  54. if ($site_funcs[$f] ) {
  55. $site_funcs[$f] = "selected";
  56. }else {
  57. $site_funcs[$f] = "default";
  58. }
  59. if ($settings_funcs[$f] ) {
  60. $settings_funcs[$f] = "selected";
  61. } else {
  62. $settings_funcs[$f] = "default";
  63. }
  64. if ($index_funcs[$f] ) {
  65. $index_funcs[$f] = "selected";
  66. } else {
  67. $index_funcs[$f] = "default";
  68. }
  69. if ($cat_funcs[$f] ) {
  70. $cat_funcs[$f] = "selected";
  71. } else {
  72. $cat_funcs[$f] = "default";
  73. }
  74. if ($clean_funcs[$f] ) {
  75. $clean_funcs[$f] = "selected";
  76. } else {
  77. $clean_funcs[$f] = "default";
  78. }
  79. if ($database_funcs[$f] ) {
  80. $database_funcs[$f] = "selected";
  81. } else {
  82. $database_funcs[$f] = "default";
  83. }
  84. ?>
  85. <li><a href="admin.php?f=2" id="<?php print $site_funcs[$f]?>">Sites</a> </li>
  86. <li><a href="admin.php?f=categories" id="<?php print $cat_funcs[$f]?>">Categories</a></li>
  87. <li><a href="admin.php?f=index" id="<?php print $index_funcs[$f]?>">Index</a></li>
  88. <li><a href="admin.php?f=clean" id="<?php print $clean_funcs[$f]?>">Clean tables</a> </li>
  89. <li><a href="admin.php?f=settings" id="<?php print $settings_funcs[$f]?>">Settings</a></li>
  90. <li><a href="admin.php?f=statistics" id="<?php print $stat_funcs[$f]?>">Statistics</a> </li>
  91. <li><a href="admin.php?f=database" id="<?php print $database_funcs[$f]?>">Database</a></li>
  92. <li><a href="admin.php?f=24" id="default">Log out</a></li>
  93. </ul>
  94. </div>
  95. <div id="main">
  96. <?php
  97. function list_cats($parent, $lev, $color, $message) {
  98. global $mysql_table_prefix;
  99. if ($lev == 0) {
  100. ?>
  101. <div id="submenu">
  102. <ul>
  103. <li><a href="admin.php?f=add_cat">Add category</a> </li>
  104. </ul>
  105. </div>
  106. <?php
  107. print $message;
  108. print "<br/>";
  109. print "<br/><div align=\"center\"><center><table cellspacing =\"0\" cellpadding=\"0\" class=\"darkgrey\" width =\"600\"><tr><td><table table cellpadding=\"3\" cellspacing=\"1\" width=\"100%\">\n";
  110. }
  111. $space = "";
  112. for ($x = 0; $x < $lev; $x++)
  113. $space .= "&nbsp;&nbsp;&nbsp;&nbsp;";
  114. $query = "SELECT * FROM ".$mysql_table_prefix."categories WHERE parent_num=$parent ORDER BY category";
  115. $result = mysql_query($query);
  116. echo mysql_error();
  117. if (mysql_num_rows($result) <> '')
  118. while ($row = mysql_fetch_array($result)) {
  119. if ($color =="white")
  120. $color = "grey";
  121. else
  122. $color = "white";
  123. $id = $row['category_id'];
  124. $cat = $row['category'];
  125. print "<tr class=\"$color\"><td width=90% align=left>$space<a href=\"admin.php?f=edit_cat&cat_id=$id\">".stripslashes($cat). "</a></td><td><a href=\"admin.php?f=edit_cat&cat_id=$id\" id=\"small_button\">Edit</a></td><td> <a href=\"admin.php?f=11&cat_id=$id\" onclick=\"return confirm('Are you sure you want to delete? Subcategories will be lost.')\" id=\"small_button\">Delete</a></td></tr>\n";
  126. $color = list_cats($id, $lev + 1, $color, "");
  127. }
  128. if ($lev == 0)
  129. print "</table></td></tr></table></center></div>\n";
  130. return $color;
  131. }
  132. function walk_through_cats($parent, $lev, $site_id) {
  133. global $mysql_table_prefix;
  134. $space = "";
  135. for ($x = 0; $x < $lev; $x++)
  136. $space .= "&nbsp;&nbsp;&nbsp;&nbsp;";
  137. $query = "SELECT * FROM ".$mysql_table_prefix."categories WHERE parent_num=$parent ORDER BY category";
  138. $result = mysql_query($query);
  139. echo mysql_error();
  140. if (mysql_num_rows($result) <> '')
  141. while ($row = mysql_fetch_array($result)) {
  142. $id = $row['category_id'];
  143. $cat = $row['category'];
  144. $state = '';
  145. if ($site_id <> '') {
  146. $result2 = mysql_query("select * from ".$mysql_table_prefix."site_category where site_id=$site_id and category_id=$id");
  147. echo mysql_error();
  148. $rows = mysql_num_rows($result2);
  149. if ($rows > 0)
  150. $state = "checked";
  151. }
  152. print $space . "<input type=checkbox name=cat[$id] $state>" . $cat . "<br/>\n";
  153. ;
  154. walk_through_cats($id, $lev + 1, $site_id);
  155. }
  156. }
  157. function addcatform($parent) {
  158. global $mysql_table_prefix;
  159. $par2 = "";
  160. $par2num = "";
  161. ?>
  162. <div id="submenu">
  163. </div>
  164. <?php
  165. if ($parent=='')
  166. $par='(Top level)';
  167. else {
  168. $query = "SELECT category, parent_num FROM ".$mysql_table_prefix."categories WHERE category_id='$parent'";
  169. $result = mysql_query($query);
  170. if (!mysql_error()) {
  171. if ($row = mysql_fetch_row($result)) {
  172. $par=$row[0];
  173. $query = "SELECT Category_ID, Category FROM ".$mysql_table_prefix."categories WHERE Category_ID='$row[1]'";
  174. $result = mysql_query($query);
  175. echo mysql_error();
  176. if (mysql_num_rows($result)<>'') {
  177. $row = mysql_fetch_row($result);
  178. $par2num = $row[0];
  179. $par2 = $row[1];
  180. }
  181. else
  182. $par2 = "Top level";
  183. }
  184. }
  185. else
  186. echo mysql_error();
  187. print "</td></tr></table>";
  188. }
  189. ?>
  190. <br/><center><table><tr><td valign=top align=center colspan=2><b>Parent: <?php print "<a href=admin.php?f=add_cat&parent=$par2num>$par2</a> >".stripslashes($par)?></b></td></tr>
  191. <form action=admin.php method=post>
  192. <input type=hidden name=f value=7>
  193. <input type=hidden name=parent value="<?php print $parent?>"
  194. <tr><td><b>Category:</b></td><td> <input type=text name=category size=40></td></tr>
  195. <tr><td></td><td><input type=submit id="submit" value=Add></td></tr></form>
  196. <?php
  197. print "<tr><td colspan=2>";
  198. $query = "SELECT category_ID, Category FROM ".$mysql_table_prefix."categories WHERE parent_num='$parent'";
  199. $result = mysql_query($query);
  200. echo mysql_error();
  201. if (mysql_num_rows($result)>0) {
  202. print "<br/><b>Create subcategory under</b><br/><br/>";
  203. }
  204. while ($row = mysql_fetch_row($result)) {
  205. print "<a href=\"admin.php?f=add_cat&parent=$row[0]\">".stripslashes($row[1])."</a><br/>";
  206. }
  207. print "</td></tr></table></center>";
  208. }
  209. function addcat ($category, $parent) {
  210. global $mysql_table_prefix;
  211. if ($category=="") return;
  212. $category = addslashes($category);
  213. if ($parent == "") {
  214. $parent = 0;
  215. }
  216. $query = "INSERT INTO ".$mysql_table_prefix."categories (category, parent_num)
  217. VALUES ('$category', ".$parent.")";
  218. mysql_query($query);
  219. If (!mysql_error()) {
  220. return "<center><b>Category $category added.</b></center>" ;
  221. } else {
  222. return mysql_error();
  223. }
  224. }
  225. function addsiteform() {
  226. ?>
  227. <div id="submenu"><center><b>Add a site</b></center></div>
  228. <br/><div align=center><center><table>
  229. <form action=admin.php method=post>
  230. <input type=hidden name=f value=1>
  231. <input type=hidden name=af value=2>
  232. <tr><td><b>URL:</b></td><td align ="right"></td><td><input type=text name=url size=60 value ="http://"></td></tr>
  233. <tr><td><b>Title:</b></td><td></td><td> <input type=text name=title size=60></td></tr>
  234. <tr><td><b>Short description:</b></td><td></td><td><textarea name=short_desc cols=45 rows=3 wrap="virtual"></textarea></td></tr>
  235. <tr><td>Category:</td><td></td><td>
  236. <?php walk_through_cats(0, 0, '');?></td></tr>
  237. <tr><td></td><td></td><td><input type=submit id="submit" value=Add></td></tr></form></table></center></div>
  238. <?php
  239. }
  240. function editsiteform($site_id) {
  241. global $mysql_table_prefix;
  242. $result = mysql_query("SELECT site_id, url, title, short_desc, spider_depth, required, disallowed, can_leave_domain from ".$mysql_table_prefix."sites where site_id=$site_id");
  243. echo mysql_error();
  244. $row = mysql_fetch_array($result);
  245. $depth = $row['spider_depth'];
  246. $fullchecked = "";
  247. $depthchecked = "";
  248. if ($depth == -1 ) {
  249. $fullchecked = "checked";
  250. $depth ="";
  251. } else {
  252. $depthchecked = "checked";
  253. }
  254. $leave_domain = $row['can_leave_domain'];
  255. if ($leave_domain == 1 ) {
  256. $domainchecked = "checked";
  257. } else {
  258. $domainchecked = "";
  259. }
  260. ?>
  261. <div id="submenu"><center><b>Edit site</b></center>
  262. </div>
  263. <br/><div align=center><center><table>
  264. <form action=admin.php method=post>
  265. <input type=hidden name=f value=4>
  266. <input type=hidden name=site_id value=<?php print $site_id;?>>
  267. <tr><td><b>URL:</b></td><td align ="right"></td><td><input type=text name=url value=<?php print "\"".$row['url']."\""?> size=60></td></tr>
  268. <tr><td><b>Title:</b></td><td></td><td> <input type=text name=title value=<?php print "\"".stripslashes($row['title'])."\""?> size=60></td></tr>
  269. <tr><td><b>Short description:</b></td><td></td><td><textarea name=short_desc cols=45 rows=3 wrap><?php print stripslashes($row['short_desc'])?></textarea></td></tr>
  270. <tr><td><b>Spidering options:</b></td><td></td><td><input type="radio" name="soption" value="full" <?php print $fullchecked;?>> Full<br/>
  271. <input type="radio" name="soption" value="level" <?php print $depthchecked;?>>To depth: <input type="text" name="depth" size="2" value="<?php print $depth;?>"><br/>
  272. <input type="checkbox" name="domaincb" value="1" <?php print $domainchecked;?>> Spider can leave domain
  273. </td></tr>
  274. <tr><td><b>URLs must include:</b></td><td></td><td><textarea name=in cols=45 rows=2 wrap="virtual"><?php print $row['required'];?></textarea></td></tr>
  275. <tr><td><b>URLs must not include:</b></td><td></td><td><textarea name=out cols=45 rows=2 wrap="virtual"><?php print $row['disallowed'];?></textarea></td></tr>
  276. <tr><td>Category:</td><td></td><td>
  277. <?php walk_through_cats(0, 0, $site_id);?></td></tr>
  278. <tr><td></td><td></td><td><input type="submit" id="submit" value="Update"></td></tr></form></table></center></div>
  279. <?php
  280. }
  281. function editsite ($site_id, $url, $title, $short_desc, $depth, $required, $disallowed, $domaincb, $cat) {
  282. global $mysql_table_prefix;
  283. $short_desc = addslashes($short_desc);
  284. $title = addslashes($title);
  285. mysql_query("delete from ".$mysql_table_prefix."site_category where site_id=$site_id");
  286. echo mysql_error();
  287. $compurl=parse_url($url);
  288. if ($compurl['path']=='')
  289. $url=$url."/";
  290. mysql_query("UPDATE ".$mysql_table_prefix."sites SET url='$url', title='$title', short_desc='$short_desc', spider_depth =$depth, required='$required', disallowed='$disallowed', can_leave_domain=$domaincb WHERE site_id=$site_id");
  291. echo mysql_error();
  292. $result=mysql_query("select category_id from ".$mysql_table_prefix."categories");
  293. echo mysql_error();
  294. print mysql_error();
  295. while ($row=mysql_fetch_row($result)) {
  296. $cat_id=$row[0];
  297. if ($cat[$cat_id]=='on') {
  298. mysql_query("INSERT INTO ".$mysql_table_prefix."site_category (site_id, category_id) values ('$site_id', '$cat_id')");
  299. echo mysql_error();
  300. }
  301. }
  302. If (!mysql_error()) {
  303. return "<br/><center><b>Site updated.</b></center>" ;
  304. } else {
  305. return mysql_error();
  306. }
  307. }
  308. function editcatform($cat_id) {
  309. global $mysql_table_prefix;
  310. $result = mysql_query("SELECT category FROM ".$mysql_table_prefix."categories where category_id='$cat_id'");
  311. echo mysql_error();
  312. $row=mysql_fetch_array($result);
  313. $category=$row[0];
  314. ?>
  315. <div id="submenu">
  316. <center><b>Edit category</b></center>
  317. </div>
  318. <br/>
  319. <div align="center"><center><table>
  320. <form action="admin.php" method="post">
  321. <input type="hidden" name="f" value="10">
  322. <input type="hidden" name="cat_id" value="<?php print $cat_id;?>"
  323. <tr><td><b>Category:</b></td><td> <input type="text" name="category" value="<?php print $category?>"size=40></td></tr>
  324. <tr><td></td><td><input type="submit" id="submit" value="Update"></td></tr></form></table></center></div>
  325. <?php
  326. }
  327. function editcat ($cat_id, $category) {
  328. global $mysql_table_prefix;
  329. $qry = "UPDATE ".$mysql_table_prefix."categories SET category='".addslashes($category)."' WHERE category_id='$cat_id'";
  330. mysql_query($qry);
  331. if (!mysql_error()) {
  332. return "<br/><center><b>Category updated</b></center>";
  333. } else {
  334. return mysql_error();
  335. }
  336. }
  337. function showsites($message) {
  338. global $mysql_table_prefix;
  339. $result = mysql_query("SELECT site_id, url, title, indexdate from ".$mysql_table_prefix."sites ORDER By indexdate, title");
  340. echo mysql_error();
  341. ?>
  342. <div id='submenu'>
  343. <ul>
  344. <li><a href='admin.php?f=add_site'>Add site</a> </li>
  345. <?php
  346. if (mysql_num_rows($result) > 0) {
  347. ?>
  348. <li><a href='spider.php?all=1'> Reindex all</a></li>
  349. <?php
  350. }
  351. ?>
  352. </ul>
  353. </div>
  354. <?php
  355. print $message;
  356. print "<br/>";
  357. if (mysql_num_rows($result) > 0) {
  358. print "<div align=\"center\"><table cellspacing =\"0\" cellpadding=\"0\" class=\"darkgrey\"><tr><td><table cellpadding=\"3\" cellspacing=\"1\">
  359. <tr class=\"grey\"><td align=\"center\"><b>Site name</b></td><td align=\"center\"><b>Site url</b></td><td align=\"center\"><b>Last indexed</b></td><td colspan=4></td></tr>\n";
  360. } else {
  361. ?><center><p><b>Welcom to Sphider. <br><br>Choose "Add site" from the submenu to add a new site, or "Index" to directly go to the indexing section.</b></p></center><?php
  362. }
  363. $class = "grey";
  364. while ($row=mysql_fetch_array($result)) {
  365. if ($row['indexdate']=='') {
  366. $indexstatus="<font color=\"red\">Not indexed</font>";
  367. $indexoption="<a href=\"admin.php?f=index&url=$row[url]\">Index</a>";
  368. } else {
  369. $site_id = $row['site_id'];
  370. $result2 = mysql_query("SELECT site_id from ".$mysql_table_prefix."pending where site_id =$site_id");
  371. echo mysql_error();
  372. $row2=mysql_fetch_array($result2);
  373. if ($row2['site_id'] == $row['site_id']) {
  374. $indexstatus = "Unfinished";
  375. $indexoption="<a href=\"admin.php?f=index&url=$row[url]\">Continue</a>";
  376. } else {
  377. $indexstatus = $row['indexdate'];
  378. $indexoption="<a href=\"admin.php?f=index&url=$row[url]&reindex=1\">Re-index</a>";
  379. }
  380. }
  381. if ($class =="white")
  382. $class = "grey";
  383. else
  384. $class = "white";
  385. print "<tr class=\"$class\"><td align=\"left\">".stripslashes($row[title])."</td><td align=\"left\"><a href=\"$row[url]\">$row[url]</a></td><td>$indexstatus</td>";
  386. print "<td><a href=admin.php?f=20&site_id=$row[site_id] id=\"small_button\">Options</a></td></tr>\n";
  387. }
  388. if (mysql_num_rows($result) > 0) {
  389. print "</table></td></tr></table></div>";
  390. }
  391. }
  392. function deletecat($cat_id) {
  393. global $mysql_table_prefix;
  394. $list = implode(",", get_cats($cat_id));
  395. mysql_query("delete from ".$mysql_table_prefix."categories where category_id in ($list)");
  396. echo mysql_error();
  397. mysql_query("delete from ".$mysql_table_prefix."site_category where category_id=$cat_id");
  398. echo mysql_error();
  399. return "<center><b>Category deleted.</b></center>";
  400. }
  401. function deletesite($site_id) {
  402. global $mysql_table_prefix;
  403. mysql_query("delete from ".$mysql_table_prefix."sites where site_id=$site_id");
  404. echo mysql_error();
  405. mysql_query("delete from ".$mysql_table_prefix."site_category where site_id=$site_id");
  406. echo mysql_error();
  407. $query = "select link_id from ".$mysql_table_prefix."links where site_id=$site_id";
  408. $result = mysql_query($query);
  409. echo mysql_error();
  410. $todelete = array();
  411. while ($row=mysql_fetch_array($result)) {
  412. $todelete[]=$row['link_id'];
  413. }
  414. if (count($todelete)>0) {
  415. $todelete = implode(",", $todelete);
  416. for ($i=0;$i<=15; $i++) {
  417. $char = dechex($i);
  418. $query = "delete from ".$mysql_table_prefix."link_keyword$char where link_id in($todelete)";
  419. mysql_query($query);
  420. echo mysql_error();
  421. }
  422. }
  423. mysql_query("delete from ".$mysql_table_prefix."links where site_id=$site_id");
  424. echo mysql_error();
  425. mysql_query("delete from ".$mysql_table_prefix."pending where site_id=$site_id");
  426. echo mysql_error();
  427. return "<br/><center><b>Site deleted</b></center>";
  428. }
  429. function deletePage($link_id) {
  430. global $mysql_table_prefix;
  431. mysql_query("delete from ".$mysql_table_prefix."links where link_id=$link_id");
  432. echo mysql_error();
  433. for ($i=0;$i<=15; $i++) {
  434. $char = dechex($i);
  435. mysql_query("delete from ".$mysql_table_prefix."link_keyword$char where link_id=$link_id");
  436. }
  437. echo mysql_error();
  438. return "<br/><center><b>Page deleted</b></center>";
  439. }
  440. function cleanTemp() {
  441. global $mysql_table_prefix;
  442. $result = mysql_query("delete from ".$mysql_table_prefix."temp where level >= 0");
  443. echo mysql_error();
  444. $del = mysql_affected_rows();
  445. ?>
  446. <div id="submenu">
  447. </div><?php
  448. print "<br/><center><b>Temp table cleared, $del items deleted.</b></center>";
  449. }
  450. function clearLog() {
  451. global $mysql_table_prefix;
  452. $result = mysql_query("delete from ".$mysql_table_prefix."query_log where time >= 0");
  453. echo mysql_error();
  454. $del = mysql_affected_rows();
  455. ?>
  456. <div id="submenu">
  457. </div><?php
  458. print "<br/><center><b>Search log cleared, $del items deleted.</b></center>";
  459. }
  460. function cleanLinks() {
  461. global $mysql_table_prefix;
  462. $query = "select site_id from ".$mysql_table_prefix."sites";
  463. $result = mysql_query($query);
  464. echo mysql_error();
  465. $todelete = array();
  466. if (mysql_num_rows($result)>0) {
  467. while ($row=mysql_fetch_array($result)) {
  468. $todelete[]=$row['site_id'];
  469. }
  470. $todelete = implode(",", $todelete);
  471. $sql_end = " not in ($todelete)";
  472. }
  473. $result = mysql_query("select link_id from ".$mysql_table_prefix."links where site_id".$sql_end);
  474. echo mysql_error();
  475. $del = mysql_num_rows($result);
  476. while ($row=mysql_fetch_array($result)) {
  477. $link_id=$row[link_id];
  478. for ($i=0;$i<=15; $i++) {
  479. $char = dechex($i);
  480. mysql_query("delete from ".$mysql_table_prefix."link_keyword$char where link_id=$link_id");
  481. echo mysql_error();
  482. }
  483. mysql_query("delete from ".$mysql_table_prefix."links where link_id=$link_id");
  484. echo mysql_error();
  485. }
  486. $result = mysql_query("select link_id from ".$mysql_table_prefix."links where site_id is NULL");
  487. echo mysql_error();
  488. $del += mysql_num_rows($result);
  489. while ($row=mysql_fetch_array($result)) {
  490. $link_id=$row[link_id];
  491. for ($i=0;$i<=15; $i++) {
  492. $char = dechex($i);
  493. mysql_query("delete from ".$mysql_table_prefix."link_keyword$char where link_id=$link_id");
  494. echo mysql_error();
  495. }
  496. mysql_query("delete from ".$mysql_table_prefix."links where link_id=$link_id");
  497. echo mysql_error();
  498. }
  499. ?>
  500. <div id="submenu">
  501. </div><?php
  502. print "<br/><center><b>Links table cleaned, $del links deleted.</b></center>";
  503. }
  504. function cleanKeywords() {
  505. global $mysql_table_prefix;
  506. $query = "select keyword_id, keyword from ".$mysql_table_prefix."keywords";
  507. $result = mysql_query($query);
  508. echo mysql_error();
  509. $del = 0;
  510. while ($row=mysql_fetch_array($result)) {
  511. $keyId=$row['keyword_id'];
  512. $keyword=$row['keyword'];
  513. $wordmd5 = substr(md5($keyword), 0, 1);
  514. $query = "select keyword_id from ".$mysql_table_prefix."link_keyword$wordmd5 where keyword_id = $keyId";
  515. $result2 = mysql_query($query);
  516. echo mysql_error();
  517. if (mysql_num_rows($result2) < 1) {
  518. mysql_query("delete from ".$mysql_table_prefix."keywords where keyword_id=$keyId");
  519. echo mysql_error();
  520. $del++;
  521. }
  522. }?>
  523. <div id="submenu">
  524. </div><?php
  525. print "<br/><center><b>Keywords table cleaned, $del keywords deleted.</b></center>";
  526. }
  527. function getStatistics() {
  528. global $mysql_table_prefix;
  529. $stats = array();
  530. $keywordQuery = "select count(keyword_id) from ".$mysql_table_prefix."keywords";
  531. $linksQuery = "select count(url) from ".$mysql_table_prefix."links";
  532. $siteQuery = "select count(site_id) from ".$mysql_table_prefix."sites";
  533. $categoriesQuery = "select count(category_id) from ".$mysql_table_prefix."categories";
  534. $result = mysql_query($keywordQuery);
  535. echo mysql_error();
  536. if ($row=mysql_fetch_array($result)) {
  537. $stats['keywords']=$row[0];
  538. }
  539. $result = mysql_query($linksQuery);
  540. echo mysql_error();
  541. if ($row=mysql_fetch_array($result)) {
  542. $stats['links']=$row[0];
  543. }
  544. for ($i=0;$i<=15; $i++) {
  545. $char = dechex($i);
  546. $result = mysql_query("select count(link_id) from ".$mysql_table_prefix."link_keyword$char");
  547. echo mysql_error();
  548. if ($row=mysql_fetch_array($result)) {
  549. $stats['index']+=$row[0];
  550. }
  551. }
  552. $result = mysql_query($siteQuery);
  553. echo mysql_error();
  554. if ($row=mysql_fetch_array($result)) {
  555. $stats['sites']=$row[0];
  556. }
  557. $result = mysql_query($categoriesQuery);
  558. echo mysql_error();
  559. if ($row=mysql_fetch_array($result)) {
  560. $stats['categories']=$row[0];
  561. }
  562. return $stats;
  563. }
  564. function addsite ($url, $title, $short_desc, $cat) {
  565. global $mysql_table_prefix;
  566. $short_desc = addslashes($short_desc);
  567. $title = addslashes($title);
  568. $compurl=parse_url("".$url);
  569. if ($compurl['path']=='')
  570. $url=$url."/";
  571. $result = mysql_query("select site_ID from ".$mysql_table_prefix."sites where url='$url'");
  572. echo mysql_error();
  573. $rows = mysql_numrows($result);
  574. if ($rows==0 ) {
  575. mysql_query("INSERT INTO ".$mysql_table_prefix."sites (url, title, short_desc) VALUES ('$url', '$title', '$short_desc')");
  576. echo mysql_error();
  577. $result = mysql_query("select site_ID from ".$mysql_table_prefix."sites where url='$url'");
  578. echo mysql_error();
  579. $row = mysql_fetch_row($result);
  580. $site_id = $row[0];
  581. $result=mysql_query("select category_id from ".$mysql_table_prefix."categories");
  582. echo mysql_error();
  583. while ($row=mysql_fetch_row($result)) {
  584. $cat_id=$row[0];
  585. if ($cat[$cat_id]=='on') {
  586. mysql_query("INSERT INTO ".$mysql_table_prefix."site_category (site_id, category_id) values ('$site_id', '$cat_id')");
  587. echo mysql_error();
  588. }
  589. }
  590. If (!mysql_error()) {
  591. $message = "<br/><center><b>Site added</b></center>" ;
  592. } else {
  593. $message = mysql_error();
  594. }
  595. } else {
  596. $message = "<center><b>Site already in database</b></center>";
  597. }
  598. return $message;
  599. }
  600. function indexscreen ($url, $reindex) {
  601. global $mysql_table_prefix;
  602. $check = "";
  603. $levelchecked = "checked";
  604. $spider_depth = 2;
  605. if ($url=="") {
  606. $url = "http://";
  607. $advurl = "";
  608. } else {
  609. $advurl = $url;
  610. $result = mysql_query("select spider_depth, required, disallowed, can_leave_domain from ".$mysql_table_prefix."sites " .
  611. "where url='$url'");
  612. echo mysql_error();
  613. if (mysql_num_rows($result) > 0) {
  614. $row = mysql_fetch_row($result);
  615. $spider_depth = $row[0];
  616. if ($spider_depth == -1 ) {
  617. $fullchecked = "checked";
  618. $spider_depth ="";
  619. $levelchecked = "";
  620. }
  621. $must = $row[1];
  622. $mustnot = $row[2];
  623. $canleave = $row[3];
  624. }
  625. }
  626. ?>
  627. <div id="submenu">
  628. <ul>
  629. <li>
  630. <?php
  631. if ($must !="" || $mustnot !="" || $canleave == 1 ) {
  632. $_SESSION['index_advanced']=1;
  633. }
  634. if ($_SESSION['index_advanced']==1){
  635. print "<a href='admin.php?f=index&adv=0&url=$advurl'>Hide advanced options</a>";
  636. } else {
  637. print "<a href='admin.php?f=index&adv=1&url=$advurl'>Advanced options</a>";
  638. }
  639. ?>
  640. </li>
  641. </ul>
  642. </div>
  643. <br/>
  644. <div id="indexoptions"><table>
  645. <form action="spider.php" method="post">
  646. <tr><td><b>Address:</b></td><td> <input type="text" name="url" size="48" value=<?php print "\"$url\"";?>></td></tr>
  647. <tr><td><b>Indexing options:</b></td><td>
  648. <input type="radio" name="soption" value="full" <?php print $fullchecked;?>> Full<br/>
  649. <input type="radio" name="soption" value="level" <?php print $levelchecked;?>>To depth: <input type="text" name="maxlevel" size="2" value="<?php print $spider_depth;?>"><br/>
  650. <?php if ($reindex==1) $check="checked"?>
  651. <input type="checkbox" name="reindex" value="1" <?php print $check;?>> Reindex<br/>
  652. </td></tr>
  653. <?php
  654. if ($_SESSION['index_advanced']==1){
  655. ?>
  656. <?php if ($canleave==1) {$checkcan="checked" ;} ?>
  657. <tr><td></td><td><input type="checkbox" name="domaincb" value="1" <?php print $checkcan;?>> Spider can leave domain <!--a href="javascript:;" onClick="window.open('hmm','newWindow','width=300,height=300,left=600,top=200,resizable');" >?</a--><br/></td></tr>
  658. <tr><td><b>URL must include:</b></td><td><textarea name=in cols=35 rows=2 wrap="virtual"><?php print $must;?></textarea></td></tr>
  659. <tr><td><b>URL must not include:</b></td><td><textarea name=out cols=35 rows=2 wrap="virtual"><?php print $mustnot;?></textarea></td></tr>
  660. <?php
  661. }
  662. ?>
  663. <tr><td></td><td><input type="submit" id="submit" value="Start indexing"></td></tr>
  664. </form></table></div>
  665. <?php
  666. }
  667. function siteScreen($site_id, $message) {
  668. global $mysql_table_prefix;
  669. $result = mysql_query("SELECT site_id, url, title, short_desc, indexdate from ".$mysql_table_prefix."sites where site_id=$site_id");
  670. echo mysql_error();
  671. $row=mysql_fetch_array($result);
  672. $url = replace_ampersand($row[url]);
  673. if ($row['indexdate']=='') {
  674. $indexstatus="<font color=\"red\">Not indexed</font>";
  675. $indexoption="<a href=\"admin.php?f=index&url=$url\">Index</a>";
  676. } else {
  677. $site_id = $row['site_id'];
  678. $result2 = mysql_query("SELECT site_id from ".$mysql_table_prefix."pending where site_id =$site_id");
  679. echo mysql_error();
  680. $row2=mysql_fetch_array($result2);
  681. if ($row2['site_id'] == $row['site_id']) {
  682. $indexstatus = "Unfinished";
  683. $indexoption="<a href=\"admin.php?f=index&url=$url\">Continue indexing</a>";
  684. } else {
  685. $indexstatus = $row['indexdate'];
  686. $indexoption="<a href=\"admin.php?f=index&url=$url&reindex=1\">Re-index</a>";
  687. }
  688. }
  689. ?>
  690. <div id="submenu">
  691. </div>
  692. <?php print $message;?>
  693. <br/>
  694. <center>
  695. <div style="width:755px;">
  696. <div style="float:left; margin-right:0px;">
  697. <div class="darkgrey">
  698. <table cellpadding="3" cellspacing="0">
  699. <table cellpadding="5" cellspacing="1" width="640">
  700. <tr >
  701. <td class="grey" valign="top" width="20%" align="left">URL:</td>
  702. <td class="white" align="left"><a href="<?php print $row['url']; print "\">"; print $row['url'];?></a></td>
  703. </tr>
  704. <tr>
  705. <td class="grey" valign="top" align="left">Title:</td>
  706. <td class="white" align="left"><b><?php print stripslashes($row['title']);?></b></td>
  707. </tr>
  708. <tr>
  709. <td class="grey" valign="top" align="left">Description:</td>
  710. <td width="80%" class="white" align="left"><?php print stripslashes($row['short_desc']);?></td>
  711. </tr>
  712. <tr>
  713. <td class="grey" valign="top" align="left">Last indexed:</td>
  714. <td class="white" align="left"><?php print $indexstatus;?></td>
  715. </tr>
  716. </table>
  717. </div>
  718. </div>
  719. <div id= "vertmenu">
  720. <ul>
  721. <li><a href=admin.php?f=edit_site&site_id=<?php print $row['site_id']?>>Edit</a></li>
  722. <li><?php print $indexoption?></li>
  723. <li><a href=admin.php?f=21&site_id=<?php print $row['site_id']?>>Browse pages</a></li>
  724. <li><a href=admin.php?f=5&site_id=<?php print $row['site_id'];?> onclick="return confirm('Are you sure you want to delete? Index will be lost.')">Delete</a></li>
  725. <li><a href=admin.php?f=19&site_id=<?php print $row['site_id'];?>>Stats</a></li>
  726. </div>
  727. </ul>
  728. </div>
  729. </center>
  730. <div class="clear">
  731. </div>
  732. <br/>
  733. <?php
  734. }
  735. function siteStats($site_id) {
  736. global $mysql_table_prefix;
  737. $result = mysql_query("select url from ".$mysql_table_prefix."sites where site_id=$site_id");
  738. echo mysql_error();
  739. if ($row=mysql_fetch_array($result)) {
  740. $url=$row[0];
  741. $lastIndexQuery = "SELECT indexdate from ".$mysql_table_prefix."sites where site_id = $site_id";
  742. $sumSizeQuery = "select sum(length(fulltxt)) from ".$mysql_table_prefix."links where site_id = $site_id";
  743. $siteSizeQuery = "select sum(size) from ".$mysql_table_prefix."links where site_id = $site_id";
  744. $linksQuery = "select count(*) from ".$mysql_table_prefix."links where site_id = $site_id";
  745. $result = mysql_query($lastIndexQuery);
  746. echo mysql_error();
  747. if ($row=mysql_fetch_array($result)) {
  748. $stats['lastIndex']=$row[0];
  749. }
  750. $result = mysql_query($sumSizeQuery);
  751. echo mysql_error();
  752. if ($row=mysql_fetch_array($result)) {
  753. $stats['sumSize']=$row[0];
  754. }
  755. $result = mysql_query($linksQuery);
  756. echo mysql_error();
  757. if ($row=mysql_fetch_array($result)) {
  758. $stats['links']=$row[0];
  759. }
  760. for ($i=0;$i<=15; $i++) {
  761. $char = dechex($i);
  762. $result = mysql_query("select count(*) from ".$mysql_table_prefix."links, ".$mysql_table_prefix."link_keyword$char where ".$mysql_table_prefix."links.link_id=".$mysql_table_prefix."link_keyword$char.link_id and ".$mysql_table_prefix."links.site_id = $site_id");
  763. echo mysql_error();
  764. if ($row=mysql_fetch_array($result)) {
  765. $stats['index']+=$row[0];
  766. }
  767. }
  768. for ($i=0;$i<=15; $i++) {
  769. $char = dechex($i);
  770. $wordQuery = "select count(distinct keyword) from ".$mysql_table_prefix."keywords, ".$mysql_table_prefix."links, ".$mysql_table_prefix."link_keyword$char where ".$mysql_table_prefix."links.link_id=".$mysql_table_prefix."link_keyword$char.link_id and ".$mysql_table_prefix."links.site_id = $site_id and ".$mysql_table_prefix."keywords.keyword_id = ".$mysql_table_prefix."link_keyword$char.keyword_id";
  771. $result = mysql_query($wordQuery);
  772. echo mysql_error();
  773. if ($row=mysql_fetch_array($result)) {
  774. $stats['words']+=$row[0];
  775. }
  776. }
  777. $result = mysql_query($siteSizeQuery);
  778. echo mysql_error();
  779. if ($row=mysql_fetch_array($result)) {
  780. $stats['siteSize']=$row[0];
  781. }
  782. if ($stats['siteSize']=="")
  783. $stats['siteSize'] = 0;
  784. $stats['siteSize'] = number_format($stats['siteSize'], 2);
  785. print"<div id=\"submenu\"></div>";
  786. print "<br/><div align=\"center\"><center><table cellspacing =\"0\" cellpadding=\"0\" class=\"darkgrey\"><tr><td><table cellpadding=\"3\" cellspacing = \"1\"><tr class=\"grey\"><td colspan=\"2\">";
  787. print "Statistics for site <a href=\"admin.php?f=20&site_id=$site_id\">$url</a>";
  788. print "<tr class=\"white\"><td>Last indexed:</td><td align=\"center\"> ".$stats['lastIndex']."</td></tr>";
  789. print "<tr class=\"grey\"><td>Pages indexed:</td><td align=\"center\"> ".$stats['links']."</td></tr>";
  790. print "<tr class=\"white\"><td>Total index size:</td><td align=\"center\"> ".$stats['index']."</td></tr>";
  791. $sum = number_format($stats['sumSize']/1024, 2);
  792. print "<tr class=\"grey\"><td>Cached texts:</td><td align=\"center\"> ".$sum."kb</td></tr>";
  793. print "<tr class=\"white\"><td>Total number of keywords:</td><td align=\"center\"> ".$stats['words']."</td></tr>";
  794. print "<tr class=\"grey\"><td>Site size:</td><td align=\"center\"> ".$stats['siteSize']."kb</td></tr>";
  795. print "</table></td></tr></table></center></div>";
  796. }
  797. }
  798. function browsePages($site_id, $start, $filter, $per_page) {
  799. global $mysql_table_prefix;
  800. $result = mysql_query("select url from ".$mysql_table_prefix."sites where site_id=$site_id");
  801. echo mysql_error();
  802. $row = mysql_fetch_row($result);
  803. $url = $row[0];
  804. $query_add = "";
  805. if ($filter != "") {
  806. $query_add = "and url like '%$filter%'";
  807. }
  808. $linksQuery = "select count(*) from ".$mysql_table_prefix."links where site_id = $site_id $query_add";
  809. $result = mysql_query($linksQuery);
  810. echo mysql_error();
  811. $row = mysql_fetch_row($result);
  812. $numOfPages = $row[0];
  813. $result = mysql_query($linksQuery);
  814. echo mysql_error();
  815. $from = ($start-1) * 10;
  816. $to = min(($start)*10, $numOfPages);
  817. $linksQuery = "select link_id, url from ".$mysql_table_prefix."links where site_id = $site_id and url like '%$filter%' order by url limit $from, $per_page";
  818. $result = mysql_query($linksQuery);
  819. echo mysql_error();
  820. ?>
  821. <div id="submenu"></div>
  822. <br/>
  823. <center>
  824. <b>Pages of site <a href="admin.php?f=20&site_id=<?php print $site_id?>"><?php print $url;?></a></b><br/>
  825. <p>
  826. <form action="admin.php" method="post">
  827. Urls per page: <input type="text" name="per_page" size="3" value="<?php print $per_page;?>">
  828. Url contains: <input type="text" name="filter" size="15" value="<?php print $filter;?>">
  829. <input type="submit" id="submit" value="Filter">
  830. <input type="hidden" name="start" value="1">
  831. <input type="hidden" name="site_id" value="<?php print $site_id?>">
  832. <input type="hidden" name="f" value="21">
  833. </form>
  834. </p>
  835. <table width="600"><tr><td>
  836. <table cellspacing ="0" cellpadding="0" class="darkgrey" width ="100%"><tr><td>
  837. <table cellpadding="3" cellspacing="1" width="100%">
  838. <?php
  839. $class = "white";
  840. while ($row = mysql_fetch_array($result)) {
  841. if ($class =="white")
  842. $class = "grey";
  843. else
  844. $class = "white";
  845. print "<tr class=\"$class\"><td><a href=\"".$row['url']."\">".$row['url']."</a></td><td width=\"8%\"> <a href=\"admin.php?link_id=".$row['link_id']."&f=22&site_id=$site_id&start=1&filter=$filter&per_page=$per_page\">Delete</a></td></tr>";
  846. }
  847. print "</table></td></tr></table>";
  848. $pages = ceil($numOfPages / $per_page);
  849. $prev = $start - 1;
  850. $next = $start + 1;
  851. if ($pages > 0)
  852. print "<center>Pages: ";
  853. $links_to_next =10;
  854. $firstpage = $start - $links_to_next;
  855. if ($firstpage < 1) $firstpage = 1;
  856. $lastpage = $start + $links_to_next;
  857. if ($lastpage > $pages) $lastpage = $pages;
  858. for ($x=$firstpage; $x<=$lastpage; $x++)
  859. if ($x<>$start) {
  860. print "<a href=admin.php?f=21&site_id=$site_id&start=$x&filter=$filter&per_page=$per_page>$x</a> ";
  861. } else
  862. print "<b>$x </b>";
  863. print"</td></tr></table></center>";
  864. }
  865. function cleanForm () {
  866. global $mysql_table_prefix;
  867. $result = mysql_query("select count(*) from ".$mysql_table_prefix."query_log");
  868. echo mysql_error();
  869. if ($row=mysql_fetch_array($result)) {
  870. $log=$row[0];
  871. }
  872. $result = mysql_query("select count(*) from ".$mysql_table_prefix."temp");
  873. echo mysql_error();
  874. if ($row=mysql_fetch_array($result)) {
  875. $temp=$row[0];
  876. }
  877. ?>
  878. <div id="submenu">
  879. </div>
  880. <br/><div align="center">
  881. <table cellspacing ="0" cellpadding="0" class="darkgrey"><tr><td align="left"><table cellpadding="3" cellspacing = "1" width="100%"><tr class="grey" ><td align="left"><a href="admin.php?f=15" id="small_button">Clean keywords</a>
  882. </td><td align="left"> Delete all keywords not associated with any link.</td></tr>
  883. <tr class="grey" ><td align="left"><a href="admin.php?f=16" id="small_button">Clean links</a>
  884. </td><td align="left"> Delete all links not associated with any site.</td></tr>
  885. <tr class="grey" ><td align="left"><a href="admin.php?f=17" id="small_button">Clear temp tables </a>
  886. </td><td align="left"> <?php print $temp;?> items in temporary table.</td></tr>
  887. <tr class="grey" ><td align="left"><a href="admin.php?f=23" id="small_button">Clear search log </a>
  888. </td><td align="left"><?php print $log;?> items in search log.
  889. </td></tr></table> </td></tr></table></div>
  890. <?php
  891. }
  892. function statisticsForm ($type) {
  893. global $mysql_table_prefix, $log_dir;
  894. ?>
  895. <div id='submenu'>
  896. <ul>
  897. <li><a href="admin.php?f=statistics&type=keywords">Top keywords</a></li>
  898. <li><a href="admin.php?f=statistics&type=pages">Largest pages</a></li>
  899. <li><a href="admin.php?f=statistics&type=top_searches">Most popular searches</a></li>
  900. <li><a href="admin.php?f=statistics&type=log">Search log</a></li>
  901. <li><a href="admin.php?f=statistics&type=spidering_log">Spidering logs</a></li>
  902. </ul>
  903. </div>
  904. <?php
  905. if ($type == "") {
  906. $cachedSumQuery = "select sum(length(fulltxt)) from ".$mysql_table_prefix."links";
  907. $result=mysql_query("select sum(length(fulltxt)) from ".$mysql_table_prefix."links");
  908. echo mysql_error();
  909. if ($row=mysql_fetch_array($result)) {
  910. $cachedSumSize = $row[0];
  911. }
  912. $cachedSumSize = number_format($cachedSumSize / 1024, 2);
  913. $sitesSizeQuery = "select sum(size) from ".$mysql_table_prefix."links";
  914. $result=mysql_query("$sitesSizeQuery");
  915. echo mysql_error();
  916. if ($row=mysql_fetch_array($result)) {
  917. $sitesSize = $row[0];
  918. }
  919. $sitesSize = number_format($sitesSize, 2);
  920. $stats = getStatistics();
  921. print "<br/><div align=\"center\"><table cellspacing =\"0\" cellpadding=\"0\" class=\"darkgrey\"><tr><td><table cellpadding=\"3\" cellspacing = \"1\"><tr class=\"grey\"><td><b>Sites:</b></td><td align=\"center\">".$stats['sites']."</td></tr>";
  922. print "<tr class=\"white\"><td><b>Links:</b></td><td align=\"center\"> ".$stats['links']."</td></tr>";
  923. print "<tr class=\"grey\"><td><b>Categories:</b></td><td align=\"center\"> ".$stats['categories']."</td></tr>";
  924. print "<tr class=\"white\"><td><b>Keywords:</b></td><td align=\"center\"> ".$stats['keywords']."</td></tr>";
  925. print "<tr class=\"grey\"><td><b>Keyword-link realations:</b></td><td align=\"center\"> ".$stats['index']."</td></tr>";
  926. print "<tr class=\"white\"><td><b>Cached texts total:</b></td><td align=\"center\"> $cachedSumSize kb</td></tr>";
  927. print "<tr class=\"grey\"><td><b>Sites size total:</b></td><td align=\"center\"> $sitesSize kb</td></tr>";
  928. print "</table></td></tr></table></div>";
  929. }
  930. if ($type=='keywords') {
  931. $class = "grey";
  932. print "<br/><div align=\"center\"><table cellspacing =\"0\" cellpadding=\"0\" class=\"darkgrey\"><tr><td><table cellpadding=\"3\" cellspacing = \"1\"><tr class=\"grey\"><td><b>Keyword</b></td><td><b>Occurrences</b></td></tr>";
  933. for ($i=0;$i<=15; $i++) {
  934. $char = dechex($i);
  935. $result=mysql_query("select keyword, count(".$mysql_table_prefix."link_keyword$char.keyword_id) as x from ".$mysql_table_prefix."keywords, ".$mysql_table_prefix."link_keyword$char where ".$mysql_table_prefix."keywords.keyword_id = ".$mysql_table_prefix."link_keyword$char.keyword_id group by keyword order by x desc limit 30");
  936. echo mysql_error();
  937. while (($row=mysql_fetch_row($result))) {
  938. $topwords[$row[0]] = $row[1];
  939. }
  940. }
  941. arsort($topwords);
  942. $count = 0;
  943. while ((list($word, $weight) = each($topwords)) && $count <= 30) {
  944. $count++;
  945. if ($class =="white")
  946. $class = "grey";
  947. else
  948. $class = "white";
  949. print "<tr class=\"$class\"><td align=\"left\">".$word."</td><td> ".$weight."</td></tr>\n";
  950. }
  951. print "</table></td></tr></table></div>";
  952. }
  953. if ($type=='pages') {
  954. $class = "grey";
  955. ?>
  956. <br/><div align="center">
  957. <table cellspacing ="0" cellpadding="0" class="darkgrey"><tr><td>
  958. <table cellpadding="2" cellspacing="1">
  959. <tr class="grey"><td>
  960. <b>Page</b></td>
  961. <td><b>Text size</b></td></tr>
  962. <?php
  963. $result=mysql_query("select ".$mysql_table_prefix."links.link_id, url, length(fulltxt) as x from ".$mysql_table_prefix."links order by x desc limit 20");
  964. echo mysql_error();
  965. while ($row=mysql_fetch_row($result)) {
  966. if ($class =="white")
  967. $class = "grey";
  968. else
  969. $class = "white";
  970. $url = $row[1];
  971. $sum = number_format($row[2]/1024, 2);
  972. print "<tr class=\"$class\"><td align=\"left\"><a href=\"$url\">".$url."</td><td align= \"center\"> ".$sum."kb</td></tr>";
  973. }
  974. print "</table></td></tr></table></div>";
  975. }
  976. if ($type=='top_searches') {
  977. $class = "grey";
  978. print "<br/><div align=\"center\"><table cellspacing =\"0\" cellpadding=\"0\" class=\"darkgrey\"><tr><td><table cellpadding=\"3\" cellspacing = \"1\"><tr class=\"grey\"><td><b>Query</b></td><td><b>Count</b></td><td><b> Average results</b></td><td><b>Last queried</b></td></tr>";
  979. $result=mysql_query("select query, count(*) as c, date_format(max(time), '%Y-%m-%d %H:%i:%s'), avg(results) from ".$mysql_table_prefix."query_log group by query order by c desc");
  980. echo mysql_error();
  981. while ($row=mysql_fetch_row($result)) {
  982. if ($class =="white")
  983. $class = "grey";
  984. else
  985. $class = "white";
  986. $word = $row[0];
  987. $times = $row[1];
  988. $date = $row[2];
  989. $avg = number_format($row[3], 1);
  990. print "<tr class=\"$class\"><td align=\"left\">".htmlentities($word)."</td><td align=\"center\"> ".$times."</td><td align=\"center\"> ".$avg."</td><td align=\"center\"> ".$date."</td></tr>";
  991. }
  992. print "</table></td></tr></table></div>";
  993. }
  994. if ($type=='log') {
  995. $class = "grey";
  996. print "<br/><div align=\"center\"><table cellspacing =\"0\" cellpadding=\"0\" class=\"darkgrey\"><tr><td><table cellpadding=\"3\" cellspacing = \"1\"><tr class=\"grey\"><td align=\"center\"><b>Query</b></td><td align=\"center\"><b>Results</b></td><td align=\"center\"><b>Queried at</b></td><td align=\"center\"><b>Time taken</b></td></tr>";
  997. $result=mysql_query("select query, date_format(time, '%Y-%m-%d %H:%i:%s'), elapsed, results from ".$mysql_table_prefix."query_log order by time desc");
  998. echo mysql_error();
  999. while ($row=mysql_fetch_row($result)) {
  1000. if ($class =="white")
  1001. $class = "grey";
  1002. else
  1003. $class = "white";
  1004. $word = $row[0];
  1005. $time = $row[1];
  1006. $elapsed = $row[2];
  1007. $results = $row[3];
  1008. print "<tr class=\"$class\"><td align=\"left\">".htmlentities($word)."</td><td align=\"center\"> ".$results."</td><td align=\"center\"> ".$time."</td><td align=\"center\"> ".$elapsed."</td></tr>";
  1009. }
  1010. print "</table></td></tr></table></div>";
  1011. }
  1012. if ($type=='spidering_log') {
  1013. $class = "grey";
  1014. $files = get_dir_contents($log_dir);
  1015. if (count($files)>0) {
  1016. print "<br/><div align=\"center\"><table cellspacing =\"0\" cellpadding=\"0\" class=\"darkgrey\"><tr><td><table cellpadding=\"3\" cellspacing = \"1\"><tr class=\"grey\"><td align=\"center\"><b>File</b></td><td align=\"center\"><b>Time</b></td><td align=\"center\"><b></b></td></tr>";
  1017. for ($i=0; $i<count($files); $i++) {
  1018. $file=$files[$i];
  1019. $year = substr($file, 0,2);
  1020. $month = substr($file, 2,2);
  1021. $day = substr($file, 4,2);
  1022. $hour = substr($file, 6,2);
  1023. $minute = substr($file, 8,2);
  1024. if ($class =="white")
  1025. $class = "grey";
  1026. else
  1027. $class = "white";
  1028. print "<tr class=\"$class\"><td align=\"left\"><a href='$log_dir/$file' tareget='_blank'>$file</a></td><td align=\"center\"> 20$year-$month-$day $hour:$minute</td><td align=\"center\"> <a href='?f=delete_log&file=$file' id='small_button'>Delete</a></td></tr>";
  1029. }
  1030. print "</table></td></tr></table></div>";
  1031. } else {
  1032. ?>
  1033. <br/><br/>
  1034. <center><b>No saved logs.</b></center>
  1035. <?php
  1036. }
  1037. }
  1038. }
  1039. switch ($f) {
  1040. case 1:
  1041. $message = addsite($url, $title, $short_desc, $cat);
  1042. $compurl=parse_url($url);
  1043. if ($compurl['path']=='')
  1044. $url=$url."/";
  1045. $result = mysql_query("select site_id from ".$mysql_table_prefix."sites where url='$url'");
  1046. echo mysql_error();
  1047. $row = mysql_fetch_row($result);
  1048. if ($site_id != "")
  1049. siteScreen($site_id, $message);
  1050. else
  1051. showsites($message);
  1052. break;
  1053. case 2:
  1054. showsites();
  1055. break;
  1056. case edit_site:
  1057. editsiteform($site_id);
  1058. break;
  1059. case 4:
  1060. if (!isset($domaincb))
  1061. $domaincb = 0;
  1062. if (!isset($cat))
  1063. $cat = "";
  1064. if ($soption =='full') {
  1065. $depth = -1;
  1066. }
  1067. $message = editsite ($site_id, $url, $title, $short_desc, $depth, $in, $out, $domaincb, $cat);
  1068. showsites($message);
  1069. break;
  1070. case 5:
  1071. deletesite ($site_id);
  1072. showsites();
  1073. break;
  1074. case add_cat:
  1075. if (!isset($parent))
  1076. $parent = "";
  1077. addcatform ($parent);
  1078. break;
  1079. case 7:
  1080. if (!isset($parent)) {
  1081. $parent = "";
  1082. }
  1083. $message = addcat ($category, $parent);
  1084. list_cats (0, 0, "white", $message);
  1085. break;
  1086. case categories:
  1087. list_cats (0, 0, "white", "");
  1088. break;
  1089. case edit_cat;
  1090. editcatform($cat_id);
  1091. break;
  1092. case 10;
  1093. $message = editcat ($cat_id, $category);
  1094. list_cats (0, 0, "white", $message);
  1095. break;
  1096. case 11;
  1097. deletecat($cat_id);
  1098. list_cats (0, 0, "white");
  1099. break;
  1100. case index;
  1101. if (!isset($url))
  1102. $url = "";
  1103. if (!isset($reindex))
  1104. $reindex = "";
  1105. if (isset($adv)) {
  1106. $_SESSION['index_advanced']=$adv;
  1107. }
  1108. indexscreen($url, $reindex);
  1109. break;
  1110. case add_site;
  1111. addsiteform();
  1112. break;
  1113. case clean;
  1114. cleanForm();
  1115. break;
  1116. case 15;
  1117. cleanKeywords();
  1118. break;
  1119. case 16;
  1120. cleanLinks();
  1121. break;
  1122. case 17;
  1123. cleanTemp();
  1124. break;
  1125. case statistics;
  1126. if (!isset($type))
  1127. $type = "";
  1128. statisticsForm($type);
  1129. break;
  1130. case 19;
  1131. siteStats($site_id);
  1132. break;
  1133. case 20;
  1134. siteScreen($site_id);
  1135. break;
  1136. case 21;
  1137. if (!isset($start))
  1138. $start = 1;
  1139. if (!isset($filter))
  1140. $filter = "";
  1141. if (!isset($per_page))
  1142. $per_page = 10;
  1143. browsePages($site_id, $start, $filter, $per_page);
  1144. break;
  1145. case 22;
  1146. deletePage($link_id);
  1147. if (!isset($start))
  1148. $start = 1;
  1149. if (!isset($filter))
  1150. $filter = "";
  1151. if (!isset($per_page))
  1152. $per_page = 10;
  1153. browsePages($site_id, $start, $filter, $per_page);
  1154. break;
  1155. case 23;
  1156. clearLog();
  1157. break;
  1158. case 24;
  1159. session_destroy();
  1160. header("Location: admin.php");
  1161. break;
  1162. case database;
  1163. include "db_main.php";
  1164. break;
  1165. case settings;
  1166. include('configset.php');
  1167. break;
  1168. case delete_log;
  1169. unlink($log_dir."/".$file);
  1170. statisticsForm('spidering_log');
  1171. break;
  1172. case '':
  1173. showsites();
  1174. break;
  1175. }
  1176. $stats = getStatistics();
  1177. print "<br/><br/> <center>Currently in database: ".$stats['sites']." sites, ".$stats['links']." links, ".$stats['categories']." categories and ".$stats['keywords']." keywords.<br/><br/></center>\n";
  1178. ?>
  1179. </div>
  1180. </div>
  1181. </body>
  1182. </html>