www/rec_export.php

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

mercurial