263 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			263 lines
		
	
	
		
			9.8 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 (!isset($_SESSION["querystring"])) $_SESSION["querystring"] = "";
 | 
						||
	if( $_SERVER['QUERY_STRING'] != $_SESSION["querystring"] )
 | 
						||
	{
 | 
						||
		//$_SESSION["lastupdate"] = "";
 | 
						||
		$_SESSION["online_users"] = "";
 | 
						||
		$_SESSION["querystring"]	= $_SERVER['QUERY_STRING'];
 | 
						||
	}
 | 
						||
 | 
						||
	// Filter Datum/Zeit erstellen
 | 
						||
	if( !isset($_GET["filter"]) || $_GET["filter"] == 1 )
 | 
						||
	{ 
 | 
						||
		$show_filter = 1;
 | 
						||
	} 
 | 
						||
	else
 | 
						||
	{
 | 
						||
		$filter = $_GET["filter"]; 
 | 
						||
	}
 | 
						||
 | 
						||
if (!isset($_SESSION["lastupdate"])) $_SESSION["lastupdate"]="";
 | 
						||
if (!isset($show_filter)) $show_filter="";
 | 
						||
 | 
						||
if( $show_filter == 1 && $_SESSION["lastupdate"] == "" && !isset($_GET["clean"]) ) {
 | 
						||
	$show_filter 		= filter_zeit(1);
 | 
						||
	$show_filter		= " WHERE a.zeit > '$show_filter' ";
 | 
						||
} 
 | 
						||
elseif( $show_filter == 1 && $_SESSION["lastupdate"] != "" && !isset($_GET["clean"]) ) {
 | 
						||
	$show_filter		= " WHERE a.num > ".$_SESSION["lastupdate"];
 | 
						||
}
 | 
						||
elseif( $show_filter == 1 && $_SESSION["lastupdate"] != "" && isset($_GET["clean"]) && $_GET["clean"] == "yes" ) {
 | 
						||
	$show_filter 		= filter_zeit(1);
 | 
						||
	$show_filter		= " WHERE a.zeit > '$show_filter' ";
 | 
						||
}
 | 
						||
else { //if( $show_filter != 1 ) {
 | 
						||
	$show_filter 		= filter_zeit((isset($filter)) ? $filter : 1);
 | 
						||
	$show_filter		= " WHERE a.zeit > '$show_filter' ";
 | 
						||
} 
 | 
						||
 | 
						||
