<?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.Y 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">
		<h6>Modeling Corner</h6>
		<p>Want to <a href="http://wiki.eclipse.org/index.php/Modeling_Corner">contribute</a> models, projects, files, ideas, utilities, or code to 
		<a href="http://www.eclipse.org/modeling/tmf/">TMF</a> or any other part of the <a href="http://www.eclipse.org/modeling/">Modeling Project</a>? 
		Now you can!</p>
		<p>Have a look, post your comments, submit a link, or just read what others have written. <a href="http://wiki.eclipse.org/index.php/Modeling_Corner">Details here</a>.</p>
	</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);
?>
