[Mapbender-commits] r9400 - trunk/mapbender/http/php

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Wed Feb 17 07:51:51 PST 2016


Author: armin11
Date: 2016-02-17 07:51:51 -0800 (Wed, 17 Feb 2016)
New Revision: 9400

Modified:
   trunk/mapbender/http/php/mod_inspireDownloadFeed.php
Log:
New options for metadata based atom feeds - pull responsible party name and email from external metadata and writes them to atom feed!

Modified: trunk/mapbender/http/php/mod_inspireDownloadFeed.php
===================================================================
--- trunk/mapbender/http/php/mod_inspireDownloadFeed.php	2016-02-17 15:50:53 UTC (rev 9399)
+++ trunk/mapbender/http/php/mod_inspireDownloadFeed.php	2016-02-17 15:51:51 UTC (rev 9400)
@@ -29,6 +29,7 @@
 require_once(dirname(__FILE__) . "/../classes/class_Uuid.php");
 require_once(dirname(__FILE__) . "/../../conf/mimetype.conf");
 require_once(dirname(__FILE__) . "/../classes/class_cache.php");
+require_once(dirname(__FILE__) . "/../classes/class_iso19139.php");
 
 //check_epsg_wms_13($tmp_epsg)
 //http://www.weichand.de/inspire/dls/verwaltungsgrenzen.xml
@@ -1027,9 +1028,27 @@
 	//</author>
 	$feedAuthor = $feedDoc->createElement("author");
 	$feedAuthorName = $feedDoc->createElement("name");
-	$feedAuthorName->appendChild($feedDoc->createTextNode($departmentMetadata["mb_group_title"]));
 	$feedAuthorEmail = $feedDoc->createElement("email");
-	$feedAuthorEmail->appendChild($feedDoc->createTextNode($departmentMetadata["mb_group_email"]));
+	//check for department, 1. group, 2. from metadat, 3. dummy
+	if ($departmentMetadata["mb_group_title"] == "" || empty($departmentMetadata["mb_group_title"])) {
+		if ($mapbenderMetadata[$m]->ressource_responsible_party == "" || empty($mapbenderMetadata[$m]->ressource_responsible_party)) {
+			$feedAuthorName->appendChild($feedDoc->createTextNode("No responsible department found!"));
+		} else {
+			$feedAuthorName->appendChild($feedDoc->createTextNode($mapbenderMetadata[$m]->ressource_responsible_party));
+		}
+	} else {
+		$feedAuthorName->appendChild($feedDoc->createTextNode($departmentMetadata["mb_group_title"]));
+	}
+	if ($departmentMetadata["mb_group_email"] == "" || empty($departmentMetadata["mb_group_email"])) {
+		if ($mapbenderMetadata[$m]->ressource_contact_email == "" || empty($mapbenderMetadata[$m]->ressource_contact_email)) {
+			$feedAuthorEmail->appendChild($feedDoc->createTextNode("No email for responsible department found!"));
+		} else {
+			$feedAuthorEmail->appendChild($feedDoc->createTextNode($mapbenderMetadata[$m]->ressource_contact_email));
+		}
+	} else {
+		$feedAuthorEmail->appendChild($feedDoc->createTextNode($departmentMetadata["mb_group_email"]));
+	}
+	//$feedAuthorEmail->appendChild($feedDoc->createTextNode($departmentMetadata["mb_group_email"]));
 	$feedAuthor->appendChild($feedAuthorName);
 	$feedAuthor->appendChild($feedAuthorEmail);
 	$feed->appendChild($feedAuthor);
@@ -1758,7 +1777,7 @@
 
 function fillMapbenderMetadata($dbResult, $generateFrom) {
 	//function increments $indexMapbenderMetadata !!!
-	global $mapbenderMetadata, $indexMapbenderMetadata, $admin;
+	global $mapbenderMetadata, $indexMapbenderMetadata, $admin, $mapbenderPath;
 	//echo "<error>fill begins</error>";
 	if ($generateFrom == 'metadata') {
 		$row = db_fetch_assoc($dbResult);
@@ -1799,6 +1818,34 @@
 			$mapbenderMetadata[$indexMapbenderMetadata]->datasetid_codespace = METADATA_DEFAULT_CODESPACE;
 			$mapbenderMetadata[$indexMapbenderMetadata]->datasetid = $mapbenderMetadata[$indexMapbenderMetadata]->metadata_uuid;
 		}
+		//$e = new mb_exception("test");
+		//overwrite some elements if the feed should be generated from metadata itself: access constraints, use limitations, ...
+		if ($generateFrom == "metadata") {
+			//get metadata from metadata proxy by uuid
+			//http://www.geoportal.rlp.de/mapbender/php/mod_iso19139ToHtml.php?url=http%3A%2F%2Fwww.geoportal.rlp.de%2Fmapbender%2Fphp%2Fmod_dataISOMetadata.php%3FoutputFormat%3Diso19139%26id%3D2b009ae4-aa3e-ff21-870b-49846d9561b2
+			$iso19139 = new iso19139();
+			
+			$metadata = $iso19139->createFromUrl($mapbenderPath."php/mod_dataISOMetadata.php?outputFormat=iso19139&id=".$mapbenderMetadata[$indexMapbenderMetadata]->metadata_uuid);
+			//$e = new mb_exception($mapbenderPath."php/mod_dataISOMetadata.php?outputFormat=iso19139&id=".$mapbenderMetadata[$indexMapbenderMetadata]->metadata_uuid);
+			if ($metadata->fees == "" || empty($metadata->fees)) {
+				//$e = new mb_exception("fees from metadata: ".$metadata->fees);
+				$mapbenderMetadata[$indexMapbenderMetadata]->accessconstraints = "No information about conditions/fees found in original metadata";
+			} else {
+				$mapbenderMetadata[$indexMapbenderMetadata]->accessconstraints = $metadata->fees;
+			}
+			if ($metadata->ressourceContactEmail == "" || empty($metadata->ressourceContactEmail)) {
+				$mapbenderMetadata[$indexMapbenderMetadata]->ressource_contact_email = "dummy at test.org";
+			} else {
+				$mapbenderMetadata[$indexMapbenderMetadata]->ressource_contact_email = $metadata->ressourceContactEmail;
+			}
+			if ($metadata->ressourceResponsibleParty == "" || empty($metadata->ressourceResponsibleParty)) {
+				$mapbenderMetadata[$indexMapbenderMetadata]->ressource_responsible_party = "dummy organisation";
+			} else {
+				$mapbenderMetadata[$indexMapbenderMetadata]->ressource_responsible_party = $metadata->ressourceResponsibleParty;
+			}
+			//extract relevant fields 
+			//overwrite values
+		}	
 	} else {
 		while ($row = db_fetch_assoc($dbResult)) {
 			//get relevant information 
@@ -1912,7 +1959,7 @@
 					$mapbenderMetadata[$indexMapbenderMetadata]->miny = $bbox[1];
 					$mapbenderMetadata[$indexMapbenderMetadata]->maxx = $bbox[2];
 					$mapbenderMetadata[$indexMapbenderMetadata]->maxy = $bbox[3];	
-				}	
+				}
 				$indexMapbenderMetadata++;
 			}
 		}



More information about the Mapbender_commits mailing list