| <?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; |
| } |
| |
| /** |
| * 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 (32%) |
| * */ |
| $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_SAP', |
| 'imageurl' => '/membership/promo/images/sap_paid_ad.jpg', |
| 'memberName' => 'SAP', |
| 'type' => 'paid', |
| 'weight' => 8 |
| ); |
| |
| $retVal[] = array( |
| 'url' => 'PAID_IBM', |
| 'imageurl' => '/membership/promo/images/ibm_paid_ad.jpg', |
| 'memberName' => 'IBM', |
| 'type' => 'paid', |
| 'weight' => 8 |
| ); |
| |
| /** |
| * Other Ads (68%) |
| * */ |
| |
| // Strategic Members |
| $retVal[] = array( |
| 'memberID' => 655, |
| 'memberName' => 'CA', |
| 'type' => 'strategic', |
| 'weight' => 10 |
| ); |
| |
| // Strategic Member Ads |
| $retVal[] = array( |
| 'url' => 'PROMO_ORACLE', |
| 'imageurl' => '/membership/promo/images/oepe_ad_200x200.jpg', |
| 'memberName' => 'Oracle', |
| 'type' => 'strat_ad', |
| 'weight' => 10 |
| ); |
| //$retVal[] = array('url' => 'ACTUATEBP', 'imageurl' => '/membership/promo/images/f-type-for-eclipse-birt.png', 'memberName' => 'Actuate', 'type' => 'strat_ad', 'weight' => 4); |
| $retVal[] = array( |
| 'url' => 'ACTUATEBP_B', |
| 'imageurl' => '/membership/promo/images/actuate_puzzle_200x200.png', |
| 'memberName' => 'Actuate', |
| 'type' => 'strat_ad', |
| 'weight' => 10 |
| ); |
| |
| //$retVal[] = array('url' => 'IBM_DEVDAY_CO', 'imageurl' => '/membership/promo/images/ibm_dev_day_co.jpg', 'memberName' => 'IBM', 'type' => 'strat_ad', 'weight' => 8); |
| $retVal[] = array( |
| 'url' => 'IBM_JAZZ', |
| 'imageurl' => '/membership/promo/images/ibm200x200-eclipse_orion.png', |
| 'memberName' => 'IBM', |
| 'type' => 'strat_ad', |
| 'weight' => 10 |
| ); |
| $retVal[] = array( |
| 'url' => 'PROMO_SAP', |
| 'imageurl' => '/membership/promo/images/sap200x200.jpg', |
| 'memberName' => 'SAP', |
| 'type' => 'strat_ad', |
| 'weight' => 10 |
| ); |
| $retVal[] = array( |
| 'url' => 'PROMO_ITEMIS', |
| 'imageurl' => '/membership/promo/images/xtext_200x200.gif', |
| 'memberName' => 'Itemis', |
| 'type' => 'strat_ad', |
| 'weight' => 6 |
| ); |
| $retVal[] = array( |
| 'url' => 'PROMO_OBEO', |
| 'imageurl' => '/membership/promo/images/obeo_sirius.png', |
| 'memberName' => 'Obeo', |
| 'type' => 'strat_ad', |
| 'weight' => 6 |
| ); |
| $retVal[] = array( |
| 'url' => 'PROMO_YOXOS', |
| 'imageurl' => '/membership/promo/images/es200x200.gif', |
| 'memberName' => 'EclipseSource', |
| 'type' => 'strat_ad', |
| 'weight' => 6 |
| ); |
| |
| 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': |
| $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); |
| } |
| return buildDownloadAd($selectedAd); |
| } |
| |