<?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.  Change these.
$pageTitle 		= "SID Import Tool";
$pageKeywords	= "SID";
$pageAuthor		= "Navid Mehregani";
# 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">
		<p>This plug-in facilitates UML2 import of TM Forum's SID (Shared Information Definition) into Tigerstripe.  It performs custom name mappings and filtering.  Use the following update site 
		to download this plug-in.</p>
		<ul>
			<li><b>http://download.eclipse.org/technology/tigerstripe/updates/thirdparty/</b></li>
		</ul>
		Please click <a href="http://wiki.eclipse.org/Tigerstripe_Download_instructions">here</a> for more details about using update sites.
		
		
			</div>
	</div>
	<div id="rightcolumn">
		<div class="sideitem">
		   
 		</div>
 		<div class="sideitem">
		   <h6>Incubation</h6>
 		  <div align="center">
 		  	<a href="/projects/what-is-incubation.php">
 		  		<img align="center" src="/images/egg-incubation.png" border="0" alt="Incubation" />
 		  	</a>
 		  </div>
 		</div>
 	</div>
</div>
EOHTML;

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

?>