[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