<?php
/**
 * Copyright (c) 2015, 2018 Eclipse Foundation.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *   Nathan Gervais (Eclipse Foundation) - Initial implementation
 *   Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */

require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");

$Nav = new Nav();
$Nav->addNavSeparator("Galileo", "");
$Nav->addCustomNav("Download Now", "/downloads/packages/release/helios/sr2", "_self", 1);
$Nav->addCustomNav("Galileo Projects", "/projects/releases/releases.php?release=galileo", "_self", 1);
$Nav->addCustomNav("Blogathon", "/galileo/blogathon/reviews.php", "_self", 1);
$Nav->addCustomNav("Virtual Conference", "/galileo/galileoinaction.php", "_self", 1);
$Nav->addCustomNav("Friends of Galileo", "/galileo/friends.php", "_self", 1);
$Theme->setNav($Nav);

// Set the theme for your project's web pages.
// See the Committer Tools "How Do I" for list of themes
// https://dev.eclipse.org/committers/
// Optional: defaults to system theme
$theme = NULL;
$App->Promotion = FALSE;

$App->setOutDated('2011-11-11', '<a href="https://projects.eclipse.org/releases/galileo">Galileo</a> is a past version of Eclipse. Please visit our <a href="/downloads/">download</a> page for the latest version of Eclipse. ');
