<?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       = "Information for Contributors";
    $pageKeywords    = "photran, contributing";
    $pageAuthor      = "Jeffrey Overbey";
    
    # Paste your HTML content between the EOHTML markers!    
    $html = <<<EOHTML

<div id="maincontent">
  <div id="midcolumn">
    <h1>$pageTitle</h1>
    
    <p>These links are primarily of interest to Photran
    committers and contributors.</p>

    <div class="homeitem3col">
      <h3>Photran Developer Resources</h3>
      <ul>
        <li><a href="newcontributors.php">Suggestions for New Contributors</a></li>
        <li><a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.ptp/photran/org.eclipse.photran-dev-docs/dev-guide/cvs-instructions.pdf?cvsroot=Tools_Project">How
            to Check Out Photran from CVS and Compile It</a></li>
        <li><a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.ptp/photran/org.eclipse.photran-dev-docs/dev-guide/dev-guide.pdf?cvsroot=Tools_Project">Photran
            Developer's Guide</a></li>
        <li><a href="https://dev.eclipse.org/mailman/listinfo/photran-dev">Contributor
            Mailing List (photran-dev)</a></li>
        <li><a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ptp/photran/?cvsroot=Tools_Project">View
            Current Sources in CVS (Web Interface)</a></li>
        <li><a href="http://dev.eclipse.org/newslists/news.eclipse.technology.photran/maillist.html"><font color="#808080">Archive
            of Now-Defunct Photran Newsgroup</font></a></li>
      </ul>
    </div>
    
    <!--div class="homeitem3col">
      <h3>Eclipse Foundation Resources</h3>
      <ul>
        <li><a href="https://dev.eclipse.org/committers/">Committer Login</a></li>
        <li><a href="http://www.eclipse.org/articles/Article-UI-Guidelines/Index.html">Eclipse User Interface Guidelines</a></li>
        <li><a href="http://dev.eclipse.org/conventions.html">Eclipse Naming, Coding, and JavaDoc Conventions</a></li>
        <li><a href="http://www.eclipse.org/tools/docs/project-guide.html">Eclipse.org Infrastructure&nbsp;for Tools Projects</a></li>
        <li><a href="http://www.eclipse.org/legal/newcommitter.php">New Committer Form</a></li>
      </ul>
    </div-->

  </div>
</div>    
EOHTML;

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