Index: trunk/info/info/alkis/alkisfshist.php
===================================================================
--- trunk/info/info/alkis/alkisfshist.php	(revision 372)
+++ trunk/info/info/alkis/alkisfshist.php	(revision 376)
@@ -5,11 +5,6 @@
 	Flurstuecks-Historie fuer ein Flurstueckskennzeichen aus ALKIS PostNAS
 	Version:
-	2011-11-16 Zum aktuellen FS die VorgÃ€nger suchen
-	2011-11-17 Parameter der Functions geÃ€ndert
-	2011-11-30 import_request_variables
-	2012-11-27 Function split deprecated: explode
-	2013-04-08 deprecated "import_request_variables" ersetzt
-	2014-09-15 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2015-12-09 Austausch .ico durch .png
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen (Filter Gemeinde)
 */
 
@@ -31,14 +26,12 @@
 function vornach($dbarr) {
 // Datenbank-Array-Feld zeilenweise ausgeben als Selbst-Link
-	global $gkz, $idanzeige, $showkey;
+	global $gkz, $showkey;
 	if ($dbarr == "") {
 		echo "(keine)";
 	} else {
 		$stri=trim($dbarr, "{}");
-		//$arr = split(",",$stri);
 		$arr = explode(",",$stri);
 		foreach($arr AS $val){
 			echo "Flurst&uuml;ck <a title=' zur Flurst&uuml;ck Historie' href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;fskennz=".$val;
-			if ($idanzeige) {echo "&amp;id=j";}
 			if ($showkey)   {echo "&amp;showkey=j";}
 			echo "'>".fzerleg($val)."</a><br>";
@@ -49,7 +42,7 @@
 
 function gemkg_name($gkey) {
-// Schluessel wird uebergeben, Name in DB nachschlagen
+//	Schluessel wird ÃŒbergeben, Name dazu in der DB nachschlagen
 	global $con;
-	$sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;";
+	$sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 AND g.endet IS NULL LIMIT 1;";
 	$v=array($gkey);
 	$res=pg_prepare("", $sql);
@@ -72,5 +65,5 @@
 // Akt. FS hat keine Verweise auf Vorgaenger. Darum in den Nachfolger-Verweisen von Hist.-FS suchen.
 // Problem: Dies sind Arrays, die nicht performant durchsucht werden koennen.
-	global $gkz, $con, $debug;
+	global $gkz, $con, $debug, $showkey, $filtkreis, $filtgem;
 
 	$wherecl="WHERE $1 = ANY (nachfolgerflurstueckskennzeichen) ";
@@ -100,6 +93,5 @@
 		$vfsk=$rowv["flurstueckskennzeichen"];
 		echo "Flurst&uuml;ck <a title='Historie des Vorg&auml;ngerflurst&uuml;cks' href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;fskennz=".$vfsk."&amp;gmlid=".$gmlv;
-	   	if ($idanzeige) {echo "&amp;id=j";}
-			if ($showkey)   {echo "&amp;showkey=j";}
+			if ($showkey) {echo "&amp;showkey=j";}
 		echo "'>".fzerleg($vfsk)."</a><br>";
 		$zv++;
@@ -116,16 +108,11 @@
 if ($auth == "mapbender") {require_once($mapbender);}
 include("alkisfkt.php");
-if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;}
 $keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n";
 if ($keys == "j") {$showkey=true;} else {$showkey=false;}
 ?>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
+<!doctype html>
+<html lang="de">
 <head>
-	<meta name="author" content="b600352" >
-	<meta http-equiv="cache-control" content="no-cache">
-	<meta http-equiv="pragma" content="no-cache">
-	<meta http-equiv="expires" content="0">
-	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<meta charset="utf-8">
 	<title>ALKIS Flurst&uuml;cks-Historie</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -137,7 +124,6 @@
 <body>
 <?php
-$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfshist.php'");
 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
-// if ($debug > 1) {echo "<p class='err'>DB=".$dbname.", user=".$dbuser."</p>";}
 
 // Such-Parameter bekommen? Welche?
@@ -147,24 +133,33 @@
 	$whereclause="WHERE gml_id= $1 ";
 	$v = array($gmlid);
-} else {	// Alternativ: Flurst.-Kennz. uebergeben
-	if ($fskennz != "") {
+} elseif ($fskennz != "") { // Alternativ: Flurst.-Kennz. uebergeben
 		$parmtyp="Flurst&uuml;ckskennzeichen";
 		$parmval=$fskennz;
 		$whereclause="WHERE flurstueckskennzeichen= $1 "; // hinten auffuellen mit _ auf 20 Stellen
 		$v = array($fskennz);
-	} else { // Pfui!
+} else { // Pfui!
 		$parmtyp="";
 		echo "<p class='err'>Parameter 'gmlid' oder 'fskennz' fehlt.</p>";
-	}
 }
 
 if ($parmtyp != "") { // einer der beiden erlaubten FÃ€lle
-	// UNION-Abfrage auf 3 Ã€hnliche Tabellen, darin aber immer nur 1 Treffer.
-
-	$felder="gml_id, flurnummer, zaehler, nenner, flurstueckskennzeichen, amtlicheflaeche, zeitpunktderentstehung, gemarkungsnummer, ";
-
-	$sqlu ="SELECT 'a' AS ftyp, ".$felder."null AS nach, null AS vor, null AS \"name\" FROM ax_flurstueck f ".$whereclause." AND f.endet IS NULL "
-	."UNION SELECT 'h' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueck h ".$whereclause." AND h.endet IS NULL "
-	."UNION SELECT 'o' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueckohneraumbezug o ".$whereclause." AND o.endet IS NULL;";
+	// UNION-Abfrage auf 3Ã€hnliche Tabellen, darin aber immer nur 1 Treffer.
+	// norGIS: unterschiedliche Formate der gleichen Spalten, Typumwandlung "cast" verwenden.
+
+	$felder="gml_id, flurnummer, cast(zaehler AS character varying), cast(nenner AS character varying), flurstueckskennzeichen, amtlicheflaeche, zeitpunktderentstehung, gemarkungsnummer, ";
+
+	if ($filtgem == '') { // Filter Gemeinde ?
+		$wheref='';
+		$whereh='';
+		$whereo='';
+	} else { // ZusÃ€tze zur WHERE-Clausel
+		$wheref=" AND f.kreis = '".$filtkreis."' AND f.gemeinde = '".$filtgem."' ";
+		$whereh=" AND h.kreis = '".$filtkreis."' AND h.gemeinde = '".$filtgem."' ";
+		$whereo=" AND o.gemeinde = '".$filtgem."' ";
+	}
+
+	$sqlu ="SELECT 'a' AS ftyp, ".$felder."null AS nach, null AS vor, null AS \"name\" FROM ax_flurstueck f ".$whereclause.$wheref." AND f.endet IS NULL "
+	."UNION SELECT 'h' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueck h ".$whereclause.$whereh." AND h.endet IS NULL "
+	."UNION SELECT 'o' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueckohneraumbezug o ".$whereclause.$whereo." AND o.endet IS NULL;";
 
 	$resu = pg_prepare("", $sqlu);
@@ -188,6 +183,10 @@
 		if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // fuer selbst-link-Umschalter ueber footer
 	} else {
-		if ($debug > 1) {echo "<br><p class='err'>Fehler! Kein Treffer f&uuml;r ".$parmtyp." = '".$parmval."'</p><br>";}
-		if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sqlu."<br>$1=".$parmtyp." = '".$parmval."'</p>";}
+		if ($debug > 1) {
+			echo "<br><p class='err'>Fehler! Kein Treffer f&uuml;r ".$parmtyp." = '".$parmval."'</p><br>";
+			if ($debug > 2) {
+				echo "<p class='dbg'>SQL=<br>".$sqlu."<br>$1=".$parmtyp." = '".$parmval."'</p>";
+			}
+		}
 	}
 }
