You are here

function click_filter_status in Advertisement 5.2

Same name and namespace in other branches
  1. 5 statistics/click_filter/click_filter.module \click_filter_status()
  2. 6.3 statistics/click_filter/click_filter.module \click_filter_status()
  3. 6 statistics/click_filter/click_filter.module \click_filter_status()
  4. 6.2 statistics/click_filter/click_filter.module \click_filter_status()
  5. 7 statistics/click_filter/click_filter.module \click_filter_status()

Perform on-the-fly click filtering.

1 call to click_filter_status()
ad_redirect in ./ad.module
Update click counter then redirect host to ad's target URL.
1 string reference to 'click_filter_status'
ad_redirect in ./ad.module
Update click counter then redirect host to ad's target URL.

File

statistics/click_filter/click_filter.module, line 58
Filter duplicate and other unwanted clicks from ad statistics.

Code

function click_filter_status($aid, $hostid) {
  global $user;
  if (user_access('filter clicks')) {
    return CLICK_FILTER_ROLE;
  }
  if (preg_match("/bot/i", $_SERVER['HTTP_USER_AGENT'])) {
    return CLICK_BOT;
  }

  // See if the click came from an owner of the ad.
  $result = db_query('SELECT oid FROM {ad_owners} WHERE aid = %d AND uid = %d', $aid, $user->uid);
  if (db_num_rows($result)) {
    return CLICK_OWNER;
  }

  // See if the click came from a duplicate uid or ip address.
  if ($user->uid) {
    $result = db_query("SELECT cid FROM {ad_clicks} WHERE aid = %d AND status = %d AND (uid = %d OR hostname = '%s')", $aid, CLICK_VALID, $user->uid, $_SERVER['REMOTE_ADDR']);
  }
  else {
    $result = db_query("SELECT cid FROM {ad_clicks} WHERE aid = %d AND status = %d AND hostname = '%s'", $aid, CLICK_VALID, $_SERVER['REMOTE_ADDR']);
  }
  if (db_num_rows($result)) {
    return CLICK_DUPLICATE;
  }
  return CLICK_VALID;
}