blob: c65431d24851847c05300baca599e49aa4742336 [file] [log] [blame]
<?php
/**
* *****************************************************************************
* Copyright (c) 2023 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://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Wayne Beaton (Eclipse Foundation) - initial API and implementation
* *****************************************************************************
*/
require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
$App = new App();
$Nav = new Nav();
$Menu = new Menu();
include ($App->getProjectCommon());
$pageTitle = "Eclipse Foundation Open Source Project Timeline";
$pageAuthor = "Wayne Beaton";
$pageKeywords = "eclipse,scm,vcs,dvcs,git,cvs,svn";
require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/classes/Project.class.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/classes/common.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/classes/database.inc';
require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/classes/debug.php';
$sql = <<< EOQ
SELECT
year(min(pp.ActiveDate)) as start,
p.ProjectId as id,
p.Name as name
from Projects as p
join PeopleProjects as pp on p.ProjectId=pp.ProjectId and pp.Relation='cm'
where
!p.IsComponent
and p.ProjectId != 'root' and p.ProjectId not like 'foundation%'
group by id
order by start, id
EOQ;
$timeline = array();
query('foundation', $sql, array(), function($row) use (&$timeline) {
if ($project = Project::getProject($row['id']))
$timeline[$row['start']][] = $project;
});
ob_start();
?>
<div id="maincontent">
<div id="midcolumn">
<h1><?php echo $pageTitle; ?></h1>
<p>Eclipse open source project creation by year.</p>
<?php
foreach($timeline as $year => $projects) {
echo "<h2>{$year}</h2>\n";
echo "<ul>\n";
foreach($projects as $project) {
$line = $project->getFormalName();
if (!$project->isArchived())
$line = "<a href=\"{$project->getUrl()}\">{$line}</a>";
echo "<li>{$line}</li>\n";
}
echo "</ul>\n";
}
?>
</div>
</div>
<?php
$html = ob_get_contents();
ob_end_clean();
$App->generatePage(NULL, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>