@@ -222,43 +221,39 @@
 echo "\n<table class='outer'>\n<tr>\n\t<td>"; // linke Seite
 	// darin Tabelle Kennzeichen
-	echo "\n\t<table class='".$cls."' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>";
-		echo "\n\t\t<td class='head'>Gmkg</td>\n\t\t<td class='head'>Flur</td>\n\t\t<td class='head'>Flurst-Nr.</td>\n\t</tr>";
-		echo "\n\t<tr>\n\t\t<td title='Gemarkung'>";
+	echo "\n\t<table class='".$cls."' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>"
+		."\n\t\t<td class='head'>Gmkg</td>\n\t\t<td class='head'>Flur</td>\n\t\t<td class='head'>Flurst-Nr.</td>\n\t</tr>"
+		."\n\t<tr>\n\t\t<td title='Gemarkung'>";
 		if ($showkey) {echo "<span class='key'>".$gmkgnr."</span><br>";}
-		echo $gemkname."&nbsp;</td>";
-		echo "\n\t\t<td title='Flurnummer'>".$flurnummer."</td>";
-		echo "\n\t\t<td title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t</tr>";
-	echo "\n\t</table>";
-echo "\n\t</td>\n\t<td>"; // rechte Seite
+		echo $gemkname."&nbsp;</td>"
+		."\n\t\t<td title='Flurnummer'>".$flurnummer."</td>"
+		."\n\t\t<td title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t</tr>"
+	."\n\t</table>"
+."\n\t</td>\n\t<td>"; // rechte Seite
 	// FS-Daten 2 Spalten
