--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/export_styles.php Thu Dec 05 22:47:40 2019 +0100 @@ -0,0 +1,151 @@ +<?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);