<?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       = "Photran Internals";
    $pageKeywords    = "photran, contributing, internals";
    $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 an open source project.  We welcome code contributions (and research
    collaborations) from others.  Here are some starting points...</p>

    <div class="homeitem3col">
      <h3>Photran Developer Resources</h3>
      <ul>
        <!--li><a href="newcontributors.php">Suggestions for New Contributors</a></li-->
        <li><big><b>Photran Developer's Guide</b></big></a> (PDF)
            <ul>
              <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-general.pdf?cvsroot=Tools_Project"-->
                  <a href="http://git.eclipse.org/c/ptp/org.eclipse.photran.git/plain/org.eclipse.photran-dev-docs/dev-guide/dev-guide-general.pdf">Part
                  I: General Information</a> &nbsp;&nbsp; <font color="red">&lt;&lt;&lt;&lt; Read This!</font></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-specialized.pdf?cvsroot=Tools_Project"-->
                  <a href="http://git.eclipse.org/c/ptp/org.eclipse.photran.git/plain/org.eclipse.photran-dev-docs/dev-guide/dev-guide-specialized.pdf">Part
                  II: Specialized Topics</a></li>
              <li>Excerpts:
                  <ul>
                    <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"-->
                        <a href="http://git.eclipse.org/c/ptp/org.eclipse.photran.git/plain/org.eclipse.photran-dev-docs/dev-guide/git-instructions.pdf">How
                        to Check Out Photran from Git 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/images/photran_architecture.pdf?cvsroot=Tools_Project"-->
                        <a href="http://git.eclipse.org/c/ptp/org.eclipse.photran.git/plain/org.eclipse.photran-dev-docs/dev-guide/images/photran_architecture.pdf">Photran
                        Architecture Diagram (PDF)</a></li>
                  </ul></li>
            </ul></li>
        <li><a href="https://dev.eclipse.org/mailman/listinfo/ptp-dev">Contributor
            Mailing List (for all of PTP, including Photran) - ptp-dev</a></li>
        <li><a href="https://bugs.eclipse.org/bugs/buglist.cgi?priority=P1;priority=P2;priority=P3;priority=P4;priority=P5;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Ctarget_milestone%2Cshort_desc;classification=Tools;query_format=advanced;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;component=Photran.Debugger%20%26%20Console%20View;component=Photran.Documentation;component=Photran.Editor%20%26%20Outline%20View;component=Photran.For%20Internal%20Use;component=Photran.Managed%20Make;component=Photran.Problems%20View%20%26%20Error%20Markers;component=Photran.Refactoring%20Engine;component=Photran.Unknown;component=Photran.Windows%20Installer%20%28.msi%20package%29;product=PTP">Open
            Bugs</a></li>
        <li><a href="http://wiki.eclipse.org/PTP/photran/refactorings">Refactorings Planned/Implemented</a></li>
        <li><!--a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ptp/photran/?cvsroot=Tools_Project"-->
            <a href="http://git.eclipse.org/c/ptp/org.eclipse.photran.git/">View
            Current Sources in Git (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>
        <!--li><a href="https://dev.eclipse.org/mailman/listinfo/photran-dev">Contributor
            Mailing List (photran-dev)</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);
?>