/////////
 | 
						||
 | 
						||
		if (!isset($_GET["org_filter"])) $_GET["org_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( (!isset($_SESSION["formatierung"]) || $_SESSION["formatierung"]=="") && (!isset($_GET["nooutput"]) || $_GET["nooutput"] == "") )
 | 
						||
	{
 | 
						||
		$result	= mysqli_query($dbconn, "SELECT id, bg_farbe, text_farbe, text_format, text_groesse, text_groesse_text FROM formatierung ORDER BY id ASC") or die (mysqli_error($dbconn));
 | 
						||
		while($row = mysqli_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	= mysqli_query($dbconn, "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 (mysqli_error($dbconn));
 | 
						||
	while($row = mysqli_fetch_array($result))
 | 
						||
	{
 | 
						||
		//echo "<br>-----------";
 | 
						||
		if( !isset($_GET["filter"]) || $_GET["filter"] == 1 || (isset($_GET["clean"]) && $_GET["clean"] == "yes") )
 | 
						||
		{
 | 
						||
			if( $row["num"] > $_SESSION["lastupdate"] ) $_SESSION["lastupdate"] = $row["num"];
 | 
						||
		}
 | 
						||
 | 
						||
		$bezeichnung	= $row["bezeichnung"];
 | 
						||
		
 | 
						||
		// Tageswechsel ausgeben
 | 
						||
		if( isset($lastday) && get_date($row["zeit"]) != $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:16px;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 = mysqli_query($dbconn, "SELECT id FROM ric_zvei WHERE adresse=".$row["adresse_neu"]);
 | 
						||
			$row_check = mysqli_fetch_array($result_check);
 | 
						||
			
 | 
						||
			if( !$row_check["id"] )
 | 
						||
			{
 | 
						||
				$result_check 	= mysqli_query($dbconn, "INSERT INTO ric_zvei (adresse, bezeichnung, rec_typ, formatierung_id) VALUES ('$row[adresse_neu]', '$row[bezeichnung_neu]', '$row[REC_TYP]', '0')") or die(mysqli_error($dbconn));
 | 
						||
				$bezeichnung	= $row["bezeichnung_neu"];
 | 
						||
			}
 | 
						||
		}
 | 
						||
		
 | 
						||
		// Wenn unbekannte Ric Wert setzen
 | 
						||
		$isNew = false;
 | 
						||
		if( empty($row["org_name"]) ) {
 | 
						||
            $check_imp = mysqli_query($dbconn, "SELECT id, i_org, i_ort, i_zusatz FROM import_ric WHERE i_ric=".$row["adresse_neu"]);
 | 
						||
            $imp = mysqli_fetch_array($check_imp);
 | 
						||
 | 
						||
            if( !empty($imp["id"])) {
 | 
						||
            	$bezeichnung = $row["adresse_neu"];
 | 
						||
				$row["org_name"] = $imp["i_org"]." ".$imp["i_ort"]." ".$imp["i_zusatz"];
 | 
						||
				$isNew = true;
 | 
						||
			}
 | 
						||
            else {
 | 
						||
                $bezeichnung = 'Unbekannt';
 | 
						||
            }
 | 
						||
        }
 | 
						||
		if( !$row["org_name"] ) $row["org_name"] = $row["adresse_neu"];
 | 
						||
		
 | 
						||
		// Wenn ZVEI
 | 
						||
		if( $row["REC_TYP"] == 'ZVEI' ) $row["funktion"] = $row["text"];
 | 
						||
		
 | 
						||
		if (isset($formatierung[$row["formatierung_id"]]["bg_farbe"])) $row["bg_farbe"]					= $formatierung[$row["formatierung_id"]]["bg_farbe"];
 | 
						||
		if (isset($formatierung[$row["formatierung_id"]]["text_farbe"])) $row["text_farbe"] 			= $formatierung[$row["formatierung_id"]]["text_farbe"];
 | 
						||
		if (isset($formatierung[$row["formatierung_id"]]["text_farbe_text"])) $row["text_farbe_text"]	= $formatierung[$row["formatierung_id"]]["text_farbe_text"];
 | 
						||
		if (isset($formatierung[$row["formatierung_id"]]["bg_farbe_text"])) $row["bg_farbe_text"] 		= $formatierung[$row["formatierung_id"]]["bg_farbe_text"];
 | 
						||
		if (isset($formatierung[$row["formatierung_id"]]["text_groesse"])) $row["text_groesse"] 		= $formatierung[$row["formatierung_id"]]["text_groesse"];
 | 
						||
		if (isset($formatierung[$row["formatierung_id"]]["text_groesse_text"])) $row["text_groesse_text"] 	= $formatierung[$row["formatierung_id"]]["text_groesse_text"];
 | 
						||
		if (isset($formatierung[$row["formatierung_id"]]["text_format"])) $row["text_format"]			= $formatierung[$row["formatierung_id"]]["text_format"];
 | 
						||
		
 | 
						||
		// default Farben bestimmen
 | 
						||
        if( !isset($row["bg_farbe"]) && $isNew == false ) {
 | 
						||
            $row["bg_farbe"] = '#FFFFFF';
 | 
						||
        }
 | 
						||
		elseif( !isset($row["bg_farbe"]) && $isNew == true ) {
 | 
						||
            $row["bg_farbe"] = '#E8C700';
 | 
						||
        }
 | 
						||
		//if( !isset($row["bg_farbe"]) )				$row["bg_farbe"]			= 'white';
 | 
						||
		if( !isset($row["text_farbe"]) )			$row["text_farbe"]			= 'black';
 | 
						||
		if( !isset($row["text_farbe_text"]) )		$row["text_farbe_text"] 	= 'black';
 | 
						||
		if( !isset($row["bg_farbe_text"]) )			$row["bg_farbe_text"] 		= '#CCCCCC';
 | 
						||
		if( !isset($row["text_groesse"]) )			$row["text_groesse"]		= '13';
 | 
						||
		if( !isset($row["text_groesse_text"]) )		$row["text_groesse_text"]	= '12';
 | 
						||
        if( !isset($row["text_format"]) )			$row["text_format"]			= '1';
 | 
						||
		
 | 
						||
		// 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"].'">'.remove_idea_codes($row["text"]).'</span>
 | 
						||
				  </td>
 | 
						||
				</tr>
 | 
						||
			';
 | 
						||
		}
 | 
						||
		
 | 
						||
			// Falls sich Zeit letzter Status mit pocsag berschneiden um eins erhÔøΩen
 | 
						||
			$show_time = get_timestamp($row["zeit"]);
 | 
						||
			if( isset($show) )
 | 
						||
			{
 | 
						||
				while( array_key_exists($show_time, $show) )
 | 
						||
				{
 | 
						||
					$show_time = ($show_time+1);
 | 
						||
				}
 | 
						||
			}
 | 
						||
		
 | 
						||
		$show[$show_time] = $thisday;
 | 
						||
	}
 | 
						||
 | 
						||
/**************************/
 | 
						||
// Datenbank schliessen
 | 
						||
//
 | 
						||
mysqli_close($dbconn);
 | 
						||
 | 
						||
// Ausgabe für Ajax
 | 
						||
echo "
 | 
						||
<html>
 | 
						||
";
 | 
						||
 | 
						||
//if ($new_unwetter == 1) echo '<meta http-equiv="refresh" content="1">';
 | 
						||
 | 
						||
if ( isset($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>
 | 
						||
";
 | 
						||
?>
 |