| <?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) { |
| $mimg = new MemberImage(); |
| 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 . '" '; |
| return '<div class="eclipsefnd-ad ad-strategic ad-strategic-frontpage"><a href="/membership/showMember.php?member_id=' . $array['memberID'] . '" rel="nofollow" style="background-image: url(\'/membership/scripts/get_image.php?size=small&id=' . $array['memberID'] .'\')">' . $array['memberName'] . '</a></div>'; |
| } |
| |
| return ""; |
| } |
| |
| function buildStrategicAd($array) { |
| if (empty($array) || empty($array['url']) || empty($array['imageurl']) || empty($array['memberName'])) { |
| return ""; |
| } |
| $impression = new CampaignImpression($array['url'], $_SERVER['REQUEST_URI'], @gethostbyaddr($_SERVER['REMOTE_ADDR'])); |
| $impression->recordImpression(); |
| return'<div class="eclipsefnd-ad ad-strategic ad-strategic-default"><a href="/go/' . $array['url'] . '" rel="nofollow" style="background-image: url(\''.$array['imageurl'].'\')">'.$array['memberName'].'</a></div>'; |
| } |
| |
| // 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 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; |
| } |
| |
| /** |
| * 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_YATTA', |
| 'imageurl' => '/membership/promo/images/Yatta-Eclipse-Banner-Ad-1.png', |
| 'memberName' => 'YATTA', |
| 'type' => 'paid', |
| 'weight' => 8 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PAID_YATTA_2', |
| 'imageurl' => '/membership/promo/images/Yatta-Eclipse-Banner-Ad-2.png', |
| 'memberName' => 'YATTA', |
| 'type' => 'paid', |
| 'weight' => 8 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PAID_XDEV', |
| 'imageurl' => '/membership/promo/images/xdev-2017-10-29.png', |
| 'memberName' => 'XDEV', |
| 'type' => 'paid', |
| 'weight' => 8, |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PAID_CLOUDBEES', |
| 'imageurl' => '/membership/promo/images/cloudbees-200x200.jpg', |
| 'memberName' => 'Itemis', |
| 'type' => 'strat_ad', |
| 'weight' => 8 |
| ); |
| |
| /** |
| * 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-ibm_cloud.jpg', |
| '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' => 4 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PROMO_OBEO', |
| 'imageurl' => '/membership/promo/images/Sirius_ad_200.png', |
| 'memberName' => 'Obeo', |
| 'type' => 'strat_ad', |
| 'weight' => 4 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PROMO_CEA', |
| 'imageurl' => '/membership/promo/images/PapyrusCEA.gif', |
| 'memberName' => 'CEA', |
| 'type' => 'strat_ad', |
| 'weight' => 4 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PROMO_PAYARA', |
| 'imageurl' => '/membership/promo/images/payara.png', |
| 'memberName' => 'PAYARA', |
| 'type' => 'strat_ad', |
| 'weight' => 4 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PROMO_TOMITRIBE', |
| 'imageurl' => '/membership/promo/images/Tomitribe-TCPP-banner-200x200.jpg', |
| 'memberName' => 'TOMITRIBE', |
| 'type' => 'strat_ad', |
| 'weight' => 4 |
| ); |
| |
| $foundation_promos = getFoundationPromos(); |
| $retVal = array_merge($retVal, $foundation_promos); |
| |
| return $retVal; |
| } |
| |
| /** |
| * Get Eclipse Foundation Promo |
| * |
| * @return array |
| */ |
| function getFoundationPromos() { |
| |
| $retVal = array(); |
| |
| return $retVal; |
| } |
| |
| function chooseRandomPromo($adNo = NULL, $frontPage = NULL) { |
| |
| $promos = allPromos(); |
| |
| if ($adNo != NULL) { |
| $selectedAd = $promos[$adNo]; |
| } else { |
| $selectedAd = array_rand_weighted($promos); |
| } |
| |
| switch ($selectedAd['type']) { |
| case 'paid': |
| // THERE IS NO BREAK HERE ON PURPOSE WE WANT STRAT_AD CASE CODE TO RUN |
| case 'strat_ad': |
| return buildStrategicAd($selectedAd); |
| break; |
| case 'strategic': |
| if ($frontPage != NULL) |
| return buildStrategicFrontPage($selectedAd); |
| else |
| return buildStrategic($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); |
| } |
| |
| return buildDownloadAd($selectedAd); |
| } |
| |