[Mapbender-commits] r8146 - in trunk/mapbender/http: geoportal php

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Wed Sep 14 02:43:07 EDT 2011


Author: armin11
Date: 2011-09-13 23:43:07 -0700 (Tue, 13 Sep 2011)
New Revision: 8146

Modified:
   trunk/mapbender/http/geoportal/mod_readOpenSearchResults.php
   trunk/mapbender/http/php/wms.php
Log:
Extent geoportal capabilities with AuthorityURL which is demanded from INSPIRE, bugfix in metadata search module for portalu.

Modified: trunk/mapbender/http/geoportal/mod_readOpenSearchResults.php
===================================================================
--- trunk/mapbender/http/geoportal/mod_readOpenSearchResults.php	2011-09-13 07:41:22 UTC (rev 8145)
+++ trunk/mapbender/http/geoportal/mod_readOpenSearchResults.php	2011-09-14 06:43:07 UTC (rev 8146)
@@ -350,7 +350,11 @@
 				fwrite($os_catalogs_file_handle,$openSearchXml->channel->item[$i]->title);
 				fwrite($os_catalogs_file_handle,"</title>\n");
 				fwrite($os_catalogs_file_handle,"<abstract>");
-				fwrite($os_catalogs_file_handle,substr($openSearchXml->channel->item[$i]->description,0,250)."...");
+                              	$pos = strrpos($openSearchXml->channel->item[$i]->description, ' ', 250);
+                               	if ($pos === false){
+                                	$pos = 250;
+                               	}
+                               	fwrite($os_catalogs_file_handle,substr($openSearchXml->channel->item[$i]->description,0,$pos)."...");
 				fwrite($os_catalogs_file_handle,"</abstract>\n");
 				#Tag for link to original metadata view
 				fwrite($os_catalogs_file_handle,"<urlmdorig>");

Modified: trunk/mapbender/http/php/wms.php
===================================================================
--- trunk/mapbender/http/php/wms.php	2011-09-13 07:41:22 UTC (rev 8145)
+++ trunk/mapbender/http/php/wms.php	2011-09-14 06:43:07 UTC (rev 8146)
@@ -134,7 +134,50 @@
 	echo createExceptionXml("Layer not defined", "Unknown layer id " . $layerId);
 	die;
 }
+//get group information from wms table if not get it from another source
+if (!isset($wms_row['fkey_mb_group_id']) or is_null($wms_row['fkey_mb_group_id']) or $wms_row['fkey_mb_group_id'] == 0){
+	$e = new mb_notice("wms.php: fkey_mb_group_id not found!");
+	//Get information about owning user of the relation mb_user_mb_group - alternatively the defined fkey_mb_group_id from the service must be used!
+	$sqlDep = "SELECT mb_group_name as metadatapointofcontactorgname,mb_group_homepage as metadatapointofcontactorgurl, mb_group_title as metadatapointofcontactorgtitle, mb_group_id, mb_group_logo_path  as metadatapointofcontactorglogo, mb_group_address as metadatapointofcontactorgaddress, mb_group_email as metadatapointofcontactorgemail, mb_group_postcode as metadatapointofcontactorgpostcode, mb_group_city as metadatapointofcontactorgcity, mb_group_voicetelephone as metadatapointofcontactorgtelephone, mb_group_facsimiletelephone as metadatapointofcontactorgfax FROM mb_group AS a, mb_user AS b, mb_user_mb_group AS c WHERE b.mb_user_id = $1  AND b.mb_user_id = c.fkey_mb_user_id AND c.fkey_mb_group_id = a.mb_group_id AND c.mb_user_mb_group_type=2 LIMIT 1";
+	$vDep = array($wms_row['wms_owner']);
+	$tDep = array('i');
+	$resDep = db_prep_query($sqlDep, $vDep, $tDep);
+	$metadataContactGroup = db_fetch_array($resDep);
+	$e = new mb_notice("wms.php: owner: ".$wms_row['owner']);
+	$e = new mb_notice("wms.php: mb_group_id: ".$metadataContactGroup['mb_group_id']);
+	$e = new mb_notice("wms.php: mb_group_logo_path: ".$metadataContactGroup['metadatapointofcontactorglogo']);
+} else {
+	$e = new mb_notice("wms.php: fkey_mb_group_id found!");
+	$sqlDep = "SELECT mb_group_name as metadatapointofcontactorgname, mb_group_homepage as metadatapointofcontactorgurl, mb_group_title as metadatapointofcontactorgtitle, mb_group_id, mb_group_logo_path  as metadatapointofcontactorglogo, mb_group_address as metadatapointofcontactorgaddress, mb_group_email as metadatapointofcontactorgemail, mb_group_postcode as metadatapointofcontactorgpostcode, mb_group_city as metadatapointofcontactorgcity, mb_group_voicetelephone as metadatapointofcontactorgtelephone, mb_group_facsimiletelephone as metadatapointofcontactorgfax FROM mb_group WHERE mb_group_id = $1 LIMIT 1";
+	$vDep = array($wms_row['fkey_mb_group_id']);
+	$tDep = array('i');
+	$resDep = db_prep_query($sqlDep, $vDep, $tDep);
+	$metadataContactGroup = db_fetch_array($resDep);
+}
 
