| <?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); |
| ?> |