$value) { $candidate[$value] = $data[$key]; } $candidateData[] = $candidate; } fclose($handle); } else { error_log('Error opening candidates file'); exit(1); } } else { error_log("The specified candidates.csv file does not exist, will not show any candidates for " . $councilData["shortName"] . "."); } if (isset($options['media-file'])) { $mediaFileContents = file_get_contents($options['media-file']); } else { error_log("Error: Missing required option '--media-file'."); exit(1); } $mediaData = json_decode($mediaFileContents, true); // Merge elected data (if present) into candidate objects if (isset($options['candidates-elected-file'])) { $candidatesElectedFile = $options['candidates-elected-file']; if (file_exists($candidatesElectedFile)) { if (($handle = fopen($candidatesElectedFile, "r")) !== FALSE) { $headers = fgetcsv($handle); while (($data = fgetcsv($handle)) !== FALSE) { $electedCandidate = []; foreach ($headers as $key => $value) { $electedCandidate[$value] = $data[$key]; } foreach ($candidateData as &$candidate) { if ($candidate["Candidate Name"] == $electedCandidate["Candidate Name"]) { if ($electedCandidate["Elected"] == "y") { $candidate["Elected"] = True; } break; } } } fclose($handle); } else { error_log('Error opening candidates elected file'); exit(1); } } else { error_log("The specified candidates elected file does not exist, will not show any elected candidates for " . $councilData["shortName"] . "."); } } $renderer = new SPLPageRenderer(); $pageContent = $renderer->renderCouncilPage($councilData, $candidateData, $mediaData); if ($pageContent === null) { exit(2); } echo $pageContent; exit(0);