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