<?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 - Mailing Lists";
$pageKeywords	= "EMF, Henshin, model transformation, projects";
$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
#

$html = <<<EOHTML

<div id="maincontent">
<div id="midcolumn">

<h1>$pageTitle</h1>

<br>
<p>
<ul>
<li><a href="https://dev.eclipse.org/mailman/listinfo/henshin-user">User Mailing List (henshin-user)</a></li>
<li><a href="https://dev.eclipse.org/mailman/listinfo/henshin-dev">Developer Mailing List (henshin-dev)</a></li>
</ul>
</p>

</div>
</div>

EOHTML;

# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);

?>
