get_results("SELECT * FROM `" . counterize_agentsTable() . "`"); foreach ($agents as $agent) { list( $browser_name, $browser_code, $browser_ver, $browser_url, $os_name, $os_code, $os_ver, $os_url, $pda_name, $pda_code, $pda_ver, $pda_url ) = counterize_detect_browser($agent->name); $query = "update " . counterize_agentsTable() . " SET " . " browserName = '" . $wpdb->escape($browser_name) . "', " . " browserCode = '" . $wpdb->escape($browser_code) . "', " . " browserVersion = '" . $wpdb->escape($browser_ver) . "', " . " browserURL = '" . $wpdb->escape($browser_url) . "', " . " osName = '" . $wpdb->escape($os_name) . "', " . " osCode = '" . $wpdb->escape($os_code) . "', " . " osVersion = '" . $wpdb->escape($os_ver) . "', " . " osURL = '" . $wpdb->escape($os_url) . "' " . "WHERE agentID=" . $agent->agentID; $wpdb->query($query); } } # get the major release number of the installed mysql-version function mysqlMajorRelease() { $version = explode(".",mysql_get_client_info()); return $version[0]; } # Returns how many entries there are in the DB. function counterize_getamount($only_this_month = false) { global $wpdb; $sql = 'SELECT COUNT(1) FROM ' . counterize_logTable(); if($only_this_month) { $sql .= " WHERE timestamp >= '" . date("Y-m-01") . "'"; } return $wpdb->get_var($sql); } function counterize_getkeywordamount() { global $wpdb; $sql = "SELECT SUM(count) FROM " . counterize_keywordTable() . " WHERE keywordID <> 1"; return $wpdb->get_var($sql); } # Return how many unique entries there are in the DB. function counterize_getuniqueamount() { global $wpdb; $sql = 'SELECT COUNT(DISTINCT IP) FROM ' . counterize_logTable(); return $wpdb->get_var($sql); } // deletes a entry from the database function counterize_killEntry($entryID) { global $wpdb; $entries = counterize_getentries(1, $entryID); foreach($entries as $entry) { $sql = "DELETE FROM " . counterize_logTable() . " WHERE ID={$entry->id}"; $num = $wpdb->query($sql); $sql = "UPDATE ".counterize_pageTable() . " SET count = count - 1 WHERE pageID={$entry->pageID}"; $num = $wpdb->query($sql); $sql = "UPDATE ".counterize_refererTable() . " SET count = count - 1 WHERE refererID={$entry->refererID}"; $num = $wpdb->query($sql); $sql = "UPDATE ".counterize_agentsTable() . " SET count = count - 1 WHERE agentID={$entry->agentID}"; $num = $wpdb->query($sql); $sql = "UPDATE ".counterize_keywordTable() . " SET count = count - 1 WHERE keywordID={$entry->keywordID}"; $num = $wpdb->query($sql); } } // flushes the db - be careful function counterize_flush() { global $wpdb; $sql = 'DELETE FROM ' . counterize_logTable(); $num = $wpdb->query($sql); $sql = 'DELETE FROM ' . counterize_pageTable(); $num = $wpdb->query($sql); $sql = 'DELETE FROM ' . counterize_agentsTable(); $num = $wpdb->query($sql); $sql = 'DELETE FROM ' . counterize_refererTable(); $num = $wpdb->query($sql); $sql = 'DELETE FROM ' . counterize_keywordTable(); $num = $wpdb->query($sql); } // Returns amount of hits today. function counterize_gethitstoday() { global $wpdb; $today = date("Y-m-d"); $sql = "SELECT COUNT(1) FROM " . counterize_logTable() . " WHERE timestamp >= '{$today}'"; return $wpdb->get_var($sql); } // Returns amount of hits during the last 7 days. function counterize_getlatest7days() { global $wpdb; $sevendaysago = date("Y-m-d", time() - 86400 * 7); $sql = "SELECT COUNT(1) FROM " . counterize_logTable() . " WHERE timestamp >= '{$sevendaysago}'"; return $wpdb->get_var($sql); } // From Curtis(http://www.graymattersonline.net/) // Returns amount of unique IP's in the last 7 days function counterize_getuniquelatest7days() { global $wpdb; $sevendaysago = date("Y-m-d", time() - 86400 * 7); $sql = "SELECT COUNT(DISTINCT IP) FROM " . counterize_logTable() . " WHERE timestamp >= '{$sevendaysago}'"; return $wpdb->get_var($sql); } function counterize_get_online_users() { global $wpdb; $timestamp = gmdate("Y-m-d H:i:s",time() + (get_option('gmt_offset') * 60 * 60 )); $sql = "SELECT COUNT(DISTINCT IP) FROM " . counterize_logTable() . " WHERE timestamp > DATE_SUB('{$timestamp}', INTERVAL 5 MINUTE)"; return $wpdb->get_var($sql); } // Returns amount of unique referer-URl's function counterize_getuniquereferers() { global $wpdb; $sql = 'SELECT COUNT(DISTINCT refererID) FROM ' . counterize_logTable(); return $wpdb->get_var($sql); } // Returns amount of unique browser-strings in DB. function counterize_getuniquebrowsers() { global $wpdb; $sql = 'SELECT COUNT(1) FROM '. counterize_agentsTable(); return $wpdb->get_var($sql); } // Returns amount on current article function counterize_getHitsOnCurrentArticle() { global $wpdb; if ($_SERVER['REQUEST_URI']){ $requesturl = $wpdb->escape($_SERVER['REQUEST_URI']); $sql = "SELECT Count FROM " . counterize_pageTable() . " WHERE url = '{$requesturl}'"; return $wpdb->get_var($sql); } return 0; } // Returns amount of unique URl's function counterize_getuniqueurl() { global $wpdb; $sql = 'SELECT COUNT(1) FROM ' . counterize_refererTable(); return $wpdb->get_var($sql); } function counterize_return_first_hit($dateformat = "j/n-Y") { global $wpdb; $sql = "SELECT MIN(timestamp) FROM " . counterize_logTable(); $t = $wpdb->get_var($sql); return date($dateformat, strtotime($t)); } // show the most visited pages function counterize_most_visited_pages($number = 10, $width = 300) { global $wpdb; $number = $wpdb->escape($number); $sql = "SELECT count AS amount , url AS url, url AS label, url AS label2 FROM " . counterize_pageTable() . " ORDER BY amount DESC LIMIT {$number}"; $rows = $wpdb->get_results($sql); counterize_renderstats_vertical($rows, __('Page', 'counterize'), $width, false); } function counterize_most_visited_pages24hrs($number = 10, $width = 300) { global $wpdb; $onedayago = date("Y-m-d", time() - 86400); $sql = "SELECT count AS amount, p.url AS url, p.url AS label, p.url AS label2 " . " FROM " . counterize_logTable() . " m, " . counterize_pageTable() . " p " . " WHERE m.pageID = p.pageID AND " . " m.timestamp >= '{$onedayago}'" . " GROUP BY p.url " . " ORDER BY count DESC LIMIT {$number}"; $rows = $wpdb->get_results($sql); counterize_renderstats_vertical($rows, __('Referer', 'counterize'), $width); } function counterize_most_visited_referrers24hrs($number = 10, $width = 300) { global $wpdb; $onedayago = date("Y-m-d", time() - 86400); $sql = "SELECT count AS amount, r.name AS label, r.name AS label2, r.name AS url " . " FROM " . counterize_logTable() . " m, ". counterize_refererTable() . " r " . " WHERE m.refererID = r.refererID AND " . " r.name 'unknown' AND " . " r.name NOT LIKE '" . $wpdb->escape(get_option("home")) . "%%' " . " AND r.name NOT LIKE '" . $wpdb->escape(get_option("siteurl")) . "%%' " . " AND m.timestamp >= '{$onedayago}'" . " GROUP BY r.name " . " ORDER BY count DESC LIMIT {$number}"; $rows = $wpdb->get_results($sql); counterize_renderstats_vertical($rows, __('Referer', 'counterize'), $width); } // New in 0.53 function counterize_most_visited_referrers($number = 10, $width = 300) { global $wpdb; $sql = "SELECT count AS amount, name AS label, name AS label2, name AS url FROM ".counterize_refererTable()." WHERE " . " name <> 'unknown' AND " . " name NOT LIKE '" . $wpdb->escape(get_option("home")) . "%%' " . " AND name NOT LIKE '" . $wpdb->escape(get_option("siteurl")) . "%%' " . " ORDER BY count DESC LIMIT {$number}"; $rows = $wpdb->get_results($sql); counterize_renderstats_vertical($rows, __('Referer', 'counterize'), $width); } function counterize_most_searched_keywords($number = 10, $width = 300) { global $wpdb; $number = $wpdb->escape($number); $sql = "SELECT count AS amount, keyword AS label, keyword AS label2 FROM " . counterize_keywordTable() ." WHERE keywordID <> 1 GROUP BY keyword ORDER BY count DESC LIMIT {$number}"; $rows = $wpdb->get_results($sql); counterize_renderstats_vertical($rows, __('Keyword', 'counterize'), $width); } function counterize_most_searched_keywords_today($number = 10, $width = 300) { global $wpdb; $today = date("Y-m-d"); $number = $wpdb->escape($number); $sql = "SELECT COUNT(1) AS amount, k.keyword AS label, k.keyword AS label2 FROM " . counterize_keywordTable() . " k " . ", " . counterize_logTable() . " l, " . counterize_refererTable() . " r " . " WHERE r.refererID = l.refererID AND r.keywordID = k.keywordID " . " AND k.keywordID <> 1 AND l.timestamp >= '{$today}' GROUP BY k.keyword ORDER BY amount DESC LIMIT {$number}"; $rows = $wpdb->get_results($sql); counterize_renderstats_vertical($rows, __('Keyword','counterize'), $width); } function counterize_most_used_browsers_without_version($number = 10, $width = 300) { global $wpdb; $number = $wpdb->escape($number); $sql = "SELECT SUM(count) AS amount, browserName AS label, browserName AS label2, browserCode, browserURL AS url FROM " . counterize_agentsTable() . " GROUP BY label " . " ORDER BY amount DESC LIMIT $number"; $rows = $wpdb->get_results($sql); reset($rows); while (list($i, $r) = each($rows)) { $row =& $rows[$i]; if($row->label == " " || $row->label == "") { $row->label = __("unknown", "counterize"); } else { $row->label = counterize_get_image_url ($row->browserCode, $row->label, $row->url) . " " . $row->label; } } counterize_renderstats_vertical($rows, __('UserAgent','counterize'), $width, true, "100%", false); } function counterize_most_used_browsers($number = 10, $width = 300) { global $wpdb; $number = $wpdb->escape($number); $sql = "SELECT SUM(count) AS amount, CONCAT(CONCAT(browserName,' '),browserVersion) AS label, CONCAT(CONCAT(browserName,' '),browserVersion) AS label2, browserCode, browserURL AS url FROM " . counterize_agentsTable() . " GROUP BY label " . " ORDER BY amount DESC LIMIT {$number}"; $rows = $wpdb->get_results($sql); reset($rows); while (list($i, $r) = each($rows)) { $row =& $rows[$i]; if($row->label == " " || $row->label == "") { $row->label = __("unknown", "counterize"); } else { $row->label = counterize_get_image_url ($row->browserCode, $row->label, $row->url) . " " . $row->label; } } counterize_renderstats_vertical($rows, __('UserAgent','counterize'), $width, true, "100%", false); } function counterize_most_used_os($number = 10, $width = 300) { global $wpdb; $number = $wpdb->escape($number); $sql = "SELECT SUM(count) AS amount, CONCAT(CONCAT(osName,' '),osVersion) AS label, CONCAT(CONCAT(osName,' '),osVersion) AS label2, osCode, osURL AS url FROM " . counterize_agentsTable() . " GROUP BY label " . " ORDER BY amount DESC LIMIT $number"; $rows = $wpdb->get_results($sql); reset($rows); while (list($i, $r) = each($rows)) { $row =& $rows[$i]; if($row->label == " " || $row->label == "") { $row->label = __("unknown","counterize"); } else { $row->label = counterize_get_image_url ($row->osCode, $row->label, $row->url) . " " . $row->label; } } counterize_renderstats_vertical($rows, __('Operating System','counterize'), $width, true, "100%", false); } function counterize_getdailystats($only_this_month = false) { global $wpdb; $sql = "SELECT DAYOFMONTH(timestamp) AS label, DAYOFMONTH(timestamp) AS label2, COUNT(1) AS amount FROM " . counterize_logTable(); if($only_this_month) { $sql .= " WHERE timestamp >= '" . date("Y-m-01") . "'"; } $sql .= " GROUP BY label"; return $wpdb->get_results($sql); } function counterize_getmonthlystats() { global $wpdb; $sql = "SELECT CONCAT(CONCAT(SUBSTRING(monthname(timestamp),1,3),' '),SUBSTRING(YEAR(timestamp),3,2)) AS label, CONCAT(CONCAT(SUBSTRING(monthname(timestamp),1,3),' '),SUBSTRING(YEAR(timestamp),3,2)) AS label2, COUNT(1) AS amount, MONTH(timestamp) AS m, YEAR(timestamp) AS y FROM " . counterize_logTable() . " GROUP BY label order by y,m"; return $wpdb->get_results($sql); } function counterize_getweeklystats() { global $wpdb; $sql = "SELECT DAYNAME(timestamp) AS label, DAYNAME(timestamp) AS label2, COUNT(1) AS amount, DAYOFWEEK(timestamp) AS day FROM " . counterize_logTable() . " GROUP BY label order by day"; return $wpdb->get_results($sql); } // This is function is still not done - needs more work... function counterize_gethourlystats($hour = "undef", $type = both) { global $wpdb; $sql = "SELECT HOUR(timestamp) AS label, HOUR(timestamp) AS label2, COUNT(1) AS amount FROM " . counterize_logTable(); $sql .= " GROUP BY label"; return $wpdb->get_results($sql); } function counterize_ref_analyzer($referer) { $domain = explode('/', $referer); $source = array( array('google','q'), array('alltheweb','query'), array('altavista','q'), array('aol','query'), array('excite','search'), array('hotbot','query'), array('lycos','query'), array('yahoo','p'), array('live','q'), array('t-online','q'), array('msn','q'), array('netscape','search') ); $keyword = ""; for($i=0; $i str_replace('www.', '', $domain[2]), 'keyword' => strtolower($keyword)); } // Returns amount of unique hits today function counterize_getuniquehitstoday() { global $wpdb; $today = date("Y-m-d"); $sql = "SELECT COUNT(DISTINCT ip) FROM ".counterize_logTable()." WHERE timestamp >= '$today'"; return $wpdb->get_var($sql); } // Fetch information matching ID in DB. function counterize_getentries($amount = 50, $entryID = null) { global $wpdb; $sql = 'SELECT id, ip, timestamp, p.url AS url, r.name AS referer, ua.name AS useragent, '; $sql .= 'm.refererID, m.agentID, m.pageID, k.keyword, k.keywordID '; $sql .= "FROM ". counterize_logTable() . " m, " . counterize_pageTable() . " p, " . counterize_agentsTable() . " ua, " . counterize_refererTable() . " r, " . counterize_keywordTable() . " k "; $sql .= "WHERE m.pageID = p.pageID AND m.agentID = ua.agentID AND m.refererID = r.refererID "; $sql .= " AND k.keywordID = r.keywordID AND "; if($_GET["urifilter"]) { $sql .= " p.url = '" . $wpdb->escape($_GET["urifilter"]) . "' AND "; } if($_GET["refererfilter"]) { $sql .= " r.name = '" . $wpdb->escape($_GET["refererfilter"]) . "' AND "; } if($_GET["agentfilter"]) { $sql .= " ua.name = '" . $wpdb->escape($_GET["agentfilter"]) . "' AND "; } if(isset($entryID)) { $sql .= " m.id = " . $wpdb->escape($entryID) . " AND "; } $sql .= ' 1 = 1 ORDER BY m.timestamp DESC'; if ($amount == "") { $sql .= " LIMIT 50"; } else if ($amount != 0 AND is_numeric($amount)) { $sql .= " LIMIT $amount"; } return $wpdb->get_results($sql); } // Append information to DB function counterize_add() { global $wpdb; global $user_ID; // Set to unknown, if we're unable to extract information below. $referer = $remoteaddr = $useragent = $requesturl = 'unknown'; if ($_SERVER['REMOTE_ADDR']) { $remoteaddr = $_SERVER['REMOTE_ADDR']; } if ($_SERVER['HTTP_USER_AGENT']) { $useragent = $_SERVER['HTTP_USER_AGENT']; } if ($_SERVER['REQUEST_URI']) { $requesturl = $_SERVER['REQUEST_URI']; } if ($_SERVER['HTTP_REFERER']) { $referer = $_SERVER['HTTP_REFERER']; } $this_url = "http://" . $_SERVER['HTTP_HOST'] . $requesturl; // Check to see if we really want to insert the entry... $checkval = 0; // // Bots detected and excluded // // To add an entry to the array, simply create line looking like this: // $botarray[] = ""; $botarray[] = "bot"; $botarray[] = "Yahoo! Slurp"; $botarray[] = "slurpy"; $botarray[] = "agent 007"; $botarray[] = "ichiro"; $botarray[] = "ia_archiver"; $botarray[] = "zyborg"; $botarray[] = "linkwalker"; $botarray[] = "crawl"; $botarray[] = "python"; $botarray[] = "perl"; $botarray[] = "w3c_validator"; $botarray[] = "Microsoft URL Control"; $botarray[] = "almaden"; $botarray[] = "topicspy"; $botarray[] = "poodle predictor"; $botarray[] = "link checker pro"; $botarray[] = "xenu link sleuth"; $botarray[] = "iconsurf"; $botarray[] = "zoe indexer"; $botarray[] = "grub-client"; $botarray[] = "spider"; $botarray[] = "pompos"; $botarray[] = "Mediapartners"; $botarray[] = "virus_detector"; $botarray[] = "Nuhk"; $botarray[] = "findlinks"; $botarray[] = "larbin"; $botarray[] = "Sphere Scout"; $botarray[] = "Ask Jeeves"; $botarray[] = "Yahoo-Blogs"; $botarray[] = "Yandex"; $botarray[] = "Pagebull"; $botarray[] = "HTTrack"; $botarray[] = "OffByOne"; $botarray[] = "PrintSmart"; $botarray[] = "Getleft"; $botarray[] = "Indy Library"; $botarray[] = "DE Slurp"; $botarray[] = "compatible; ICS"; $botarray[] = "Powermarks"; $botarray[] = "C-CCK-MCD"; $botarray[] = "depspid"; $botarray[] = "Twingly Recon"; $botarray[] = "Netcraft"; $botarray[] = "Check&Get"; $botarray[] = "relevantnoise"; $botarray[] = "LiteFinder"; $botarray[] = "Gigamega"; $botarray[] = "Wget"; $botarray[] = "Java/1.5"; $botarray[] = "publisher.yahoo.com/rssguide"; $botarray[] = "picmole"; $botarray[] = "facebookexternalhit"; $botarray[] = "bnd"; $botarray[] = "noop"; $botarray[] = "ucak bileeti"; $botarray[] = "proxy.brigar.ru"; $botarray[] = "Voyager/1.0"; $botarray[] = "Evrinid"; $botarray[] = "cmsworldmap.com"; $botarray[] = "metauri.com"; $botarray[] = "binlar"; $botarray[] = "postrank.com"; $botarray[] = "Java/1.6.0"; $botarray[] = "Java/1.4.1"; $botarray[] = "Mozilla/4.0 (compatible;)"; $botarray[] = "Butterfly/1.0"; $botarray[] = "RPT-HTTPClient"; $botarray[] = "unknown"; // // Run through bot-array and see if there's anything we don't like... foreach ($botarray as $entry) { if (stristr($useragent, $entry)) { $checkval = 1; } } // From SHRIKEE, don't count RSS and other stuff... // Exclude files from being counted if ($checkval == 0) { // Exclude if referer is the same as url if ($this_url==$referer ) { $checkval = 1; } // Exclude RSS feeds (Both with and without permalinks) // Stating just feed would make it impossible to name a page or post 'feed' /* if (stristr($requesturl, "feed/")) $checkval = 1; if (stristr($requesturl, "feed=")) $checkval = 1; */ // Exclude files which annoying browsers like safari and opera request on each page if (stristr($requesturl, "robots.txt")) { $checkval = 1; } elseif (stristr($requesturl, "favicon.ico")) { $checkval = 1; } // Exclude any admin or core files elseif (stristr($requesturl, "wp-includes/")) { $checkval = 1; } elseif (stristr($requesturl, "wp-admin/")) { $checkval = 1; } elseif (stristr($requesturl, "wp-content/")) { $checkval = 1; } } // more extensions? elseif (stristr($requesturl, ".jpg")) { $checkval = 1; } elseif (stristr($requesturl, ".bmp")) { $checkval = 1; } elseif (stristr($requesturl, ".png")) { $checkval = 1; } elseif (stristr($requesturl, ".gif")) { $checkval = 1; } // If not found anything unwanted yet, check to see if it's on the excludelist... if ($checkval == 0) { $tmp = get_option('counterize_excluded'); $excludelist = preg_replace('/\s\s+/', ' ', $tmp); $tmp_array = explode(" ", $excludelist); $count = count($tmp_array); if ($excludelist != "" && $excludelist != " ") { for ($i=0; $i<$count; $i++) { if (strpos($remoteaddr, $tmp_array[$i]) === FALSE) { // Coming up... } else { // IP found on exclude-list - we don't want it! $checkval = 1; } } } } // DISABLED: This functionality is replaced with the admin functionality // to enable/disable counting of certain users... // // let's check it is a logged in user. // If he's logged in, we don't count him. if ($checkval == 0) { $excluded_users = explode(",", get_option('counterize_excluded_users')); get_currentuserinfo(); $tmp = count($excluded_users); if($user_ID != "" && $user_ID != " " && in_array($user_ID, $excluded_users)) { $checkval = 1; } } // If checkval is still 0, then yes - we want to insert it... if ($checkval == 0) { // Replace %20's(spaces) in strings with a white-space // Man, someone should create a better checking-module... *sigh* $requesturl = str_replace("%20", " ", $requesturl); $referer = str_replace("%20", " ", $referer); $timestamp = gmdate("Y-m-d H:i:s", time() + ( get_option('gmt_offset') * 60 * 60 )); $agentID = counterize_getUserAgentID($useragent); $pageID = counterize_getPageID($requesturl); $refererID = counterize_getRefererID($referer); $keywordID = counterize_getKeywordID($referer); $sql = "INSERT INTO " . counterize_logTable() . " (IP, timestamp, pageID, refererID, agentID) VALUES ("; $sql .= "'" . substr( md5($wpdb->escape( $remoteaddr ) ), 1, 16) . "',"; $sql .= "'" . $timestamp . "', '"; $sql .= $pageID . "', '"; $sql .= $refererID . "', '"; $sql .= $agentID . "')"; $results = $wpdb->query($sql); counterize_AddUserAgentVisit($agentID); counterize_AddPageVisit($pageID); counterize_AddRefererVisit($refererID); counterize_AddKeywordVisit($keywordID); } } // gives the useragentID back function counterize_getUserAgentID($useragent) { global $wpdb; $sql = "SELECT COUNT(agentID) FROM " . counterize_agentsTable() . " WHERE name = '" . $wpdb->escape($useragent) . "'"; if(!$wpdb->get_var($sql)) { // create new agent list( $browser_name, $browser_code, $browser_ver, $browser_url, $os_name, $os_code, $os_ver, $browser_url, $pda_name, $pda_code, $pda_ver, $pda_url ) = counterize_detect_browser($useragent); $sql = "INSERT INTO " . counterize_agentsTable() . " (name,count,browserName,browserCode,browserVersion,browserURL,osName,osCode,osVersion,osURL) VALUES ("; $sql .= "'" . $wpdb->escape($useragent) . "',0,'" . $wpdb->escape($browser_name) . "','" . $wpdb->escape($browser_code) . "','" . $wpdb->escape($browser_ver) . "','" . $wpdb->escape($browser_url) . "','".$wpdb->escape($os_name) . "','" . $wpdb->escape($os_code) . "','" . $wpdb->escape($os_ver) . "','" . $wpdb->escape($os_url) . "')"; $wpdb->query($sql); } $sql = "SELECT agentID FROM ".counterize_agentsTable()." WHERE name = '".$wpdb->escape($useragent)."'"; return $wpdb->get_var($sql); } function counterize_AddUserAgentVisit($agentID) { global $wpdb; if(is_numeric($agentID)) { $sql = "update " . counterize_agentsTable() . " SET count = count + 1 WHERE agentID = {$agentID}"; $wpdb->query($sql); } } function counterize_AddKeywordVisit($keywordID) { global $wpdb; if(is_numeric($keywordID)){ $sql = "update " . counterize_keywordTable() . " SET count = count + 1 WHERE keywordID = {$keywordID}"; $wpdb->query($sql); } } // gives the pageID back function counterize_getPageID($url) { global $wpdb; global $post; $sql = "SELECT pageID FROM " . counterize_pageTable() . " WHERE url = '" . $wpdb->escape($url) . "'"; $pageID = $wpdb->get_var($sql); if(!$pageID) { // create new page $post_id = is_single() || $post->post_type == 'page'? $post->ID: 'NULL'; $sql = "INSERT INTO " . counterize_pageTable() . " (url,count,postID) VALUES ('" . $wpdb->escape($url) . "',0," . $post_id . ")"; $wpdb->query($sql); return $wpdb->insert_id; } return $pageID; } function counterize_AddPageVisit($pageID) { global $wpdb; if(is_numeric($pageID)) { $sql = "update " . counterize_pageTable() . " SET count = count + 1 WHERE pageID = {$pageID}"; $wpdb->query($sql); } } // gives the keywordID back function counterize_getKeywordID($referer) { global $wpdb; $ref = counterize_ref_analyzer($referer); $sql = "SELECT keywordID FROM " . counterize_keywordTable() . " WHERE keyword = '" . $wpdb->escape($ref['keyword']) . "'"; $keywordID = $wpdb->get_var($sql); if(!$keywordID) { // create new keyword $sql = "INSERT INTO " . counterize_keywordTable() . " (keyword,count) VALUES ('" . $wpdb->escape($ref['keyword']) . "',0)"; $wpdb->query($sql); return $wpdb->insert_id; } return $keywordID; } // gives the refererID back function counterize_getRefererID($referer) { global $wpdb; $sql = "SELECT refererID FROM " . counterize_refererTable() . " WHERE name = '" . $wpdb->escape($referer) . "'"; $refererID = $wpdb->get_var($sql); if(!$refererID) { $keywordID = counterize_getKeywordID($referer); // create new referer $sql = "INSERT INTO ".counterize_refererTable()." (name,count,keywordID) VALUES ("; $sql .= "'" . $wpdb->escape($referer) . "',0,{$keywordID})"; $wpdb->query($sql); return $wpdb->insert_id; } return $refererID; } function counterize_AddRefererVisit($refererID) { global $wpdb; if(is_numeric($refererID)) { $sql = "update " . counterize_refererTable() . " SET count = count + 1 WHERE refererID = {$refererID}"; $wpdb->query($sql); } } function counterize_pagefooter() { ?>
Need help? Go to the Counterize II homepage and search inside the comments. Others may have had the same question or problem as you...', 'counterize'); ?>


