Index: trunk/mapbender/http/nav/alkisnav_fkt.php
===================================================================
--- trunk/mapbender/http/nav/alkisnav_fkt.php	(revision 356)
+++ trunk/mapbender/http/nav/alkisnav_fkt.php	(revision 376)
@@ -1,12 +1,10 @@
 <?php
-/* Version vom 
-	2013-05-07	Strukturierung des Programms, redundanten Code in Functions zusammen fassen
-	2013-05-14	Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar.
-	2013-05-15	Function verlegt
-	2014-02-06	Korrektur zeile_person
-	2014-09-03	PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-15	Bei Relationen den Timestamp abschneiden, mehr "endet IS NULL"
-	2014-09-30	RÃŒckbau substring(gml_id)
-	2015-12-10	Umstellen .ico auf .png, Vermeidung nicht initialisierter Variable
+/*	Navigation mit ALKIS-Daten im Mapbender 2.7 - Teil "Funktionen"
+	(Wird nicht direkt aufgerufen sonden in den anderen Modulen eingebunden).
+	Diese Version des Programms verwendet die Datenbank-Struktur aus dem norGIS-ALKIS-Importer.
+
+Version vom 
+	2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet.
+	2016-11-28 Gemeinsam genutzte Datenbanken ermÃ¶glichen
 */
 
@@ -87,5 +85,6 @@
 // Hierin die Encodierung fÃŒr url und HTML.
 
