". variable_get("referer_clear", 604800)); } function statistics_perm() { return array("administer statistics"); } function statistics_link($type) { if ($type == "admin" && user_access("administer statistics")) { $links[] = "statistics"; } return $links ? $links : array(); } function statistics_conf_options() { $period = array(3600 => format_interval(3600), 10800 => format_interval(10800), 21600 => format_interval(21600), 32400 => format_interval(32400), 43200 => format_interval(43200), 86400 => format_interval(86400), 172800 => format_interval(172800), 259200 => format_interval(259200), 604800 => format_interval(604800), 1209600 => format_interval(1209600), 2419200 => format_interval(2419200), 4838400 => format_interval(4838400), 9676800 => format_interval(9676800)); $output .= form_select("Track referers", "referer", variable_get("referer", 0), array("Disabled", "Enabled"), "If enabled, Drupal will count how many times your website is referred to by other websites."); $output .= form_select("Discard referers older than", "referer_clear", variable_get("referer_clear", 604800), $period, "The time referer entries should be kept. Older entries will be automatically discarded. Requires crontab."); return $output; } function statistics_table_1($query) { $result = db_query($query); $output .= "\n"; $output .= " \n"; while ($referer = db_fetch_object($result)) { $output .= ""; } $output .= "
URLdate
url) ."\">". substr(check_output($referer->url), 0, 100) ."". format_date($referer->timestamp, "small") ."
\n"; return $output; } function statistics_table_2($query) { $result = db_query($query); $output .= "\n"; $output .= " \n"; while ($referer = db_fetch_object($result)) { $output .= ""; } $output .= "
URLnumber
url) ."\">". substr(check_output($referer->url), 0, 100) ."". check_output($referer->count) ."
\n"; return $output; } function statistics_referer_internal() { global $HTTP_HOST; $output .= "

Most recent internal referers

\n"; $output .= statistics_table_1("SELECT url, timestamp FROM referer WHERE url LIKE '%". check_input($HTTP_HOST) ."%' ORDER BY timestamp DESC LIMIT 15"); $output .= "

Internal referers of the last ". format_interval(variable_get("referer_clear", 604800)) ."

\n"; $output .= statistics_table_2("SELECT url, COUNT(url) AS count FROM referer WHERE url LIKE '%". check_input($HTTP_HOST) ."%' GROUP BY url ORDER BY count DESC"); return $output; } function statistics_referer_external() { global $HTTP_HOST; $output .= "

Most recent external referers

\n"; $output .= statistics_table_1("SELECT url, timestamp FROM referer WHERE url NOT LIKE '%". check_input($HTTP_HOST) ."%' ORDER BY timestamp DESC LIMIT 15"); $output .= "

External referers of the last ". format_interval(variable_get("referer_clear", 604800)) ."

\n"; $output .= statistics_table_2("SELECT url, COUNT(url) AS count FROM referer WHERE url NOT LIKE '%". check_input($HTTP_HOST) ."%' GROUP BY url ORDER BY count DESC"); return $output; } function statistics_admin() { global $type; if (user_access("administer statistics")) { print "internal referers | external referers
\n"; switch ($type) { case "internal referer": print statistics_referer_internal(); break; case "external referer": // fall through: default: print statistics_referer_external(); } } } ?>