<?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 		= "Projects: Explain the Projects Table Columns";

include( '../_commonLeftNav.php' );

ob_start();
?>
<div id="maincontent">
<div id="midcolumn">
        
<div class="homeitem3col">
<h3>Explanation of the Project Table Columns</h3>
<?php include( 'projects-table-columns-2.php' ); ?>
<p>
<div align="right" style="margin-right: 10px; margin-top: 10px;">
<a href="/projects/">return to main projects page</a>
</div><!-- right -->
</div><!-- homeitem3col -->

<?php include( '../_commonFooter.php' ); ?>
</div><!-- midcolumn -->

<div id="rightcolumn">
<div class="sideitem">
			<h6>For Project Leads</h6>
			<p>If the project table does not show
			all the developer resources your project
			supplies, please make sure that your
			<a href="/projects/dev_process/project-status-infrastructure.php">project-info meta-data</a>
			is correct and up-to-date. <p>Remember that some of the data
			(project url, download url, and project phase) is stored in the Foundation
			database and the rest in your project-info files.
			</p>
</div>
</div><!-- rightcolumn -->

</div><!-- maincontent -->
<?php
	# Paste your HTML content between the EOHTML markers!	
	$html = ob_get_contents();
	ob_end_clean();

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