Wed, 04 Mar 2020 10:48:21 +0100
Workaround for hang during startup. Changed order of displayed fields on the yeast tab. Tooltip text changes. More decimals on the checklist for misc ingredients. More decimals for the starter on product print.
<?php require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); $link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); if (! $link) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } if (! mysqli_set_charset($link, "utf8" )) { echo "error"; return 1; } $result = mysqli_query($link, "SELECT * FROM profile_mash ORDER BY name"); $row = mysqli_fetch_array($result); $mashsteptype = array( 'Infusion', 'Temperature', 'Decoction' ); /* * Create beerxml output */ $xw = xmlwriter_open_memory(); xmlwriter_set_indent($xw, 1); $res = xmlwriter_set_indent_string($xw, ' '); xmlwriter_start_document($xw, '1.0', 'UTF-8'); xmlwriter_start_element($xw, 'MASHS'); while ($row = mysqli_fetch_array($result)) { xmlwriter_start_element($xw, 'MASH'); xmlwriter_start_element($xw, 'VERSION'); xmlwriter_text($xw, '1'); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'NAME'); xmlwriter_text($xw, $row['name']); xmlwriter_end_element($xw); if (strlen($row['notes'])) { xmlwriter_start_element($xw, 'NOTES'); xmlwriter_text($xw, $row['notes']); xmlwriter_end_element($xw); } xmlwriter_start_element($xw, 'MASH_STEPS'); $arr = json_decode($row['steps'], true); foreach($arr as $item) { //foreach element in $arr xmlwriter_start_element($xw, 'MASH_STEP'); xmlwriter_start_element($xw, 'VERSION'); xmlwriter_text($xw, '1'); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'NAME'); xmlwriter_text($xw, $item['step_name']); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'TYPE'); xmlwriter_text($xw, $mashsteptype[$item['step_type']]); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'STEP_TEMP'); xmlwriter_text($xw, sprintf("%.4f",floatval($item['step_temp']))); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'STEP_TIME'); xmlwriter_text($xw, sprintf("%.3f",floatval($item['step_time']))); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'RAMP_TIME'); xmlwriter_text($xw, sprintf("%.3f",floatval($item['ramp_time']))); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'END_TEMP'); xmlwriter_text($xw, sprintf("%.4f",floatval($item['end_temp']))); xmlwriter_end_element($xw); xmlwriter_end_element($xw); // MASH_STEP } xmlwriter_end_element($xw); // MASH_STEPS xmlwriter_end_element($xw); // MASH } xmlwriter_end_element($xw); // MASHS $beerxml = xmlwriter_output_memory($xw); Header('Content-type: text/xml'); header('Content-Disposition: attachment; filename="mashs.xml"'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Pragma: no-cache'); header('Content-Length: '.strlen($beerxml)); exit($beerxml);