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