<?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());    
	# All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# template.php
	#
	# Author: 		Igor Vinnykov
	# Date:			2008-07-01
	#
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse Subversive - Resources";
	$pageKeywords	= "Subversive, Subversion, SVN, Team Provider, resources, user guid";
	$pageAuthor		= "Igor Vinnykov";
		
	include("_projectCommon.php");    # All on the same line to unclutter the user's desktop'
	
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<STYLE TYPE="text/css">
		.resourcesTable {
		    padding: 0px;
		    border: 1px solid black;
		    border-top:0px;
		}
		
		.resourcesHeader {
			background-image:url(images/bar.jpg);
			border-top:1px solid black;
			font-size:110%;
			font-weight:bold;
		}
		
		.resourcesData td {
		    border-top: 1px solid darkgray;
		    vertical-align: top;
		}
		
		.paddingLeft {
			padding-left:7px;
		}
		
	</STYLE>
	
	<div id="midcolumn">
	<br/>
	<h1>Subversive Resources</h1>
	
	<table class="resourcesTable" width="100%" cellspacing="0">
		<tr>
			<td width="80%" class="resourcesHeader">
				Title
			</td>
			<td width="10%" class="resourcesHeader">
				Type
			</td>
			<td width="10%" class="resourcesHeader">
				Date
			</td>								
		</tr>
		
		<tr class="resourcesData">
			<td width="80%">
				<a href="http://www.vogella.de:80/articles/EclipseSubversive/article.html">Subversive Installation in Eclipse 3.5, by Lars Vogel</a>
			</td>
			<td width="10%" class="paddingLeft" valign="middle" align="center">
				<img title="Article" alt="article" src="images/article.png"/>
			</td>
			<td width="10%" valign="middle" align="center" nowrap="true">
				Jul 05, 2009
			</td>						
		</tr>
		
		<tr class="resourcesData">
			<td width="80%">
				<a href="http://www.vogella.de/blog/2009/07/08/modify-eclipse-code/">How to Create a Patch for Subversive, by Lars Vogel</a>
			</td>
			<td width="10%" class="paddingLeft" valign="middle" align="center">
				<img title="Article" alt="article" src="images/article.png"/>
			</td>
			<td width="10%" valign="middle" align="center" nowrap="true">
				Jul 08, 2009
			</td>						
		</tr>

		<tr class="resourcesData">
			<td width="80%">
				<a href="http://wiki.eclipse.org/Subversive_PDE_Fetch">Subversive PDE Fetch, by Mickael Istria</a>
			</td>
			<td width="10%" class="paddingLeft" valign="middle" align="center">
				<img title="Article" alt="article" src="images/article.png"/>
			</td>
			<td width="10%" valign="middle" align="center" nowrap="true">
				May 15, 2009
			</td>						
		</tr>
				
	</table>
	
	</div>

	<div id="rightcolumn">
        $sidebar		
	</div>	

EOHTML;


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