+$AuthorityName = $metadataContactGroup["metadatapointofcontactorgname"];
+$AuthorityUrl = $metadataContactGroup["metadatapointofcontactorgurl"];
+
+if ($AuthorityName == '') {
+	$AuthorityName = "defaultauthority";
+}
+if ($AuthorityUrl == '') {
+	$AuthorityUrl = "http://www.mapbender.org";
+}
+
+//Get Geometry Type if featuretype info was requested
+if ($resource == 'featuretype') {
+	$getTypeSql = "SELECT element_id, element_type from wfs_element WHERE fkey_featuretype_id = $1 AND element_type LIKE '%PropertyType';";
+	$vgetType = array($resourceMetadata['contentid']);
+	$tgetType = array('i');
+	$resGetType = db_prep_query($getTypeSql,$vgetType,$tgetType);
+	$featuretypeElements = db_fetch_array($resGetType);
+	$resourceMetadata['featuretype_geomType'] = $featuretypeElements['element_type'];
+}
+
+
+
+$e = new mb_notice("mod_showMetadata: mb_group_name: ".$metadataContactGroup['mb_group_name']);
 //
 // check if update sequence is valid
 //
@@ -405,6 +448,7 @@
     $accessConstraintsText = $accessConstraints->appendChild($accessConstraintsText);
 }
 
+
  
 #Creating the "Capability" node 
 $capability = $doc->createElement("Capability");
@@ -431,7 +475,7 @@
     $formatText = $doc->createTextNode($wms_format_row['data_format']);
     $formatText = $format->appendChild($formatText);    
 }
-#cause the format for capabilities is not read :
+#case if the format for capabilities is not read :
     $format = $doc->createElement("Format");
     $format = $getCapabilities->appendChild($format);
     $formatText = $doc->createTextNode('application/vnd.ogc.wms_xml');
@@ -823,7 +867,18 @@
 $srsText = $doc->createTextNode($epsgText);
 $srsText = $srs->appendChild($srsText);
 
+//Create AuthorityUrl Node on root layer level
+//<AuthorityURL name="gcmd"><OnlineResource xlink:href="some_url" ... /></AuthorityURL>
+$AuthorityURL = $doc->createElement("AuthorityURL");
+$AuthorityURL = $layer->appendChild($AuthorityURL);
+$AuthorityURL->setAttribute('name', $AuthorityName);
+$AUOnlineResource = $doc->createElement("OnlineResource");
+$AUOnlineResource->setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink" );
+$AUOnlineResource->setAttribute("xlink:type", "simple");
+$AUOnlineResource->setAttribute("xlink:href", $AuthorityUrl);
+$AUOnlineResource = $AuthorityURL->appendChild($AUOnlineResource);
 
+
 ####### duplicate root layer 
 #if layer is root layer itself!
 #<armin>
@@ -1016,15 +1071,15 @@
 		$boundingBox->setAttribute('maxx', $bbox['maxx']);
 		$boundingBox->setAttribute('maxy', $bbox['maxy']);
 	}
-	
-	# Creating Metadata Node
+	//
+	//Creating Metadata and Identifier nodes
 	//read out all metadata entries for specific layer
 
 
 	$subLayerId = $sub_layer_row['layer_id'];
 	$sql = <<<SQL
 
-SELECT metadata_id, uuid, link, linktype, md_format, origin FROM mb_metadata 
+SELECT metadata_id, uuid, link, linktype, md_format, origin, datasetid FROM mb_metadata 
 INNER JOIN (SELECT * from ows_relation_metadata 
 WHERE fkey_layer_id = $subLayerId ) as relation ON 
 mb_metadata.metadata_id = relation.fkey_metadata_id WHERE mb_metadata.origin IN ('capabilities','external','metador','upload')
@@ -1034,8 +1089,24 @@
 	$i = 0;
 	$res_metadata = db_query($sql);
 
-	$e = new mb_notice("row size: ".count($row_metadata));
+
+
+		
+
 	while ($row_metadata = db_fetch_array($res_metadata)) {
+		//check id datasetid is set, if not use metadataid
+		if ($row_metadata["datasetid"] == '' || !isset($row_metadata["datasetid"])) {
+			$datasetId = $row_metadata["uuid"];
+		} else {
+			$datasetId = $row_metadata["datasetid"]; //really datasetid or only second part?
+		}
+		//create Identifier tags
+		$Identifier = $doc->createElement("Identifier");
+		$Identifier = $sub_layer->appendChild($Identifier);
+		$Identifier->setAttribute('authority', $AuthorityName);
+		$IdentifierText = $doc->createTextNode($datasetId);
+    		$IdentifierText = $Identifier->appendChild($IdentifierText);
+	
 		$e = new mb_exception("i: ".$i);
 		//push entries into xml structure	
 		//check for kind of link - push the right one into the link field	
@@ -1109,6 +1180,7 @@
 				$onlineResource->setAttribute("xlink:href", $row['link']);
 				$onlineResource->setAttribute("xlink:href", "Url not given - please check your registry!");
 			break;
+
 		}
 		$onlineResource->setAttribute("xlink:type", "simple");
 		//Add linkage to Capabilities



More information about the Mapbender_commits mailing list