'1 DAY', 'month' => '1 MONTH', 'year' => '1 YEAR');
$duration = '1 MONTH';
if ($opts['duration'] == 'all')
$duration = null;
elseif ($opts['duration'] and array_key_exists($opts['duration'], $intervals))
$duration = $intervals[$opts['duration']];
$ip = $_SERVER['REMOTE_ADDR'];
$geourl = "http://www.globecounter3d.com/get.php";
//robots
$isbot = 0;
$useragent = $_SERVER['HTTP_USER_AGENT'];
$notbot = "Mozilla|Opera"; $bot = "Bot\s|Bot/|robot|Slurp/|yahoo";
if ( !preg_match("/$notbot/i", $useragent) || preg_match("!$bot!i", $useragent) ) $isbot = 1;
$was = 0;
$c = 1;
$er = false;
if(!$isbot){
if(isset($_COOKIE["gc3dmygeoloc"])){
$was = 1;
$a = explode(";",$_COOKIE["gc3dmygeoloc"]);
$x = $a[0]; $y = $a[1]; $flag = $a[2]; $desc = $a[3];
}else{
//GEO
$cont = @file_get_contents($geourl."?ip=$ip&type=full");
if ($cont != "" && strpos($cont, "ZZ") !== 0) {
$a = split("[\n\r]", $cont);
$y = $a[0];$x = $a[1];
$flag = strtolower($a[2]);
$desc = $a[4];
}
else
$er = 1;
}
if (!$er) {
//point
$res = $wpdb->get_results("SELECT * FROM `".$wpdb->prefix."gc3dpoints` WHERE x=$x AND y=$y LIMIT 1", ARRAY_A);
//new
if (!count($res)) {
$wpdb->query("INSERT INTO `".$wpdb->prefix."gc3dpoints` (`x`,`y`,`flag`,`desc`,`changed`,`count`) VALUES ($x, $y, '$flag', '$desc', NOW(), 1)");
$res = $wpdb->get_results("SELECT `id` FROM `".$wpdb->prefix."gc3dpoints` WHERE x=".$x." AND `y`=".$y." LIMIT 1", ARRAY_A);
$me = $res[0]['id'];
} else {
$c = $res[0]['count'];
$me = $res[0]['id'];
if (!$was)$c++;
$wpdb->query("UPDATE `".$wpdb->prefix."gc3dpoints` SET `count`=$c , `changed`=NOW() WHERE `id`=".$res[0]['id']);
}
//delete old visitors
if ($duration)
$wpdb->query("DELETE FROM `".$wpdb->prefix."gc3dvisitors` WHERE `date` < NOW() - INTERVAL ${duration}");
//insert me
if(!$was)$wpdb->query("INSERT INTO `".$wpdb->prefix."gc3dvisitors` (`point`,`date`) VALUES ($me, NOW())");
//send cookie
if(!$was)setcookie("gc3dmygeoloc", "$x;$y;$flag;$desc", time()+24*3600);
}
}
//total
/*$res = $wpdb->get_results("SELECT SUM(`count`) as `sum` FROM `".$wpdb->prefix."gc3dpoints`", ARRAY_A);
$c2 = $res[0]['sum'];*/
$info = "";
if (!$opts['hidetotalcount'])
{
//24hours visitors
$res = $wpdb->get_results("SELECT COUNT(*) as `c` FROM `".$wpdb->prefix."gc3dvisitors`".($duration?" WHERE `date` > NOW() - INTERVAL ${duration}":""), ARRAY_A);
$_intervals = array('24h' => '24 hours', 'month' => 'last month', 'year' => 'last year');
$info = "visitors for ".(array_key_exists($opts['duration'], $_intervals) ? $_intervals[$opts['duration']] : $_intervals['month']).': '.$res[0]['c'];
}
echo " var gc3d_info = '".$info."'; \n";
//24hours points
$res = $wpdb->get_results("SELECT * FROM `".$wpdb->prefix."gc3dpoints`
".($duration?"WHERE `changed` > NOW() - INTERVAL ${duration}":"")."
ORDER BY `changed` DESC", ARRAY_A);
$a = array(); $cntrs = array();
for ($i = 0; $i < count($res); $i++) {
$x = (float)($res[$i]['x']);$x = $x/360; $x += 1.5;$x = $x - floor($x);
$y = (float)($res[$i]['y']);$y=0.5 - $y/180;
$a[] = "{x:".$x.",y:".$y
//.(($me == $res[$i]['id'])?(",d:'".$res[$i]['desc']."'"):"")
.(!isset($cntrs[$res[$i]['flag']])?(",f:'".$res[$i]['flag']."'"):"")
.(($me == $res[$i]['id'])?",me:true":"")."}";
$cntrs[$res[$i]['flag']] = 1;
}
$dots = implode(",", $a);
echo " var gc3d_dots=[".($dots)."]; \n";
$a = array();
$res = $wpdb->get_results("SELECT `".$wpdb->prefix."gc3dpoints`.`flag` as `flag`, COUNT(*) as `c`
FROM `".$wpdb->prefix."gc3dvisitors`,`".$wpdb->prefix."gc3dpoints`
WHERE `".$wpdb->prefix."gc3dpoints`.`id` = `".$wpdb->prefix."gc3dvisitors`.`point`
GROUP BY `flag`", ARRAY_A);
for ($i = 0; $i < count($res); $i++) {
$a[] = "'".$res[$i]['flag']."'".":".$res[$i]['c'];
}
$countries = implode(",", $a);
echo " var gc3d_countries={".($countries)."}; \n";
?>
No comments: