www/prod_export.php

changeset 301
72bcc7ac60da
parent 300
920419721942
child 302
d0f7b4ab000f
equal deleted inserted replaced
300:920419721942 301:72bcc7ac60da
1 <?php
2 require_once('config.php');
3 require_once('includes/formulas.php');
4 //require_once($_SERVER['DOCUMENT_ROOT'].'/config.php');
5 //require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php');
6
7
8 $link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME);
9 if (! $link) {
10 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
11 }
12 if (! mysqli_set_charset($link, "utf8" )) {
13 echo "error";
14 return 1;
15 }
16
17 //setlocale ( LC_ALL, 'nl_NL.UTF-8');
18 if (isset($_GET["record"]))
19 $record = $_GET["record"];
20 else
21 $record = 78;
22 $result = mysqli_query($link, "SELECT * FROM products WHERE record='".$record."'");
23 $row = mysqli_fetch_array($result);
24
25
26 $recipetype = array( 'Extract', 'Partial Mash', 'All Grain' );
27 $styletype = array( 'Lager', 'Ale', 'Mead', 'Wheat', 'Mixed', 'Cider' );
28 $hoptype = array( 'Bittering', 'Aroma', 'Both' );
29 $hopform = array( 'Pellet', 'Plug', 'Leaf' );
30 $hopuse = array( 'Mash', 'First wort', 'Boil', 'Aroma', 'Whirlpool', 'Dry hop' );
31 $fermentabletype = array( 'Grain', 'Sugar', 'Extract', 'Dry extract', 'Adjunct' );
32 $graintype = array( 'Base', 'Roast', 'Crystal', 'Kilned', 'Sour malt', 'Special', 'No malt' );
33 $yeasttype = array( 'Lager', 'Ale', 'Wheat', 'Wine', 'Champagne' );
34 $yeastform = array( 'Liquid', 'Dry', 'Slant', 'Culture', 'Frozen', 'Bottle' );
35 $yeastuse = array( 'Primary', 'Secondary', 'Tertiary', 'Bottle' );
36 $misctype = array( 'Spice', 'Herb', 'Flavor', 'Fining', 'Water agent', 'Yeast nutrient', 'Other' );
37 $miscuse = array( 'Starter', 'Mash', 'Boil', 'Primary', 'Secondary', 'Bottling' );
38 $mashsteptype = array( 'Infusion', 'Temperature', 'Decoction' );
39
40
41
42 /*
43 * Create beerxml output
44 */
45 $xw = xmlwriter_open_memory();
46 xmlwriter_set_indent($xw, 1);
47 $res = xmlwriter_set_indent_string($xw, ' ');
48
49 xmlwriter_start_document($xw, '1.0', 'UTF-8');
50
51 xmlwriter_start_element($xw, 'RECIPES');
52 xmlwriter_start_element($xw, 'RECIPE');
53
54 // Recipe basics
55 xmlwriter_start_element($xw, 'VERSION');
56 xmlwriter_text($xw, '1');
57 xmlwriter_end_element($xw);
58
59 xmlwriter_start_element($xw, 'NAME');
60 xmlwriter_text($xw, $row['name']);
61 xmlwriter_end_element($xw);
62
63 xmlwriter_start_element($xw, 'NOTES');
64 xmlwriter_text($xw, $row['notes']);
65 xmlwriter_end_element($xw);
66
67 xmlwriter_start_element($xw, 'TYPE');
68 xmlwriter_text($xw, $recipetype[$row['type']]);
69 xmlwriter_end_element($xw);
70
71 xmlwriter_start_element($xw, 'BREWER');
72 xmlwriter_text($xw, 'Anonymous');
73 xmlwriter_end_element($xw);
74
75 xmlwriter_start_element($xw, 'BATCH_SIZE');
76 xmlwriter_text($xw, sprintf("%.2f",floatval($row['batch_size'])));
77 xmlwriter_end_element($xw);
78
79 xmlwriter_start_element($xw, 'BOIL_SIZE');
80 xmlwriter_text($xw, sprintf("%.2f",floatval($row['boil_size'])));
81 xmlwriter_end_element($xw);
82
83 xmlwriter_start_element($xw, 'BOIL_TIME');
84 xmlwriter_text($xw, sprintf("%.0f",floatval($row['boil_time'])));
85 xmlwriter_end_element($xw);
86
87 xmlwriter_start_element($xw, 'EFFICIENCY');
88 xmlwriter_text($xw, sprintf("%.1f",floatval($row['efficiency'])));
89 xmlwriter_end_element($xw);
90
91 xmlwriter_start_element($xw, 'OG');
92 xmlwriter_text($xw, sprintf("%.3f",floatval($row['og'])));
93 xmlwriter_end_element($xw);
94
95 xmlwriter_start_element($xw, 'FG');
96 xmlwriter_text($xw, sprintf("%.3f",floatval($row['fg'])));
97 xmlwriter_end_element($xw);
98
99 // Style
100 xmlwriter_start_element($xw, 'STYLE');
101
102 xmlwriter_start_element($xw, 'VERSION');
103 xmlwriter_text($xw, '1');
104 xmlwriter_end_element($xw);
105
106 xmlwriter_start_element($xw, 'NAME');
107 xmlwriter_text($xw, $row['st_name']);
108 xmlwriter_end_element($xw);
109
110 xmlwriter_start_element($xw, 'CATEGORY');
111 xmlwriter_text($xw, $row['st_category']);
112 xmlwriter_end_element($xw);
113
114 xmlwriter_start_element($xw, 'CATEGORY_NUMBER');
115 xmlwriter_text($xw, $row['st_category_number']);
116 xmlwriter_end_element($xw);
117
118 xmlwriter_start_element($xw, 'STYLE_LETTER');
119 xmlwriter_text($xw, $row['st_letter']);
120 xmlwriter_end_element($xw);
121
122 xmlwriter_start_element($xw, 'STYLE_GUIDE');
123 xmlwriter_text($xw, $row['st_guide']);
124 xmlwriter_end_element($xw);
125
126 xmlwriter_start_element($xw, 'TYPE');
127 xmlwriter_text($xw, $styletype[$row['st_type']]);
128 xmlwriter_end_element($xw);
129
130 xmlwriter_start_element($xw, 'OG_MIN');
131 xmlwriter_text($xw, sprintf("%.3f",floatval($row['st_og_min'])));
132 xmlwriter_end_element($xw);
133
134 xmlwriter_start_element($xw, 'OG_MAX');
135 xmlwriter_text($xw, sprintf("%.3f",floatval($row['st_og_max'])));
136 xmlwriter_end_element($xw);
137
138 xmlwriter_start_element($xw, 'FG_MIN');
139 xmlwriter_text($xw, sprintf("%.3f",floatval($row['st_og_min'])));
140 xmlwriter_end_element($xw);
141
142 xmlwriter_start_element($xw, 'OG_MAX');
143 xmlwriter_text($xw, sprintf("%.3f",floatval($row['st_fg_max'])));
144 xmlwriter_end_element($xw);
145
146 xmlwriter_start_element($xw, 'IBU_MIN');
147 xmlwriter_text($xw, sprintf("%.0f",floatval($row['st_ibu_min'])));
148 xmlwriter_end_element($xw);
149
150 xmlwriter_start_element($xw, 'IBU_MAX');
151 xmlwriter_text($xw, sprintf("%.0f",floatval($row['st_ibu_max'])));
152 xmlwriter_end_element($xw);
153
154 xmlwriter_start_element($xw, 'COLOR_MIN');
155 xmlwriter_text($xw, sprintf("%.2f",ebc_to_srm(floatval($row['st_color_min']))));
156 xmlwriter_end_element($xw);
157
158 xmlwriter_start_element($xw, 'COLOR_MAX');
159 xmlwriter_text($xw, sprintf("%.2f",ebc_to_srm(floatval($row['st_color_max']))));
160 xmlwriter_end_element($xw);
161
162 xmlwriter_start_element($xw, 'CARB_MIN');
163 xmlwriter_text($xw, sprintf("%.1f",floatval($row['st_carb_min'])));
164 xmlwriter_end_element($xw);
165
166 xmlwriter_start_element($xw, 'CARB_MAX');
167 xmlwriter_text($xw, sprintf("%.1f",floatval($row['st_carb_max'])));
168 xmlwriter_end_element($xw);
169
170 xmlwriter_start_element($xw, 'ABV_MIN');
171 xmlwriter_text($xw, sprintf("%.1f",floatval($row['st_abv_min'])));
172 xmlwriter_end_element($xw);
173
174 xmlwriter_start_element($xw, 'ABV_MAX');
175 xmlwriter_text($xw, sprintf("%.1f",floatval($row['st_abv_max'])));
176 xmlwriter_end_element($xw);
177
178 xmlwriter_end_element($xw); // STYLE
179
180 xmlwriter_start_element($xw, 'EQUIPMENT');
181
182 xmlwriter_start_element($xw, 'VERSION');
183 xmlwriter_text($xw, '1');
184 xmlwriter_end_element($xw);
185
186 xmlwriter_start_element($xw, 'NAME');
187 xmlwriter_text($xw, $row['eq_name']);
188 xmlwriter_end_element($xw);
189
190 xmlwriter_start_element($xw, 'NOTES');
191 xmlwriter_text($xw, $row['eq_notes']);
192 xmlwriter_end_element($xw);
193
194 xmlwriter_start_element($xw, 'BATCH_SIZE');
195 xmlwriter_text($xw, sprintf("%.2f",floatval($row['eq_batch_size'])));
196 xmlwriter_end_element($xw);
197
198 xmlwriter_start_element($xw, 'BOIL_SIZE');
199 xmlwriter_text($xw, sprintf("%.2f",floatval($row['eq_boil_size'])));
200 xmlwriter_end_element($xw);
201
202 xmlwriter_start_element($xw, 'BOIL_TIME');
203 xmlwriter_text($xw, sprintf("%.0f",floatval($row['eq_boil_time'])));
204 xmlwriter_end_element($xw);
205
206 xmlwriter_end_element($xw); // EQUIPMENT
207
208 xmlwriter_start_element($xw, 'HOPS');
209 $arr = json_decode($row['json_hops'], true);
210 foreach($arr as $item) { //foreach element in $arr
211
212 xmlwriter_start_element($xw, 'HOP');
213
214 xmlwriter_start_element($xw, 'VERSION');
215 xmlwriter_text($xw, '1');
216 xmlwriter_end_element($xw);
217
218 xmlwriter_start_element($xw, 'NAME');
219 xmlwriter_text($xw, $item['h_name']);
220 xmlwriter_end_element($xw);
221
222 xmlwriter_start_element($xw, 'ALPHA');
223 xmlwriter_text($xw, sprintf("%.1f",floatval($item['h_alpha'])));
224 xmlwriter_end_element($xw);
225
226 xmlwriter_start_element($xw, 'AMOUNT');
227 xmlwriter_text($xw, sprintf("%.4f",floatval($item['h_amount'])));
228 xmlwriter_end_element($xw);
229
230 xmlwriter_start_element($xw, 'USE');
231 xmlwriter_text($xw, $hopuse[$item['h_useat']]);
232 xmlwriter_end_element($xw);
233
234 xmlwriter_start_element($xw, 'TIME');
235 xmlwriter_text($xw, $item['h_time']);
236 xmlwriter_end_element($xw);
237
238 xmlwriter_start_element($xw, 'TYPE');
239 xmlwriter_text($xw, $hoptype[$item['h_type']]);
240 xmlwriter_end_element($xw);
241
242 xmlwriter_start_element($xw, 'FORM');
243 xmlwriter_text($xw, $hopform[$item['h_form']]);
244 xmlwriter_end_element($xw);
245
246 xmlwriter_start_element($xw, 'BETA');
247 xmlwriter_text($xw, sprintf("%.1f",floatval($item['h_beta'])));
248 xmlwriter_end_element($xw);
249
250 xmlwriter_start_element($xw, 'HSI');
251 xmlwriter_text($xw, sprintf("%.1f",floatval($item['h_hsi'])));
252 xmlwriter_end_element($xw);
253
254 xmlwriter_start_element($xw, 'ORIGIN');
255 xmlwriter_text($xw, $item['h_origin']);
256 xmlwriter_end_element($xw);
257
258 xmlwriter_end_element($xw); // HOP
259 }
260 xmlwriter_end_element($xw); // HOPS
261
262 xmlwriter_start_element($xw, 'FERMENTABLES');
263 $arr = json_decode($row['json_fermentables'], true);
264 foreach($arr as $item) { //foreach element in $arr
265 xmlwriter_start_element($xw, 'FERMENTABLE');
266
267 xmlwriter_start_element($xw, 'VERSION');
268 xmlwriter_text($xw, '1');
269 xmlwriter_end_element($xw);
270
271 xmlwriter_start_element($xw, 'NAME');
272 xmlwriter_text($xw, $item['f_name']);
273 xmlwriter_end_element($xw);
274
275 xmlwriter_start_element($xw, 'TYPE');
276 xmlwriter_text($xw, $fermentabletype[$item['f_type']]);
277 xmlwriter_end_element($xw);
278
279 xmlwriter_start_element($xw, 'AMOUNT');
280 xmlwriter_text($xw, sprintf("%.4f",floatval($item['f_amount'])));
281 xmlwriter_end_element($xw);
282
283 xmlwriter_start_element($xw, 'YIELD');
284 xmlwriter_text($xw, sprintf("%.1f",floatval($item['f_yield'])));
285 xmlwriter_end_element($xw);
286
287 xmlwriter_start_element($xw, 'COLOR');
288 xmlwriter_text($xw, sprintf("%.1f",ebc_to_srm(floatval($item['f_color']))));
289 xmlwriter_end_element($xw);
290
291 xmlwriter_start_element($xw, 'ADD_AFTER_BOIL');
292 ($item['f_add_after_boil']) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE');
293 xmlwriter_end_element($xw);
294
295 xmlwriter_start_element($xw, 'ORIGIN');
296 xmlwriter_text($xw, $item['f_origin']);
297 xmlwriter_end_element($xw);
298
299 xmlwriter_start_element($xw, 'SUPPLIER');
300 xmlwriter_text($xw, $item['f_supplier']);
301 xmlwriter_end_element($xw);
302
303 if (floatval($item['f_coarse_fine_diff'])) {
304 xmlwriter_start_element($xw, 'COARSE_FINE_DIFF');
305 xmlwriter_text($xw, sprintf("%.4f",floatval($item['f_coarse_fine_diff'])));
306 xmlwriter_end_element($xw);
307 }
308
309 if (floatval($item['f_moisture'])) {
310 xmlwriter_start_element($xw, 'MOISTURE');
311 xmlwriter_text($xw, sprintf("%.4f",floatval($item['f_moisture'])));
312 xmlwriter_end_element($xw);
313 }
314
315 if (floatval($item['f_diastatic_power'])) {
316 xmlwriter_start_element($xw, 'DIASTATIC_POWER');
317 xmlwriter_text($xw, sprintf("%.4f",floatval($item['f_diastatic_power'])));
318 xmlwriter_end_element($xw);
319 }
320
321 if (floatval($item['f_protein'])) {
322 xmlwriter_start_element($xw, 'PROTEIN');
323 xmlwriter_text($xw, sprintf("%.4f",floatval($item['f_protein'])));
324 xmlwriter_end_element($xw);
325 }
326
327 if (floatval($item['f_max_in_batch'])) {
328 xmlwriter_start_element($xw, 'MAX_IN_BATCH');
329 xmlwriter_text($xw, sprintf("%.1f",floatval($item['f_max_in_batch'])));
330 xmlwriter_end_element($xw);
331 }
332
333 xmlwriter_start_element($xw, 'RECOMMEND_MASH');
334 ($item['f_recommend_mash']) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE');
335 xmlwriter_end_element($xw);
336
337 xmlwriter_start_element($xw, 'GRAINTYPE');
338 xmlwriter_text($xw, $graintype[$item['f_graintype']]);
339 xmlwriter_end_element($xw);
340
341 xmlwriter_end_element($xw); // FERMENTABLE
342 }
343 xmlwriter_end_element($xw); // FERMENTABLES
344
345 xmlwriter_start_element($xw, 'MISCS');
346 $arr = json_decode($row['json_miscs'], true);
347 foreach($arr as $item) {
348
349 xmlwriter_start_element($xw, 'MISC');
350
351 xmlwriter_start_element($xw, 'VERSION');
352 xmlwriter_text($xw, '1');
353 xmlwriter_end_element($xw);
354
355 xmlwriter_start_element($xw, 'NAME');
356 xmlwriter_text($xw, $item['m_name']);
357 xmlwriter_end_element($xw);
358
359 xmlwriter_start_element($xw, 'TYPE');
360 xmlwriter_text($xw, $misctype[$item['m_type']]);
361 xmlwriter_end_element($xw);
362
363 xmlwriter_start_element($xw, 'AMOUNT');
364 xmlwriter_text($xw, sprintf("%.5f",floatval($item['m_amount'])));
365 xmlwriter_end_element($xw);
366
367 xmlwriter_start_element($xw, 'AMOUNT_IS_WEIGHT');
368 ($item['m_amount_is_weight']) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE');
369 xmlwriter_end_element($xw);
370
371 xmlwriter_start_element($xw, 'USE');
372 xmlwriter_text($xw, $miscuse[$item['m_use_use']]);
373 xmlwriter_end_element($xw);
374
375 xmlwriter_start_element($xw, 'TIME');
376 xmlwriter_text($xw, sprintf("%.0f",floatval($item['m_time'])));
377 xmlwriter_end_element($xw);
378
379 xmlwriter_end_element($xw); // MISC
380 }
381 xmlwriter_end_element($xw); // MISCS
382
383 xmlwriter_start_element($xw, 'YEASTS');
384 $arr = json_decode($row['json_yeasts'], true);
385 foreach($arr as $item) { //foreach element in $arr
386
387 xmlwriter_start_element($xw, 'YEAST');
388
389 xmlwriter_start_element($xw, 'VERSION');
390 xmlwriter_text($xw, '1');
391 xmlwriter_end_element($xw);
392
393 xmlwriter_start_element($xw, 'NAME');
394 xmlwriter_text($xw, $item['y_name']);
395 xmlwriter_end_element($xw);
396
397 xmlwriter_start_element($xw, 'TYPE');
398 xmlwriter_text($xw, $yeasttype[$item['y_type']]);
399 xmlwriter_end_element($xw);
400
401 xmlwriter_start_element($xw, 'FORM');
402 xmlwriter_text($xw, $yeastform[$item['y_form']]);
403 xmlwriter_end_element($xw);
404
405 xmlwriter_start_element($xw, 'AMOUNT');
406 xmlwriter_text($xw, sprintf("%.5f",floatval($item['y_amount'])));
407 xmlwriter_end_element($xw);
408
409 xmlwriter_start_element($xw, 'AMOUNT_IS_WEIGHT');
410 ($item['y_form'] == 1) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE');
411 xmlwriter_end_element($xw);
412
413 xmlwriter_start_element($xw, 'LABORATORY');
414 xmlwriter_text($xw, $item['y_laboratory']);
415 xmlwriter_end_element($xw);
416
417 xmlwriter_start_element($xw, 'PRODUCT_ID');
418 xmlwriter_text($xw, $item['y_product_id']);
419 xmlwriter_end_element($xw);
420
421 xmlwriter_start_element($xw, 'MIN_TEMPERATURE');
422 xmlwriter_text($xw, sprintf("%.1f",floatval($item['y_min_temperature'])));
423 xmlwriter_end_element($xw);
424
425 xmlwriter_start_element($xw, 'MAX_TEMPERATURE');
426 xmlwriter_text($xw, sprintf("%.1f",floatval($item['y_max_temperature'])));
427 xmlwriter_end_element($xw);
428
429 xmlwriter_start_element($xw, 'ATTENUATION');
430 xmlwriter_text($xw, sprintf("%.1f",floatval($item['y_attenuation'])));
431 xmlwriter_end_element($xw);
432
433 xmlwriter_start_element($xw, 'ADD_TO_SECONDARY');
434 ($item['y_use'] == 0) ? xmlwriter_text($xw, 'FALSE') : xmlwriter_text($xw, 'TRUE');
435 xmlwriter_end_element($xw);
436
437 xmlwriter_end_element($xw); // YEAST
438 }
439 xmlwriter_end_element($xw); // YEASTS
440
441 xmlwriter_start_element($xw, 'WATERS');
442 xmlwriter_start_element($xw, 'WATER'); // Source 1
443
444 xmlwriter_start_element($xw, 'VERSION');
445 xmlwriter_text($xw, '1');
446 xmlwriter_end_element($xw);
447
448 xmlwriter_start_element($xw, 'NAME');
449 xmlwriter_text($xw, $row['w1_name']);
450 xmlwriter_end_element($xw);
451
452 xmlwriter_start_element($xw, 'AMOUNT');
453 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_amount'])));
454 xmlwriter_end_element($xw);
455
456 xmlwriter_start_element($xw, 'CALCIUM');
457 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_calcium'])));
458 xmlwriter_end_element($xw);
459
460 xmlwriter_start_element($xw, 'BICARBONATE');
461 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_total_alkalinity']) * 1.22));
462 xmlwriter_end_element($xw);
463
464 xmlwriter_start_element($xw, 'SULFATE');
465 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_sulfate'])));
466 xmlwriter_end_element($xw);
467
468 xmlwriter_start_element($xw, 'CHLORIDE');
469 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_chloride'])));
470 xmlwriter_end_element($xw);
471
472 xmlwriter_start_element($xw, 'SODIUM');
473 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_sodium'])));
474 xmlwriter_end_element($xw);
475
476 xmlwriter_start_element($xw, 'PH');
477 xmlwriter_text($xw, sprintf("%.1f",floatval($row['w1_ph'])));
478 xmlwriter_end_element($xw);
479
480 xmlwriter_start_element($xw, 'TOTAL_ALKALINITY');
481 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_total_alkalinity'])));
482 xmlwriter_end_element($xw);
483
484 xmlwriter_end_element($xw); // WATER
485
486 if (strlen($row['w2_name'])) {
487 xmlwriter_start_element($xw, 'WATER'); // Source 2
488
489 xmlwriter_start_element($xw, 'VERSION');
490 xmlwriter_text($xw, '1');
491 xmlwriter_end_element($xw);
492
493 xmlwriter_start_element($xw, 'NAME');
494 xmlwriter_text($xw, $row['w2_name']);
495 xmlwriter_end_element($xw);
496
497 xmlwriter_start_element($xw, 'AMOUNT');
498 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_amount'])));
499 xmlwriter_end_element($xw);
500
501 xmlwriter_start_element($xw, 'CALCIUM');
502 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_calcium'])));
503 xmlwriter_end_element($xw);
504
505 xmlwriter_start_element($xw, 'BICARBONATE');
506 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_total_alkalinity']) * 1.22));
507 xmlwriter_end_element($xw);
508
509 xmlwriter_start_element($xw, 'SULFATE');
510 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_sulfate'])));
511 xmlwriter_end_element($xw);
512
513 xmlwriter_start_element($xw, 'CHLORIDE');
514 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_chloride'])));
515 xmlwriter_end_element($xw);
516
517 xmlwriter_start_element($xw, 'SODIUM');
518 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_sodium'])));
519 xmlwriter_end_element($xw);
520
521 xmlwriter_start_element($xw, 'PH');
522 xmlwriter_text($xw, sprintf("%.1f",floatval($row['w2_ph'])));
523 xmlwriter_end_element($xw);
524
525 xmlwriter_start_element($xw, 'TOTAL_ALKALINITY');
526 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_total_alkalinity'])));
527 xmlwriter_end_element($xw);
528
529 xmlwriter_end_element($xw); // WATER
530 }
531 xmlwriter_end_element($xw); // WATERS
532
533 xmlwriter_start_element($xw, 'MASH');
534
535 xmlwriter_start_element($xw, 'VERSION');
536 xmlwriter_text($xw, '1');
537 xmlwriter_end_element($xw);
538
539 xmlwriter_start_element($xw, 'NAME');
540 xmlwriter_text($xw, $row['mash_name']);
541 xmlwriter_end_element($xw);
542
543 xmlwriter_start_element($xw, 'GRAIN_TEMP');
544 xmlwriter_text($xw, '10.0');
545 xmlwriter_end_element($xw);
546
547 xmlwriter_start_element($xw, 'PH');
548 xmlwriter_text($xw, sprintf("%.1f",floatval($row['sparge_ph'])));
549 xmlwriter_end_element($xw);
550
551 xmlwriter_start_element($xw, 'SPARGE_TEMP');
552 xmlwriter_text($xw, sprintf("%.1f",floatval($row['sparge_temp'])));
553 xmlwriter_end_element($xw);
554
555 xmlwriter_start_element($xw, 'MASH_STEPS');
556 $arr = json_decode($row['json_mashs'], true);
557 foreach($arr as $item) { //foreach element in $arr
558 xmlwriter_start_element($xw, 'MASH_STEP');
559
560 xmlwriter_start_element($xw, 'VERSION');
561 xmlwriter_text($xw, '1');
562 xmlwriter_end_element($xw);
563
564 xmlwriter_start_element($xw, 'NAME');
565 xmlwriter_text($xw, $item['step_name']);
566 xmlwriter_end_element($xw);
567
568 xmlwriter_start_element($xw, 'TYPE');
569 xmlwriter_text($xw, $mashsteptype[$item['step_type']]);
570 xmlwriter_end_element($xw);
571
572 if ($item['step_type'] == 0) {
573 xmlwriter_start_element($xw, 'INFUSE_AMOUNT');
574 xmlwriter_text($xw, sprintf("%.1f",floatval($item['step_infuse_amount'])));
575 xmlwriter_end_element($xw);
576 }
577
578 xmlwriter_start_element($xw, 'STEP_TEMP');
579 xmlwriter_text($xw, sprintf("%.1f",floatval($item['step_temp'])));
580 xmlwriter_end_element($xw);
581
582 xmlwriter_start_element($xw, 'STEP_TIME');
583 xmlwriter_text($xw, sprintf("%.1f",floatval($item['step_time'])));
584 xmlwriter_end_element($xw);
585
586 xmlwriter_start_element($xw, 'RAMP_TIME');
587 xmlwriter_text($xw, sprintf("%.1f",floatval($item['ramp_time'])));
588 xmlwriter_end_element($xw);
589
590 xmlwriter_start_element($xw, 'END_TEMP');
591 xmlwriter_text($xw, sprintf("%.1f",floatval($item['end_temp'])));
592 xmlwriter_end_element($xw);
593
594 xmlwriter_start_element($xw, 'PH');
595 xmlwriter_text($xw, sprintf("%.1f",floatval($row['mash_ph'])));
596 xmlwriter_end_element($xw);
597
598 xmlwriter_end_element($xw); // MASH_STEP
599 }
600 xmlwriter_end_element($xw); // MASH_STEPS
601 xmlwriter_end_element($xw); // MASH
602 xmlwriter_end_element($xw); // RECIPE
603 xmlwriter_end_element($xw); // RECIPES
604 xmlwriter_end_document($xw);
605
606 $beerxml = xmlwriter_output_memory($xw);
607
608 Header('Content-type: text/xml');
609 header('Content-Disposition: attachment; filename="' . $row['code'] . ' ' . $row['name'] . '.xml"');
610 header('Content-Transfer-Encoding: binary');
611 header('Expires: 0');
612 header('Pragma: no-cache');
613 header('Content-Length: '.strlen($beerxml));
614 exit($beerxml);

mercurial