Mercurial > defr > drupal > ad
diff imageserve.inc @ 0:d8a3998dac8e ad
ajout module ad
author | pierre |
---|---|
date | Fri, 20 Feb 2009 14:04:09 +0000 |
parents | |
children | e5584a19768b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imageserve.inc Fri Feb 20 14:04:09 2009 +0000 @@ -0,0 +1,61 @@ +<?php +// $Id: imageserve.inc,v 1.1.2.8.2.2 2009/02/16 17:06:47 jeremy Exp $ + +/** + * @file + * Image serving lib. + * + * Copyright (c) 2008-2009. + * Jeremy Andrews <jeremy@tag1consulting.com>. + */ + +/** + * Generate a tiny image with GD, used to count when an ad has been displayed + * on a cached page. + */ +function adserve_counter_image() { + adserve_variable('variable_load'); + adserve_bootstrap(0); + + $ad->aid = adserve_variable('aid'); + if ($ad->aid) { + adserve_increment($ad); + } + else { + adserve_increment($ad, 'count'); + } + + if (function_exists('imagecreate')) { + $image = imagecreate(1, 1); + // Tell the web browser not to cache this image so we register a count each + // time the page is viewed. + // Expires in the past: + header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); + // Last loud: + header('Last-Modified: '. gmdate('D, d M Y H:i:s') .' GMT'); + // HTTP 1.1: + header('Cache-Control: no-store, no-cache, must-revalidate'); + header('Cache-Control: post-check=0, pre-check=0', FALSE); + // HTTP 1.0: + header('Pragma: no-cache'); + } + else { + // GD not installed, report error and exit. + exit(); + } + + if (function_exists('imagejpeg')) { + header("Content-type: image/jpeg"); + imagejpeg($image); + } + else if (function_exists('imagepng')) { + header("Content-type: image/png"); + imagepng($image); + } + else if (function_exists('imagegif')) { + header("Content-type: image/gif"); + imagegif($image); + } + imagedestroy($image); + exit(0); +}