<?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());    # All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# buzz.php
	#
	# Author: 		Nathan Gervais
	# Date:			2005-06-16
	#
	# Description: Ganymede Buzz page.
	#
	#
	#****************************************************************************

	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Ganymede  Buzz";
	$pageKeywords	= "ganymede, release, ganymede release train, buzz, press";
	$pageAuthor		= "Nathan Gervais";
	$App->PageRSS = "/home/eclipseinthenews.rss";
	$App->PageRSSTitle = "Eclipse In The News";
	# 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", 1);
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 1);

	# End: page-specific settings
	#
		
	# The next two lines load the $news variable with the HTML equivalent to the contents of the eclipsenews.rss file.
	# Reference the $news variable to drop the HTML into your content...
	$documentRoot = $_SERVER['DOCUMENT_ROOT'];
	require_once('scripts/functions.php');
	require_once('scripts/blogs.php');
	$filepath = $documentRoot . '/community/news/2005inthenewsarchive.rss';
	$eclipsenews = rss_to_news_html($filepath, 'ganymede',100, false);
	$ganymedeBlogs = ganymedeBlogs(10);
	# Paste your HTML content between the EOHTML markers!	
	ob_start();
	?>
	<link rel="stylesheet" type="text/css" href="layout.css" media="screen" />
	<body>
	<div id="midcolumn">
		<img src="http://dev.eclipse.org/large_icons/devices/network-wireless.png">
		<h1 class="inline"><?=$pageTitle;?></h1>
				
		<div class="homeitem3col">
			<h3>Community Buzz</h3>
			<?=$eclipsenews;?>
		</div>
	</div>
	<div id="rightcolumn">
		<div class='sideitem'>
			<h6>Related Links</h6>
			<ul>
				<li><a href="map.php">Ganymede Around the World</a></li>
				<li><a href="friends.php">Friends of Ganymede</a></li>
			</ul>
		</div>
	</div>
</div>

<?	
	$html = ob_get_clean();
	$html = mb_convert_encoding($html, "HTML-ENTITIES", "auto");
	# Generate the web page
	$App->Promotion = TRUE;
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
