www/rec_forum.php

changeset 565
dfc850e6ee1f
parent 539
fe9ac6d49c4f
child 666
029e65ca3678
--- a/www/rec_forum.php	Sun Dec 08 11:27:19 2019 +0100
+++ b/www/rec_forum.php	Tue Dec 10 20:11:37 2019 +0100
@@ -22,89 +22,51 @@
 date_default_timezone_set('Europe/Amsterdam');
 $prdate = date(DATE_RFC2822);
 
-?>
-<!DOCTYPE html>
-<html lang=nl-NL>
- <head>
-  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
-  <title>BMS v<?php echo $my_version;?> - Export recipe</title>
-  <meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" />
- </head>
- <body>
-  <pre>
-<?php
-
-
-function itemline($item, $content) {
-
-	echo $item . " ";
-	for ($i = strlen($item); $i < 40; $i++)
-		echo ".";	
-	echo ": " . $content . PHP_EOL;
-}
-
-
-function formatstr($strin, $len) {
-
-	$strout = null;
-	$cnt = 0;
-
-        for ($i = 0; $i < strlen($strin); $i++) {
-                $ord = ord($strin[$i]);
-		if ($ord != 195)
-			$cnt++;
+/*
+ * Generate the output in a string.
+ */
+$tabus = '[tabular]';
+$tabue = '[/tabular]';
+$heads = '[head]';
+$heade = '[/head]';
+$rows  = '[row]';
+$rowe  = '[/row]';
+$datas = '[data]';
+$datae = '[/data]';
 
-                switch ($strin[$i]) {
-                        case '<':
-                                        $strout .= '&lt;';
-                                        break;
-                        case '>':
-                                        $strout .= '&gt;';
-                                        break;
-                        case '&':
-                                        $strout .= '&amp;';
-                                        break;
-                        case '"':
-                                        $strout .= '&quot;';
-                                        break;
-                        default:
-                                        $strout .= $strin[$i];
-        	}
-
-		if ($cnt >= $len)
-			break;
-        }
-
-	for ($i = $cnt; $i < $len; $i++)
-		$strout .= " ";
-        return $strout;
-}
-
-
-echo "BMS v" . $my_version . " - Datum export: " . $prdate . PHP_EOL;
-echo "----------------------------------------------------------" . PHP_EOL;
-itemline("Bier naam", $row['name']);
-itemline("Bier stijl", $row['st_name']);
-itemline("Recept type", $recipetype[$row['type']]);
-itemline("Batch grootte", $row['batch_size'].' liter');
-itemline("Kooktijd", $row['boil_time'].' minuten');
-itemline("Brouwzaal rendement", $row['efficiency'].' %');
-itemline("Geschatte begin densiteit", sprintf("%.3f",$row['est_og']).' SG/ '.sprintf("%.1f", sg_to_plato($row['est_og'])).'&deg;P');
-itemline("Geschatte eind densiteit", sprintf("%.3f",$row['est_fg']).' SG/ '.sprintf("%.1f", sg_to_plato($row['est_fg'])).'&deg;P');
-itemline("Geschat alcohol", sprintf("%.1f",$row['est_abv']).'% vol');
-itemline("Kleur (" . $colormethod[$row['color_method']] . ")", $row['est_color'] . ' EBC');
-itemline("Bitterheid (" . $ibumethod[$row['ibu_method']] . ")", $row['est_ibu'] . ' IBU');
-echo PHP_EOL . PHP_EOL;
+$memo  = "[u][b]BMS v".$my_version." - Datum export: ".$prdate.'[/b][/u]'.PHP_EOL;
+$memo .= PHP_EOL;
+$memo .= PHP_EOL;
+$memo .= '[u][b]Basis[/b][/u]'.PHP_EOL;
+$memo .= $tabus.PHP_EOL;
+$memo .= $heads.'Omschrijving'.$heade.$heads.'Waarde'.$heade.PHP_EOL;
+$memo .= $rows.$datas.'Bier naam'.$datae.$datas.$row['name'].$datae.$rowe.PHP_EOL;
+$memo .= $rows.$datas.'Bier stijl'.$datae.$datas.$row['st_name'].$datae.$rowe.PHP_EOL;
+$memo .= $rows.$datas.'Recept type'.$datae.$datas.$recipetype[$row['type']].$datae.$rowe.PHP_EOL;
+$memo .= $rows.$datas.'Batch grootte'.$datae.$datas.$row['batch_size'].' liter'.$datae.$rowe.PHP_EOL;
+$memo .= $rows.$datas.'Kooktijd'.$datae.$datas.$row['boil_time'].' minuten'.$datae.$rowe.PHP_EOL;
+$memo .= $rows.$datas.'Brouwzaal rendement'.$datae.$datas.$row['efficiency'].' %'.$datae.$rowe.PHP_EOL;
+$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;
+$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;
+$memo .= $rows.$datas.'Geschat alcohol'.$datae.$datas.sprintf("%.1f",$row['est_abv']).'% vol'.$datae.$rowe.PHP_EOL;
+$memo .= $rows.$datas.'Kleur ('.$colormethod[$row['color_method']].')'.$datae.$datas.$row['est_color'].' EBC'.$datae.$rowe.PHP_EOL;
+$memo .= $rows.$datas.'Bitterheid ('.$ibumethod[$row['ibu_method']].')'.$datae.$datas.$row['est_ibu'].' IBU'.$datae.$rowe.PHP_EOL;
+if ($row['divide_parts'])
+    $memo .= $rows.$datas.'Split batch (' .$splitat[$row['divide_type']].')'.$datae.$datas.($row['divide_part'] + 1)." van ".($row['divide_parts'] + 1).$datae.$rowe.PHP_EOL;
+$memo .= $tabue.PHP_EOL;
+$memo .= PHP_EOL;
 
 $sugarsm = 0;
 $grainabsorbtion = 0;
 $mashwater = 0;
 
