<?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 implementation
 *
 * SPDX-License-Identifier: EPL-2.0
 */

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

$App = new App();
$Theme = $App->getThemeClass('eclipse_ide');
$Theme->setPageAuthor('Eclipse Foundation');

if (empty($pageTitle)) {
  $pageTitle = "New &amp; Noteworthy";
}

if (!isset($Breadcrumb) || !is_a($Breadcrumb, 'Breadcrumb')) {
  $Breadcrumb = new Breadcrumb();
  $items = explode("/", $_SERVER['REQUEST_URI']);

  if (!empty($items[3])) {
    $Breadcrumb->insertCrumbAt(2, $items[2], "/eclipseide/" . $items[2], "_self");
  }
  $Theme->setBreadcrumb($Breadcrumb);
}

// Custom theme variables
$variables = array();
$variables['main_container_classes'] = 'container-full container-photon';
$variables['btn_cfa']['text'] = '<i class="fa fa-star"></i> Donate';
$variables['btn_cfa']['href'] = 'https://www.eclipse.org/donate/';
$variables['btn_cfa']['class'] = 'btn btn-huge btn-secondary';
$Theme->setThemeVariables($variables);