<?php
/**
 * Copyright (c) 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:
 *    Christopher Guindon (Eclipse Foundation) - initial API and implementation
 *
 * SPDX-License-Identifier: EPL-2.0
 */
require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");

$Nav = new Nav();
$theme = NULL;

// Define your project-wide Nav bars here.
$Nav->addNavSeparator("Users", "/users/");
$Nav->addCustomNav("Community Resources", "//wiki.eclipse.org/Eclipse_Articles,_Tutorials,_Demos,_Books,_and_More", "_self", 1);
$Nav->addCustomNav("Events", "//events.eclipse.org", "_self", 1);
$Nav->addCustomNav("Eclipse Marketplace", "//marketplace.eclipse.org", "_self", 1);
$Nav->addCustomNav("RCP Applications Catalogue", "/resources/?sort=date&category=RCP&type=study", "_self", 1);
$Nav->addCustomNav("Awards &amp; opinions", "/community/awards.php", "_self", 1);
$Nav->addNavSeparator("News","/community/news/");
$Nav->addCustomNav("Eclipse News", "eclipsenews.php", "_self", 1);
$Nav->addCustomNav("Eclipse in the News", "eclipseinthenews.php", "_self", 1);
$Theme->setNav($Nav);