From 75471ecd99d1b3583a2c87dd71b56a72358de4f2 Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sun, 30 Jun 2019 20:41:08 +0000 Subject: [PATCH] Reuse FTP connection if possible --- lib/output.php | 31 ++++++++++++++++++++++++++++++- 1 files changed, 30 insertions(+), 1 deletions(-) diff --git a/lib/output.php b/lib/output.php index d3fd6d9..fe7b73e 100644 --- a/lib/output.php +++ b/lib/output.php @@ -1,11 +1,32 @@ <?php +function createMapping($db, $mapFunction, $saveConfig = FALSE) { + $mapping = []; + foreach($db->getAll() as $vehicle) { + $mapping[$vehicle['id']] = $mapFunction($vehicle['num']); + } + + if($saveConfig) { + $json = json_encode($mapping); + if(!file_put_contents($saveConfig['result_temp'], $json)) { + throw new Exception('Result save failed'); + } + rename($saveConfig['result_temp'], $saveConfig['result']); + } + + return $mapping; +} + function createVehiclesList($trips, $mapping, $saveConfig = FALSE) { $lines = []; + $vehicles = []; foreach($trips as $trip) { + $vehicle = $mapping[$trip['id']] ?? []; + $vehicle += ['trip' => $trip['id']]; $lines[$trip['line']][] = [ 'trip' => $trip, - 'vehicle' => $mapping[$trip['id']] ?? [], + 'vehicle' => $vehicle, ]; + $vehicles[$vehicle['type'] ?? '?'][] = $vehicle; } foreach($lines as &$line) { usort($line, function($a, $b) { @@ -14,6 +35,13 @@ } unset($line); ksort($lines); + foreach($vehicles as &$vehicle) { + usort($vehicle, function($a, $b) { + return (substr($a['num'] ?? '', 2) <=> substr($b['num'] ?? '', 2)); + }); + } + unset($vehicle); + ksort($vehicles); if($saveConfig) { $twigLoader = new \Twig\Loader\FilesystemLoader(__DIR__.'/../templates'); @@ -21,6 +49,7 @@ $vehiclesHtml = $twig->render('vehicles.html', [ 'lines' => $lines, + 'vehicles' => $vehicles, 'prefix' => $saveConfig['prefix'], ]); if(!file_put_contents($saveConfig['result_vehicles_temp'], $vehiclesHtml)) { -- Gitblit v1.9.1