+$memo .= '[u][b]Vergistbare ingrediënten[/b][/u]'.PHP_EOL;
+$memo .= $tabus.PHP_EOL;
+$memo .= $heads.'Mout, granen en suikers'.$heade.$heads.'EBC'. $heade.$heads.'Gewicht kg'.$heade.$heads.'%'.$heade.$heads.'Gebruik tijdens'.$heade.PHP_EOL;
+
 $arr = json_decode($row['json_fermentables'], true);
-echo "Mout, granen en suikers                  EBC Gewicht kg     % Gebruik tijdens" . PHP_EOL;
-echo "---------------------------------------- --- ---------- ----- ----------------" . PHP_EOL;
 foreach($arr as $item) {
-	$name = formatstr($item['f_name'] . " (" . $item['f_supplier'] . ")", 40);
+	$name = $item['f_name']." (".$item['f_supplier'].")";
 	$amount   = floatval($item['f_amount']);
 	$d = $amount * (floatval($item['f_yield']) / 100) * (1 - floatval($item['f_moisture']) / 100);
         if ($item['f_added']  == 0) {
@@ -112,18 +74,25 @@
                 $sugarsm += $d;
 		$grainabsorbtion += $item['f_amount'];
         }
-	echo sprintf("%s %3.0f %10.3f %5.1f ", $name, floatval($item['f_color']), $amount, floatval($item['f_percentage']));
-	echo $added[$item['f_added']] . PHP_EOL;
+	$pct = '';
+        if ($item['f_added']  < 4)
+                $pct = sprintf("%.1f", floatval($item['f_percentage']));
+
+	$memo .= $rows.$datas.$name.$datae.$datas.sprintf("%.0f", floatval($item['f_color'])).$datae.$datas;
+        $memo .= sprintf("%.3f", $amount).$datae.$datas.$pct.$datae.$datas;
+        $memo .= $added[$item['f_added']].$datae.$rowe .PHP_EOL;
 }
 $preboil_sg = estimate_sg($sugarsm, floatval($row['boil_size']));
-echo PHP_EOL . PHP_EOL;
-
+$memo .= $tabue.PHP_EOL;
+$memo .= PHP_EOL;
 
