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

	#*****************************************************************************
	#
	# members.php
	#
	# Author: 		Markus Knauer
	# Date:			2007-02-20
	#
	# Description: Listing of the Eclipse Packaging Project members
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "EPP Project Members";
	$pageKeywords	= "eclipse, download, packages, packaging, installer, archive";
	$pageAuthor		= "Markus Knauer";
	
	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);

	# End: page-specific settings
	#
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

<div id="maincontent">

<!-- MIDCOLUMN START -->
<div id="midcolumn">
<h1>$pageTitle</h1>

<div class="homeitem">
<h3>Eclipse Packaging Project Committers</h3>
<ul>
	<li><span>Markus Knauer (project lead)<br><a href="http://www.innoopract.com">Innoopract Informationssysteme GmbH</a></span></li>
	<li><span>Dan Rubel (co-project lead)<br><a href="http://www.instantiations.com">Instantiations, Inc.</a></span></li>
	<li><span>Wayne Beaton<br><a href="http://www.eclipse.org">Eclipse Foundation</a></span></li>
	<li><span>Jordi B&ouml;hme L&oacute;pez<br><a href="http://www.innoopract.com">Innoopract Informationssysteme GmbH</a></span></li>
	<li><span>Alexander Kazantsev<br><a href="http://www.xored.com">xored software</a></span></li>
	<li><span>Henrik Lindberg<br><a href="http://www.cloudsmith.com">Cloudsmith</a></span></li>
	<li><span>Jeff McAffer<br><a href="http://www.code9.com">Code 9</a></span></li>
	<li><span>Mark Russell<br><a href="http://www.instantiations.com">Instantiations, Inc.</a></span></li>
</ul>
</div>

<div class="homeitem">
<h3>Eclipse Packaging Project Contributors</h3>
<ul>
	<li><span>Andrey Platov<br><a href="http://www.xored.com">xored software</a></span></li>
</ul>
</div>

</div>

<!-- MIDCOLUMN END -->

<!-- RIGHTCOLUMN START -->
<div id="rightcolumn">
<div class="sideitem">
<h6>Project Links</h6>
<ul>
	<li><a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.packaging">Newsgroup</a></li>
	<li><a href="http://dev.eclipse.org/mhonarc/lists/epp-dev/maillist.html">Mailing list</a></li>
	<li><a href="https://dev.eclipse.org/mailman/listinfo/epp-dev">Subscribe to mailing list</a></li>
	<li><a href="/proposals/packaging/">Project Proposal</a></li>
</ul>
</div>
<div class="sideitem">
<h6>Active Contributors</h6>
<ul>
  <li><a href="http://www.innoopract.com">INNOOPRACT, Inc.</a></li>
  <li><a href="http://www.cloudsmith.com">Cloudsmith</a></li>
  <li><a href="http://www.code9.com">Code 9</a></li>
  <li><a href="http://www.instantiations.com">Instantiations, Inc.</a></li>
  <li><a href="http://www.xored.com">xored software</a></li>
</ul>
</div>
</div>
<!-- RIGHTCOLUMN END -->

</div>

EOHTML;


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