<?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");

// Define your project-wide Nav bars here.
$Nav = new Nav();
$Nav->addNavSeparator("Getting Started", "/getting_started/");
$Nav->addCustomNav("New to Eclipse?", "/getting_started", "_self", 1);
$Nav->addCustomNav("Download", "/downloads", "_self", 1);
$Nav->addCustomNav("Eclipse articles", "https://wiki.eclipse.org/Eclipse_Corner", "_self", 1);
$Nav->addCustomNav("Eclipse Forums", "/forums/", "_self", 1);
$Nav->addCustomNav("Resources", "/resources/", "_self", 1);
$Theme->setNav($Nav);