<?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'

#
# Begin: page-specific settings.
$pageTitle 		= "Eclipse Planning Council";
$pageKeywords	= "Eclipse Planning Council";
$pageAuthor		= "David Williams";
$theme = "Nova";
# Paste your HTML content between the markers!
ob_start();
?>


	<!-- include empty lef nav col for now -->
	<div id="leftcol">
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
	</div>
	
<div id="maincontent">
<div id="midcolumn">
<h1><?= $pageTitle ?></h1>
<h2>Purpose</h2>
<p>This 'planning' directory at this URL is to hold Planning Council specific web
pages and web apps. Most Planning Council information is available on
the <a href="http://wiki.eclipse.org/Planning_Council">Eclipse Planning
Council Wiki Pages</a></p>
</div>
</div> 

<?php
$html = ob_get_contents();
ob_end_clean();

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