www/export_styles.php

Wed, 06 May 2020 14:14:14 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 06 May 2020 14:14:14 +0200
changeset 667
1246550451ca
parent 563
acdd54144838
child 779
67b1a07f4fd8
permissions
-rw-r--r--

Removed the last compressed css file. Reworked all mash steps, implemented deconction steps. Added calculations for infuse amounts and decoctions amounts. The mash steps are now manually sorted in the editor grids to have full control over the steps order. Display errors in red in the grid. Updated beerxml export, the product checklist and print output of the products and recipes for all these mash steps changes.

<?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_styles ORDER BY style_guide,style_letter,name");
$row = mysqli_fetch_array($result);


$styletype = array( 'Lager', 'Ale', 'Mead', 'Wheat', 'Mixed', 'Cider' );


/*
 * 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, 'STYLES');
while ($row = mysqli_fetch_array($result)) {

	xmlwriter_start_element($xw, 'STYLE');

	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['category'])) {
		xmlwriter_start_element($xw, 'CATEGORY');
		xmlwriter_text($xw, $row['category']);
		xmlwriter_end_element($xw);

		xmlwriter_start_element($xw, 'CATEGORY_NUMBER');
		xmlwriter_text($xw, $row['category_number']);
		xmlwriter_end_element($xw);
	}

	xmlwriter_start_element($xw, 'STYLE_LETTER');
	xmlwriter_text($xw, $row['style_letter']);
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'STYLE_GUIDE');
	xmlwriter_text($xw, $row['style_guide']);
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'TYPE');
	xmlwriter_text($xw, $styletype[$row['type']]);
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'OG_MIN');
	xmlwriter_text($xw, sprintf("%.6f",floatval($row['og_min'])));
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'OG_MAX');
	xmlwriter_text($xw, sprintf("%.6f",floatval($row['og_max'])));
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'FG_MIN');
	xmlwriter_text($xw, sprintf("%.6f",floatval($row['fg_min'])));
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'FG_MAX');
	xmlwriter_text($xw, sprintf("%.6f",floatval($row['fg_max'])));
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'IBU_MIN');
	xmlwriter_text($xw, sprintf("%.3f",floatval($row['ibu_min'])));
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'IBU_MAX');
	xmlwriter_text($xw, sprintf("%.3f",floatval($row['ibu_max'])));
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'COLOR_MIN');
	xmlwriter_text($xw, sprintf("%.3f",ebc_to_srm(floatval($row['color_min']))));
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'COLOR_MAX');
	xmlwriter_text($xw, sprintf("%.3f",ebc_to_srm(floatval($row['color_max']))));
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'CARB_MIN');
	xmlwriter_text($xw, sprintf("%.4f",floatval($row['carb_min'])));
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'CARB_MAX');
	xmlwriter_text($xw, sprintf("%.4f",floatval($row['carb_max'])));
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'ABV_MIN');
	xmlwriter_text($xw, sprintf("%.4f",floatval($row['abv_min'])));
	xmlwriter_end_element($xw);

	xmlwriter_start_element($xw, 'ABV_MAX');
	xmlwriter_text($xw, sprintf("%.4f",floatval($row['abv_max'])));
	xmlwriter_end_element($xw);

	if (strlen($row['notes'])) {
		xmlwriter_start_element($xw, 'NOTES');
        	xmlwriter_text($xw, $row['notes']);
        	xmlwriter_end_element($xw);
	}

        if (strlen($row['profile'])) {
                xmlwriter_start_element($xw, 'PROFILE');
                xmlwriter_text($xw, $row['profile']);
                xmlwriter_end_element($xw);
        }

        if (strlen($row['ingredients'])) {
                xmlwriter_start_element($xw, 'INGREDIENTS');
                xmlwriter_text($xw, $row['ingredients']);
                xmlwriter_end_element($xw);
        }

        if (strlen($row['examples'])) {
                xmlwriter_start_element($xw, 'EXAMPLES');
                xmlwriter_text($xw, $row['examples']);
                xmlwriter_end_element($xw);
        }

	xmlwriter_end_element($xw);	// STYLE
}
xmlwriter_end_element($xw);	// STYLES

$beerxml = xmlwriter_output_memory($xw);

Header('Content-type: text/xml');
header('Content-Disposition: attachment; filename="styles.xml"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Pragma: no-cache');
header('Content-Length: '.strlen($beerxml));
exit($beerxml);

mercurial