blob: d277295290c0cf7f8828167ef4ac1223b594d16b [file] [log] [blame]
<?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' => 7.5
);
$retVal[] = array(
'url' => 'PAID_JREBEL_A',
'imageurl' => '/membership/promo/images/O4E-200x200-banner-1.jpg',
'memberName' => 'JREBEL',
'type' => 'paid',
'weight' => 7.5
);
$retVal[] = array(
'url' => 'PAID_YATTA',
'imageurl' => '/membership/promo/images/yatta-profiles-set02-200x200.png',
'memberName' => 'YATTA',
'type' => 'paid',
'weight' => 7.5
);
$retVal[] = array(
'url' => 'PAID_XDEV',
'imageurl' => '/membership/promo/images/XdevAddBanner.gif',
'memberName' => 'XDEV',
'type' => 'paid',
'weight' => 7.5,
);
/**
* Other Ads (70%)
* */
// Strategic Members
$retVal[] = array(
'memberID' => 655,
'memberName' => 'CA',
'type' => 'strategic',
'weight' => 8.75
);
// Strategic Member Ads
$retVal[] = array(
'url' => 'PROMO_ORACLE',
'imageurl' => '/membership/promo/images/oepe_ad_200x200.jpg',
'memberName' => 'Oracle',
'type' => 'strat_ad',
'weight' => 8.75
);
$retVal[] = array(
'url' => 'IBM_JAZZ',
'imageurl' => '/membership/promo/images/ibm200x200-eclipse_orion.png',
'memberName' => 'IBM',
'type' => 'strat_ad',
'weight' => 8.75
);
$retVal[] = array(
'url' => 'PROMO_SAP',
'imageurl' => '/membership/promo/images/sap200x200.jpg',
'memberName' => 'SAP',
'type' => 'strat_ad',
'weight' => 8.75
);
$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/SiriusCon_ad_200.png',
'memberName' => 'Obeo',
'type' => 'strat_ad',
'weight' => 6.25
);
/**
* 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' => 22.5
);
}
// 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);
}