-echo "Hop                                      Vorm       &alpha; %   IBU   Gram Toevoegen moment" . PHP_EOL;
-echo "---------------------------------------- -------- ----- ----- ------ --------------------" . PHP_EOL;
+$memo .= '[u][b]Hop[/b][/u]'.PHP_EOL;
+$memo .= $tabus.PHP_EOL;
+$memo .= $heads.'Hop'.$heade.$heads.'Vorm'.$heade.$heads.'Alpha'.$heade.$heads.'IBU'.$heade.$heads.'Gram'.$heade.$heads.'Toevoegen moment'.$heade.PHP_EOL;
+
 $arr = json_decode($row['json_hops'], true);
 foreach($arr as $item) {
-	$name   = formatstr($item['h_name'] . " (" . $item['h_origin'] . ")", 40);
+	$name   = $item['h_name']." (".$item['h_origin'].")";
 	$amount = floatval($item['h_amount']) * 1000;
 	$time   = floatval($item['h_time']);
         $alpha  = floatval($item['h_alpha']);
@@ -136,17 +105,18 @@
 		$moment = $hopuse[$item['h_useat']].' '.sprintf("%.0f", $time / 1440).' dagen';
         }
 
-	echo sprintf("%s %-8s %5.1f %5.1f %6.1f %-20s", $name, $hopform[$item['h_form']], $alpha, $ibu, $amount, $moment);
-	echo PHP_EOL;
+	$memo .= $rows.$datas.$name.$datae.$datas.$hopform[$item['h_form']].$datae.$datas.sprintf("%.1f", $alpha).'%'.$datae.$datas;
+        $memo .= sprintf("%.1f", $ibu).$datae.$datas.sprintf("%.1f", $amount).$datae.$datas.$moment.$datae.$rowe.PHP_EOL;
 }
-echo PHP_EOL . PHP_EOL;
+$memo .= $tabue.PHP_EOL;
+$memo .= PHP_EOL;
 
-echo "Specerij, kruid, brouwzout etc Type grondstof  Gebruik tijdens          Hoeveel" . PHP_EOL;
-echo "------------------------------ --------------- -------------------- -----------" . PHP_EOL;
+$memo .= '[u][b]Diversen[/b][/u]'.PHP_EOL;
+$memo .= $tabus.PHP_EOL;
+$memo .= $heads.'Specerij, kruid, brouwzout'.$heade.$heads.'Type grondstof'.$heade.$heads.'Gebruik tijdens'.$heade.$heads.'Hoeveel'.$heade.PHP_EOL;
+
 $arr = json_decode($row['json_miscs'], true);
 foreach($arr as $item) {
-	$amount  = floatval($item['m_amount']) * 1000;
-	$aiw     = $item['m_amount_is_weight'];
 	$use_use = $item['m_use_use'];
 	$time    = floatval($item['m_time']);
 
@@ -154,18 +124,21 @@
         	$gebruik = sprintf("%s %d min",$miscuse[$use_use],$time);
         else
         	$gebruik = $miscuse[$use_use];
-	$hoeveel = sprintf("%.2f %s",$amount,$aiw ? "gr":"ml");
+	$hoeveel = sprintf("%.2f %s",floatval($item['m_amount']) * 1000,$item['m_amount_is_weight'] ? "gr":"ml");
 
-	echo sprintf("%s %-15s %-20s %11s", formatstr($item['m_name'], 30), $misctype[$item['m_type']], $gebruik, $hoeveel) . PHP_EOL;
+	$memo .= $rows.$datas.$item['m_name'].$datae.$datas.$misctype[$item['m_type']].$datae.$datas;
+        $memo .= $gebruik.$datae.$datas.$hoeveel.$datae.$rowe.PHP_EOL;
 }
-echo PHP_EOL . PHP_EOL;
+$memo .= $tabue.PHP_EOL;
+$memo .= PHP_EOL;
 
