[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