Support PDF export of past orders as well
[misc/hallinta-metro] / utils.php
index 8e53ad0..1784acc 100644 (file)
--- a/utils.php
+++ b/utils.php
@@ -36,19 +36,23 @@ function rm_tempdir($dir)
 
 function latexspecialchars($string)
 {
-  $map = array(
-              "#"=>"\\#",
-              "$"=>"\\$",
-              "%"=>"\\%",
-              "&"=>"\\&",
-              "~"=>"\\~{}",
-              "_"=>"\\_",
-              "^"=>"\\^{}",
-              "\\"=>"\\textbackslash",
-              "{"=>"\\{",
-              "}"=>"\\}",
-              );
-  return preg_replace("/([\^\%~\\\\#\$%&_\{\}])/e", "\$map['$1']", $string);
+  return preg_replace_callback("/([\^\%~\\\\#\$%&_\{\}])/",
+                              function($matches) {
+                                $map = array(
+                                             "#"=>"\\#",
+                                             "$"=>"\\$",
+                                             "%"=>"\\%",
+                                             "&"=>"\\&",
+                                             "~"=>"\\~{}",
+                                             "_"=>"\\_",
+                                             "^"=>"\\^{}",
+                                             "\\"=>"\\textbackslash",
+                                             "{"=>"\\{",
+                                             "}"=>"\\}",
+                                             );
+                                return $map[$matches[0]];
+                              },
+                              $string);
 }
 
 function latex_encode($text)
@@ -221,12 +225,12 @@ function ordersatz_write($id, $dir, $send)
 
     $message = sprintf("Hallo %s!\n\nDer angehängte Ordersatz wurde gerade an Metro Oldenburg verschickt.\n" .
                       "Eine Bestätigung über den Versand kommt per Mail.\n\n",
-                      $satz[0]['koch']);
+                      utf8_decode($satz[0]['koch']));
 
     mail_attach($satz[0]['email'],
-               mb_encode_mimeheader(utf8_decode('Ordersatz ' . $satz[0]['name']),'latin1'),
+               mb_encode_mimeheader('Ordersatz ' . $satz[0]['name'],'latin1'),
                $satz[0]['email'],
-               mb_encode_mimeheader(utf8_decode('Infodrom ' . $satz[0]['koch']),'latin1'),
+               mb_encode_mimeheader('Infodrom ' . $satz[0]['koch'],'latin1'),
                array($dir . '/ordersatz.pdf'),
                $message);