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

mercurial