<?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";
	$pageKeywords	= "dltk, tcl, ruby, python, javascript, languages, eclipse, ide";
	$pageAuthor		= "Andrey Platov";
	
	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);

	# End: page-specific settings
	# 
		
	ob_start();
?>

<div id="maincontent">
	<div id="midcolumn">
<?/*
		<div style="float:right">
			<a href="http://download.eclipse.org/technology/dltk/downloads/drops/R1.0/S-1.0M7-200905061301/">1.0M7 Released!</b></a><img style="vertical-align:bottom" src="/images/updated.png"/>
		</div>
*/?>
		<h1><?=$pageTitle?></h1>
		<!--h2>Section title</h2-->
		    <p>Dynamic Languages Toolkit (DLTK) is a tool for vendors, researchers, and end-users who rely on dynamic languages. 
		     DLTK is comprised of a set of extensible frameworks designed to reduce the complexity of building full featured
		     development environments for dynamic languages such as PHP and Perl.</p>
		    <p>Besides a set of frameworks DLTK provides exemplary Tcl, Ruby, Javascript and Python development environments ready to use out of the box.</p>  		
		<div class="homeitem">
			<h3>Schedule</h3>
			<ul>
	            <li>June, 2013 - <a href="http://download.eclipse.org/technology/dltk/downloads/drops/R5.0/R-5.0-201306060709/">DLTK 5.0</a><b> - DONE</b></li>
			</ul>
			<ul>
	            <li>June 26, 2012 - <b><a href="http://download.eclipse.org/technology/dltk/downloads/drops/R4.0/R-4.0-201206120903/">DLTK 4.0</a></b> - <b>DONE</b></li>
			</ul>
			<ul>
	            <li>September 6, 2011 - <b><a href="http://download.eclipse.org/technology/dltk/downloads/drops/R3.0/S-3.0.1-201108261011/">DLTK 3.0.1</a></b> - <b>DONE</b></li>
			</ul>
			<ul>
	            <li>June 23, 2010 - <b><a href="http://download.eclipse.org/technology/dltk/downloads/drops/R2.0/R-2.0-201006161315/">DLTK 2.0</a></b> - <b>DONE</b></li>
			</ul>
			<h3>Tutorials</h3>
			<ul>
				<li><a href="http://www.ibm.com/developerworks/edu/os-dw-os-eclipse-octave.html">Use the Dynamic Languages Toolkit (DLTK) to create your own IDE</a></li>
	            <li>Read <a href="http://wiki.eclipse.org/A_guide_to_building_a_DLTK-based_language_IDE">Building an IDE with DLTK</a> Guide.</li>
			</ul>
			<h3>Quick Links</h3>
			<ul>
				<li><a href="http://wiki.eclipse.org/DLTK_Based_Projects">Products and Projects</a> built on DLTK</li>			
	            <li>See <a href="http://live.eclipse.org/node/548">DLTK 0.95 in action</a> (Video) on Eclipse Live.</li>
			</ul>
			<h3>Events</h3>
			<ul>
				<li>DLTK 0.95 released (June 23, 2008). Use <a href="http://download.eclipse.org/technology/dltk/downloads/drops/R0.95/R-0.95-200806230716/">DLTK 0.95 download page</a> or install as a part of <a href="http://www.eclipse.org/ganymede/">Ganymede</a>.</li>
				<li><a href="http://www.eclipsecon.org/2008/?page=sub/&id=270">DLTK Tutorial</a> at EclipseCon 2008, March 17-20, Santa Clara, USA.</li>
				<li>DLTK 0.9 released (June 29, 2007).</li>
				<li><a href="http://www.eclipsecon.org/2007/index.php?page=sub/&id=3721">DLTK Talk</a> at EclipseCon 2007, March 5-8, Santa Clara, USA.</li>
			</ul>
		</div>
		<!--div class="homeitem">
			<h3>News and Events</h3>
			<ul>
				<li>DLTK 0.95 released (June 23, 2008). Use <a href="http://download.eclipse.org/technology/dltk/downloads/drops/R0.95/R-0.95-200806230716/">DLTK 0.95 download page</a> or install as a part of <a href="http://www.eclipse.org/ganymede/">Ganymede</a>.</li>
				<li><a href="http://www.eclipsecon.org/2008/?page=sub/&id=270">DLTK Tutorial</a> at EclipseCon 2008, March 17-20, Santa Clara, USA.</li>
				<li>DLTK 0.9 released (June 29, 2007).</li>
				<li><a href="http://www.eclipsecon.org/2007/index.php?page=sub/&id=3721">DLTK Talk</a> at EclipseCon 2007, March 5-8, Santa Clara, USA.</li>
			</ul>
		</div-->
		<!--div class="homeitem3col">
			<h3>Screencasts. EclipseCon 2007, DLTK Long Talk</h3>
			<ul>
				<li>Eclipse DLTK <a href="http://media.xored.com/eclipsecon2007/dltk-ruby.mov">Ruby IDE</a></li>
				<li>Eclipse DLTK <a href="http://media.xored.com/eclipsecon2007/dltk-javascript.mov">experimental JavaScript IDE</a></li>
				<li>Eclipse DLTK <a href="http://media.xored.com/eclipsecon2007/dltk-mylar.mov">Mylar Integration</a></li>
				<li>Eclipse DLTK <a href="http://media.xored.com/eclipsecon2007/dltk-javascript-jdt.mov">JDT Integration</a></li>
				<li>Eclipse DLTK <a href="http://media.xored.com/eclipsecon2007/dltk-tcl-debug.wmv">Tcl Debugger and Interactive Console</a></li>
			</ul>
		</div-->
		<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);
?>
