<?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
 */

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

// Custom theme variables
$variables = array();
//$variables['hide_breadcrumbs'] = TRUE;
$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);