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

#*****************************************************************************
#
# template.php
#
# Author: 		Denis Roy
# Date:			2005-06-16
#
# Description: Type your page comments here - these are not sent to the browser
#
#
#****************************************************************************

#
# Begin: page-specific settings.  Change these.
$pageTitle 		= "Tigerstripe Mailing Lists";
$pageKeywords	= "Type, page, keywords, here";
$pageAuthor		= "Eric Dillon";
# End: page-specific settings
#

# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML

<div id="maincontent">

	<div id="midcolumn">
		<h1>$pageTitle</h1>
		<div class="homeitem3col">
			<h3>Available Mailing Lists for Tigerstripe</h3>
			<ul>
				<li><a href="https://dev.eclipse.org/mailman/listinfo/tigerstripe-dev">tigerstripe-dev</a>: subscribe if you need information about the development efforts on Tigerstripe.</li>
				<li><a href="https://dev.eclipse.org/mailman/listinfo/tigerstripe-users">tigerstripe-users</a>: subscribe if you are a user of Tigerstripe.</li>
				<li><a href="https://dev.eclipse.org/mailman/listinfo/tigerstripe-announce">tigerstripe-announce</a>: subscribe to receive any general announcement about Tigerstripe, such as news, events, or availability of new releases, eg.</li>
			</ul>
		</div>
			</div>

	<div id="rightcolumn">
 		<div class="sideitem">
		   <h6>Related Links</h6>
		   <ul>
 				<li><a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.tigerstripe">Newsgroup</a></li>
		   </ul>
 		</div>
	</div>
</div>
EOHTML;


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