<?php                                                                                                                          require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");    require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");     require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");     $App     = new App();    $Nav    = new Nav();    $Menu     = new Menu();        include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

    $pageTitle       = "Contributors to Photran";
    $pageKeywords    = "photran, contributors, developers";
    $pageAuthor      = "Jeffrey Overbey";
    
    # Paste your HTML content between the EOHTML markers!    
    $html = <<<EOHTML

<div id="maincontent">
  <div id="midcolumn">
    <h1>$pageTitle</h1>
    
    <p>Photran is being developed at the University of Illinois at Urbana-Champaign in
    conjunction with Los Alamos National Laboratory. We are also receiving many valuable
    contributions from other individuals. In alphabetical order by last name...</p>
    
    <div class="homeitem3col">
      <h3>Active Contributors</h3>
      <ul>
        <li>Bill Hilliard, Intel - Managed build support (Intel Fortran)</li>
        <li><a href="http://st-www.cs.uiuc.edu/users/johnson">Ralph Johnson</a>, UIUC - Project lead</li>
        <li>Stas Negara, UIUC - Fortran indexer</li>
        <li><a href="http://jeff.over.bz/">Jeff Overbey</a>, UIUC - Parser, refactoring engine, UI, error parsers, CDT interface</li>
        <li>Feanil Patel, UIUC - Fortran debugging</li>
        <li>Craig Rasmussen, LANL - Managed build support, error parsers</li>
        <li>Ken Schultz, UIUC - Fortran debugging</li>
        <li>Mikhail Sennikovsky, Intel - Managed build support (Intel Fortran)</li>
        <li>Shawn Temming, UIUC - Fortran debugging</li>
        <li>Leo Treggiari, Intel - Managed build support (Intel Fortran)</li>
      </ul>
    </div>
    
    <div class="homeitem3col">
      <h3>Past Contributors</h3>
      <ul>
        <li>Antonio Barbado - Spanish FAQ translation</li>
        <li><a href="http://www.fortran.com/fortran/walt.html">Walt Brainerd</a>, <a href="http://www.fortran.com/">The Fortran Company</a> - F support (and more)</li>
        <li>Nicholas Chen, UIUC - UI features, MSI package</li>
        <li>Cheah Chin Fei, UIUC - UI features, MSI package</li>
        <li><a href="http://www.laputan.org/">Brian Foote</a>, UIUC</li>
        <li>Dirk Rossow, Flensburger Schiffbau Gesellschaft - Fixed form lexer</li>
        <li><a href="http://leto.cs.uiuc.edu/%7Espiros">Spiros Xanthos</a>, UIUC</li>
      </ul>
    </div>

  </div>
</div>    
EOHTML;

    # Generate the web page
    $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
