Fri, 01 May 2020 21:37:23 +0200
In export to forum, suppress diluted water is the name is set but the volume is 0. Add the treated water profile to the output.
570
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
1 | <?php |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
2 | require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php'); |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
3 | page_header('Monitor iSpindels', 'mon_ispindel'); |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
4 | ?> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
5 | |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
6 | <div id="ispindel"> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
7 | |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
8 | <div style="float: left; width: 970px;"> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
9 | <div id="ispindel_table"> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
10 | <div id="ispindel_info"> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
11 | <table style='width: 100%; padding: 10px;'> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
12 | <col width="20%"> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
13 | <col width="40%"> |
579
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
14 | <col width="20%"> |
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
15 | <col width="20%"> |
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
16 | <tr><th colspan=4>iSpindel overzicht</th></tr> |
578
e75ce5bbda73
Changed the interface from the iSpindels to be the same as other devices. A webpage converts each call to two standard MQTT messages. The nodes MQTT message extended with an interval parameter. iSpindels now have a generated uuid made up from the chipid.
Michiel Broek <mbroek@mbse.eu>
parents:
570
diff
changeset
|
17 | <tr style="height: 25px;"> |
e75ce5bbda73
Changed the interface from the iSpindels to be the same as other devices. A webpage converts each call to two standard MQTT messages. The nodes MQTT message extended with an interval parameter. iSpindels now have a generated uuid made up from the chipid.
Michiel Broek <mbroek@mbse.eu>
parents:
570
diff
changeset
|
18 | <td>Uuid</td> |
579
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
19 | <td colspan="3"><div id="info_uuid"></div></td> |
578
e75ce5bbda73
Changed the interface from the iSpindels to be the same as other devices. A webpage converts each call to two standard MQTT messages. The nodes MQTT message extended with an interval parameter. iSpindels now have a generated uuid made up from the chipid.
Michiel Broek <mbroek@mbse.eu>
parents:
570
diff
changeset
|
20 | </tr> |
570
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
21 | <tr style="height: 25px;"> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
22 | <td>Systeem</td> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
23 | <td><div id="info_system"></div></td> |
579
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
24 | <td colspan="2"><div id="info_online"></div></td> |
570
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
25 | </tr> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
26 | <tr style="height: 25px;"> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
27 | <td>Code en bier</td> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
28 | <td><div id="info_beer"></div></td> |
579
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
29 | <td colspan="2"><div id="select_beer"></div></td> |
570
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
30 | </tr> |
578
e75ce5bbda73
Changed the interface from the iSpindels to be the same as other devices. A webpage converts each call to two standard MQTT messages. The nodes MQTT message extended with an interval parameter. iSpindels now have a generated uuid made up from the chipid.
Michiel Broek <mbroek@mbse.eu>
parents:
570
diff
changeset
|
31 | <tr style="height: 25px;"> |
e75ce5bbda73
Changed the interface from the iSpindels to be the same as other devices. A webpage converts each call to two standard MQTT messages. The nodes MQTT message extended with an interval parameter. iSpindels now have a generated uuid made up from the chipid.
Michiel Broek <mbroek@mbse.eu>
parents:
570
diff
changeset
|
32 | <td>Werking</td> |
579
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
33 | <td colspan="3"><div id="info_mode"></div></td> |
578
e75ce5bbda73
Changed the interface from the iSpindels to be the same as other devices. A webpage converts each call to two standard MQTT messages. The nodes MQTT message extended with an interval parameter. iSpindels now have a generated uuid made up from the chipid.
Michiel Broek <mbroek@mbse.eu>
parents:
570
diff
changeset
|
34 | </tr> |
570
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
35 | <tr style="height: 25px;"> |
578
e75ce5bbda73
Changed the interface from the iSpindels to be the same as other devices. A webpage converts each call to two standard MQTT messages. The nodes MQTT message extended with an interval parameter. iSpindels now have a generated uuid made up from the chipid.
Michiel Broek <mbroek@mbse.eu>
parents:
570
diff
changeset
|
36 | <td>Batterij volt</td> |
579
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
37 | <td><div id="info_battery"></div></td> |
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
38 | <td>Densiteit °P</td> |
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
39 | <td><div id="info_plato"></div></td> |
570
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
40 | </tr> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
41 | <tr style="height: 25px;"> |
578
e75ce5bbda73
Changed the interface from the iSpindels to be the same as other devices. A webpage converts each call to two standard MQTT messages. The nodes MQTT message extended with an interval parameter. iSpindels now have a generated uuid made up from the chipid.
Michiel Broek <mbroek@mbse.eu>
parents:
570
diff
changeset
|
42 | <td>Tilt hoek °</td> |
579
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
43 | <td><div id="info_tilt"></div></td> |
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
44 | <td>Densiteit SG</td> |
1253a237b620
Added check for database changes for iSpindels such as a new beer, or changing mode. Added denity in Plato and SG to the iSpindel web screen. The iSpindels must be calibrated in Plato! A bit of documentation updated.
Michiel Broek <mbroek@mbse.eu>
parents:
578
diff
changeset
|
45 | <td><div id="info_sg"></div></td> |
570
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
46 | </tr> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
47 | </table> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
48 | </div> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
49 | </div> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
50 | <div id='ispindel_meters'> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
51 | <div id="gaugeContainer_temperature" style='float: left; margin-top: 10px; margin-left: 60px;'></div> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
52 | <div id="gaugeContainer_gravity" style="float: right; margin-top: 10px; margin-right: 160px;"></div> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
53 | </div> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
54 | </div> <!-- End left side --> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
55 | |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
56 | <div style="float: right; width: 295px;"> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
57 | <div id="ispindel_panel_top"> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
58 | <div id="ispindel_powerled"></div> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
59 | <div id="ispindel_alarmled"></div> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
60 | </div> <!-- ispindel_panel_top --> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
61 | |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
62 | <div id="ispindel_panel_display"> |
628
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
63 | <table style='width: 100%; padding: 10px;'> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
64 | <col width="30%"> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
65 | <col width="35%"> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
66 | <col width="35%"> |
631
450ac489bbe7
Added battery status percentage.
Michiel Broek <mbroek@mbse.eu>
parents:
628
diff
changeset
|
67 | <tr><th colspan=3>Vergisting status</th></tr> |
628
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
68 | <tr><th colspan=3> </th></tr> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
69 | <tr style="height: 25px;"> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
70 | <td>OG</td> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
71 | <td><div id="vg_og1"></div></td> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
72 | <td><div id="vg_og2"></div></td> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
73 | </tr> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
74 | <tr style="height: 25px;"> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
75 | <td>SG</td> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
76 | <td><div id="vg_sg1"></div></td> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
77 | <td><div id="vg_sg2"></div></td> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
78 | </tr> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
79 | <tr style="height: 25px;"> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
80 | <td>SVG</td> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
81 | <td colspan='2'><div id="vg_svg"></div></td> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
82 | </tr> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
83 | <tr style="height: 25px;"> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
84 | <td>ABV</td> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
85 | <td colspan='2'><div id="vg_abv"></div></td> |
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
86 | </tr> |
631
450ac489bbe7
Added battery status percentage.
Michiel Broek <mbroek@mbse.eu>
parents:
628
diff
changeset
|
87 | <tr style="height: 25px;"> |
450ac489bbe7
Added battery status percentage.
Michiel Broek <mbroek@mbse.eu>
parents:
628
diff
changeset
|
88 | <td>Batterij</td> |
450ac489bbe7
Added battery status percentage.
Michiel Broek <mbroek@mbse.eu>
parents:
628
diff
changeset
|
89 | <td colspan='2'><div id="vg_batt"></div></td> |
450ac489bbe7
Added battery status percentage.
Michiel Broek <mbroek@mbse.eu>
parents:
628
diff
changeset
|
90 | </tr> |
628
a42166cbb19a
Record iSpindel original plato by updating to the highest measured value. Reset this value when a new beer is set. Added current status to the monitor screen.
Michiel Broek <mbroek@mbse.eu>
parents:
579
diff
changeset
|
91 | </table> |
570
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
92 | </div> <!-- ispindel_panel_display --> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
93 | |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
94 | <div id="ispindel_panel_control"> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
95 | </div> <!-- ispindel_panel_control --> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
96 | |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
97 | <div id="ispindel_panel_buttons"> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
98 | <input style="margin-top: 20px; margin-left: 70px;" type="button" id="VLog" value="Vergisting log" /> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
99 | </div> <!-- ispindel_panel_buttons --> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
100 | </div> <!-- End right side --> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
101 | </div> |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
102 | |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
103 | <?php |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
104 | page_footer(); |
c8a20234d7e7
Added iSpindel monitor screen design.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
105 | ?> |