<?php
/*******************************************
* Ultimate Sphider Version 2.0.1*
* This program is licensed under the GNU GPL.
* By Ando Saabas ando(a t)cs.ioc.ee<br />
* By Shaquille Ray
********************************************/
$include_dir = "../include";
include "auth.php";
include "$include_dir/commonfuncs.php";
$settings_dir = "../settings";
$template_dir = "../templates";
include "$settings_dir/conf.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://w...content-available-to-author-only...3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://w...content-available-to-author-only...3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Ultimate Sphider CMS</title>
<link rel="stylesheet" href="admin.css" type="text/css" />
</head>
<body>
<div id="container">
<div id="headleft">
<a href="http://w...content-available-to-author-only...r.com/"><img src="sulogo-head.png" align="left" /></a>
</div>
<div id="headright">
<?php include_once('http://o...content-available-to-author-only...r.com/us-resources/2.0.1/2.0.1announce.php') ?>
</div>
</div>
<?php
$f=2;
}
$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"); $stat_funcs = Array ("statistics" => "default", "delete_log"=> "default"); $settings_funcs = Array ("settings" => "default"); $index_funcs = Array ("index" => "default"); $index_funcs = Array ("index" => "default"); $clean_funcs = Array ("clean" => "default", 15=>"default", 16=>"default", 17=>"default", 23=>"default"); $cat_funcs = Array (11=> "default", 10=> "default", "categories" => "default", "edit_cat"=>"default", "delete_cat"=>"default", "add_cat" => "default", 7=> "default"); $database_funcs = Array ("database" => "default"); ?>
<div id="admin">
<div id="tabs">
<ul>
<?php
if ($stat_funcs[$f] ) {
$stat_funcs[$f] = "selected";
} else {
$stat_funcs[$f] = "default";
}
if ($site_funcs[$f] ) {
$site_funcs[$f] = "selected";
}else {
$site_funcs[$f] = "default";
}
if ($settings_funcs[$f] ) {
$settings_funcs[$f] = "selected";
} else {
$settings_funcs[$f] = "default";
}
if ($index_funcs[$f] ) {
$index_funcs[$f] = "selected";
} else {
$index_funcs[$f] = "default";
}
if ($cat_funcs[$f] ) {
$cat_funcs[$f] = "selected";
} else {
$cat_funcs[$f] = "default";
}
if ($clean_funcs[$f] ) {
$clean_funcs[$f] = "selected";
} else {
$clean_funcs[$f] = "default";
}
if ($database_funcs[$f] ) {
$database_funcs[$f] = "selected";
} else {
$database_funcs[$f] = "default";
}
?>
<li><a href="admin.php?f=2" id="<?php print $site_funcs[$f]?>">Sites</a> </li>
<li><a href="admin.php?f=categories" id="<?php print $cat_funcs[$f]?>">Categories</a></li>
<li><a href="admin.php?f=index" id="<?php print $index_funcs[$f]?>">Index</a></li>
<li><a href="admin.php?f=clean" id="<?php print $clean_funcs[$f]?>">Clean tables</a> </li>
<li><a href="admin.php?f=settings" id="<?php print $settings_funcs[$f]?>">Settings</a></li>
<li><a href="admin.php?f=statistics" id="<?php print $stat_funcs[$f]?>">Statistics</a> </li>
<li><a href="admin.php?f=database" id="<?php print $database_funcs[$f]?>">Database</a></li>
<li><a href="admin.php?f=24" id="default">Log out</a></li>
</ul>
</div>
<div id="main">
<?php
function list_cats($parent, $lev, $color, $message) {
global $mysql_table_prefix;
if ($lev == 0) {
?>
<div id="submenu">
<ul>
<li><a href="admin.php?f=add_cat">Add category</a> </li>
</ul>
</div>
<?php
print $message;
print "<br/>";
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";
}
$space = "";
for ($x = 0; $x < $lev; $x++)
$space .= " ";
$query = "SELECT * FROM ".$mysql_table_prefix."categories WHERE parent_num=$parent ORDER BY category";
if ($color =="white")
$color = "grey";
else
$color = "white";
$id = $row['category_id'];
$cat = $row['category'];
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";
$color = list_cats($id, $lev + 1, $color, "");
}
if ($lev == 0)
print "</table></td></tr></table></center></div>\n";
return $color;
}
function walk_through_cats($parent, $lev, $site_id) {
global $mysql_table_prefix;
$space = "";
for ($x = 0; $x < $lev; $x++)
$space .= " ";
$query = "SELECT * FROM ".$mysql_table_prefix."categories WHERE parent_num=$parent ORDER BY category";
$id = $row['category_id'];
$cat = $row['category'];
$state = '';
if ($site_id <> '') {
$result2 = mysql_query("select * from ".$mysql_table_prefix."site_category where site_id=$site_id and category_id=$id");
if ($rows > 0)
$state = "checked";
}
print $space . "<input type=checkbox name=cat[$id] $state>" . $cat . "<br/>\n";
;
walk_through_cats($id, $lev + 1, $site_id);
}
}
function addcatform($parent) {
global $mysql_table_prefix;
$par2 = "";
$par2num = "";
?>
<div id="submenu">
</div>
<?php
if ($parent=='')
$par='(Top level)';
else {
$query = "SELECT category, parent_num FROM ".$mysql_table_prefix."categories WHERE category_id='$parent'";
$par=$row[0];
$query = "SELECT Category_ID, Category FROM ".$mysql_table_prefix."categories WHERE Category_ID='$row[1]'";
$par2num = $row[0];
$par2 = $row[1];
}
else
$par2 = "Top level";
}
}
else
print "</td></tr></table>";
}
?>
<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>
<form action=admin.php method=post>
<input type=hidden name=f value=7>
<input type=hidden name=parent value="<?php print $parent?>"
<tr><td><b>Category:</b></td><td> <input type=text name=category size=40></td></tr>
<tr><td></td><td><input type=submit id="submit" value=Add></td></tr></form>
<?php
print "<tr><td colspan=2>";
$query = "SELECT category_ID, Category FROM ".$mysql_table_prefix."categories WHERE parent_num='$parent'";
print "<br/><b>Create subcategory under</b><br/><br/>";
}
print "<a href=\"admin.php?f=add_cat&parent=$row[0]\">".stripslashes($row[1])."</a><br/>"; }
print "</td></tr></table></center>";
}
function addcat ($category, $parent) {
global $mysql_table_prefix;
if ($category=="") return;
if ($parent == "") {
$parent = 0;
}
$query = "INSERT INTO ".$mysql_table_prefix."categories (category, parent_num)
VALUES ('$category', ".$parent.")";
return "<center><b>Category $category added.</b></center>" ;
} else {
}
}
function addsiteform() {
?>
<div id="submenu"><center><b>Add a site</b></center></div>
<br/><div align=center><center><table>
<form action=admin.php method=post>
<input type=hidden name=f value=1>
<input type=hidden name=af value=2>
<tr><td><b>URL:</b></td><td align ="right"></td><td><input type=text name=url size=60 value ="http://"></td></tr>
<tr><td><b>Title:</b></td><td></td><td> <input type=text name=title size=60></td></tr>
<tr><td><b>Short description:</b></td><td></td><td><textarea name=short_desc cols=45 rows=3 wrap="virtual"></textarea></td></tr>
<tr><td>Category:</td><td></td><td>
<?php walk_through_cats(0, 0, '');?></td></tr>
<tr><td></td><td></td><td><input type=submit id="submit" value=Add></td></tr></form></table></center></div>
<?php
}
function editsiteform($site_id) {
global $mysql_table_prefix;
$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"); $depth = $row['spider_depth'];
$fullchecked = "";
$depthchecked = "";
if ($depth == -1 ) {
$fullchecked = "checked";
$depth ="";
} else {
$depthchecked = "checked";
}
$leave_domain = $row['can_leave_domain'];
if ($leave_domain == 1 ) {
$domainchecked = "checked";
} else {
$domainchecked = "";
}
?>
<div id="submenu"><center><b>Edit site</b></center>
</div>
<br/><div align=center><center><table>
<form action=admin.php method=post>
<input type=hidden name=f value=4>
<input type=hidden name=site_id value=<?php print $site_id;?>>
<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>
<tr><td><b>Title:</b></td><td></td><td> <input type=text name=title value=
<?php print "\"".stripslashes($row['title'])."\""?> size=60></td></tr>
<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>
<tr><td><b>Spidering options:</b></td><td></td><td><input type="radio" name="soption" value="full" <?php print $fullchecked;?>> Full<br/>
<input type="radio" name="soption" value="level" <?php print $depthchecked;?>>To depth: <input type="text" name="depth" size="2" value="<?php print $depth;?>"><br/>
<input type="checkbox" name="domaincb" value="1" <?php print $domainchecked;?>> Spider can leave domain
</td></tr>
<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>
<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>
<tr><td>Category:</td><td></td><td>
<?php walk_through_cats(0, 0, $site_id);?></td></tr>
<tr><td></td><td></td><td><input type="submit" id="submit" value="Update"></td></tr></form></table></center></div>
<?php
}
function editsite ($site_id, $url, $title, $short_desc, $depth, $required, $disallowed, $domaincb, $cat) {
global $mysql_table_prefix;
mysql_query("delete from ".$mysql_table_prefix."site_category where site_id=$site_id"); if ($compurl['path']=='')
$url=$url."/";
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"); $result=mysql_query("select category_id from ".$mysql_table_prefix."categories"); $cat_id=$row[0];
if ($cat[$cat_id]=='on') {
mysql_query("INSERT INTO ".$mysql_table_prefix."site_category (site_id, category_id) values ('$site_id', '$cat_id')"); }
}
return "<br/><center><b>Site updated.</b></center>" ;
} else {
}
}
function editcatform($cat_id) {
global $mysql_table_prefix;
$result = mysql_query("SELECT category FROM ".$mysql_table_prefix."categories where category_id='$cat_id'"); $category=$row[0];
?>
<div id="submenu">
<center><b>Edit category</b></center>
</div>
<br/>
<div align="center"><center><table>
<form action="admin.php" method="post">
<input type="hidden" name="f" value="10">
<input type="hidden" name="cat_id" value="<?php print $cat_id;?>"
<tr><td><b>Category:</b></td><td> <input type="text" name="category" value="<?php print $category?>"size=40></td></tr>
<tr><td></td><td><input type="submit" id="submit" value="Update"></td></tr></form></table></center></div>
<?php
}
function editcat ($cat_id, $category) {
global $mysql_table_prefix;
$qry = "UPDATE ".$mysql_table_prefix."categories SET category='".addslashes($category)."' WHERE category_id='$cat_id'"; return "<br/><center><b>Category updated</b></center>";
} else {
}
}
function showsites($message) {
global $mysql_table_prefix;
$result = mysql_query("SELECT site_id, url, title, indexdate from ".$mysql_table_prefix."sites ORDER By indexdate, title"); ?>
<div id='submenu'>
<ul>
<li><a href='admin.php?f=add_site'>Add site</a> </li>
<?php
?>
<li><a href='spider.php?all=1'> Reindex all</a></li>
<?php
}
?>
</ul>
</div>
<?php
print $message;
print "<br/>";
print "<div align=\"center\"><table cellspacing =\"0\" cellpadding=\"0\" class=\"darkgrey\"><tr><td><table cellpadding=\"3\" cellspacing=\"1\">
<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";
} else {
?><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
}
$class = "grey";
if ($row['indexdate']=='') {
$indexstatus="<font color=\"red\">Not indexed</font>";
$indexoption="<a href=\"admin.php?f=index&url=$row[url]\">Index</a>";
} else {
$site_id = $row['site_id'];
$result2 = mysql_query("SELECT site_id from ".$mysql_table_prefix."pending where site_id =$site_id"); if ($row2['site_id'] == $row['site_id']) {
$indexstatus = "Unfinished";
$indexoption="<a href=\"admin.php?f=index&url=$row[url]\">Continue</a>";
} else {
$indexstatus = $row['indexdate'];
$indexoption="<a href=\"admin.php?f=index&url=$row[url]&reindex=1\">Re-index</a>";
}
}
if ($class =="white")
$class = "grey";
else
$class = "white";
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>"; print "<td><a href=admin.php?f=20&site_id=$row[site_id] id=\"small_button\">Options</a></td></tr>\n";
}
print "</table></td></tr></table></div>";
}
}
function deletecat($cat_id) {
global $mysql_table_prefix;
$list = implode(",", get_cats
($cat_id)); mysql_query("delete from ".$mysql_table_prefix."categories where category_id in ($list)"); mysql_query("delete from ".$mysql_table_prefix."site_category where category_id=$cat_id"); return "<center><b>Category deleted.</b></center>";
}
function deletesite($site_id) {
global $mysql_table_prefix;
mysql_query("delete from ".$mysql_table_prefix."sites where site_id=$site_id"); mysql_query("delete from ".$mysql_table_prefix."site_category where site_id=$site_id"); $query = "select link_id from ".$mysql_table_prefix."links where site_id=$site_id";
$todelete[]=$row['link_id'];
}
if (count($todelete)>0) { $todelete = implode(",", $todelete); for ($i=0;$i<=15; $i++) {
$query = "delete from ".$mysql_table_prefix."link_keyword$char where link_id in($todelete)";
}
}
mysql_query("delete from ".$mysql_table_prefix."links where site_id=$site_id"); mysql_query("delete from ".$mysql_table_prefix."pending where site_id=$site_id"); return "<br/><center><b>Site deleted</b></center>";
}
function deletePage($link_id) {
global $mysql_table_prefix;
mysql_query("delete from ".$mysql_table_prefix."links where link_id=$link_id"); for ($i=0;$i<=15; $i++) {
mysql_query("delete from ".$mysql_table_prefix."link_keyword$char where link_id=$link_id"); }
return "<br/><center><b>Page deleted</b></center>";
}
function cleanTemp() {
global $mysql_table_prefix;
$result = mysql_query("delete from ".$mysql_table_prefix."temp where level >= 0"); ?>
<div id="submenu">
</div><?php
print "<br/><center><b>Temp table cleared, $del items deleted.</b></center>";
}
function clearLog() {
global $mysql_table_prefix;
$result = mysql_query("delete from ".$mysql_table_prefix."query_log where time >= 0"); ?>
<div id="submenu">
</div><?php
print "<br/><center><b>Search log cleared, $del items deleted.</b></center>";
}
function cleanLinks() {
global $mysql_table_prefix;
$query = "select site_id from ".$mysql_table_prefix."sites";
$todelete[]=$row['site_id'];
}
$todelete = implode(",", $todelete); $sql_end = " not in ($todelete)";
}
$result = mysql_query("select link_id from ".$mysql_table_prefix."links where site_id".$sql_end); $link_id=$row[link_id];
for ($i=0;$i<=15; $i++) {
mysql_query("delete from ".$mysql_table_prefix."link_keyword$char where link_id=$link_id"); }
mysql_query("delete from ".$mysql_table_prefix."links where link_id=$link_id"); }
$result = mysql_query("select link_id from ".$mysql_table_prefix."links where site_id is NULL"); $link_id=$row[link_id];
for ($i=0;$i<=15; $i++) {
mysql_query("delete from ".$mysql_table_prefix."link_keyword$char where link_id=$link_id"); }
mysql_query("delete from ".$mysql_table_prefix."links where link_id=$link_id"); }
?>
<div id="submenu">
</div><?php
print "<br/><center><b>Links table cleaned, $del links deleted.</b></center>";
}
function cleanKeywords() {
global $mysql_table_prefix;
$query = "select keyword_id, keyword from ".$mysql_table_prefix."keywords";
$del = 0;
$keyId=$row['keyword_id'];
$keyword=$row['keyword'];
$query = "select keyword_id from ".$mysql_table_prefix."link_keyword$wordmd5 where keyword_id = $keyId";
mysql_query("delete from ".$mysql_table_prefix."keywords where keyword_id=$keyId"); $del++;
}
}?>
<div id="submenu">
</div><?php
print "<br/><center><b>Keywords table cleaned, $del keywords deleted.</b></center>";
}
function getStatistics() {
global $mysql_table_prefix;
$keywordQuery = "select count(keyword_id) from ".$mysql_table_prefix."keywords";
$linksQuery = "select count(url) from ".$mysql_table_prefix."links";
$siteQuery = "select count(site_id) from ".$mysql_table_prefix."sites";
$categoriesQuery = "select count(category_id) from ".$mysql_table_prefix."categories";
$stats['keywords']=$row[0];
}
$stats['links']=$row[0];
}
for ($i=0;$i<=15; $i++) {
$result = mysql_query("select count(link_id) from ".$mysql_table_prefix."link_keyword$char"); $stats['index']+=$row[0];
}
}
$stats['sites']=$row[0];
}
$stats['categories']=$row[0];
}
return $stats;
}
function addsite ($url, $title, $short_desc, $cat) {
global $mysql_table_prefix;
if ($compurl['path']=='')
$url=$url."/";
$result = mysql_query("select site_ID from ".$mysql_table_prefix."sites where url='$url'"); if ($rows==0 ) {
mysql_query("INSERT INTO ".$mysql_table_prefix."sites (url, title, short_desc) VALUES ('$url', '$title', '$short_desc')"); $result = mysql_query("select site_ID from ".$mysql_table_prefix."sites where url='$url'"); $site_id = $row[0];
$result=mysql_query("select category_id from ".$mysql_table_prefix."categories"); $cat_id=$row[0];
if ($cat[$cat_id]=='on') {
mysql_query("INSERT INTO ".$mysql_table_prefix."site_category (site_id, category_id) values ('$site_id', '$cat_id')"); }
}
$message = "<br/><center><b>Site added</b></center>" ;
} else {
}
} else {
$message = "<center><b>Site already in database</b></center>";
}
return $message;
}
function indexscreen ($url, $reindex) {
global $mysql_table_prefix;
$check = "";
$levelchecked = "checked";
$spider_depth = 2;
if ($url=="") {
$url = "http://";
$advurl = "";
} else {
$advurl = $url;
$result = mysql_query("select spider_depth, required, disallowed, can_leave_domain from ".$mysql_table_prefix."sites " . "where url='$url'");
$spider_depth = $row[0];
if ($spider_depth == -1 ) {
$fullchecked = "checked";
$spider_depth ="";
$levelchecked = "";
}
$must = $row[1];
$mustnot = $row[2];
$canleave = $row[3];
}
}
?>
<div id="submenu">
<ul>
<li>
<?php
if ($must !="" || $mustnot !="" || $canleave == 1 ) {
$_SESSION['index_advanced']=1;
}
if ($_SESSION['index_advanced']==1){
print "<a href='admin.php?f=index&adv=0&url=$advurl'>Hide advanced options</a>";
} else {
print "<a href='admin.php?f=index&adv=1&url=$advurl'>Advanced options</a>";
}
?>
</li>
</ul>
</div>
<br/>
<div id="indexoptions"><table>
<form action="spider.php" method="post">
<tr><td><b>Address:</b></td><td> <input type="text" name="url" size="48" value=<?php print "\"$url\"";?>></td></tr>
<tr><td><b>Indexing options:</b></td><td>
<input type="radio" name="soption" value="full" <?php print $fullchecked;?>> Full<br/>
<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/>
<?php if ($reindex==1) $check="checked"?>
<input type="checkbox" name="reindex" value="1" <?php print $check;?>> Reindex<br/>
</td></tr>
<?php
if ($_SESSION['index_advanced']==1){
?>
<?php if ($canleave==1) {$checkcan="checked" ;} ?>
<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>
<tr><td><b>URL must include:</b></td><td><textarea name=in cols=35 rows=2 wrap="virtual"><?php print $must;?></textarea></td></tr>
<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>
<?php
}
?>
<tr><td></td><td><input type="submit" id="submit" value="Start indexing"></td></tr>
</form></table></div>
<?php
}
function siteScreen($site_id, $message) {
global $mysql_table_prefix;
$result = mysql_query("SELECT site_id, url, title, short_desc, indexdate from ".$mysql_table_prefix."sites where site_id=$site_id"); $url = replace_ampersand($row[url]);
if ($row['indexdate']=='') {
$indexstatus="<font color=\"red\">Not indexed</font>";
$indexoption="<a href=\"admin.php?f=index&url=$url\">Index</a>";
} else {
$site_id = $row['site_id'];
$result2 = mysql_query("SELECT site_id from ".$mysql_table_prefix."pending where site_id =$site_id"); if ($row2['site_id'] == $row['site_id']) {
$indexstatus = "Unfinished";
$indexoption="<a href=\"admin.php?f=index&url=$url\">Continue indexing</a>";
} else {
$indexstatus = $row['indexdate'];
$indexoption="<a href=\"admin.php?f=index&url=$url&reindex=1\">Re-index</a>";
}
}
?>
<div id="submenu">
</div>
<?php print $message;?>
<br/>
<center>
<div style="width:755px;">
<div style="float:left; margin-right:0px;">
<div class="darkgrey">
<table cellpadding="3" cellspacing="0">
<table cellpadding="5" cellspacing="1" width="640">
<tr >
<td class="grey" valign="top" width="20%" align="left">URL:</td>
<td class="white" align="left"><a href="<?php print $row['url']; print "\">"; print $row['url'];?></a></td>
</tr>
<tr>
<td class="grey" valign="top" align="left">Title:</td>
<td class="white" align="left"><b>
<?php print stripslashes($row['title']);?></b></td>
</tr>
<tr>
<td class="grey" valign="top" align="left">Description:</td>
<td width="80%" class="white" align="left">
<?php print stripslashes($row['short_desc']);?></td>
</tr>
<tr>
<td class="grey" valign="top" align="left">Last indexed:</td>
<td class="white" align="left"><?php print $indexstatus;?></td>
</tr>
</table>
</div>
</div>
<div id= "vertmenu">
<ul>
<li><a href=admin.php?f=edit_site&site_id=<?php print $row['site_id']?>>Edit</a></li>
<li><?php print $indexoption?></li>
<li><a href=admin.php?f=21&site_id=<?php print $row['site_id']?>>Browse pages</a></li>
<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>
<li><a href=admin.php?f=19&site_id=<?php print $row['site_id'];?>>Stats</a></li>
</div>
</ul>
</div>
</center>
<div class="clear">
</div>
<br/>
<?php
}
function siteStats($site_id) {
global $mysql_table_prefix;
$result = mysql_query("select url from ".$mysql_table_prefix."sites where site_id=$site_id"); $url=$row[0];
$lastIndexQuery = "SELECT indexdate from ".$mysql_table_prefix."sites where site_id = $site_id";
$sumSizeQuery = "select sum(length(fulltxt)) from ".$mysql_table_prefix."links where site_id = $site_id";
$siteSizeQuery = "select sum(size) from ".$mysql_table_prefix."links where site_id = $site_id";
$linksQuery = "select count(*) from ".$mysql_table_prefix."links where site_id = $site_id";
$stats['lastIndex']=$row[0];
}
$stats['sumSize']=$row[0];
}
$stats['links']=$row[0];
}
for ($i=0;$i<=15; $i++) {
$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"); $stats['index']+=$row[0];
}
}
for ($i=0;$i<=15; $i++) {
$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";
$stats['words']+=$row[0];
}
}
$stats['siteSize']=$row[0];
}
if ($stats['siteSize']=="")
$stats['siteSize'] = 0;
print"<div id=\"submenu\"></div>";
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\">";
print "Statistics for site <a href=\"admin.php?f=20&site_id=$site_id\">$url</a>";
print "<tr class=\"white\"><td>Last indexed:</td><td align=\"center\"> ".$stats['lastIndex']."</td></tr>";
print "<tr class=\"grey\"><td>Pages indexed:</td><td align=\"center\"> ".$stats['links']."</td></tr>";
print "<tr class=\"white\"><td>Total index size:</td><td align=\"center\"> ".$stats['index']."</td></tr>";
print "<tr class=\"grey\"><td>Cached texts:</td><td align=\"center\"> ".$sum."kb</td></tr>";
print "<tr class=\"white\"><td>Total number of keywords:</td><td align=\"center\"> ".$stats['words']."</td></tr>";
print "<tr class=\"grey\"><td>Site size:</td><td align=\"center\"> ".$stats['siteSize']."kb</td></tr>";
print "</table></td></tr></table></center></div>";
}
}
function browsePages($site_id, $start, $filter, $per_page) {
global $mysql_table_prefix;
$result = mysql_query("select url from ".$mysql_table_prefix."sites where site_id=$site_id"); $url = $row[0];
$query_add = "";
if ($filter != "") {
$query_add = "and url like '%$filter%'";
}
$linksQuery = "select count(*) from ".$mysql_table_prefix."links where site_id = $site_id $query_add";
$numOfPages = $row[0];
$from = ($start-1) * 10;
$to = min(($start)*10, $numOfPages);
$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";
?>
<div id="submenu"></div>
<br/>
<center>
<b>Pages of site <a href="admin.php?f=20&site_id=<?php print $site_id?>"><?php print $url;?></a></b><br/>
<p>
<form action="admin.php" method="post">
Urls per page: <input type="text" name="per_page" size="3" value="<?php print $per_page;?>">
Url contains: <input type="text" name="filter" size="15" value="<?php print $filter;?>">
<input type="submit" id="submit" value="Filter">
<input type="hidden" name="start" value="1">
<input type="hidden" name="site_id" value="<?php print $site_id?>">
<input type="hidden" name="f" value="21">
</form>
</p>
<table width="600"><tr><td>
<table cellspacing ="0" cellpadding="0" class="darkgrey" width ="100%"><tr><td>
<table cellpadding="3" cellspacing="1" width="100%">
<?php
$class = "white";
if ($class =="white")
$class = "grey";
else
$class = "white";
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>";
}
print "</table></td></tr></table>";
$pages = ceil($numOfPages / $per_page); $prev = $start - 1;
$next = $start + 1;
if ($pages > 0)
print "<center>Pages: ";
$links_to_next =10;
$firstpage = $start - $links_to_next;
if ($firstpage < 1) $firstpage = 1;
$lastpage = $start + $links_to_next;
if ($lastpage > $pages) $lastpage = $pages;
for ($x=$firstpage; $x<=$lastpage; $x++)
if ($x<>$start) {
print "<a href=admin.php?f=21&site_id=$site_id&start=$x&filter=$filter&per_page=$per_page>$x</a> ";
} else
print "<b>$x </b>";
print"</td></tr></table></center>";
}
function cleanForm () {
global $mysql_table_prefix;
$result = mysql_query("select count(*) from ".$mysql_table_prefix."query_log"); $log=$row[0];
}
$result = mysql_query("select count(*) from ".$mysql_table_prefix."temp"); $temp=$row[0];
}
?>
<div id="submenu">
</div>
<br/><div align="center">
<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>
</td><td align="left"> Delete all keywords not associated with any link.</td></tr>
<tr class="grey" ><td align="left"><a href="admin.php?f=16" id="small_button">Clean links</a>
</td><td align="left"> Delete all links not associated with any site.</td></tr>
<tr class="grey" ><td align="left"><a href="admin.php?f=17" id="small_button">Clear temp tables </a>
</td><td align="left"> <?php print $temp;?> items in temporary table.</td></tr>
<tr class="grey" ><td align="left"><a href="admin.php?f=23" id="small_button">Clear search log </a>
</td><td align="left"><?php print $log;?> items in search log.
</td></tr></table> </td></tr></table></div>
<?php
}
function statisticsForm ($type) {
global $mysql_table_prefix, $log_dir;
?>
<div id='submenu'>
<ul>
<li><a href="admin.php?f=statistics&type=keywords">Top keywords</a></li>
<li><a href="admin.php?f=statistics&type=pages">Largest pages</a></li>
<li><a href="admin.php?f=statistics&type=top_searches">Most popular searches</a></li>
<li><a href="admin.php?f=statistics&type=log">Search log</a></li>
<li><a href="admin.php?f=statistics&type=spidering_log">Spidering logs</a></li>
</ul>
</div>
<?php
if ($type == "") {
$cachedSumQuery = "select sum(length(fulltxt)) from ".$mysql_table_prefix."links";
$result=mysql_query("select sum(length(fulltxt)) from ".$mysql_table_prefix."links"); $cachedSumSize = $row[0];
}
$sitesSizeQuery = "select sum(size) from ".$mysql_table_prefix."links";
$sitesSize = $row[0];
}
$stats = getStatistics();
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>";
print "<tr class=\"white\"><td><b>Links:</b></td><td align=\"center\"> ".$stats['links']."</td></tr>";
print "<tr class=\"grey\"><td><b>Categories:</b></td><td align=\"center\"> ".$stats['categories']."</td></tr>";
print "<tr class=\"white\"><td><b>Keywords:</b></td><td align=\"center\"> ".$stats['keywords']."</td></tr>";
print "<tr class=\"grey\"><td><b>Keyword-link realations:</b></td><td align=\"center\"> ".$stats['index']."</td></tr>";
print "<tr class=\"white\"><td><b>Cached texts total:</b></td><td align=\"center\"> $cachedSumSize kb</td></tr>";
print "<tr class=\"grey\"><td><b>Sites size total:</b></td><td align=\"center\"> $sitesSize kb</td></tr>";
print "</table></td></tr></table></div>";
}
if ($type=='keywords') {
$class = "grey";
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>";
for ($i=0;$i<=15; $i++) {
$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"); $topwords[$row[0]] = $row[1];
}
}
$count = 0;
while ((list($word, $weight) = each($topwords)) && $count <= 30) {
$count++;
if ($class =="white")
$class = "grey";
else
$class = "white";
print "<tr class=\"$class\"><td align=\"left\">".$word."</td><td> ".$weight."</td></tr>\n";
}
print "</table></td></tr></table></div>";
}
if ($type=='pages') {
$class = "grey";
?>
<br/><div align="center">
<table cellspacing ="0" cellpadding="0" class="darkgrey"><tr><td>
<table cellpadding="2" cellspacing="1">
<tr class="grey"><td>
<b>Page</b></td>
<td><b>Text size</b></td></tr>
<?php
$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"); if ($class =="white")
$class = "grey";
else
$class = "white";
$url = $row[1];
print "<tr class=\"$class\"><td align=\"left\"><a href=\"$url\">".$url."</td><td align= \"center\"> ".$sum."kb</td></tr>";
}
print "</table></td></tr></table></div>";
}
if ($type=='top_searches') {
$class = "grey";
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>";
$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"); if ($class =="white")
$class = "grey";
else
$class = "white";
$word = $row[0];
$times = $row[1];
$date = $row[2];
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>"; }
print "</table></td></tr></table></div>";
}
if ($type=='log') {
$class = "grey";
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>";
$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"); if ($class =="white")
$class = "grey";
else
$class = "white";
$word = $row[0];
$time = $row[1];
$elapsed = $row[2];
$results = $row[3];
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>"; }
print "</table></td></tr></table></div>";
}
if ($type=='spidering_log') {
$class = "grey";
$files = get_dir_contents($log_dir);
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>";
for ($i=0; $i<count($files); $i++) { $file=$files[$i];
if ($class =="white")
$class = "grey";
else
$class = "white";
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>";
}
print "</table></td></tr></table></div>";
} else {
?>
<br/><br/>
<center><b>No saved logs.</b></center>
<?php
}
}
}
switch ($f) {
case 1:
$message = addsite($url, $title, $short_desc, $cat);
if ($compurl['path']=='')
$url=$url."/";
$result = mysql_query("select site_id from ".$mysql_table_prefix."sites where url='$url'"); if ($site_id != "")
siteScreen($site_id, $message);
else
showsites($message);
break;
case 2:
showsites();
break;
case edit_site:
editsiteform($site_id);
break;
case 4:
$domaincb = 0;
$cat = "";
if ($soption =='full') {
$depth = -1;
}
$message = editsite ($site_id, $url, $title, $short_desc, $depth, $in, $out, $domaincb, $cat);
showsites($message);
break;
case 5:
deletesite ($site_id);
showsites();
break;
case add_cat:
$parent = "";
addcatform ($parent);
break;
case 7:
$parent = "";
}
$message = addcat ($category, $parent);
list_cats (0, 0, "white", $message);
break;
case categories:
list_cats (0, 0, "white", "");
break;
case edit_cat;
editcatform($cat_id);
break;
case 10;
$message = editcat ($cat_id, $category);
list_cats (0, 0, "white", $message);
break;
case 11;
deletecat($cat_id);
list_cats (0, 0, "white");
break;
case index;
$url = "";
$reindex = "";
$_SESSION['index_advanced']=$adv;
}
indexscreen($url, $reindex);
break;
case add_site;
addsiteform();
break;
case clean;
cleanForm();
break;
case 15;
cleanKeywords();
break;
case 16;
cleanLinks();
break;
case 17;
cleanTemp();
break;
case statistics;
$type = "";
statisticsForm($type);
break;
case 19;
siteStats($site_id);
break;
case 20;
siteScreen($site_id);
break;
case 21;
$start = 1;
$filter = "";
$per_page = 10;
browsePages($site_id, $start, $filter, $per_page);
break;
case 22;
deletePage($link_id);
$start = 1;
$filter = "";
$per_page = 10;
browsePages($site_id, $start, $filter, $per_page);
break;
case 23;
clearLog();
break;
case 24;
header("Location: admin.php"); break;
case database;
include "db_main.php";
break;
case settings;
include('configset.php');
break;
case delete_log;
statisticsForm('spidering_log');
break;
case '':
showsites();
break;
}
$stats = getStatistics();
print "<br/><br/> <center>Currently in database: ".$stats['sites']." sites, ".$stats['links']." links, ".$stats['categories']." categories and ".$stats['keywords']." keywords.<br/><br/></center>\n";
?>
</div>
</div>
</body>
</html>