<?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="https://dev.eclipse.org/svnroot/technology/org.eclipse.subversive/">Repository</a> - Get an access to the Subversive source code.</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);
?>