<?php
	set_include_path($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common" . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] . "/projects" . PATH_SEPARATOR . get_include_path());
	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());
	
	$localVersion = false;
	
	# Define these here, or in _projectCommon.php for site-wide values
	$pageTitle 		= "Getting Involved - Eclipse Subversive";
	$pageKeywords	= "subversive, development, svn, subversion";
	$pageAuthor		= "Igor Vinnykov";
	
	$sidebar = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/subversive/sidebars/main.php");	
	
	// 	# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML

	<div id="midcolumn">
		<h1>Getting Involved</h1>
		<p>
			If you like to contribute to the Subversive project or integrate Subversive with your projects, use the resources below.
		</p>
		<ul>
			<li><a href="/subversive/mailinglists.php">Mailing Lists</a> - it is a primary communication channel with Subversive developers regarding Subversive development and integration issues. If you are interested in getting announcements for new versions, or want to participate in discussions of the development or integration topics, then you can subscribe to one of the project's mailing lists.</li>
			<li><a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Subversive&rep_platform=All&op_sys=All">Submit a Patch</a> - If you know how to fix an issue in the Subversive code, submit your patch through Eclipse Bugzilla.</li>
			<li><a href="http://dev.eclipse.org/viewsvn/viewvc.cgi/?root=Technology_SUBVERSIVE">Repository</a> - Get an access to the Subversive source code.</li>
			<li><a href="/subversive/integrations.php">Integrations</a> - Learn about existing Subversive integrations with other Eclipse projects. Get an overview of Subversive architecture and integration API.</li>
			<li><a href="http://www.eclipse.org/projects/project-plan.php?projectid=technology.subversive">Project Plan</a> - Get information about Subversive project plans and the current progress.</li>
			<li><a href="http://www.eclipse.org/projects/ip_log.php?projectid=technology.subversive">IP Log</a> - The information about project committers and external contributors, list of approved project dependencies and other legal information.</li>
		</ul>
	</div>
	
	<div id="rightcolumn">
        $sidebar		
	</div>	

EOHTML;
		

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