<?php
/*******************************************************************************
 * Copyright (c) 2015, 2016 Eclipse Foundation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Eric Poirier (Eclipse Foundation) - Initial implementation
 *    Christopher Guindon (Eclipse Foundation)
 *******************************************************************************/
// This file must be included
if(basename(__FILE__) == basename($_SERVER['PHP_SELF'])){exit();}
?>
<div id="fullcolumn">
  <div id="midcolumn">
    <h1><?php echo $pageTitle; ?></h1>
  </div>

  <!-- remove the entire <div> tag to omit the right column!  -->
  <div id="rightcolumn">
    <div class="sideitem text-center">
      <h6>About the Author</h6>
      <p class="author-picture"><img class="img-responsive"
        src="/community/eclipse_newsletter/2016/september/images/jhelming.jpg"
        alt="Jonas Helming" /></p>
      <p class="author-name">
        Jonas Helming <br />
        <a target="_blank" href="http://eclipsesource.com/">EclipseSource</a>
      </p>
      <ul class="author-link list-inline">
        <li><a class="btn btn-small btn-warning" target="_blank" href="http://eclipsesource.com/blogs/author/jhelming/">Blog</a>
        </li>
        <li><a class="btn btn-small btn-warning" target="_blank" href="https://twitter.com/JonasHelming">Twitter</a></li>
        <?php //echo $og; ?>
      </ul>
    </div>
    
         <div class="sideitem text-center">
      <h6>Related Articles</h6>
      <p class="author-picture"><a href="/community/eclipse_newsletter/2016/july/"><img class="img-responsive"
        src="/community/eclipse_newsletter/2016/july/images/july.png"
        alt="newsletter logos" /></a></p>
      <p class="author-name">Neon Lights Everywhere
      <br />
        <a target="_blank" href="/community/eclipse_newsletter/2016/july/">Read More</a>
      </p>
      </div>
      
    <!--<div class="sideitem">
        <h6>Related Links</h6>
        <ul>
          <li><a href="/community/eclipse_newsletter/">The Eclipse Newsletter</a></li>
        </ul>
      </div> -->
  </div>
</div>
