www/export_mashs.php

Sun, 23 May 2021 16:41:35 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 23 May 2021 16:41:35 +0200
changeset 752
f68e3bbc1ada
parent 563
acdd54144838
child 788
812ce4c5da2a
permissions
-rw-r--r--

Fermentables, hops, miscs and yeast now have tests against the added moment with the brewing stage. Added to inventory edit rows, delete rows, and pick choices for the moment to add or edit. Some more popups to explain certain blocks.

<?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);

mercurial