From: Steve Sutton Date: Wed, 4 Sep 2013 14:26:03 +0000 (+0000) Subject: Update banner code X-Git-Tag: v1.0~56 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=22630ee7ea39bb97862baa314d244b1405c36d37;p=web%2FMichiganTrailMaps.git Update banner code Taken from demo update to banners to work with both Side and Bottom banners. --- diff --git a/Toolkit/Banners/Banner.php b/Toolkit/Banners/Banner.php index c4117ea..bef0010 100644 --- a/Toolkit/Banners/Banner.php +++ b/Toolkit/Banners/Banner.php @@ -443,7 +443,7 @@ class Toolkit_Banners_Banner } // }}} - // {{ getEmbedcode + // {{{ getEmbedcode /** * Get if the banner has embed code * diff --git a/Toolkit/Banners/Database/tables/banners.sql b/Toolkit/Banners/Database/tables/banners.sql index 84c9fab..507ab5d 100644 --- a/Toolkit/Banners/Database/tables/banners.sql +++ b/Toolkit/Banners/Database/tables/banners.sql @@ -4,8 +4,7 @@ CREATE TABLE banners.banners (id SERIAL, active BOOLEAN NOT NULL DEFAULT FALSE, - embedcode BOOLEAN NOT NULL - DEFAULT FALSE, + embedcode BOOLEAN DEFAULT FALSE, business TEXT, campaign INTEGER NOT NULL REFERENCES banners.banner_campaigns (id) @@ -14,9 +13,9 @@ CREATE TABLE banners.banners description TEXT, external BOOLEAN NOT NULL DEFAULT FALSE, - image TEXT NOT NULL, + image TEXT, position TEXT NOT NULL, - url TEXT NOT NULL, + url TEXT, PRIMARY KEY (id)); GRANT ALL ON banners.banners_id_seq TO nobody; diff --git a/Toolkit/Banners/HorizontalDecorator.php b/Toolkit/Banners/HorizontalDecorator.php index 4d774a8..868a681 100644 --- a/Toolkit/Banners/HorizontalDecorator.php +++ b/Toolkit/Banners/HorizontalDecorator.php @@ -117,4 +117,3 @@ class Toolkit_Banners_HorizontalDecorator // }}} } -?> diff --git a/Toolkit/Banners/Impression.php b/Toolkit/Banners/Impression.php index a119042..bcaf7fd 100644 --- a/Toolkit/Banners/Impression.php +++ b/Toolkit/Banners/Impression.php @@ -97,4 +97,3 @@ class Toolkit_Banners_Impression extends Toolkit_Banners_ActionNode // }}} } -?> diff --git a/Toolkit/Banners/StaticBannersDecorator.php b/Toolkit/Banners/StaticBannersDecorator.php index cd61427..bb968d4 100644 --- a/Toolkit/Banners/StaticBannersDecorator.php +++ b/Toolkit/Banners/StaticBannersDecorator.php @@ -158,7 +158,8 @@ class Toolkit_Banners_StaticBannersDecorator implements IteratorAggregate PDO $pdo, Toolkit_Image_Server $is, Toolkit_Banners_Notifier $notifier, - $catid + $catid, + $type ) { if (!ctype_digit((string)$catid)) { throw new InvalidArgumentException( @@ -180,31 +181,31 @@ class Toolkit_Banners_StaticBannersDecorator implements IteratorAggregate $switchArrays = false; // if we haven't already made the available pool, do so now. - if ( !isset($_SESSION['banners']) - || !is_array($_SESSION['banners']['availablePool']) - || !is_array($_SESSION['banners']['usedPool']) + if ( !isset($_SESSION['banners' . $type]) + || !is_array($_SESSION['banners' . $type]['availablePool']) + || !is_array($_SESSION['banners' . $type]['usedPool']) ) { - $_SESSION['banners']['availablePool'] = array_keys($this->_decorators); - $_SESSION['banners']['usedPool'] = array(); + $_SESSION['banners' . $type]['availablePool'] = array_keys($this->_decorators); + $_SESSION['banners' . $type]['usedPool'] = array(); } else { $this->_checkPoolForExpiredDecorators( - $_SESSION['banners']['availablePool'] + $_SESSION['banners' . $type]['availablePool'] ); $this->_checkPoolForExpiredDecorators( - $_SESSION['banners']['usedPool'] + $_SESSION['banners' . $type]['usedPool'] ); // new banner is now available in the _decorators array. Make sure // this banner gets added into the availablePool array so it can be // displayed on the front end. - $availPoolCount = count($_SESSION['banners']['availablePool']); - $usedPoolCount = count($_SESSION['banners']['usedPool']); + $availPoolCount = count($_SESSION['banners' . $type]['availablePool']); + $usedPoolCount = count($_SESSION['banners' . $type]['usedPool']); if (count($this->_decorators) > ($availPoolCount + $usedPoolCount)) { foreach ($this->_decorators as $i => $j) { - if ( !in_array($i, $_SESSION['banners']['availablePool']) - && !in_array($i, $_SESSION['banners']['usedPool']) + if ( !in_array($i, $_SESSION['banners' . $type]['availablePool']) + && !in_array($i, $_SESSION['banners' . $type]['usedPool']) ) { - $_SESSION['banners']['availablePool'][$i] = $i; + $_SESSION['banners' . $type]['availablePool'][$i] = $i; } } } @@ -218,29 +219,29 @@ class Toolkit_Banners_StaticBannersDecorator implements IteratorAggregate // If there is only one decorator in the array, make sure // array_rand returns an array so we don't have an error // the usedPool array and set flag to switch arrays - $totAvail = count($_SESSION['banners']['availablePool']); + $totAvail = count($_SESSION['banners' . $type]['availablePool']); if ($totAvail < $numReq) { $numToFetch = $numReq - $totAvail; $rand = (array) array_rand( - $_SESSION['banners']['usedPool'], + $_SESSION['banners' . $type]['usedPool'], $numToFetch ); foreach ($rand as $i) { - $_SESSION['banners']['availablePool'][$i] = $i; - unset($_SESSION['banners']['usedPool'][$i]); + $_SESSION['banners' . $type]['availablePool'][$i] = $i; + unset($_SESSION['banners' . $type]['usedPool'][$i]); } $switchArrays = true; } // If there is only one decorator in the array, make sure // array_rand returns an array so we don't have an error - $rand = (array) array_rand($_SESSION['banners']['availablePool'], $numReq); + $rand = (array) array_rand($_SESSION['banners' . $type]['availablePool'], $numReq); foreach ($rand as $i) { // if we won't be switching the arrays, then mark the used banner // in the usedPool and remove it from the availablePool array. if (!$switchArrays) { - $_SESSION['banners']['usedPool'][$i] = $i; - unset($_SESSION['banners']['availablePool'][$i]); + $_SESSION['banners' . $type]['usedPool'][$i] = $i; + unset($_SESSION['banners' . $type]['availablePool'][$i]); } $banner = $this->_decorators[$i]->getBanner(); @@ -260,9 +261,9 @@ class Toolkit_Banners_StaticBannersDecorator implements IteratorAggregate // if we need to switch arrays, then we've exhausted the entire resource // of available banners and can starting reusing banners from the usedPool. if ($switchArrays) { - $used = $_SESSION['banners']['usedPool']; - $_SESSION['banners']['usedPool'] = $_SESSION['banners']['availablePool']; - $_SESSION['banners']['availablePool'] = $used; + $used = $_SESSION['banners' . $type]['usedPool']; + $_SESSION['banners' . $type]['usedPool'] = array(); + $_SESSION['banners' . $type]['availablePool'] = $used; } return "
$banners
"; diff --git a/Toolkit/Banners/config.ini b/Toolkit/Banners/config.ini index 0152cdb..9aa0748 100644 --- a/Toolkit/Banners/config.ini +++ b/Toolkit/Banners/config.ini @@ -3,7 +3,7 @@ applicationName = "Banners" ; Site has member database hasMemberDb = MEMBERS_DB -minYear = 2007 +minYear = 2013 ; When there are this many impressions remaining, ; we should send out an email notification. notifyAt = 5