<?php
/*******************************************************************************
 * Copyright (c) 2014 Eclipse Foundation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Christopher Guindon (Eclipse Foundation) - Initial implementation
 *******************************************************************************/

  # Set the theme for your project's web pages.
  $theme = "solstice";

  # Define your project-wide Nav bars here.
  # Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank).
  $Nav->addNavSeparator("Project Management", "/ecd");
  $Nav->addNavSeparator("Project Charter", "https://wiki.eclipse.org/ECD/Charter#Eclipse_Cloud_Development_Charter");
  $Nav->addNavSeparator("Project Wiki", "https://wiki.eclipse.org/ECD");
  $Nav->addNavSeparator("Project FAQ", "/ecd/content/en_faq.php");
  $Nav->addNavSeparator("Sub-Projects", "/ecd/#sub-projects");

  $Nav->addCustomNav("Che", "http://eclipseche.org/", "_self", NULL);
  $Nav->addCustomNav("Dirigible", "http://eclipse.org/dirigible", "_self", NULL);
  $Nav->addCustomNav("Flux", "http://eclipse.org/flux", "_self", NULL);
  $Nav->addCustomNav("Orion", "http://eclipse.org/orion", "_self", NULL);
