<?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());

require($_SERVER["DOCUMENT_ROOT"] . "/modeling/includes/db.php");

ob_start();
?>

<div id="midcolumn">
	<h1>Textual Modeling Framework</h1>
	<?php
	include($_SERVER["DOCUMENT_ROOT"] . "/modeling/includes/index-common.php");
	?>
</div>

<div id="rightcolumn">
	

	<div class="sideitem">
		<h6><a href="https://hudson.eclipse.org/xtext/view/Xtext-Xtend/job/xtext-xtend/rssAll"><img style="float:right" alt="Build Feeds" src="/modeling/images/rss-atom10.gif"/></a>Build News</h6>
		<?php
		include($_SERVER["DOCUMENT_ROOT"] . "/modeling/tmf/scripts/build-status.php");

		$feed = new BuildFeed ( "https://hudson.eclipse.org/xtext/view/Xtext-Xtend/job/xtext-xtend/rssAll" );
		$builds = array_slice($feed->posts, 0, 7);
		foreach ( $builds as $build ) {
			$clDate = gmdate('d M H:i:s', date($build->ts));
			print "<p><img src=\"/modeling/tmf/images/$build->status.png\" alt=\"$build->status\"/>  <a target=\"_blank\" href=\"$build->link\"  title=\"$build->title\">#$build->num</a> $clDate";
			print "</p>\n";
		}
		?>
	</div>
	<div class="sideitem">
		<h6>News on Twitter</h6>
		<a class="twitter-timeline" href="https://twitter.com/xtext" data-widget-id="509687897004318720">@xtext Tweets</a>
		<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
	</div>
	<div class="sideitem" id="related">
		<h6>Related links</h6>
		<ul>
			<li><a href="http://www.eclipse.org/modeling/">Eclipse Modeling</a></li>
			<li>Web: <a href="http://www.eclipse.org/emf/">EMF</a>, 
			<a href="http://www.eclipse.org/modeling/m2t/">M2T</a></li>
			<li>Wiki: <a href="http://wiki.eclipse.org/index.php/Category:EMF">EMF</a>, 
			<a href="http://wiki.eclipse.org/index.php/Category:GMF">GMF</a>,
			<a href="http://wiki.eclipse.org/index.php/Category:M2T">M2T</a></li>
			<li><a href="http://www.eclipse.org/modeling/emf/docs/misc/UsingUpdateManager/UsingUpdateManager.html">Using Update Manager</a></li>
			<li><a href="http://www.eclipse.org/newsgroups/">Eclipse newsgroups</a></li>
		</ul>
	</div>
</div>
<?php
$html = ob_get_contents();
ob_end_clean();

$pageTitle = "Eclipse Modeling - TMF - Home";
$pageKeywords = "Xtext Textual Modeling Domain-specific language DSL"; // TODO: add something here
$pageAuthor = "Sven Efftinge, Dennis Huebner";

$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/modeling/includes/index.css"/>' . "\n");
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
