blob: dce80321eca785818a29fa29b74f17a32bc2d38c [file] [log] [blame]
<?php
/**
* Copyright (c) 2019 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:
* Eric Poirier (Eclipse Foundation) - initial API and implementation
*
* SPDX-License-Identifier: EPL-2.0
*/
class SimultaneousRelease {
public $file_path = "";
/**
* Get the New and Noteworthy links from the list of projects
*
* @return array
*/
function getNewAndNoteworthyLinks() {
$projects = $this->getProjects();
if (empty($projects)) {
return array();
}
if (!function_exists("sortByProjectName")) {
function sortByProjectName($a, $b) {
$a = $a['project_name'];
$b = $b['project_name'];
if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
}
}
uasort($projects, 'sortByProjectName');
$links = array();
foreach ($projects as $project) {
if (empty($project['project_name']) || empty($project['new_and_noteworthy_url']) || !filter_var($project['new_and_noteworthy_url'], FILTER_VALIDATE_URL)) {
continue;
}
$links[] = '<a href="'. $project['new_and_noteworthy_url'] .'">'. $project['project_name'] .'</a>';
}
return $links;
}
/**
* Get a list of the projects that contributed to the Simultaneous Release
*
* @return array
*/
public function getProjects() {
$path = $this->getFilePath();
if (empty($path)) {
return array();
}
$json_data = json_decode(file_get_contents($path), TRUE);
if (!empty($json_data)) {
$json_data = reset($json_data);
if (!empty($json_data['projects'])) {
return $json_data['projects'];
}
}
return array();
}
/**
* Set the file path
*
* @param string $path
*
* @return bool
*/
public function setFilePath($path) {
if (empty($path) || !file_exists($path)) {
return FALSE;
}
$this->file_path = $path;
return TRUE;
}
/**
* Get the file path
*
* @return string
*/
public function getFilePath() {
return $this->file_path;
}
}