You are here

function ad_weight_probability_cache_filter in Advertisement 6.2

Same name and namespace in other branches
  1. 5.2 weight/probability/ad_weight_probability.inc \ad_weight_probability_cache_filter()
  2. 6.3 weight/probability/ad_weight_probability.inc \ad_weight_probability_cache_filter()
  3. 7 weight/probability/ad_weight_probability.inc \ad_weight_probability_cache_filter()

@file A plug in for the ad.module, allowing an admin to set the probability that a given advertisement will be displayed.

Copyright (c) 2008-2009. Jeremy Andrews <jeremy@tag1consulting.com>.

1 string reference to 'ad_weight_probability_cache_filter'
ad_weight_probability_ad_build_cache in weight/probability/ad_weight_probability.module
Implementation of hook_ad_build_cache().

File

weight/probability/ad_weight_probability.inc, line 12
A plug in for the ad.module, allowing an admin to set the probability that a given advertisement will be displayed.

Code

function ad_weight_probability_cache_filter($ads) {
  $display = array();
  if (is_array($ads)) {
    $probability = array();
    $cache = adserve_cache('get_cache', 'weight');
    foreach ($ads as $aid) {
      $probability[] = isset($cache['probability'][$aid]) ? $cache['probability'][$aid] : 0;
    }
    $gcd = ad_weight_probability_gcd($probability);
    _debug_echo("ad_weight_probability cache_filter gcd({$gcd})");
    foreach ($ads as $aid) {
      $weight = isset($cache['probability'][$aid]) && $gcd ? $cache['probability'][$aid] / $gcd : 0;
      _debug_echo("ad_weight_probability cache_filter aid({$aid}) weight({$weight})");
      for ($i = 1; $i <= $weight; $i++) {
        $display[] = $aid;
      }
    }
  }
  return $display;
}