<?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());    

#
# Begin: page-specific settings.  Change these. 
$pageTitle 	= "Henshin - Committers";
$pageKeywords	= "EMF, Henshin, model transformation, installation";
$pageAuthor	= "Christian Krause";

# 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">
<div id="midcolumn">
<h1>$pageTitle</h1>

<br />
<p><strong>Active committers</strong>
<ul>
<li><a href="https://www.uni-marburg.de/fb12/arbeitsgruppen/swt/kristopher-born">Kristopher Born</a></li>
<li><a href="http://www.frankhermann.eu/">Frank Hermann</a></li>
<li>Timo Kehrer</a></li>
<li><a href="http://www.ckrause.org">Christian Krause</a></li>
<li><a href="https://rgse.uni-koblenz.de/web/pages/people/strueber/index_en.shtml">Daniel Str&uuml;ber</a> (project lead)</li>
<li><a href="https://www.uni-ulm.de/in/pm/mitarbeiter/tichy.html">Matthias Tichy</a></li>
</ul>
</p>

<p><strong>Past committers</strong>
<ul>
<li>Gregor Bonifer</li>
<li>Stefan Jurack</a> (<a href="https://eclipse.org/projects/committers-emeritus.php">committer emeritus</a>)</li>
<li>Felix Rieger</li>
<ul>
</p>

</div>
</div>

EOHTML;

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

?>