-echo "Gistlab en code      Omschrijving                   Gebruik      Vorm            Hoeveel" . PHP_EOL;
-echo "-------------------- ------------------------------ ------------ ------------ ----------" . PHP_EOL;
+$memo .= '[u][b]Gist[/b][/u]'.PHP_EOL;
+$memo .= $tabus.PHP_EOL;
+$memo .= $heads.'Gistlab en code'.$heade.$heads.'Omschrijving'.$heade.$heads.'Gebruik'.$heade.$heads.'Vorm'.$heade.$heads.'Hoeveel'.$heade.PHP_EOL;
+
 $arr = json_decode($row['json_yeasts'], true);
 foreach($arr as $item) {
-	$name    = formatstr($item['y_name'], 30);
-	$product = formatstr($item['y_laboratory']." ".$item['y_product_id'], 20);
+	$product = $item['y_laboratory']." ".$item['y_product_id'];
 
 	if ($item['y_form'] == 0)       // Liquid
                 $amount = sprintf("%.0f",floatval($item['y_amount']))." pak";
@@ -174,8 +147,10 @@
         else
                 $amount = sprintf("%.0f",floatval($item['y_amount'])*1000)." ml";
 
-	echo sprintf("%s %s %-12s %-12s %10s", $product, $name, $yeastuse[$item['y_use']], $yeastform[$item['y_form']], $amount) . PHP_EOL;
+	$memo .= $rows.$datas.$product.$datae.$datas.$item['y_name'].$datae.$datas.$yeastuse[$item['y_use']].$datae.$datas;
+        $memo .= $yeastform[$item['y_form']].$datae.$datas.$amount.$datae.$rowe.PHP_EOL;
 }
+$memo .= $tabue.PHP_EOL;
 if ($row['starter_enable'] && $row['prop1_volume']) {
 	$sv = 0;
 	for ($i = 1; $i < 5; $i++) {
@@ -184,45 +159,69 @@
 			$sv = floatval($row[$pv]);
 		}
 	}
-	echo PHP_EOL . "Maak een giststarter van " . sprintf("%.1f", $sv) . " liter." . PHP_EOL;
+	$memo .= "Maak een giststarter van ".sprintf("%.1f", $sv)." liter.".PHP_EOL;
 }
-echo PHP_EOL . PHP_EOL;
+$memo .= PHP_EOL;
 
 if ($row['w1_name'])
 	$mashwater += floatval($row['w1_amount']);
 if ($row['w2_name'])
 	$mashwater += floatval($row['w2_amount']);
 
-echo "Maisch stap          stap type              stap temp    rusten  opwarmen" . PHP_EOL;
-echo "-------------------- ---------------------- --------- --------- ---------" . PHP_EOL;
+$memo .= '[u][b]Maischschema[/b][/u]'.PHP_EOL;
+$memo .= $tabus.PHP_EOL;
+$memo .= $heads.'Maisch stap'.$heade.$heads.'Stap type'.$heade.$heads.'Temperatuur'.$heade.$heads.'Rust tijd'.$heade.$heads.'Opwarmen tijd'.$heade.PHP_EOL;
+
 $arr = json_decode($row['json_mashs'], true);
 foreach($arr as $item) {
 	
 	if ($item['step_type'] == 1) {
-		$stype = formatstr($mashtype[$item['step_type']], 22);
+		$stype = $mashtype[$item['step_type']];
 	} else {
-		$stype = formatstr($mashtype[$item['step_type']].' '.sprintf("%.1f", $item['step_infuse_amount']).' liter', 22);
+		$stype = $mashtype[$item['step_type']].' '.sprintf("%.1f", $item['step_infuse_amount']).' liter';
 	}
-	echo sprintf("%s %s %s %s %s", 
-		formatstr($item['step_name'], 20), $stype, sprintf("%6.1f &deg;C", $item['step_temp']),
-		sprintf("%4.0f min.", $item['step_time']), sprintf("%4.0f min.", $item['ramp_time'])) . PHP_EOL;
+	$memo .= $rows.$datas.$item['step_name'].$datae.$datas.$stype.$datae.$datas.sprintf("%.1f °C", $item['step_temp']);
+        $memo .= $datae.$datas.sprintf("%.0f min.", $item['step_time']).$datae.$datas.sprintf("%.0f min.", $item['ramp_time']);
+        $memo .= $datae.$rowe.PHP_EOL;
 }
