<?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("../_projectCommon.php");    # All on the same line to unclutter the user's desktop'

$pageTitle 		= "Promote Member Products and Services";


ob_start();
?>
    <div id="maincontent">
	<div id="midcolumn">

<h1><?=$pageTitle;?></h1>

<p>The Eclipse Foundation offers members a number of different ways to promote their products and services ranging from
ad space on Eclipse.org and related properties, highlighting of member products on Eclipse Plugin Central, and personalized
membership pages that automatically integrate your contributions to the Eclipse ecosystem.
</p>
<p>
Full details on the many ways you can promote your products and services can be found by contacting
 <A href="mailto:membership@eclipse.org">membership@eclipse.org</A>..
</p>


</div> <!-- midcolumn -->
</div> <!-- maincontent -->

<?php
	# Paste your HTML content between the EOHTML markers!
	$html = ob_get_contents();
	ob_end_clean();

	# Generate the web page
	$App->generatePage(NULL, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