Counterize II', 'counterize'); echo ' - ' . __('Version') . ' ' . get_option('counterize_MajorVersion') . "." . get_option('counterize_MinorVersion') . "." . get_option('counterize_Revision'); ?>

amount; if($row->amount > $max) { $max = $row->amount; } } ?> amount / $complete_amount * 100, 2); if($row->amount) { $width = round($row->amount * $max_width / $max); } else { $width = 0; } $group = round($width / $max_width * 100); ?> >
label) > $max_label && $shorten == true) { $label = substr($row->label,0,$max_label) . '...'; } else { $label = $row->label; } if($row->url) { echo "\n\t\t\t\t\t\t\turl . "\""; if($nofollow) { echo " rel=\"nofollow\""; } echo ">\n\t\t\t\t\t\t\t\t" . $label . "\n\t\t\t\t\t\t\t\n"; } else { echo $label; } ?> amount; ?> " style="height:8px; width:px; vertical-align:bottom" alt="label2) . ' - ' . $row->amount . ' - ' . $percent . ' %'; ?>" /> %
amount; if($row->amount > $max) { $max = $row->amount; } } foreach($rows as $row) { $percent = round($row->amount / $complete_amount * 100,2); if($row->amount) { $height = round($row->amount * $max_height / $max); } else { $height = 0; } $group = round($height / $max_height * 100); echo ""; $i++; } ?> {$row->label}"; $i++; } ?>
"; echo $row->amount; ?>
" style="width:8px; height:px; vertical-align:bottom" alt="Statistics" /> {$percent}
%