-function zeile_ag ($ag, $anr, $aktuell) {	// Zeile  A m t s g e r i c h t
+function zeile_ag ($ag, $anr, $aktuell) {
+	// Zeile  A m t s g e r i c h t
 	global $gkz, $gemeinde, $epsg, $auskpath;
 	if ($ag == "") {
@@ -103,5 +102,6 @@
 }
 
-function zeile_gbbez ($gnam, $zgbbez, $aktuell) {	// Zeile Grundbuch - B e z i r k
+function zeile_gbbez ($gnam, $zgbbez, $aktuell) {
+	// Zeile Grundbuch - B e z i r k
 	// Parameter: aktuell = Bool fÃŒr farbliche Markierung der Zeile als aktuell angeklicktes Obj.
 	global $gkz, $gemeinde, $epsg, $person;
@@ -124,6 +124,10 @@
 
 function zeile_blatt ($bezirk, $beznam, $blattgml, $blatt, $dienend, $person, $aktuell) {
+	// Zeile Grundbuch - B l a t t
+	// Aufruf aus Teil "Grundbuch" und Teil "EigentÃŒmer"
+	// Parameter $beznam = Name des GB-Bezirks. Sollte nur gefÃŒllt sein, bei dienendem Blatt ("Recht an").
+	//		sonst steht der Bezirk als Header-Zeile darÃŒber.
 	global $gkz, $gemeinde, $epsg, $auskpath;
-	// Zeile Grundbuch - B l a t t
+
 	$blattd=ltrim($blatt, "0"); // Display-Version ohne fÃŒhrende Nullen
 	if ($dienend) {$dientxt="dienendes ";} else {$dientxt="";}
@@ -136,5 +140,5 @@
 	// Icon / Nachweis
 	if ($blattgml == "") { // Link zum Nachweis nur wenn GML bekannt
-		echo "\n\t<img class='nwlink' src='ico/GBBlatt_link.png' width='16' height='16' alt='Blatt' title='".$dientxt."GB-Blatt'>";
+		echo "\n\t<img class='nwlink' src='ico/GBBlatt.png' width='16' height='16' alt='Blatt' title='".$dientxt."GB-Blatt'>";
 	} else {
 		echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$blattgml."\")'>";
@@ -156,7 +160,9 @@
 function zeile_buchung($buchunggml, $bvnr, $blattkennz, $dienend, $aktuell) {
 	// Zeile  B u c h u n g s s t e l l e  -  GrundstÃŒck ausgeben
-	global $gkz, $gemeinde, $epsg, $auskpath;
-	if ($bvnr == 0) {
-		$bvnra = "-";
+	global $gkz, $gemeinde, $epsg, $auskpath, $debug;
+	//if ($debug > 1) {echo "<p class='dbg'>function zeile_buchung()<p>";} // Ablauf-Verfolgung
+
+	if ($bvnr == 0) { // Keine echten BVNR vergeben (z.B. Lippe)
+		$bvnra = "-"; // Fehlanzeige
 	} else {
 		$bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen
@@ -184,5 +190,5 @@
 
 function zeile_gemeinde ($gmdnr, $gmdname, $aktuell) {
-	// Eine Zeile zu Gemeinde ausgeben, SchlÃŒssel und Name wird ÃŒbergeben
+	// Eine Kopf-Zeile zu Gemeinde ausgeben
 	global $gkz, $gemeinde, $epsg;
 	$stadt=htmlentities($gmdname, ENT_QUOTES, "UTF-8");
@@ -192,5 +198,31 @@
 		echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.png' width='16' height='16' alt='Stadt'>";
 		echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gm=".$gmdnr."&amp;bez=".$bez."'>";		
-		echo  " ".$stadt."</a> (".$gmdnr.")";
+		echo  " ".$stadt."</a> (".substr($gmdnr, 5).")";
+	echo "\n</div>";
+	return;
+}
+
+function zeile_gemarkung($gkgnr, $gkgname, $aktuell) {
+	// Eine Kopf-Zeile zur Gemarkung ausgeben
+	global $con, $gkz, $gemeinde, $epsg, $gfilter;
+
+	if ($gkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen
+		$sql ="SELECT bezeichnung FROM ax_gemarkung WHERE gemarkungsnummer = $1 LIMIT 1;";
+		$v=array($gnr);
+		$res=pg_prepare("", $sql);
+		$res=pg_execute("", $v);
+		if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkungsname.</p>";}
+		$row = pg_fetch_array($res);
+		$gkgname=$row["bezeichnung"];
+	}
+
+	if ($gkgname == "") {$gkgname = "(unbekannt)";}
+	$gnam=htmlentities($gkgname, ENT_QUOTES, "UTF-8");
+	if ($aktuell) {$cls=" aktuell";} else {$cls="";}
+
+	echo "\n<div class='gk".$cls."' title='Gemarkung'>";
+	echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.png' width='16' height='16' alt='GKG' title='Gemarkung'>";
+	echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gkgnr."'>";		
+	echo  " ".$gnam."</a> (".substr($gkgnr, 2).")";
 	echo "\n</div>";
 	return;
@@ -226,6 +258,7 @@
 
 function zeile_person ($persongml, $nachname, $vorname) {
+	// Zeile  P e r s o n (oder Firma)
 	global $gkz, $gemeinde, $epsg, $auskpath;
-	// Zeile  P e r s o n (oder Firma)
+
 	$nnam=htmlentities($nachname, ENT_QUOTES, "UTF-8");
 	$namlnk=urlencode($nachname);
@@ -240,4 +273,31 @@
 </div>";
 return;
+}
+
+function zeile_strasse ($gkey, $skey, $sname, $kgml, $gemname) {
+	// Listen-Zeile (nicht Kopfzeile) fÃŒr eine gefundenen StraÃe ausgeben.
+	// Die Kopfzeile ÃŒber den Hausnummern hat einen zusÃ€tzlichen Koordinaten-Map-Link, das ist in der Liste zu aufwÃ€ndig?
+	global $gkz, $gemeinde, $epsg, $auskpath, $gfilter, $debug;
+	//if ($debug > 1) {echo "<p class='dbg'>function zeile_strasse()<p>";} // Ablauf-Verfolgung
+
+	echo "\n\t<div class='stl' title='Stra&szlig;enschl&uuml;ssel ".$skey."'>";
+
+	// Icon -> Buchnachweis
+	echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$kgml."\")'>";
+		echo "\n\t\t<img class='nwlink' src='ico/Lage_mit_Haus.png' width='16' height='16' alt='STR' title='Auskunft Stra&szlig;e'>";
+	echo "\n\t</a>";
+	// Zeile -> Suche HsNr
+	echo " <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$gkey."' title='in ".$gemname."'>".$sname;
+	echo "</a> (".$skey.")";
+
+	// Die Gemeinde dahinter falls mehrere mÃ¶glich
+	switch ($gfilter) {
+		case 0: // Kein Filter
+			echo " in ".$gemname; break;
+		case 2: // Liste
+			echo " in ".$gemname; break;
+	}
+	echo "</div>";
+	return;
 }
 
@@ -257,5 +317,5 @@
 		$sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";			
 	}
-	$sql1.="g.gemarkung, g.gemarkungsname FROM ax_buchungsstelle s1 "; 
+	$sql1.="g.bezeichnung FROM ax_buchungsstelle s1 "; 
 
 	// zwischen, Variante 1.
@@ -267,11 +327,12 @@
 
 	// hinten gleich
-	$sql2="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung 
+	$sql2="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
 	WHERE s1.istbestandteilvon = $1 AND f.endet IS NULL AND s1.endet IS NULL ";
+
 	switch ($gfilter) {
 		case 1: // Einzelwert
-			$sql2.="AND g.gemeinde='".$gemeinde."' "; break;
+			$sql2.="AND f.gemeinde='".$gemeinde."' "; break;
 		case 2: // Liste
-			$sql2.="AND g.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break;
+			$sql2.="AND f.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break;
 	}
 
@@ -301,5 +362,5 @@
 		}
 		$fs_gml=$row["gml_id"];
-		$gmkg=$row["gemarkungsname"];
+		$gmkg=$row["bezeichnung"];
 		$flur=$row["flurnummer"];
 		$fskenn=$row["zaehler"];
@@ -339,5 +400,5 @@
 		}
 		$fs_gml=$row["gml_id"];
-		$gmkg=$row["gemarkungsname"];
+		$gmkg=$row["bezeichnung"];
 		$flur=$row["flurnummer"];
 		$fskenn=$row["zaehler"];
