<?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/mars/</tt> - if using Eclipse 4.5 / Mars this update site is already listed in Eclipse as 'Mars Update site'</li>
			<li><tt>http://download.eclipse.org/technology/dltk/updates-dev/5.4/</tt> - 5.4 release</li>
			<li><tt>http://download.eclipse.org/technology/dltk/updates-dev/latest/</tt> - latest</li>
		</ul>
	</li>
	<li>Nightly builds
		<ul>
			<li><tt>http://download.eclipse.org/technology/dltk/updates-dev/5.5/</tt> - 5.5 nightly</li>
			<li><tt>http://download.eclipse.org/technology/dltk/updates-dev/latest-nightly/</tt> - latest nightly</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);
?>
