function crosssell_display_advert($this_site, $email = '', $name = '', $postcode = '', $adverts = array()) { # Always try and display a HearFromYourCouncillor Cheltenham advert if possible if ($this_site != 'hfyc') { if ($ad = crosssell_display_hfyc_cheltenham_advert($email, $name, $postcode)) { return $ad; } } # If we've been sent an array of adverts, pick one at random to display while (count($adverts)) { $keys = array_keys($adverts); $rand = rand(0, count($adverts) - 1); $rand = $keys[$rand]; list($advert_id, $advert_text) = $adverts[$rand]; $advert_site = preg_replace('#\\d+$#', '', $advert_id); if ($this_site == 'twfy' && $advert_site == 'twfy_alerts') { return 'other-twfy-alert-type'; } if (call_user_func('crosssell_display_random_' . $advert_site . '_advert', $email, $name, $postcode, $advert_text, $this_site)) { return $advert_id; } # Failed to show an advert for $advert_site, remove all other $advert_site adverts from the selection foreach ($adverts as $k => $advert) { if ($advert_site == preg_replace('#\\d+$#', '', $advert[0])) { unset($adverts[$k]); } } } if ($this_site != 'hfymp') { if (crosssell_display_hfymp_advert($email, $name, $postcode)) { return 'hfymp'; } } /* XXX Nothing using this fallback, and we currently want WTT fallback to be FMS if ($this_site != 'twfy') { if (crosssell_display_twfy_alerts_advert($this_site, $email, $postcode)) return 'twfy'; */ # } else { # return 'other-twfy-alert-type'; #} if ($this_site != 'fms') { # Always happens, as FMS uses Perl crosssell_display_fms_advert(); return 'fms'; } if ($this_site != 'pb') { crosssell_display_pb_advert(); return 'pb'; } return ''; }
function crosssell_display_advert($this_site, $email = '', $name = '', $postcode = '', $adverts = array()) { # Always try and display a HearFromYourCouncillor Cheltenham advert if possible if ($this_site != 'hfyc') { if ($ad = crosssell_display_hfyc_cheltenham_advert($email, $name, $postcode)) { return $ad; } } # If we've been sent an array of adverts, pick one at random to display while (count($adverts)) { $rand = rand(0, count($adverts) - 1); list($advert_site, $advert_text) = $adverts[$rand]; if ($this_site == 'twfy' && $advert_site == 'twfy_alerts') { return 'other-twfy-alert-type'; } if (call_user_func('crosssell_display_random_' . $advert_site . '_advert', $email, $name, $postcode, $advert_text, $this_site)) { return $advert_site . $rand; } # Failed to show an advert for $advert_site, remove all other $advert_site adverts from the selection $new_adverts = array(); foreach ($adverts as $advert) { if ($advert_site != $advert[0]) { $new_adverts[] = $advert; } } $adverts = $new_adverts; } if ($this_site != 'hfymp') { if (crosssell_display_hfymp_advert($email, $name, $postcode)) { return 'hfymp'; } } if ($this_site != 'twfy') { if (crosssell_display_twfy_alerts_advert($this_site, $email, $postcode)) { return 'twfy'; } } else { return 'other-twfy-alert-type'; } if ($this_site != 'pb') { crosssell_display_pb_advert(); return 'pb'; } return ''; }