www/export_mashs.php

Mon, 11 May 2020 17:32:08 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 11 May 2020 17:32:08 +0200
changeset 671
4b54d6f79d25
parent 563
acdd54144838
child 788
812ce4c5da2a
permissions
-rw-r--r--

Version 0.3.33 Added websockets framework. Added fermenter status messages to the websockets broadcast.

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