www/rec_forum.php

changeset 565
dfc850e6ee1f
parent 539
fe9ac6d49c4f
child 666
029e65ca3678
equal deleted inserted replaced
564:d5fad7d80899 565:dfc850e6ee1f
20 20
21 $preboil_sg = 0; 21 $preboil_sg = 0;
22 date_default_timezone_set('Europe/Amsterdam'); 22 date_default_timezone_set('Europe/Amsterdam');
23 $prdate = date(DATE_RFC2822); 23 $prdate = date(DATE_RFC2822);
24 24
25 ?> 25 /*
26 <!DOCTYPE html> 26 * Generate the output in a string.
27 <html lang=nl-NL> 27 */
28 <head> 28 $tabus = '[tabular]';
29 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 29 $tabue = '[/tabular]';
30 <title>BMS v<?php echo $my_version;?> - Export recipe</title> 30 $heads = '[head]';
31 <meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" /> 31 $heade = '[/head]';
32 </head> 32 $rows = '[row]';
33 <body> 33 $rowe = '[/row]';
34 <pre> 34 $datas = '[data]';
35 <?php 35 $datae = '[/data]';
36 36
37 37 $memo = "[u][b]BMS v".$my_version." - Datum export: ".$prdate.'[/b][/u]'.PHP_EOL;
38 function itemline($item, $content) { 38 $memo .= PHP_EOL;
39 39 $memo .= PHP_EOL;
40 echo $item . " "; 40 $memo .= '[u][b]Basis[/b][/u]'.PHP_EOL;
41 for ($i = strlen($item); $i < 40; $i++) 41 $memo .= $tabus.PHP_EOL;
42 echo "."; 42 $memo .= $heads.'Omschrijving'.$heade.$heads.'Waarde'.$heade.PHP_EOL;
43 echo ": " . $content . PHP_EOL; 43 $memo .= $rows.$datas.'Bier naam'.$datae.$datas.$row['name'].$datae.$rowe.PHP_EOL;
44 } 44 $memo .= $rows.$datas.'Bier stijl'.$datae.$datas.$row['st_name'].$datae.$rowe.PHP_EOL;
45 45 $memo .= $rows.$datas.'Recept type'.$datae.$datas.$recipetype[$row['type']].$datae.$rowe.PHP_EOL;
46 46 $memo .= $rows.$datas.'Batch grootte'.$datae.$datas.$row['batch_size'].' liter'.$datae.$rowe.PHP_EOL;
47 function formatstr($strin, $len) { 47 $memo .= $rows.$datas.'Kooktijd'.$datae.$datas.$row['boil_time'].' minuten'.$datae.$rowe.PHP_EOL;
48 48 $memo .= $rows.$datas.'Brouwzaal rendement'.$datae.$datas.$row['efficiency'].' %'.$datae.$rowe.PHP_EOL;
49 $strout = null; 49 $memo .= $rows.$datas.'Geschatte begin densiteit'.$datae.$datas.sprintf("%.3f",$row['est_og']).' SG/ '.sprintf("%.1f", sg_to_plato($row['est_og'])).'°P'.$datae.$rowe.PHP_EOL;
50 $cnt = 0; 50 $memo .= $rows.$datas.'Geschatte eind densiteit'.$datae.$datas.sprintf("%.3f",$row['est_fg']).' SG/ '.sprintf("%.1f", sg_to_plato($row['est_fg'])).'°P'.$datae.$rowe.PHP_EOL;
51 51 $memo .= $rows.$datas.'Geschat alcohol'.$datae.$datas.sprintf("%.1f",$row['est_abv']).'% vol'.$datae.$rowe.PHP_EOL;
52 for ($i = 0; $i < strlen($strin); $i++) { 52 $memo .= $rows.$datas.'Kleur ('.$colormethod[$row['color_method']].')'.$datae.$datas.$row['est_color'].' EBC'.$datae.$rowe.PHP_EOL;
53 $ord = ord($strin[$i]); 53 $memo .= $rows.$datas.'Bitterheid ('.$ibumethod[$row['ibu_method']].')'.$datae.$datas.$row['est_ibu'].' IBU'.$datae.$rowe.PHP_EOL;
54 if ($ord != 195) 54 if ($row['divide_parts'])
55 $cnt++; 55 $memo .= $rows.$datas.'Split batch (' .$splitat[$row['divide_type']].')'.$datae.$datas.($row['divide_part'] + 1)." van ".($row['divide_parts'] + 1).$datae.$rowe.PHP_EOL;
56 56 $memo .= $tabue.PHP_EOL;
57 switch ($strin[$i]) { 57 $memo .= PHP_EOL;
58 case '<':
59 $strout .= '&lt;';
60 break;
61 case '>':
62 $strout .= '&gt;';
63 break;
64 case '&':
65 $strout .= '&amp;';
66 break;
67 case '"':
68 $strout .= '&quot;';
69 break;
70 default:
71 $strout .= $strin[$i];
72 }
73
74 if ($cnt >= $len)
75 break;
76 }
77
78 for ($i = $cnt; $i < $len; $i++)
79 $strout .= " ";
80 return $strout;
81 }
82
83
84 echo "BMS v" . $my_version . " - Datum export: " . $prdate . PHP_EOL;
85 echo "----------------------------------------------------------" . PHP_EOL;
86 itemline("Bier naam", $row['name']);
87 itemline("Bier stijl", $row['st_name']);
88 itemline("Recept type", $recipetype[$row['type']]);
89 itemline("Batch grootte", $row['batch_size'].' liter');
90 itemline("Kooktijd", $row['boil_time'].' minuten');
91 itemline("Brouwzaal rendement", $row['efficiency'].' %');
92 itemline("Geschatte begin densiteit", sprintf("%.3f",$row['est_og']).' SG/ '.sprintf("%.1f", sg_to_plato($row['est_og'])).'&deg;P');
93 itemline("Geschatte eind densiteit", sprintf("%.3f",$row['est_fg']).' SG/ '.sprintf("%.1f", sg_to_plato($row['est_fg'])).'&deg;P');
94 itemline("Geschat alcohol", sprintf("%.1f",$row['est_abv']).'% vol');
95 itemline("Kleur (" . $colormethod[$row['color_method']] . ")", $row['est_color'] . ' EBC');
96 itemline("Bitterheid (" . $ibumethod[$row['ibu_method']] . ")", $row['est_ibu'] . ' IBU');
97 echo PHP_EOL . PHP_EOL;
98 58
99 $sugarsm = 0; 59 $sugarsm = 0;
100 $grainabsorbtion = 0; 60 $grainabsorbtion = 0;
101 $mashwater = 0; 61 $mashwater = 0;
102 62
63 $memo .= '[u][b]Vergistbare ingrediënten[/b][/u]'.PHP_EOL;
64 $memo .= $tabus.PHP_EOL;
65 $memo .= $heads.'Mout, granen en suikers'.$heade.$heads.'EBC'. $heade.$heads.'Gewicht kg'.$heade.$heads.'%'.$heade.$heads.'Gebruik tijdens'.$heade.PHP_EOL;
66
103 $arr = json_decode($row['json_fermentables'], true); 67 $arr = json_decode($row['json_fermentables'], true);
104 echo "Mout, granen en suikers EBC Gewicht kg % Gebruik tijdens" . PHP_EOL; 68 foreach($arr as $item) {
105 echo "---------------------------------------- --- ---------- ----- ----------------" . PHP_EOL; 69 $name = $item['f_name']." (".$item['f_supplier'].")";
106 foreach($arr as $item) {
107 $name = formatstr($item['f_name'] . " (" . $item['f_supplier'] . ")", 40);
108 $amount = floatval($item['f_amount']); 70 $amount = floatval($item['f_amount']);
109 $d = $amount * (floatval($item['f_yield']) / 100) * (1 - floatval($item['f_moisture']) / 100); 71 $d = $amount * (floatval($item['f_yield']) / 100) * (1 - floatval($item['f_moisture']) / 100);
110 if ($item['f_added'] == 0) { 72 if ($item['f_added'] == 0) {
111 $d = floatval($row['efficiency']) / 100 * $d; 73 $d = floatval($row['efficiency']) / 100 * $d;
112 $sugarsm += $d; 74 $sugarsm += $d;
113 $grainabsorbtion += $item['f_amount']; 75 $grainabsorbtion += $item['f_amount'];
114 } 76 }
115 echo sprintf("%s %3.0f %10.3f %5.1f ", $name, floatval($item['f_color']), $amount, floatval($item['f_percentage'])); 77 $pct = '';
116 echo $added[$item['f_added']] . PHP_EOL; 78 if ($item['f_added'] < 4)
79 $pct = sprintf("%.1f", floatval($item['f_percentage']));
80
81 $memo .= $rows.$datas.$name.$datae.$datas.sprintf("%.0f", floatval($item['f_color'])).$datae.$datas;
82 $memo .= sprintf("%.3f", $amount).$datae.$datas.$pct.$datae.$datas;
83 $memo .= $added[$item['f_added']].$datae.$rowe .PHP_EOL;
117 } 84 }
118 $preboil_sg = estimate_sg($sugarsm, floatval($row['boil_size'])); 85 $preboil_sg = estimate_sg($sugarsm, floatval($row['boil_size']));
119 echo PHP_EOL . PHP_EOL; 86 $memo .= $tabue.PHP_EOL;
120 87 $memo .= PHP_EOL;
121 88
122 echo "Hop Vorm &alpha; % IBU Gram Toevoegen moment" . PHP_EOL; 89 $memo .= '[u][b]Hop[/b][/u]'.PHP_EOL;
123 echo "---------------------------------------- -------- ----- ----- ------ --------------------" . PHP_EOL; 90 $memo .= $tabus.PHP_EOL;
91 $memo .= $heads.'Hop'.$heade.$heads.'Vorm'.$heade.$heads.'Alpha'.$heade.$heads.'IBU'.$heade.$heads.'Gram'.$heade.$heads.'Toevoegen moment'.$heade.PHP_EOL;
92
124 $arr = json_decode($row['json_hops'], true); 93 $arr = json_decode($row['json_hops'], true);
125 foreach($arr as $item) { 94 foreach($arr as $item) {
126 $name = formatstr($item['h_name'] . " (" . $item['h_origin'] . ")", 40); 95 $name = $item['h_name']." (".$item['h_origin'].")";
127 $amount = floatval($item['h_amount']) * 1000; 96 $amount = floatval($item['h_amount']) * 1000;
128 $time = floatval($item['h_time']); 97 $time = floatval($item['h_time']);
129 $alpha = floatval($item['h_alpha']); 98 $alpha = floatval($item['h_alpha']);
130 $ibu = calc_IBU($item['h_useat'], $item['h_form'], $preboil_sg, floatval($row['batch_size']), $amount, $time, $alpha, 99 $ibu = calc_IBU($item['h_useat'], $item['h_form'], $preboil_sg, floatval($row['batch_size']), $amount, $time, $alpha,
131 $row['ibu_method'], $row['brew_whirlpool9'], $row['brew_whirlpool7'], $row['brew_whirlpool6']); 100 $row['ibu_method'], $row['brew_whirlpool9'], $row['brew_whirlpool7'], $row['brew_whirlpool6']);
134 $moment = $hopuse[$item['h_useat']].' '.$time." minuten"; 103 $moment = $hopuse[$item['h_useat']].' '.$time." minuten";
135 } else if ($item['h_useat'] == 5) { // Dryhop 104 } else if ($item['h_useat'] == 5) { // Dryhop
136 $moment = $hopuse[$item['h_useat']].' '.sprintf("%.0f", $time / 1440).' dagen'; 105 $moment = $hopuse[$item['h_useat']].' '.sprintf("%.0f", $time / 1440).' dagen';
137 } 106 }
138 107
139 echo sprintf("%s %-8s %5.1f %5.1f %6.1f %-20s", $name, $hopform[$item['h_form']], $alpha, $ibu, $amount, $moment); 108 $memo .= $rows.$datas.$name.$datae.$datas.$hopform[$item['h_form']].$datae.$datas.sprintf("%.1f", $alpha).'%'.$datae.$datas;
140 echo PHP_EOL; 109 $memo .= sprintf("%.1f", $ibu).$datae.$datas.sprintf("%.1f", $amount).$datae.$datas.$moment.$datae.$rowe.PHP_EOL;
141 } 110 }
142 echo PHP_EOL . PHP_EOL; 111 $memo .= $tabue.PHP_EOL;
143 112 $memo .= PHP_EOL;
144 echo "Specerij, kruid, brouwzout etc Type grondstof Gebruik tijdens Hoeveel" . PHP_EOL; 113
145 echo "------------------------------ --------------- -------------------- -----------" . PHP_EOL; 114 $memo .= '[u][b]Diversen[/b][/u]'.PHP_EOL;
115 $memo .= $tabus.PHP_EOL;
116 $memo .= $heads.'Specerij, kruid, brouwzout'.$heade.$heads.'Type grondstof'.$heade.$heads.'Gebruik tijdens'.$heade.$heads.'Hoeveel'.$heade.PHP_EOL;
117
146 $arr = json_decode($row['json_miscs'], true); 118 $arr = json_decode($row['json_miscs'], true);
147 foreach($arr as $item) { 119 foreach($arr as $item) {
148 $amount = floatval($item['m_amount']) * 1000;
149 $aiw = $item['m_amount_is_weight'];
150 $use_use = $item['m_use_use']; 120 $use_use = $item['m_use_use'];
151 $time = floatval($item['m_time']); 121 $time = floatval($item['m_time']);
152 122
153 if ($use_use == 2) // Boil 123 if ($use_use == 2) // Boil
154 $gebruik = sprintf("%s %d min",$miscuse[$use_use],$time); 124 $gebruik = sprintf("%s %d min",$miscuse[$use_use],$time);
155 else 125 else
156 $gebruik = $miscuse[$use_use]; 126 $gebruik = $miscuse[$use_use];
157 $hoeveel = sprintf("%.2f %s",$amount,$aiw ? "gr":"ml"); 127 $hoeveel = sprintf("%.2f %s",floatval($item['m_amount']) * 1000,$item['m_amount_is_weight'] ? "gr":"ml");
158 128
159 echo sprintf("%s %-15s %-20s %11s", formatstr($item['m_name'], 30), $misctype[$item['m_type']], $gebruik, $hoeveel) . PHP_EOL; 129 $memo .= $rows.$datas.$item['m_name'].$datae.$datas.$misctype[$item['m_type']].$datae.$datas;
160 } 130 $memo .= $gebruik.$datae.$datas.$hoeveel.$datae.$rowe.PHP_EOL;
161 echo PHP_EOL . PHP_EOL; 131 }
162 132 $memo .= $tabue.PHP_EOL;
163 echo "Gistlab en code Omschrijving Gebruik Vorm Hoeveel" . PHP_EOL; 133 $memo .= PHP_EOL;
164 echo "-------------------- ------------------------------ ------------ ------------ ----------" . PHP_EOL; 134
135 $memo .= '[u][b]Gist[/b][/u]'.PHP_EOL;
136 $memo .= $tabus.PHP_EOL;
137 $memo .= $heads.'Gistlab en code'.$heade.$heads.'Omschrijving'.$heade.$heads.'Gebruik'.$heade.$heads.'Vorm'.$heade.$heads.'Hoeveel'.$heade.PHP_EOL;
138
165 $arr = json_decode($row['json_yeasts'], true); 139 $arr = json_decode($row['json_yeasts'], true);
166 foreach($arr as $item) { 140 foreach($arr as $item) {
167 $name = formatstr($item['y_name'], 30); 141 $product = $item['y_laboratory']." ".$item['y_product_id'];
168 $product = formatstr($item['y_laboratory']." ".$item['y_product_id'], 20);
169 142
170 if ($item['y_form'] == 0) // Liquid 143 if ($item['y_form'] == 0) // Liquid
171 $amount = sprintf("%.0f",floatval($item['y_amount']))." pak"; 144 $amount = sprintf("%.0f",floatval($item['y_amount']))." pak";
172 else if ($item['y_form'] == 1 || $item['y_form'] == 6) // Dry 145 else if ($item['y_form'] == 1 || $item['y_form'] == 6) // Dry
173 $amount = sprintf("%.1f",floatval($item['y_amount'])*1000)." gr"; 146 $amount = sprintf("%.1f",floatval($item['y_amount'])*1000)." gr";
174 else 147 else
175 $amount = sprintf("%.0f",floatval($item['y_amount'])*1000)." ml"; 148 $amount = sprintf("%.0f",floatval($item['y_amount'])*1000)." ml";
176 149
177 echo sprintf("%s %s %-12s %-12s %10s", $product, $name, $yeastuse[$item['y_use']], $yeastform[$item['y_form']], $amount) . PHP_EOL; 150 $memo .= $rows.$datas.$product.$datae.$datas.$item['y_name'].$datae.$datas.$yeastuse[$item['y_use']].$datae.$datas;
178 } 151 $memo .= $yeastform[$item['y_form']].$datae.$datas.$amount.$datae.$rowe.PHP_EOL;
152 }
153 $memo .= $tabue.PHP_EOL;
179 if ($row['starter_enable'] && $row['prop1_volume']) { 154 if ($row['starter_enable'] && $row['prop1_volume']) {
180 $sv = 0; 155 $sv = 0;
181 for ($i = 1; $i < 5; $i++) { 156 for ($i = 1; $i < 5; $i++) {
182 $pv = "prop".$i."_volume"; 157 $pv = "prop".$i."_volume";
183 if (floatval($row[$pv]) && (floatval($row[$pv]) > $sv)) { 158 if (floatval($row[$pv]) && (floatval($row[$pv]) > $sv)) {
184 $sv = floatval($row[$pv]); 159 $sv = floatval($row[$pv]);
185 } 160 }
186 } 161 }
187 echo PHP_EOL . "Maak een giststarter van " . sprintf("%.1f", $sv) . " liter." . PHP_EOL; 162 $memo .= "Maak een giststarter van ".sprintf("%.1f", $sv)." liter.".PHP_EOL;
188 } 163 }
189 echo PHP_EOL . PHP_EOL; 164 $memo .= PHP_EOL;
190 165
191 if ($row['w1_name']) 166 if ($row['w1_name'])
192 $mashwater += floatval($row['w1_amount']); 167 $mashwater += floatval($row['w1_amount']);
193 if ($row['w2_name']) 168 if ($row['w2_name'])
194 $mashwater += floatval($row['w2_amount']); 169 $mashwater += floatval($row['w2_amount']);
195 170
196 echo "Maisch stap stap type stap temp rusten opwarmen" . PHP_EOL; 171 $memo .= '[u][b]Maischschema[/b][/u]'.PHP_EOL;
197 echo "-------------------- ---------------------- --------- --------- ---------" . PHP_EOL; 172 $memo .= $tabus.PHP_EOL;
173 $memo .= $heads.'Maisch stap'.$heade.$heads.'Stap type'.$heade.$heads.'Temperatuur'.$heade.$heads.'Rust tijd'.$heade.$heads.'Opwarmen tijd'.$heade.PHP_EOL;
174
198 $arr = json_decode($row['json_mashs'], true); 175 $arr = json_decode($row['json_mashs'], true);
199 foreach($arr as $item) { 176 foreach($arr as $item) {
200 177
201 if ($item['step_type'] == 1) { 178 if ($item['step_type'] == 1) {
202 $stype = formatstr($mashtype[$item['step_type']], 22); 179 $stype = $mashtype[$item['step_type']];
203 } else { 180 } else {
204 $stype = formatstr($mashtype[$item['step_type']].' '.sprintf("%.1f", $item['step_infuse_amount']).' liter', 22); 181 $stype = $mashtype[$item['step_type']].' '.sprintf("%.1f", $item['step_infuse_amount']).' liter';
205 } 182 }
206 echo sprintf("%s %s %s %s %s", 183 $memo .= $rows.$datas.$item['step_name'].$datae.$datas.$stype.$datae.$datas.sprintf("%.1f °C", $item['step_temp']);
207 formatstr($item['step_name'], 20), $stype, sprintf("%6.1f &deg;C", $item['step_temp']), 184 $memo .= $datae.$datas.sprintf("%.0f min.", $item['step_time']).$datae.$datas.sprintf("%.0f min.", $item['ramp_time']);
208 sprintf("%4.0f min.", $item['step_time']), sprintf("%4.0f min.", $item['ramp_time'])) . PHP_EOL; 185 $memo .= $datae.$rowe.PHP_EOL;
209 } 186 }
210 echo PHP_EOL; 187 $memo .= $tabue.PHP_EOL;
188 $memo .= PHP_EOL;
189
190 $memo .= '[u][b]Brouwwater[/b][/u]'.PHP_EOL;
191 $memo .= $tabus.PHP_EOL;
192 $memo .= $heads.'Omschrijving'.$heade.$heads.'Waarde'.$heade.PHP_EOL;
193
211 if ($row['w1_name'] && $row['w2_name']) { 194 if ($row['w1_name'] && $row['w2_name']) {
212 itemline("Maischwater 1", sprintf("%.1f",floatval($row['w1_amount'])).' liter water '.$row['w1_name']); 195 $memo .= $rows.$datas.'Maischwater 1'.$datae.$datas.sprintf("%.1f",floatval($row['w1_amount'])).' liter water '.$row['w1_name'].$datae.$rowe.PHP_EOL;
213 itemline("Maischwater 2", sprintf("%.1f",floatval($row['w2_amount'])).' liter water '.$row['w2_name']); 196 $memo .= $rows.$datas.'Maischwater 2'.$datae.$datas.sprintf("%.1f",floatval($row['w2_amount'])).' liter water '.$row['w2_name'].$datae.$rowe.PHP_EOL;
214 } else { 197 } else {
215 itemline("Maischwater", sprintf("%.1f",floatval($row['w1_amount'])).' liter water '.$row['w1_name']); 198 $memo .= $rows.$datas.'Maischwater'.$datae.$datas.sprintf("%.1f",floatval($row['w1_amount'])).' liter water '.$row['w1_name'].$datae.$rowe.PHP_EOL;
216 } 199 }
217 itemline("Maischwater aanzuren tot pH", $row['mash_ph'].' pH'); 200 $memo .= $rows.$datas.'Maischwater aanzuren tot pH'.$datae.$datas.$row['mash_ph'].' pH'.$datae.$rowe.PHP_EOL;
218 $spoelw = ($row['boil_size'] - $mashwater + $grainabsorbtion + $row['eq_lauter_deadspace']) * 1.03; // A small heat correction 201 $spoelw = ($row['boil_size'] - $mashwater + $grainabsorbtion + $row['eq_lauter_deadspace']) * 1.03; // A small heat correction
219 itemline("Spoelwater geschat", sprintf("%.1f", $spoelw)." liter"); 202 $memo .= $rows.$datas.'Spoelwater geschat'.$datae.$datas.sprintf("%.1f",$spoelw)." liter".$datae.$rowe.PHP_EOL;
220 itemline("Spoelwater temperatuur", $row['sparge_temp'].' &deg;C'); 203 $memo .= $rows.$datas.'Spoelwater temperatuur'.$datae.$datas.$row['sparge_temp'].' °C'.$datae.$rowe.PHP_EOL;
221 itemline("Spoelwater aanzuren tot pH", sprintf("%.1f",$row['sparge_ph']).' pH'); 204 $memo .= $rows.$datas.'Spoelwater aanzuren tot pH'.$datae.$datas.sprintf("%.1f",$row['sparge_ph']).' pH'.$datae.$rowe.PHP_EOL;
222 echo PHP_EOL . PHP_EOL; 205 $memo .= $tabue.PHP_EOL;
223 206
224 207 page_header('Recept naar forum', 'rec_forum');
225 ?> 208 ?>
226 </pre> 209 <script>
227 </body> 210 // json_encode() seems to do the right thing.
228 </html> 211 var forumstr = <?= json_encode($memo) ?>;
212 </script>
213 <div id="MainPanel">
214 <div class="section">
215 <div style="overflow: hidden; margin: 25px;"><br>
216 <p>Het recept met alle gegevens staan gereed.</p>
217 <p>Zodra je de "Klembord" toets gebruikt zullen deze gegevens naar het klembord gekopieerd<br>
218 worden. In het scherm van het forum kun je deze gegevens vervolgens "plakken".</p>
219 <p>Na het drukken van de toets wordt dit scherm gesloten.</p>
220 <p><input type="button" value="Klembord" id="copytoClipboard" /></p>
221 </div>
222 </div>
223 </div>
224
225 <?php
226 page_footer();
227 ?>

mercurial