<?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());
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Dynamic Languages Toolkit Installation";
	$pageKeywords	= "dltk, tcl, ruby, python, javascript, languages, eclipse, ide";
	$pageAuthor		= "Andrey Platov";
	# End: page-specific settings
	# 
		
	ob_start();
?>

<div id="maincontent">
	<div id="midcolumn">
		<h1><?=$pageTitle?></h1>
<h3>Installing from update site</h3>
<ul>
	<li>Stable builds
		<ul>
			<li><tt>http://download.eclipse.org/releases/indigo/</tt> - if using Eclipse 3.7 / Indigo this update site is already listed in Eclipse as 'Indigo Update site'</li>
			<li><tt>http://download.eclipse.org/technology/dltk/updates/</tt></li>
		</ul>
	</li>
	<li>Nightly builds
		<ul>
			<li><tt>http://download.eclipse.org/technology/dltk/updates-dev/4.0-nightly/</tt></li>
		</ul>
	</li>
</ul>

<h3>Downloading zip bundles manually</h3>
<p>Navigate to the <a href="http://download.eclipse.org/technology/dltk/downloads/drops/R3.0/S-3.0.1-201108261011/">DLTK 3.0.1 download area</a></p>
<p>Download appropriate zip bundles and their dependencies and unzip into subfolders of your installation <tt>dropins/</tt> folder.</p>

<h2>Install other builds</h2>

<p>Navigate to <a href="http://download.eclipse.org/technology/dltk/downloads/">DTLK downloads</a> and select any of the builds</p>
 
<hr class="clearer" />
</div>
<? include("_rightColumn.php"); ?>
</div>
<?
	$html = ob_get_contents();
	ob_end_clean();
	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
