From 3727641cee87df1575fa54973de4c0ba0363477a Mon Sep 17 00:00:00 2001 From: Aria <aria@suma-ev.de> Date: Mon, 22 May 2017 13:26:07 +0200 Subject: [PATCH] Dateien lassen sich herunterladen, fehlt noch das archivieren und runterladen mehrerer Dateien --- app/Http/Controllers/MailController.php | 43 ++++++++++++++++---- resources/views/languages/synoptic.blade.php | 3 +- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/MailController.php b/app/Http/Controllers/MailController.php index 2f12fe1e9..d850dbc93 100644 --- a/app/Http/Controllers/MailController.php +++ b/app/Http/Controllers/MailController.php @@ -262,17 +262,38 @@ class MailController extends Controller $editedFiles[$langdir] = $filename; } + #Überspringe Datei, falls diese nicht bearbeitet worden ist + if(!isset($editedFiles[$langdir])) { + continue; + } #Key verarbeiten, sodass er nur den eigentlichen Keynamen enthält $key = $this->processKey($key); - $data[$langdir][$key] = $value; + + #Aufdröseln von 2D-Arrays + if (!strpos($key, "#")) { + $data[$langdir][$key] = $value; + + } else { + $ref = &$data; + do { + $ref = &$ref[$langdir][substr($key, 0, strpos($key, "#"))]; + $key = substr($key, strpos($key, "#") + 1); + } while (strpos($key, "#")); + $ref = &$ref[$key]; + $ref = $value; + } } - $output = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); - $output = preg_replace("/\{/si", "[", $output); - $output = preg_replace("/\}/si", "]", $output); - $output = preg_replace("/\": ([\"\[])/si", "\"\t=>\t$1", $output); - - $output = "<?php\n\nreturn $output;\n"; + #Erstelle Ausgabedateien + foreach($data as $lang => $entries) { + $output[$lang] = json_encode($entries, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); + $output[$lang] = preg_replace("/\{/si", "[", $output[$lang]); + $output[$lang] = preg_replace("/\}/si", "]", $output[$lang]); + $output[$lang] = preg_replace("/\": ([\"\[])/si", "\"\t=>\t$1", $output[$lang]); + $output[$lang] = "<?php\n\nreturn $output[$lang];\n"; + } + + $ex = []; if ($exclude !== "") { try { @@ -297,7 +318,13 @@ class MailController extends Controller $ex = base64_encode(serialize($ex)); - return redirect(url('synoptic', ['exclude' => $ex])); + $zip = new ZipArchive(); + + return response()->make($output["fr"]) + ->header("Content-type","text/plain; charset=utf-8") + ->header("Content-disposition","attachment; filename=\"".$filename."\""); + //return response()->download($output["fr"], $filename); + //return redirect(url('synoptic', ['exclude' => $ex])); } diff --git a/resources/views/languages/synoptic.blade.php b/resources/views/languages/synoptic.blade.php index 2583813ae..7e410df17 100644 --- a/resources/views/languages/synoptic.blade.php +++ b/resources/views/languages/synoptic.blade.php @@ -52,7 +52,8 @@ <p>{!! trans('languages.hinweis.3') !!}</p> <p>{!! trans('languages.email') !!}</p> --> - <button class="btn btn-success" type="submit" form="submit">Daten übermitteln</button> + <button class="btn btn-success" type="submit" form="submit">Dateien herunterladen</button> + <button class="btn btn-success" type="submit" form="submit">Nächste Seite</button> <script type="text/javascript" src="{{ elixir('js/lib.js') }}"></script> <script type="text/javascript" src="{{ elixir('js/editLanguage.js') }}"></script> @endsection -- GitLab