107 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
// translator ready
 | 
						|
// addnews ready
 | 
						|
// mail ready
 | 
						|
require_once("common.php");
 | 
						|
require_once("lib/dhms.php");
 | 
						|
require_once("lib/http.php");
 | 
						|
 | 
						|
tlschema("referers");
 | 
						|
 | 
						|
check_su_access(SU_EDIT_CONFIG);
 | 
						|
 | 
						|
$expire = getsetting("expirecontent",180);
 | 
						|
if($expire > 0) $sql = "DELETE FROM " . db_prefix("referers") . " WHERE last<'".date("Y-m-d H:i:s",strtotime("-".$expire." days"))."'";
 | 
						|
db_query($sql);
 | 
						|
$op = httpget('op');
 | 
						|
 | 
						|
if ($op=="rebuild"){
 | 
						|
	$sql = "SELECT * FROM " . db_prefix("referers");
 | 
						|
	$result = db_query($sql);
 | 
						|
	$number=db_num_rows($result);
 | 
						|
	for ($i=0;$i<$number;$i++){
 | 
						|
		$row = db_fetch_assoc($result);
 | 
						|
		$site = str_replace("http://","",$row['uri']);
 | 
						|
		if (strpos($site,"/")) $site = substr($site,0,strpos($site,"/"));
 | 
						|
		$sql = "UPDATE " . db_prefix("referers") . " SET site='".addslashes($site)."' WHERE refererid='{$row['refererid']}'";
 | 
						|
		db_query($sql);
 | 
						|
	}
 | 
						|
}
 | 
						|
require_once("lib/superusernav.php");
 | 
						|
superusernav();
 | 
						|
addnav("Referer Options");
 | 
						|
addnav("",$_SERVER['REQUEST_URI']);
 | 
						|
$sort = httpget('sort');
 | 
						|
addnav("Refresh","referers.php?sort=".URLEncode($sort)."");
 | 
						|
addnav("C?Sort by Count","referers.php?sort=count".($sort=="count DESC"?"":"+DESC"));
 | 
						|
addnav("U?Sort by URL","referers.php?sort=uri".($sort=="uri"?"+DESC":""));
 | 
						|
addnav("T?Sort by Time","referers.php?sort=last".($sort=="last DESC"?"":"+DESC"));
 | 
						|
 | 
						|
addnav("Rebuild Sites","referers.php?op=rebuild");
 | 
						|
 | 
						|
page_header("Referers");
 | 
						|
$order = "count DESC";
 | 
						|
if ($sort!="") $order=$sort;
 | 
						|
$sql = "SELECT SUM(count) AS count, MAX(last) AS last,site FROM " . db_prefix("referers") . " GROUP BY site ORDER BY $order LIMIT 100";
 | 
						|
$count = translate_inline("Count");
 | 
						|
$last = translate_inline("Last");
 | 
						|
$dest = translate_inline("Destination");
 | 
						|
$none = translate_inline("`iNone`i");
 | 
						|
$notset = translate_inline("`iNot set`i");
 | 
						|
$skipped = translate_inline("`i%s records skipped (over a week old)`i");
 | 
						|
rawoutput("<table border=0 cellpadding=2 cellspacing=1><tr class='trhead'><td>$count</td><td>$last</td><td>URL</td><td>$dest</td><td>IP</td></tr>");
 | 
						|
$result = db_query($sql);
 | 
						|
$number=db_num_rows($result);
 | 
						|
for ($i=0;$i<$number;$i++){
 | 
						|
	$row = db_fetch_assoc($result);
 | 
						|
 | 
						|
	rawoutput("<tr class='trdark'><td valign='top'>");
 | 
						|
	output_notl("`b".$row['count']."`b");
 | 
						|
	rawoutput("</td><td valign='top'>");
 | 
						|
	$diffsecs = strtotime("now")-strtotime($row['last']);
 | 
						|
	//output((int)($diffsecs/86400)."d ".(int)($diffsecs/3600%3600)."h ".(int)($diffsecs/60%60)."m ".(int)($diffsecs%60)."s");
 | 
						|
	output_notl("`b".dhms($diffsecs)."`b");
 | 
						|
	rawoutput("</td><td valign='top' colspan='3'>");
 | 
						|
	output_notl("`b".($row['site']==""?$none:$row['site'])."`b");
 | 
						|
	rawoutput("</td></tr>");
 | 
						|
 | 
						|
	$sql = "SELECT count,last,uri,dest,ip FROM " . db_prefix("referers") . " WHERE site='".addslashes($row['site'])."' ORDER BY {$order} LIMIT 25";
 | 
						|
	$result1 = db_query($sql);
 | 
						|
	$skippedcount=0;
 | 
						|
	$skippedtotal=0;
 | 
						|
	$number=db_num_rows($result1);
 | 
						|
	for ($k=0;$k<$number;$k++){
 | 
						|
		$row1=db_fetch_assoc($result1);
 | 
						|
		$diffsecs = strtotime("now")-strtotime($row1['last']);
 | 
						|
		if ($diffsecs<=604800){
 | 
						|
			rawoutput("<tr class='trlight'><td>");
 | 
						|
			output_notl($row1['count']);
 | 
						|
			rawoutput("</td><td valign='top'>");
 | 
						|
			//output((int)($diffsecs/86400)."d".(int)($diffsecs/3600%3600)."h".(int)($diffsecs/60%60)."m".(int)($diffsecs%60)."s");
 | 
						|
			output_notl(dhms($diffsecs));
 | 
						|
			rawoutput("</td><td valign='top'>");
 | 
						|
			if ($row1['uri']>"")
 | 
						|
				rawoutput("<a href='".HTMLEntities($row1['uri'], ENT_COMPAT, getsetting("charset", "ISO-8859-1"))."' target='_blank'>".HTMLEntities(substr($row1['uri'],0,100))."</a>");
 | 
						|
			else
 | 
						|
				output_notl($none);
 | 
						|
			output_notl("`n");
 | 
						|
			rawoutput("</td><td valign='top'>");
 | 
						|
			output_notl($row1['dest']==''?$notset:$row1['dest']);
 | 
						|
			rawoutput("</td><td valign='top'>");
 | 
						|
			output_notl($row1['ip']==''?$notset:$row1['ip']);
 | 
						|
			rawoutput("</td></tr>");
 | 
						|
		}else{
 | 
						|
			$skippedcount++;
 | 
						|
			$skippedtotal+=$row1['count'];
 | 
						|
		}
 | 
						|
	}
 | 
						|
	if ($skippedcount>0){
 | 
						|
		rawoutput("<tr class='trlight'><td>$skippedtotal</td><td valign='top' colspan='4'>");
 | 
						|
		output_notl(sprintf($skipped,$skippedcount));
 | 
						|
		rawoutput("</td></tr>");
 | 
						|
	}
 | 
						|
	//output("</td></tr>",true);
 | 
						|
}
 | 
						|
rawoutput("</table>");
 | 
						|
page_footer();
 | 
						|
?>
 |