<?php
/**
 * Copyright (c) 2014, 2018 Eclipse Foundation and others.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *    Christopher Guindon (Eclipse Foundation) - initial API and implementation
 *    Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */

?>

<div class="featured-story featured-alternate margin-bottom-60">
  <div class="container">
    <div class="row">
      <div class="col-sm-12 col-sm-offset-2 col-md-16 col-md-offset-0 featured-story-block featured-story-block-content match-height-item-by-row" data-mh="featured-story">
        <?php if (!empty($featured_story['prefix'])){ print $featured_story['prefix']; }?>
        <?php print $featured_story['title']; ?>
        <?php print $featured_story['body']; ?>
        <?php print $featured_story['link']; ?>
      </div>
      <div class="col-sm-9 col-md-8 featured-ad featured-story-block match-height-item-by-row" data-mh="featured-story">
        <div class="featured-ad-content clearfix">
          <div style="max-width: 200px;margin:auto;">
            <p class="featured-story-description margin-0 text-center">Sponsored Ad</p>
            <?php print $Theme->getRandomPromo(TRUE);?>
            <p class="featured-story-description margin-0 text-center"><a href="https://eclipse-5413615.hs-sites.com/ad-prospectus-form" style="float:none">Advertise Here</a></p>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

<!-- Announcements and Community news -->
<div class="container">
  <div class="row">
    <div class="col-lg-10 col-lg-offset-2 col-md-12 padding-bottom-50">
      <div class="block-summary-title">
        <i class="center-block" data-feather="activity" stroke-width="1"></i>
        <h2>Announcements</h2>
      </div>
     <div id="news-list-announcements" data-pagination="false" data-news-type="announcements" data-news-count="4" data-publish-target="eclipse_org"></div>
      <ul class="list-inline block-summary-more">
        <li><a href="http://feeds.feedburner.com/eclipse/fnews" title="Subscribe to our RSS-feed"><i class="fa fa-rss margin-right-5"></i> Subscribe to our RSS-feed</a></li>
        <li><a href="https://newsroom.eclipse.org/news/announcements/">View all</a></li>
      </ul>
    </div>
    <div class="col-lg-10 col-md-12 padding-bottom-50">
      <div class="block-summary-title">
        <i class="center-block" data-feather="tv" stroke-width="1"></i>
        <h2>Community News</h2>
      </div>
      <div id="news-list-community" data-pagination="false" data-news-type="community_news"  data-news-count="4" data-publish-target="eclipse_org"></div>
      <ul class="list-inline block-summary-more">
        <li><a href="http://feeds.feedburner.com/eclipse/cnews" title="Subscribe to our RSS-feed"><i class="fa fa-rss margin-right-5"></i> Subscribe to our RSS-feed</a></li>
        <li><a href="https://newsroom.eclipse.org/news/community-news/">View all</a></li>
      </ul>
    </div>
  </div>
</div>


<div class="featured-stats">
  <div class="container margin-top-20">
   <h2 class="margin-bottom-30 margin-top-0">Eclipse Foundation by the Numbers</h2>
    <div class="row">
      <div class="col-md-5-eclipse col-sm-8 col-xs-12">
        <div class="row">
          <a href="/projects" class="featured-stats-link">
            <span class="col-xs-12 featured-stats-icon-container">
              <span class="featured-circle featured-circle-stats"><i data-feather="code" stroke-width="1"></i></span>
            </span>
            <span class="col-xs-12 featured-stats-text-container">
              <span class="featured-stats-number">375+</span><br>
              Projects
            </span>
          </a>
        </div>
      </div>

      <div class="col-md-5-eclipse col-sm-8 col-xs-12">
        <div class="row">
          <a href="/membership/become_a_member/committer.php" class="featured-stats-link">
          <span class="col-xs-12 featured-stats-icon-container">
            <span class="featured-circle featured-circle-stats"><i data-feather="users" stroke-width="1"></i></span>
          </span>
          <span class="col-xs-12 featured-stats-text-container">
            <span class="featured-stats-number">1600+</span><br>
            Committers
          </span>
          </a>
        </div>
      </div>

      <div class="col-md-5-eclipse col-sm-8 col-xs-12">
        <div class="row">
          <a href="https://github.com/eclipse" target="_blank" class="featured-stats-link">
          <span class="col-xs-12 featured-stats-icon-container">
            <span class="featured-circle featured-circle-stats"><i data-feather="align-justify" stroke-width="1"></i></span>
          </span>
          <span class="col-xs-12 featured-stats-text-container">
            <span class="featured-stats-number">240M+</span><br>
            Lines of code
          </span>
          </a>
        </div>
      </div>

      <div class="col-md-5-eclipse col-sm-8 col-xs-12">
        <div class="row">
          <a href="/membership/exploreMembership.php" class="featured-stats-link">
            <span class="col-xs-12 featured-stats-icon-container">
              <span class="featured-circle featured-circle-stats"><i data-feather="briefcase" stroke-width="1"></i></span>
            </span>
            <span class="col-xs-12 featured-stats-text-container">
              <span class="featured-stats-number">300+</span><br>
               Members
            </span>
          </a>
        </div>
      </div>

      <div class="col-md-5-eclipse col-sm-8 col-xs-12">
        <div class="row">
          <a href="/org/workinggroups/" class="featured-stats-link">
            <span class="col-xs-12 featured-stats-icon-container">
              <span class="featured-circle featured-circle-stats"><i data-feather="share-2" stroke-width="1"></i></span>
            </span>
            <span class="col-xs-12 featured-stats-text-container">
              <span class="featured-stats-number">14</span><br>
               Working Groups
            </span>
          </a>
        </div>
      </div>
    </div>
  </div>
</div>