<?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 		= "BPEL Designer Project";
	$pageKeywords	= "BPEL, SOA, WSDL, Eclipse";
	$pageAuthor		= "BPEL Team";
	
	# 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)
	include($_SERVER['DOCUMENT_ROOT'] . "/$projectShortName/items/users_menu.php");
		
	# End: page-specific settings
	#
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML


<div id="maincontent">
	<div id="midcolumn">
		<h1>$pageTitle</h1>
		<h2>User Resources</h2>
		Some useful information to help you get started with the BPEL designer.
		<div class="homeitem3col">
			<h3>Guides, HowTos</h3>
			<ul>
			
				<li><a href="downloads.php">Install the Designer</a> <span class="dates">11/28/2006</span></li>
			
				<li><a href="users/howto/project.php">Create a New Project</a>  <span class="dates">11/28/2006</span></li>
				<li><a href="users/howto/wsdl.php">Add a WSDL</a>  <span class="dates">11/28/2006</span></li>
				<li><a href="users/howto/xsd.php">Add a Schema</a> <span class="dates">11/28/2006</span></li>	
				<li><a href="users/howto/extension.php">Write a custom extension Activity</a> <span class="dates">10/22/2008</span></li>
				<li><a href="users/howto/ode.php">Develop, deploy and run a Hello World Process with the BPEL Designer and Apache ODE</a> <span class="dates">10/22/2008</span></li>									
			</ul>
		</div>
		
		<div class="homeitem3col">
			<h3>What's new</h3>
			<ul>
                <li><a href="users/m4.php">M4 Information</a>  <span class="dates">09/01/2010</span></li>			
				<li><a href="users/m3.php">M3 Information</a>  <span class="dates">06/29/2007</span></li>			
				<li><a href="users/m2.php">M2 Information</a>  <span class="dates">11/28/2006</span></li>
				<li><a href="users/m1.php">M1 Information</a>  <span class="dates">11/15/2006</span></li>
			</ul>
		</div>
		<hr class="clearer" />
	</div>
		
	$rightcolumn_links
	
</div>

EOHTML;


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