<?php
/**
 * Copyright (c) 2005, 2018 Eclipse Foundation and others.
 *
 * 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:
 * Denis Roy (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");

$App->setOutDated('now');

$theme = NULL;

$Nav = new Nav();
$Nav->addNavSeparator("About Us", "../../org/");
$Nav->addCustomNav("Foundation", "../../org/foundation/", "_self", 1);
$Nav->addCustomNav("Governance", "../../org/documents/", "_self", 1);
$Nav->addCustomNav("Legal Resources", "../", "_self", 1);
$Nav->addCustomNav("Press Releases", "../../community/news/eclipsenews.php", "_self", 1);
$Nav->addCustomNav("Contact Us", "../../org/foundation/contact.php", "_self", 1);
$Theme->setNav($Nav);
