system(sprintf("rm -rf %s", $dir));
}
+function latexspecialchars($string)
+{
+ $map = array(
+ "#"=>"\\#",
+ "$"=>"\\$",
+ "%"=>"\\%",
+ "&"=>"\\&",
+ "~"=>"\\~{}",
+ "_"=>"\\_",
+ "^"=>"\\^{}",
+ "\\"=>"\\textbackslash",
+ "{"=>"\\{",
+ "}"=>"\\}",
+ );
+ return preg_replace("/([\^\%~\\\\#\$%&_\{\}])/e", "\$map['$1']", $string);
+}
+
function latex_encode($text)
{
- return str_replace(array("\\",'%'),
- array('\\','\%'),
- utf8_decode($text));
+ return latexspecialchars(utf8_decode($text));
}
function ordersatz_archive($id, $title, $filename)
fwrite($f, sprintf('\newcommand{\datum}{%d.%d.%d}'."\n", $d[2], $d[1], $d[0]));
fclose($f);
- $sql = sprintf("SELECT artnr,gang,metro_vpe.short AS vpname,menge,bezeichnung,hersteller,anzahl " .
+ $sql = sprintf("SELECT artnr,gang,metro_vpe.short AS vpname,menge,bezeichnung,hinweis,hersteller,anzahl " .
"FROM metro_ordersatz_pos " .
"JOIN metro_artikel ON artikel = metro_artikel.id " .
"JOIN metro_abteilung ON abteilung = metro_abteilung.id " .
$f = fopen(FNAME_ITEMS, 'w');
foreach ($result as $row) {
- $bez = $row['bezeichnung'];
+ $bez = latex_encode($row['bezeichnung']);
if (strlen($row['hersteller']))
- $bez .= ' (' . $row['hersteller'] . ')';
+ $bez .= ' (' . latex_encode($row['hersteller']) . ')';
+ if (strlen($row['hinweis']))
+ $bez .= sprintf("\\newline\\textbf{%s}", latex_encode($row['hinweis']));
- fwrite($f, sprintf('\order{%d}{%d}{%s %s}{%s}'."\n",
+ fwrite($f, sprintf('\order{%d}{%s}{%s %s}{%s}'."\n",
$row['anzahl'],
- $row['artnr'],
+ $row['artnr'] ? (int)$row['artnr'] : '',
$row['menge'],
- latex_encode($bez),
+ $bez,
latex_encode($row['vpname'])));
}
if ($ret !== true)
return $ret;
+ if (empty($satz[0]['email']))
+ $satz[0]['email'] = 'joey@infodrom.org';
+
$cmd = sprintf("faxspool -f %s %s %s > /dev/null 2>&1",
$satz[0]['email'],
FAXNUMBER,
$satz[0]['koch']);
mail_attach($satz[0]['email'],
- 'Ordersatz ' . $satz[0]['name'],
+ mb_encode_mimeheader(utf8_decode('Ordersatz ' . $satz[0]['name']),'latin1'),
$satz[0]['email'],
- 'Infodrom ' . $satz[0]['koch'],
+ mb_encode_mimeheader(utf8_decode('Infodrom ' . $satz[0]['koch']),'latin1'),
array($dir . '/ordersatz.pdf'),
$message);