blob: e773e219b099e80b518f9e0d2242fdc5bfe236a2 [file] [log] [blame]
<?php
/*
* Copyright (c) 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/
*
* SPDX-License-Identifier: EPL-2.0
*/
require_once dirname(__FILE__) . '/Project.class.php';
require_once dirname(__FILE__) . '/database.inc';
/**
* Lightweight representation of a release to let us work with release
* data in an abstract manner.
*/
class Release {
public static function getFutureReleases() {
/*
* The ProjectReleases table in the dashboard database contains
* a cache of the release information. This cache is generated by
* the /capture/php/projects.php script in the project-services
* repository.
*/
$sql = "
select
project as id, name, date, url
from ProjectReleases
where date > date(now())
order by date";
$releases = array ();
query ( 'dashboard', $sql, array (), function ($row) use (&$releases) {
if ($project = Project::getProject ( $row ['id'] )) {
$name = $row ['name'];
$releases[] = new Release ( $project, $row );
}
} );
return $releases;
}
var $project;
var $data;
private function __construct(Project $project, $data) {
$this->project = $project;
$this->data = $data;
}
function getId() {
return $this->project->getId ();
}
function getUrl() {
return $this->data['url'];
}
function getName() {
return $this->project->getFormalName () . ' ' . $this->data['name'];
}
function getDate() {
return strtotime ( $this->data['date'] );
}
}