>
id; ?> timestamp; ?> url . "\">" . wordwrap($entry->url, 30, "\n", 1); ?> (F) referer != "unknown") { echo "referer . "\">" . wordwrap($entry->referer, 30, "\n", 1) . ""; ?> (F) referer, 30, "\n", 1); } ?> useragent , true, '
'); ?>
keyword; ?> X
" onClick="checkAll(document.tablesForm)" /> " onClick="uncheckAll(document.tablesForm)" /> " />

"; _e($text, 'counterize'); echo "

"; } function counterize_showStats($admin = false) { if(!counterize_getamount()) { _e("There's no data in the database - You can't see stats until you have data.", 'counterize'); return; } ?>

$val) { counterize_killEntry($val); $updateText .= __('Entry: '.$val.' removed
','counterize'); } counterize_updateText($updateText); } } } // For the zap-an-entry-option if (isset($_GET['kill'])) { counterize_killEntry($_GET['kill']); counterize_updateText(__("Deleting entry ", "counterize") . $_GET['kill']); } counterize_showStats(true); counterize_show_history(); counterize_pagefooter(); } function counterize_filter($data) { $pattern = '/\<\!\-\-\s*counterize_stats\s*\-\-\>/'; while(preg_match($pattern, $data, $matches)) { ob_start(); counterize_showStats(); counterize_copyright(); $content = ob_get_contents(); ob_end_clean(); $replace_pattern = $pattern; $data = preg_replace($replace_pattern, $content, $data); } return $data; } include("counterize_admin.php"); include("counterize_dashboard.php"); function counterize_add_pages() { // Set it up... - add to Dashboard and options-page. add_action('activity_box_end', 'counterize_dashboard'); add_submenu_page('edit.php',__('Counterize II','counterize'), __('Counterize II','counterize'), 8, __FILE__, 'counterize_manage_page'); add_options_page(__('Counterize II Options','counterize'), __('Counterize II','counterize'), 8, basename(__FILE__), 'counterize_options_page'); } add_action('admin_menu', 'counterize_add_pages'); // Create API hook instead of placing code in the header.php-file add_action('wp_head', 'counterize_add', 1); add_filter('the_content', 'counterize_filter'); ?>