241 lines
8.0 KiB
PHP
Executable File
241 lines
8.0 KiB
PHP
Executable File
<?php
|
||
/*
|
||
* PHP Frontend for pocsag monitor
|
||
*
|
||
* Copyright (C) 2004-2005
|
||
* Manuel Weiser (manuelw@fire-devils.org)
|
||
*
|
||
* This program is free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation; either version 2 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* This program is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* You should have received a copy of the GNU General Public License
|
||
* along with this program; if not, write to the Free Software
|
||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||
*/
|
||
|
||
require('config.inc.php');
|
||
|
||
if( $_SERVER['QUERY_STRING'] != $_SESSION["querystring"] )
|
||
{
|
||
//$_SESSION["lastupdate"] = "";
|
||
$_SESSION["online_users"] = "";
|
||
$_SESSION["querystring"] = $_SERVER['QUERY_STRING'];
|
||
}
|
||
|
||
// Filter Datum/Zeit erstellen
|
||
if( !$_GET["filter"] || $_GET["filter"] == 1 )
|
||
{
|
||
$show_filter = 1;
|
||
}
|
||
else
|
||
{
|
||
$filter = $_GET["filter"];
|
||
}
|
||
|
||
if( $show_filter == 1 && $_SESSION["lastupdate"] == "" && !$_GET["clean"] ) {
|
||
$show_filter = filter_zeit(1);
|
||
$show_filter = " WHERE a.zeit > '$show_filter' ";
|
||
}
|
||
elseif( $show_filter == 1 && $_SESSION["lastupdate"] != "" && !$_GET["clean"] )
|
||
{
|
||
$show_filter = " WHERE a.num > ".$_SESSION["lastupdate"];
|
||
}
|
||
elseif( $show_filter == 1 && $_GET["clean"] == "yes" )
|
||
{
|
||
$show_filter = filter_zeit(1);
|
||
$show_filter = " WHERE a.zeit > '$show_filter' ";
|
||
}
|
||
elseif( $show_filter != 1 )
|
||
{
|
||
$show_filter = filter_zeit($filter);
|
||
$show_filter = " WHERE a.zeit > '$show_filter' ";
|
||
}
|
||
|
||
/////////
|
||
|
||
if( $_GET["org_filter"] == 'ff' )
|
||
{
|
||
$sql_org_filter = 'AND (org = "BF" OR org = "FF" OR org = "THW")';
|
||
}
|
||
elseif ( $_GET["org_filter"] == 'rd' )
|
||
{
|
||
$sql_org_filter = 'AND org = "RD"';
|
||
}
|
||
else
|
||
{
|
||
$sql_org_filter = '';
|
||
}
|
||
|
||
$_SESSION["orgfiltered"] = $sql_org_filter;
|
||
|
||
$show_filter = $show_filter.' '.$sql_org_filter;
|
||
|
||
//
|
||
// Daten f¸r Formatierung holen und in array->session schreiben
|
||
if( !$_SESSION["formatierung"] && !$_GET["nooutput"] )
|
||
{
|
||
$result = mysql_query("SELECT id, bg_farbe, text_farbe, text_format, text_groesse, text_groesse_text FROM formatierung ORDER BY id ASC") or die (mysql_error());
|
||
while($row = mysql_fetch_array($result))
|
||
{
|
||
$formatierung[$row["id"]] = array(
|
||
"bg_farbe" => $row["bg_farbe"],
|
||
"text_farbe" => $row["text_farbe"],
|
||
"text_format" => $row["text_format"],
|
||
"text_groesse" => $row["text_groesse"],
|
||
"text_groesse_text" => $row["text_groesse_text"]
|
||
);
|
||
|
||
$_SESSION["formatierung"] = $formatierung;
|
||
}
|
||
} else {
|
||
$formatierung = $_SESSION["formatierung"];
|
||
}
|
||
|
||
//
|
||
// Auslesen pocsag
|
||
//
|
||
$result = mysql_query("SELECT a.num, a.adresse AS adresse_neu, a.bezeichnung AS bezeichnung_neu, a.text, DATE_FORMAT(a.zeit, '%Y%m%d%H%i%s') AS zeit, a.funktion, a.REC_TYP, a.done,
|
||
b.adresse, b.formatierung_id, b.bezeichnung,
|
||
d.id AS org_id, d.org_name, d.org, d.alarm_count, d.last_alarm
|
||
FROM dme a
|
||
LEFT JOIN ric_zvei b ON b.adresse = a.adresse
|
||
LEFT JOIN organisation d ON d.id = b.org_id
|
||
$show_filter
|
||
ORDER BY a.zeit DESC") or die (mysql_error());
|
||
while($row = mysql_fetch_array($result))
|
||
{
|
||
|
||
if( !$_GET["filter"] || $_GET["filter"] == 1 || $_GET["clean"] == "yes" )
|
||
{
|
||
if( $row["num"] > $_SESSION["lastupdate"] ) $_SESSION["lastupdate"] = $row["num"];
|
||
}
|
||
|
||
$bezeichnung = $row["bezeichnung"];
|
||
|
||
// Tageswechsel ausgeben
|
||
if( get_date($row["zeit"]) != $lastday && $lastday )
|
||
{
|
||
$tageswechsel = get_timestamp(str_replace("-","",date_dbformat($lastday))."000000");
|
||
|
||
//$nextday = '
|
||
$show[$tageswechsel] .= '
|
||
<tr>
|
||
<td colspan="5" bgcolor="black"><span style="color:white;font-size:16;font-weight:bold"> Tageswechsel: '.get_date_long($row["zeit"]).'</span></td>
|
||
</tr>
|
||
';
|
||
}
|
||
else
|
||
{
|
||
$nextday = '';
|
||
}
|
||
$lastday = get_date($row["zeit"]);
|
||
|
||
// Eintragen der Bezeichnung wenn Bezeichnung in monrc vorhanden und update 1
|
||
if( $update_adresse_monrc && !$bezeichnung )
|
||
{
|
||
// prfen ob die ric schon vorhanden ist, wenn nicht eintragen
|
||
$result_check = mysql_query("SELECT id FROM ric_zvei WHERE adresse=".$row["adresse_neu"]);
|
||
$row_check = mysql_fetch_array($result_check);
|
||
|
||
if( !$row_check["id"] )
|
||
{
|
||
$result_check = mysql_query("INSERT INTO ric_zvei (adresse, bezeichnung, rec_typ, formatierung_id) VALUES ('$row[adresse_neu]', '$row[bezeichnung_neu]', '$row[REC_TYP]', '0')") or die(mysql_error());
|
||
$bezeichnung = $row["bezeichnung_neu"];
|
||
}
|
||
}
|
||
|
||
// Wenn unbekannte Ric Wert setzen
|
||
if( !$bezeichnung && !$row["org_name"] ) $bezeichnung = 'Unbekannt';
|
||
if( !$row["org_name"] ) $row["org_name"] = $row["adresse_neu"];
|
||
|
||
// Wenn ZVEI
|
||
if( $row["REC_TYP"] == 'ZVEI' ) $row["funktion"] = $row["text"];
|
||
|
||
$row["bg_farbe"] = $formatierung[$row["formatierung_id"]]["bg_farbe"];
|
||
$row["text_farbe"] = $formatierung[$row["formatierung_id"]]["text_farbe"];
|
||
$row["text_farbe_text"] = $formatierung[$row["formatierung_id"]]["text_farbe_text"];
|
||
$row["bg_farbe_text"] = $formatierung[$row["formatierung_id"]]["bg_farbe_text"];
|
||
$row["text_groesse"] = $formatierung[$row["formatierung_id"]]["text_groesse"];
|
||
$row["text_groesse_text"] = $formatierung[$row["formatierung_id"]]["text_groesse_text"];
|
||
$row["text_format"] = $formatierung[$row["formatierung_id"]]["text_format"];
|
||
|
||
// default Farben bestimmen
|
||
if( !$row["bg_farbe"] ) $row["bg_farbe"] = 'white';
|
||
if( !$row["text_farbe"] ) $row["text_farbe"] = 'black';
|
||
if( !$row["text_farbe_text"] ) $row["text_farbe_text"] = 'black';
|
||
if( !$row["bg_farbe_text"] ) $row["bg_farbe_text"] = '#CCCCCC';
|
||
if( !$row["text_groesse"] ) $row["text_groesse"] = '13';
|
||
if( !$row["text_groesse_text"] ) $row["text_groesse_text"] = '12';
|
||
|
||
// pocsag in Array schreiben
|
||
//$thisday = $nextday.'
|
||
$thisday = '
|
||
<tr bgcolor="'.$row["bg_farbe"].'">
|
||
<td width="'.$pocsag_sp[1].'" align="center"><span style="color:white;font-size:'.$status_size.';font-weight:bold">'.get_time($row["zeit"]).' </span></td>
|
||
<td width="'.$pocsag_sp[2].'" align="center"><span style="color:'.$row["text_farbe"].';font-size:'.$row["text_groesse"].';font-weight:'.$row["text_format"].'"> '.$row["org"].'</span></td>
|
||
<td width="'.$pocsag_sp[3].'" align="center"><span style="color:'.$row["text_farbe"].';font-size:'.$row["text_groesse"].';font-weight:'.$row["text_format"].'">'.$bezeichnung.'</span></td>
|
||
<td><span title="'.$row["adresse"].'" style="color:'.$row["text_farbe"].';font-size:'.$row["text_groesse"].';font-weight:'.$row["text_format"].'"> '.$row["org_name"].'</span></td>
|
||
<td width="'.$pocsag_sp[5].'">
|
||
<span style="color:'.$row["text_farbe"].';font-size:'.$row["text_groesse"].';font-weight:'.$row["text_format"].'"> '.$row["funktion"].'</span>
|
||
</td>
|
||
</tr>
|
||
';
|
||
// wenn das ne ZVEI ist keine Textzeile ausgeben
|
||
if( $row["REC_TYP"] != "ZVEI" )
|
||
{
|
||
$thisday .= '
|
||
<tr bgcolor="'.$row["bg_farbe_text"].'">
|
||
<td colspan="5">
|
||
<span style="color:'.$row["text_farbe_text"].';font-size:'.$row["text_groesse_text"].'">'.$row["text"].'</span>
|
||
</td>
|
||
</tr>
|
||
';
|
||
}
|
||
|
||
// Falls sich Zeit letzter Status mit pocsag berschneiden um eins erhÔøΩen
|
||
$show_time = get_timestamp($row["zeit"]);
|
||
if( $show )
|
||
{
|
||
while( array_key_exists($show_time, $show) )
|
||
{
|
||
$show_time = ($show_time+1);
|
||
}
|
||
}
|
||
|
||
$show[$show_time] = $thisday;
|
||
}
|
||
|
||
/**************************/
|
||
// Datenbank schliessen
|
||
//
|
||
mysql_close($dbconn);
|
||
|
||
// Ausgabe für Ajax
|
||
echo "
|
||
<html>
|
||
";
|
||
|
||
//if ($new_unwetter == 1) echo '<meta http-equiv="refresh" content="1">';
|
||
|
||
if ( $show )
|
||
{
|
||
echo '<table width="98%" border="0" cellspacing="1" cellpadding="0" bgcolor="#000000" valign="top">';
|
||
foreach ( $show as $item )
|
||
{
|
||
echo $item;
|
||
}
|
||
echo '</table>';
|
||
}
|
||
|
||
echo "
|
||
</html>
|
||
";
|
||
?>
|