| <?php |
| |
| require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/classes/membership/membershipImage.class.php"); |
| require_once($_SERVER['DOCUMENT_ROOT'] . "/membership/promo/impression.class.php"); |
| |
| function buildStrategic($array) { |
| $retVal = ""; |
| $mimg = new MemberImage(); |
| $mimg->setdebug(1); |
| |
| $strategicPreamble = '<div class="sideitem"><h6>Featured Member</h6><div style="text-align:center;">'; |
| $strategicPostamble = '</div></div>'; |
| |
| list($width, $height) = $mimg->getsmall_image($array['memberID']); |
| |
| //check for errors ( -1 in both means something bad happened getting the image details) |
| if ($width >= 1 && $height >= 1) { |
| $heightText = 'height="' . $height . '" '; |
| $retVal = $strategicPreamble . '<a href="/membership/showMember.php?member_id=' . $array['memberID'] . '" rel="nofollow">' . '<img width="120" ' . $heightText . ' src="/membership/scripts/get_image.php?size=small&id=' . $array['memberID'] . '"' . ' style="padding:5px;" alt="' . $array['memberName'] . '" title="' . $array['memberName'] . '"></a>' . $strategicPostamble . " |
| "; |
| } |
| |
| return $retVal; |
| } |
| |
| function buildStrategicFrontPage($array) { |
| $retVal = ""; |
| $mimg = new MemberImage(); |
| $strategicPreamble = '<div><div style="text-align:center;">'; |
| $strategicPostamble = '</div></div>'; |
| |
| list($width, $height) = $mimg->getsmall_image($array['memberID']); |
| |
| //check for errors ( -1 in both means something bad happened getting the image details) |
| if ($width >= 1 && $height >= 1) { |
| $heightText = 'height="' . $height . '" '; |
| $retVal = $strategicPreamble . '<a href="/membership/showMember.php?member_id=' . $array['memberID'] . '" rel="nofollow">' . '<img width="120" ' . $heightText . ' src="/membership/scripts/get_image.php?size=small&id=' . $array['memberID'] . '"' . ' style="padding:5px;" alt="' . $array['memberName'] . '" title="' . $array['memberName'] . '"></a>' . $strategicPostamble . " |
| "; |
| } |
| |
| return $retVal; |
| } |
| |
| function buildStrategicAd($array) { |
| $strat_ad_preamble = '<div style="text-align:center;padding-bottom:20px;">'; |
| $strat_ad_postamble = '</div>'; |
| $retVal = $strat_ad_preamble . '<a href="/go/' . $array['url'] . '" rel="nofollow"><img width="200" height="200" src="' . $array['imageurl'] . '" alt="' . $array['memberName'] . '" title="' . $array['memberName'] . '"/></a>' . $strat_ad_postamble; |
| return $retVal; |
| |
| } |
| |
| // Strategic Member Ads for Download Page only |
| function buildDownloadAd($array) { |
| ob_start(); ?> |
| <div style="text-align:center;"> |
| <a href="/go/<?php print $array['url'];?>" rel="nofollow"> |
| <img width="200" height="200" src="<?php print $array['imageurl'];?>" alt="<?php print $array['memberName'];?>" title="<?php print $array['memberName'];?>"/></a> |
| </div> |
| <?php |
| $impression = new CampaignImpression($array['url'], 'Download Page', @gethostbyaddr($_SERVER['REMOTE_ADDR'])); |
| $impression->recordImpression(); |
| return ob_get_clean(); |
| } |
| |
| |
| function buildGoogleAd() { |
| $ad_preamble = '<div style="width:200px;" align="center">'; |
| $ad_postamble = '<br><img width="200" height="1" src="/membership/promo/images/200spacer.gif"></div>'; |
| $retVal = $ad_preamble . '<script type="text/javascript"><!-- |
| google_ad_client = "pub-6797025590085056"; |
| /* 200x200, created 2/22/08 */ |
| google_ad_slot = "2659366666"; |
| google_ad_width = 200; |
| google_ad_height = 200; |
| //--> |
| </script> |
| <script type="text/javascript" |
| src="//pagead2.googlesyndication.com/pagead/show_ads.js"> |
| </script>' . $ad_postamble; |
| return $retVal; |
| } |
| |
| function buildDonateAd() { |
| $ad_preamble = '<div width="200" align="center">'; |
| $ad_postamble = '<br><img src="/membership/promo/images/200spacer.gif"></div>'; |
| $retVal = $ad_preamble . '<a href="http://eclipse.org/donate/"><img src="/donate/images/donate.jpg" rel="nofollow"></a>' . $ad_postamble; |
| return $retVal; |
| } |
| |
| function buildDownloadHtmlAd($array) { |
| |
| $urls = array( |
| 'url1' => $array['url1'], |
| 'url2' => $array['url2'], |
| 'url3' => $array['url3'], |
| ); |
| |
| ob_start(); |
| ?> |
| <div class="ad-eclipsecon-schedule"> |
| <h3 class="header-short-underline">Upcoming Events</h3> |
| <a href="/go/<?php print $array['url1']; ?>"> |
| <img src="/membership/promo/images/eclipsecon-ad-converge2017.png" alt="Eclipse Converge 2017"> |
| </a> |
| <div class="row"> |
| <div class="col-xs-12"> |
| <a href="/go/<?php print $array['url2']; ?>"> |
| <img src="/membership/promo/images/eclipsecon-ad-devoxx2017.png" alt="Devoxx US 2017"> |
| </a> |
| </div> |
| <div class="col-xs-12"> |
| <a href="/go/<?php print $array['url3']; ?>"> |
| <img src="/membership/promo/images/eclipsecon-ad-ecf2017.png" alt="Eclipsecon France 2017"> |
| </a> |
| </div> |
| </div> |
| </div> |
| <?php |
| |
| foreach ($urls as $url) { |
| $impression = new CampaignImpression($url, 'Download Page', @gethostbyaddr($_SERVER['REMOTE_ADDR'])); |
| $impression->recordImpression(); |
| } |
| |
| return ob_get_clean(); |
| } |
| |
| /** |
| * Eclipse Advertisements |
| * |
| * 1. Paid ads should split 40% of the total impressions |
| * 2. EclipseCon should take 10% of the total impressions |
| * 3. Members ads should split the remaning 50%. |
| * |
| * @return array $retVal |
| */ |
| function allPromos() { |
| |
| $retVal = array(); |
| |
| /** |
| * IMPORTANT: |
| * Total weight should result to 100 |
| * */ |
| |
| /** |
| * PAID ads (30%) |
| * */ |
| $retVal[] = array( |
| 'url' => 'PAID_FROGLOGIC', |
| 'imageurl' => '/membership/promo/images/froglogic.gif', |
| 'memberName' => 'FrogLogic', |
| 'type' => 'paid', |
| 'weight' => 8 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PAID_JREBEL_A', |
| 'imageurl' => '/membership/promo/images/O4E-200x200-banner-1.jpg', |
| 'memberName' => 'JREBEL', |
| 'type' => 'paid', |
| 'weight' => 8 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PAID_YATTA', |
| 'imageurl' => '/membership/promo/images/yatta-200x200_1.gif', |
| 'memberName' => 'YATTA', |
| 'type' => 'paid', |
| 'weight' => 4 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PAID_YATTA_2', |
| 'imageurl' => '/membership/promo/images/yatta-200x200_2.gif', |
| 'memberName' => 'YATTA', |
| 'type' => 'paid', |
| 'weight' => 4 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PAID_XDEV', |
| 'imageurl' => '/membership/promo/images/XdevAddBanner.gif', |
| 'memberName' => 'XDEV', |
| 'type' => 'paid', |
| 'weight' => 8, |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PAID_OPENTEXT1', |
| 'imageurl' => '/membership/promo/images/opentext-1-200x200.jpg', |
| 'memberName' => 'OPENTEXT', |
| 'type' => 'paid', |
| 'weight' => 4, |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PAID_OPENTEXT2', |
| 'imageurl' => '/membership/promo/images/opentext-2-200x200.jpg', |
| 'memberName' => 'OPENTEXT', |
| 'type' => 'paid', |
| 'weight' => 4, |
| ); |
| |
| /** |
| * Other Ads (70%) |
| * */ |
| |
| // Strategic Members |
| $retVal[] = array( |
| 'memberID' => 655, |
| 'memberName' => 'CA', |
| 'type' => 'strategic', |
| 'weight' => 7 |
| ); |
| |
| // Strategic Member Ads |
| $retVal[] = array( |
| 'url' => 'PROMO_ORACLE', |
| 'imageurl' => '/membership/promo/images/oepe_ad_200x200.jpg', |
| 'memberName' => 'Oracle', |
| 'type' => 'strat_ad', |
| 'weight' => 7 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'IBM_JAZZ', |
| 'imageurl' => '/membership/promo/images/ibm200x200-eclipse_orion.png', |
| 'memberName' => 'IBM', |
| 'type' => 'strat_ad', |
| 'weight' => 7 |
| ); |
| $retVal[] = array( |
| 'url' => 'PROMO_SAP', |
| 'imageurl' => '/membership/promo/images/sap200x200.jpg', |
| 'memberName' => 'SAP', |
| 'type' => 'strat_ad', |
| 'weight' => 7 |
| ); |
| $retVal[] = array( |
| 'url' => 'PROMO_ITEMIS', |
| 'imageurl' => '/membership/promo/images/xtext_200x200.gif', |
| 'memberName' => 'Itemis', |
| 'type' => 'strat_ad', |
| 'weight' => 6.25 |
| ); |
| $retVal[] = array( |
| 'url' => 'PROMO_OBEO', |
| 'imageurl' => '/membership/promo/images/Sirius_ad_200.png', |
| 'memberName' => 'Obeo', |
| 'type' => 'strat_ad', |
| 'weight' => 5.5 |
| ); |
| |
| /** |
| * HTML AD |
| */ |
| |
| // Check if the ECE2016 banner ad should be displayed |
| $display_ece = FALSE; |
| if ((date("Y/m/d") >= "2016/09/06" && date("Y/m/d") < "2016/10/05") || |
| (date("Y/m/d") >= "2016/10/11" && date("Y/m/d") < "2016/10/25")) { |
| $display_ece = TRUE; |
| } |
| |
| // If the ECE banner is not displayed, |
| // then we should show the Eclipsecon Schedule Ad |
| if (!$display_ece) { |
| $retVal[] = array( |
| 'memberName' => 'Eclipsecon', |
| 'url1' => 'PROMO_ECLIPSECON_NA2017', |
| 'url2' => 'PROMO_ECLIPSECON_DEVOXX2017', |
| 'url3' => 'PROMO_ECLIPSECON_FRANCE2017', |
| 'format' => 'html', |
| 'type' => 'strat_ad', |
| 'weight' => 20.25 |
| ); |
| } |
| |
| // If the ECE banner ad should be displayed |
| if ($display_ece) { |
| |
| // Set the proper image depending on the date |
| if (date("Y/m/d") >= "2016/09/06" && date("Y/m/d") < "2016/09/20") { |
| $ece_image_url = "/membership/promo/images/ece2016-now.png"; |
| } |
| if (date("Y/m/d") >= "2016/09/20" && date("Y/m/d") < "2016/10/05") { |
| $ece_image_url = "/membership/promo/images/ece2016-early.png"; |
| } |
| if (date("Y/m/d") >= "2016/10/11" && date("Y/m/d") < "2016/10/18") { |
| $ece_image_url = "/membership/promo/images/ece2016-two-weeks.png"; |
| } |
| if (date("Y/m/d") >= "2016/10/18" && date("Y/m/d") < "2016/10/25") { |
| $ece_image_url = "/membership/promo/images/ece2016-one-week.png"; |
| } |
| |
| $retVal[] = array( |
| 'memberName' => 'ECE2016', |
| 'type' => 'strat_ad', |
| 'weight' => 22.5, |
| 'imageurl' => $ece_image_url, |
| 'url' => 'PROMO_ECE_2016', |
| ); |
| } |
| |
| |
| return $retVal; |
| |
| } |
| |
| |
| function chooseRandomPromo($adNo = NULL, $frontPage = NULL) { |
| |
| $promos = allPromos(); |
| |
| if ($adNo != null) { |
| $selectedAd = $promos[$adNo]; |
| } else { |
| $selectedAd = array_rand_weighted($promos); |
| } |
| |
| // If the selected Ad is in HTML |
| if (!empty($selectedAd['format']) && $selectedAd['format'] == "html") { |
| return buildDownloadHtmlAd($selectedAd); |
| } |
| |
| switch ($selectedAd['type']) { |
| case 'paid': |
| // THERE IS NO BREAK HERE ON PURPOSE WE WANT STRAT_AD CASE CODE TO RUN |
| case 'strat_ad': |
| $impression = new CampaignImpression($selectedAd['url'], $_SERVER['REQUEST_URI'], @gethostbyaddr($_SERVER['REMOTE_ADDR'])); |
| $impression->recordImpression(); |
| return buildStrategicAd($selectedAd); |
| break; |
| case 'strategic': |
| if ($frontPage != NULL) |
| return buildStrategicFrontPage($selectedAd); |
| else |
| return buildStrategic($selectedAd); |
| break; |
| case 'google_ad': |
| return buildGoogleAd($selectedAd); |
| break; |
| case 'donate_ad': |
| return buildDonateAd($selectedAd); |
| break; |
| } |
| } |
| |
| function array_rand_weighted($values) { |
| $totalWeight = 0; |
| foreach ($values as $rr) { |
| $totalWeight += $rr['weight']; |
| } |
| $r = mt_rand(1, $totalWeight); |
| foreach ($values as $item) { |
| if ($r <= $item['weight']) |
| return $item; |
| $r -= $item['weight']; |
| } |
| } |
| |
| function strategicAds() { |
| $promos = allPromos(); |
| $retVal = array(); |
| foreach ($promos as $promo) { |
| if ($promo['type'] == 'strat_ad' || $promo['type'] == 'paid') { |
| $retVal[] = $promo; |
| } |
| } |
| return $retVal; |
| } |
| |
| function chooseDownloadAd($adNo = NULL) { |
| $promos = strategicAds(); |
| |
| if ($adNo != null) { |
| $selectedAd = $promos[$adNo]; |
| } else { |
| $selectedAd = array_rand_weighted($promos); |
| } |
| |
| // If the selected Ad is in HTML |
| if (!empty($selectedAd['format']) && $selectedAd['format'] == "html") { |
| return buildDownloadHtmlAd($selectedAd); |
| } |
| return buildDownloadAd($selectedAd); |
| } |
| |