<?php
/**
 * Copyright (c) 2018 Eclipse Foundation.
 *
 * 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/app.class.php");
$App = new App();
$Theme = $App->getThemeClass();
include ($App->getProjectCommon());

$pageTitle = "Eclipse Foundation Working Group Charter - openGENESIS";
$Theme->setPageTitle($pageTitle);
$Theme->setPageKeywords("openGENESIS, wg, charter, eclipse");
$Theme->setPageAuthor("Ralph Mueller");

ob_start();
include ("content/en_" . $App->getScriptName());
$html = ob_get_clean();

$Theme->setHtml($html);
$Theme->setDisplayHeaderTitle(TRUE);
$Theme->generatePage();