-	echo "\n\t<table class='fsd'>";
-		echo "\n\t<tr>\n\t\t<td>Entstehung</td>";
-			echo "\n\t\t<td>".$entsteh."</td>";
-		echo "\n\t</tr>";
-		echo "\n\t<tr>";
-			echo "\n\t\t<td>letz. Fortf</td>";
-			echo "\n\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>";
+	echo "\n\t<table class='fsd'>"
+		."\n\t<tr>\n\t\t<td>Entstehung</td>"
+			."\n\t\t<td>".$entsteh."</td>"
+		."\n\t</tr>\n\t<tr>"
+			."\n\t\t<td>letz. Fortf</td>"
+			."\n\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>";
 				foreach($arrn AS $val) { // Zeile f. jedes Element
 					echo trim($val, '"')."<br>";
 				}
-			echo "</td>";
-		echo "\n\t</tr>";
-	echo "\n\t</table>";
-	if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck", "ax_flurstueck"); }
-echo "\n\t</td>\n</tr>\n</table>";
+			echo "</td>"
+		."\n\t</tr>"
+	."\n\t</table>"
+."\n\t</td>\n</tr>\n</table>";
 
 if ($ftyp == "a") { // Aktuell -> Historie
-	echo "\n<p class='nwlink noprint'>weitere Auskunft: ";
-		echo "<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;eig=n";
-			if ($idanzeige) {echo "&amp;id=j";}
+	echo "\n<p class='nwlink noprint'>weitere Auskunft: "
+		."<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;eig=n";
 			if ($showkey)   {echo "&amp;showkey=j";}
-			echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck ";
-			echo "<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>";
-		echo "</a>";
-}
-echo "\n<hr>";
-
-echo "<table class='outer'>";
-	echo "\n<tr>
+			echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck "
+			."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"
+		."</a>";
+}
+echo "\n<hr>"
+."<table class='outer'>"
+	."\n<tr>
 		<td class='head'>Flurst&uuml;ck</td>
 		<td class='head'>Vorg&auml;nger</td>
@@ -267,8 +262,8 @@
 	
 	// Spalte 1: F l u r s t ÃŒ c k
-	echo "\n<tr>\n\t<td>";
-		echo "<img src='ico/".$ico."' width='16' height='16' alt=''> ".$wert;
-		echo "<br>Fl&auml;che <span class='flae'>".$flae."</span>";
-	echo "</td>";
+	echo "\n<tr>\n\t<td>"
+		."<img src='ico/".$ico."' width='16' height='16' alt=''> ".$wert
+		."<br>Fl&auml;che <span class='flae'>".$flae."</span>"
+	."</td>";
 
 	// Spalte 2: V o r g Ã€ n g e r
@@ -294,6 +289,6 @@
 	echo "\n\t<td>";
 		vornach($nach);
-	echo "</td>\n</tr>";
-echo "\n</table>";
+	echo "</td>\n</tr>"
+."\n</table>";
 
 if ($debug > 1) {
@@ -307,11 +302,9 @@
 ?>
 
-<form action=''>
-	<div class='buttonbereich noprint'>
-		<hr>
-		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp;
-		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp;
-	</div>
-</form>
+<div class='buttonbereich noprint'>
+<hr>
+	<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp;
+	<a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp;
+</div>
 
 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