-echo PHP_EOL;
+$memo .= $tabue.PHP_EOL;
+$memo .= PHP_EOL;
+
+$memo .= '[u][b]Brouwwater[/b][/u]'.PHP_EOL;
+$memo .= $tabus.PHP_EOL;
+$memo .= $heads.'Omschrijving'.$heade.$heads.'Waarde'.$heade.PHP_EOL;
+
 if ($row['w1_name'] && $row['w2_name']) {
-	itemline("Maischwater 1", sprintf("%.1f",floatval($row['w1_amount'])).' liter water '.$row['w1_name']);
-	itemline("Maischwater 2", sprintf("%.1f",floatval($row['w2_amount'])).' liter water '.$row['w2_name']);
+        $memo .= $rows.$datas.'Maischwater 1'.$datae.$datas.sprintf("%.1f",floatval($row['w1_amount'])).' liter water '.$row['w1_name'].$datae.$rowe.PHP_EOL;
+        $memo .= $rows.$datas.'Maischwater 2'.$datae.$datas.sprintf("%.1f",floatval($row['w2_amount'])).' liter water '.$row['w2_name'].$datae.$rowe.PHP_EOL;
 } else {
-	itemline("Maischwater", sprintf("%.1f",floatval($row['w1_amount'])).' liter water '.$row['w1_name']);
+        $memo .= $rows.$datas.'Maischwater'.$datae.$datas.sprintf("%.1f",floatval($row['w1_amount'])).' liter water '.$row['w1_name'].$datae.$rowe.PHP_EOL;
 }
-itemline("Maischwater aanzuren tot pH", $row['mash_ph'].' pH');
+$memo .= $rows.$datas.'Maischwater aanzuren tot pH'.$datae.$datas.$row['mash_ph'].' pH'.$datae.$rowe.PHP_EOL;
 $spoelw = ($row['boil_size'] - $mashwater + $grainabsorbtion + $row['eq_lauter_deadspace']) * 1.03;     // A small heat correction
-itemline("Spoelwater geschat", sprintf("%.1f", $spoelw)." liter");
-itemline("Spoelwater temperatuur", $row['sparge_temp'].' &deg;C');
-itemline("Spoelwater aanzuren tot pH", sprintf("%.1f",$row['sparge_ph']).' pH');
-echo PHP_EOL . PHP_EOL;
+$memo .= $rows.$datas.'Spoelwater geschat'.$datae.$datas.sprintf("%.1f",$spoelw)." liter".$datae.$rowe.PHP_EOL;
+$memo .= $rows.$datas.'Spoelwater temperatuur'.$datae.$datas.$row['sparge_temp'].' °C'.$datae.$rowe.PHP_EOL;
+$memo .= $rows.$datas.'Spoelwater aanzuren tot pH'.$datae.$datas.sprintf("%.1f",$row['sparge_ph']).' pH'.$datae.$rowe.PHP_EOL;
+$memo .= $tabue.PHP_EOL;
 
-
+page_header('Recept naar forum', 'rec_forum');
 ?>
-  </pre>
- </body>
-</html>
+   <script>
+    // json_encode() seems to do the right thing.
+    var forumstr = <?= json_encode($memo) ?>;
+   </script>
+   <div id="MainPanel">
+    <div class="section">
+     <div style="overflow: hidden; margin: 25px;"><br>
+      <p>Het recept met alle gegevens staan gereed.</p>
+      <p>Zodra je de "Klembord" toets gebruikt zullen deze gegevens naar het klembord gekopieerd<br>
+      worden. In het scherm van het forum kun je deze gegevens vervolgens "plakken".</p>
+      <p>Na het drukken van de toets wordt dit scherm gesloten.</p>
+      <p><input type="button" value="Klembord" id="copytoClipboard" /></p>
+     </div>
+    </div>
+   </div>
+
+<?php
+page_footer();
+?>

mercurial