1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
<?php
/* $Id: function.referer.php,v 1.4 2005/03/11 17:52:56 donncha Exp $ */
// Based on code by Nathan Young @ http://ncyoung.com/entry/57
// Modified by Donncha O Caoimh, donncha@linux.ie
function getreferers( $wpblog, $siteDomain )
{
global $wpdb;
/*if( $p || $cat || $m )
{
$sql = "select baseDomain,referingURL, visitTimes from referer_visitLog WHERE visitURL = '".$currentURL."' ORDER BY visitTime ASC LIMIT 0 , 10";
}
else
{*/
$sql = "select referingURL, visitTimes, visitTime from referer_visitLog WHERE blogID='".$wpblog."' and visitTime >= NOW() - INTERVAL 24 HOUR ORDER BY visitTime DESC";
//}
$result = $wpdb->get_results($sql);
if( $result )
{
foreach( $result as $details )
{
if( $details->referingURL == 'DIRECT' )
{
$details->baseDomain = $details->referingURL;
}
else
{
$t = preg_replace("/http:\/\//i", "", $details->referingURL );
$t = preg_replace("/^www\./i", "", $t );
$t = preg_replace("/\/.*/i", "", $t );
$details->baseDomain = $t;
}
if( $details->baseDomain != 'DIRECT' )
{
if( substr( $details->baseDomain, 0, 6 ) == 'google' )
{
$refererlinks[ 'google' ][ 'visitTimes' ] += $details->visitTimes;
$refererlinks[ 'google' ][ 'referingURL' ] = "http://www.google.com/";
$refererlinks[ 'google' ][ 'baseDomain' ] = "google.com";
}
elseif( strpos( $details->baseDomain, "ebsearch.com" ) )
{
$refererlinks[ 'websearch' ][ 'visitTimes' ] += $details->visitTimes;
$refererlinks[ 'websearch' ][ 'referingURL' ] = "http://www.websearch.com/";
$refererlinks[ 'websearch' ][ 'baseDomain' ] = "websearch.com";
}
elseif( strpos( $details->baseDomain, "ahoo.com" ) )
{
$refererlinks[ 'yahoo' ][ 'visitTimes' ] += $details->visitTimes;
$refererlinks[ 'yahoo' ][ 'referingURL' ] = "http://www.yahoo.com/";
$refererlinks[ 'yahoo' ][ 'baseDomain' ] = "yahoo.com";
}
elseif( strpos( $details->baseDomain, "sxml.infospace.com" ) )
{
$refererlinks[ 'yahoo' ][ 'visitTimes' ] += $details->visitTimes;
$refererlinks[ 'yahoo' ][ 'referingURL' ] = "http://msxml.infospace.com/";
$refererlinks[ 'yahoo' ][ 'baseDomain' ] = "infospace.com";
}
elseif( strpos( $details->baseDomain, $siteDomain ) === false )
{
$refererlinks[ $details->referingURL ][ "referingURL" ] = $details->referingURL;
$refererlinks[ $details->referingURL ][ "visitTimes" ] += $details->visitTimes;
$refererlinks[ $details->referingURL ][ "baseDomain" ] = $details->baseDomain;
}
}
}
if(is_array( $refererlinks ) == false )
$refererlinks = array();
reset( $refererlinks );
while( list( $key, $val ) = each( $refererlinks ) )
{
if( $val[ 'visitTimes' ] < 3 )
unset( $refererlinks[ $key ] );
}
}
else
{
$refererlinks = '';
}
return $refererlinks;
}
function smarty_function_referer($params, &$smarty)
{
global $post, $wpdb, $wpblog;
$ref = getenv('HTTP_REFERER');
$currentURL = $_SERVER['REQUEST_URI'];
$fullCurrentURL = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$tomorrow = date( "d", mktime (0,0,0,date("m") ,date("d")+1,date("Y")) );
if( $site == 'root' )
{
$sql = "delete from referer_visitLog WHERE dayofmonth = '$tomorrow'"; // delete referers from a (month - 1 day) ago.
$result = $wpdb->query( $query );
}
$siteurl = get_settings( "siteurl" );
$siteDomain = str_replace( "http://", "", $siteurl );
if( strpos( $siteDomain, "/" ) )
$siteDomain = substr( $siteDomain, 0, strpos( $siteDomain, "/" ) );
// find referers for current page
if( @include_once( "Cache/Function.php" ) )
{
$cache = new Cache_Function( 'file', array('cache_dir' => ABSPATH . "/wp-content/smarty-cache", 'filename_prefix' => 'referers_cache_' ), 600 );
$refererlinks = $cache->call( "getreferers", $wpblog, $siteDomain );
}
else
{
$refererlinks = getreferers( $wpblog, $siteDomain );
}
if( is_array( $refererlinks ) )
reset( $refererlinks );
$smarty->assign( "refererlinks", $refererlinks );
}
?>
|