www/prod_export.php

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

mercurial