$refer_cache_path), $refer_cache_time); function count_referrers_for_url($url) { global $refer_cache; $out = $refer_cache->call("_real_count_referrers_for_url", $url); return $out; } function _real_count_referrers_for_url($url) { $cursor = _query_referers_for_url($url); if (get_class($cursor) == "db_error") { return "N/A "; } elseif (get_class($cursor) == "db_result") { return $cursor->numRows(); } } function list_referrers_for_url($url) { global $refer_cache; $out = $refer_cache->call("_real_list_referrers_for_url", $url); return $out; } function _real_list_referrers_for_url($url) { $cursor = _query_referers_for_url($url); $out = ""; $out .= "\n"; return $out; } function _query_referers_for_url($url) { global $refer_dbh; $url_parts = parse_url($url); $url_path = $url_parts['path']; // execute query $query = 'SELECT ref_url, ref_title, hits AS visitor_count '. 'FROM referer_links '. 'WHERE site_path="'.$url_path.'" '; if ($url_path == '/') { $query .= 'AND created > date_sub(now(), interval 1 day) '; } $query .= 'ORDER BY visitor_count DESC '. 'LIMIT 40'; $cursor = $refer_dbh->query($query); return $cursor; } function truncate_str($str, $len) { if (strlen($str) > $len) { $half_len = $len / 2; return substr($str,0,$half_len)."...".substr($str,0-$half_len); } else { return $str; } } ?>