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

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Tue Mar 22 03:52:28 EDT 2011


Author: armin11
Date: 2011-03-22 00:52:28 -0700 (Tue, 22 Mar 2011)
New Revision: 7715

Modified:
   trunk/mapbender/http/geoportal/gaz_geom.php
   trunk/mapbender/http/php/mod_layerISOMetadata.php
   trunk/mapbender/http/plugins/mb_metadata_layerPreview.php
Log:
Bugfixes: 1. Don't store the name of the preview for a wms layer any longer in the database. File system storing is enough. The name is defined by with the id.  2. Show right metadata for point of contact and the right preview in the inspire metadata xml

Modified: trunk/mapbender/http/geoportal/gaz_geom.php
===================================================================
--- trunk/mapbender/http/geoportal/gaz_geom.php	2011-03-21 15:38:07 UTC (rev 7714)
+++ trunk/mapbender/http/geoportal/gaz_geom.php	2011-03-22 07:52:28 UTC (rev 7715)
@@ -293,7 +293,8 @@
 				if($row["zusatz"] != 'null'){
 				#	$show .= $row["zusatz"];
 				
-$show = $row["name"]." ".$row["hausnummer"].$row["zusatz"];
+$show = utf8_decode($row["name"])." ".$row["hausnummer"].$row["zusatz"];
+//$show = $row["name"]." ".$row["hausnummer"].$row["zusatz"]; TODO: exchange this, when the hauskoordinaten table is delivered in a homogenous encoding! 
 }
 	else
 {$show = $row["name"]." ".$row["hausnummer"];}	
@@ -340,7 +341,8 @@
 		$res = db_prep_query($sql,$v,$t);
 		while($row = db_fetch_array($res)){
 			
-			$show = $row["name"]." ".$row["hausnummer"];
+			$show = utf8_encode($row["name"])." ".$row["hausnummer"];
+			//$show = $row["name"]." ".$row["hausnummer"]; TODO: see above
 			if($row["zusatz"] != null){
 				$show .= $row["zusatz"];	
 			}

Modified: trunk/mapbender/http/php/mod_layerISOMetadata.php
===================================================================
--- trunk/mapbender/http/php/mod_layerISOMetadata.php	2011-03-21 15:38:07 UTC (rev 7714)
+++ trunk/mapbender/http/php/mod_layerISOMetadata.php	2011-03-22 07:52:28 UTC (rev 7715)
@@ -18,7 +18,6 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
-
 require_once(dirname(__FILE__) . "/../../core/globalSettings.php");
 require_once(dirname(__FILE__) . "/../classes/class_connector.php");
 require_once(dirname(__FILE__) . "/../classes/class_administration.php");
@@ -28,12 +27,11 @@
 
 $admin = new administration();
 
-//define the view or table to use as input for metadata generation
+//define the view or table to use as input for metadata generation if this is wished. If not the data will be directly read from the database tables
 $wmsView = "wms_search_table";
 $wmsView = '';
 //parse request parameter
 //make all parameters available as upper case
-
 foreach($_REQUEST as $key => $val) {
 	$_REQUEST[strtoupper($key)] = $val;
 }
@@ -66,7 +64,6 @@
 	die();
 }
 //some needfull functions to pull metadata out of the database!
-
 function fillISO19139($iso19139, $recordId) {
         global $wmsView;
 	global $admin;
@@ -82,7 +79,7 @@
 		$sql .= "wms.wms_title, wms.wms_abstract, wms.wms_id, wms.fees, wms.accessconstraints, wms.contactperson, ";
 		$sql .= "wms.contactposition, wms.contactorganization, wms.address, wms.city, wms_timestamp, wms_owner, ";
 		$sql .= "wms.stateorprovince, wms.postcode, wms.contactvoicetelephone, wms.contactfacsimiletelephone, wms.wms_owsproxy,";
-		$sql .= "wms.contactelectronicmailaddress, wms.country , ";
+		$sql .= "wms.contactelectronicmailaddress, wms.country, wms.fkey_mb_group_id, ";
 		$sql .= "layer_epsg.minx || ',' || layer_epsg.miny || ',' || layer_epsg.maxx || ',' || layer_epsg.maxy  as bbox ";
 		$sql .= "FROM wms, layer, layer_epsg WHERE layer_id = $1 and layer.fkey_wms_id = wms.wms_id";
 		$sql .= " and layer_epsg.fkey_layer_id=layer.layer_id and layer_epsg.epsg='EPSG:4326'";
@@ -91,21 +88,34 @@
 	$t = array('i');
 	$res = db_prep_query($sql,$v,$t);
 	$mapbenderMetadata = db_fetch_array($res);
-	//Get other needed information out of mapbender database:
+	
+	//Get other needed information out of mapbender database (if not already defined in the view):
 	//service data
-	$sql = "SELECT contactorganization, contactelectronicmailaddress ";
-	$sql .= "FROM wms WHERE wms_id = $1";
-	$v = array((integer)$mapbenderMetadata['wms_id']);
-	$t = array('i');
-	$res = db_prep_query($sql,$v,$t);
-	$serviceMetadata = db_fetch_array($res);
-	//infos about the registrating department 
-	$sql = "SELECT mb_group_name ";
-	$sql .= "FROM mb_group WHERE mb_group_id = $1";
-	$v = array((integer)$mapbenderMetadata['department']);
-	$t = array('i');
-	$res = db_prep_query($sql,$v,$t);
-	$departmentMetadata = db_fetch_array($res);
+	if ($wmsView != '') {
+		$sql = "SELECT contactorganization, contactelectronicmailaddress ";
+		$sql .= "FROM wms WHERE wms_id = $1";
+		$v = array((integer)$mapbenderMetadata['wms_id']);
+		$t = array('i');
+		$res = db_prep_query($sql,$v,$t);
+		$serviceMetadata = db_fetch_array($res);
+	}
+	//infos about the registrating department, check first if a special metadata point of contact is defined in the service table - function from mod_showMetadata - TODO: should be defined in admin class
+	if (!isset($mapbenderMetadata['fkey_mb_group_id']) or is_null($mapbenderMetadata['fkey_mb_group_id']) or $mapbenderMetadata['fkey_mb_group_id'] == 0){
+		$e = new mb_exception("mod_layerISOMetadata.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, mb_group_title, mb_group_id, mb_group_logo_path, mb_group_address, mb_group_email, mb_group_postcode, mb_group_city, mb_group_voicetelephone, mb_group_facsimiletelephone 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($mapbenderMetadata['wms_owner']);
+		$tDep = array('i');
+		$resDep = db_prep_query($sqlDep, $vDep, $tDep);
+		$departmentMetadata = db_fetch_array($resDep);
+	} else {
+		$e = new mb_exception("mod_layerISOMetadata.php: fkey_mb_group_id found!");
+		$sqlDep = "SELECT mb_group_name , mb_group_title, mb_group_id, mb_group_logo_path , mb_group_address, mb_group_email, mb_group_postcode, mb_group_city, mb_group_voicetelephone, mb_group_facsimiletelephone FROM mb_group WHERE mb_group_id = $1 LIMIT 1";
+		$vDep = array($mapbenderMetadata['fkey_mb_group_id']);
+		$tDep = array('i');
+		$resDep = db_prep_query($sqlDep, $vDep, $tDep);
+		$departmentMetadata = db_fetch_array($resDep);
+	}
 	//infos about the owner of the service - he is the man who administrate the metadata - register the service
 	$sql = "SELECT mb_user_email ";
 	$sql .= "FROM mb_user WHERE mb_user_id = $1";
@@ -361,7 +371,7 @@
 	$abstract_cs->appendChild($abstractText);
 	$abstract->appendChild($abstract_cs);
 	$SV_ServiceIdentification->appendChild($abstract);
-	#Create part for point of contact
+	#Create part for point of contact for service identification
 	#Define relevant objects
 	$pointOfContact=$iso19139->createElement("gmd:pointOfContact");
 	$CI_ResponsibleParty=$iso19139->createElement("gmd:CI_ResponsibleParty");
@@ -377,14 +387,14 @@
 	$CI_RoleCode=$iso19139->createElement("gmd:CI_RoleCode");
 	$CI_RoleCode->setAttribute("codeList", "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/Codelist/ML_gmxCodelists.xml#CI_RoleCode");
 	$CI_RoleCode->setAttribute("codeListValue", "publisher");
-	if (isset($serviceMetadata['contactorganization'])) {
-		$resOrgaText = $iso19139->createTextNode($serviceMetadata['contactorganization']);
+	if (isset($mapbenderMetadata['contactorganization'])) {
+		$resOrgaText = $iso19139->createTextNode($mapbenderMetadata['contactorganization']);
 	}
 	else {
 		$resOrgaText= $iso19139->createTextNode("not yet defined");
 	}
-	if (isset($serviceMetadata['contactelectronicmailaddress'])) {
-		$resMailText = $iso19139->createTextNode($serviceMetadata['contactelectronicmailaddress']);
+	if (isset($mapbenderMetadata['contactelectronicmailaddress'])) {
+		$resMailText = $iso19139->createTextNode($mapbenderMetadata['contactelectronicmailaddress']);
 	}
 	else {
 		$resMailText = $iso19139->createTextNode("kontakt at geoportal.rlp.de");
@@ -426,12 +436,12 @@
 	}
 */	
 	#version of bavaria
-	if (isset($row['layer_map_preview_filename']) & $row['layer_map_preview_filename'] != '') {
+	if (file_exists(PREVIEW_DIR."/".$mapbenderMetadata['layer_id']."_layer_map_preview.jpg")) {	//TODO
 		$graphicOverview=$iso19139->createElement("gmd:graphicOverview");
 		$MD_BrowseGraphic=$iso19139->createElement("gmd:MD_BrowseGraphic");
 		$fileName=$iso19139->createElement("gmd:fileName");
 		$fileName_cs=$iso19139->createElement("gco:CharacterString");
-		$previewFilenameText = $iso19139->createTextNode("http://www.gdi-rp-dienste3.rlp.de/mapbender/geoportal/preview/".$row['layer_map_preview_filename']);
+		$previewFilenameText = $iso19139->createTextNode("http://www.geoportal.rlp.de/mapbender/geoportal/preview/".$mapbenderMetadata['layer_id']."_layer_map_preview.jpg");
 		$fileName_cs->appendChild($previewFilenameText);
 		$fileName->appendChild($fileName_cs);
 
@@ -445,7 +455,7 @@
 
 		$fileType=$iso19139->createElement("gmd:fileType");
 		$fileType_cs=$iso19139->createElement("gco:CharacterString");
-		$fileType_text=$iso19139->createTextNode("PNG");
+		$fileType_text=$iso19139->createTextNode("JPEG");
 
 		$fileType_cs->appendChild($fileType_text);
 		$fileType->appendChild($fileType_cs);
@@ -586,7 +596,7 @@
 		#$language->appendChild($LanguageCode);
 		#$SV_ServiceIdentification->appendChild($language);
 	#}
-	#Topic Category B 2.1
+	#Topic Category B 2.1 - not needed for services
 	#if(isset($detail_array['t011_obj_geo_topic_cat.topic_category'])){
 		#$topicCategory=$iso19139->createElement("gmd:topicCategory");
 		#$MD_TopicCategoryCode=$iso19139->createElement("gmd:MD_TopicCategoryCode");

Modified: trunk/mapbender/http/plugins/mb_metadata_layerPreview.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layerPreview.php	2011-03-21 15:38:07 UTC (rev 7714)
+++ trunk/mapbender/http/plugins/mb_metadata_layerPreview.php	2011-03-22 07:52:28 UTC (rev 7715)
@@ -52,20 +52,14 @@
 			$ajaxResponse->setMessage('Map preview could not be created');
 			$ajaxResponse->send();
 		} 
-		else {
-			$ajaxResponse->setSuccess(true);
-			$ajaxResponse->setMessage('Preview saved as '.$layerPreviewMapFileName);
-			$ajaxResponse->send();
-		}
-		
 		if ($legendUrl) {
 			$legendImg = new weldMaps2JPEG($legendUrl, $layerPreviewLegendFileName);
-			/*if(!$legendImg) {
+			if(!$legendImg) {
 				$ajaxResponse->setSuccess(false);
 				$ajaxResponse->setMessage('Legend preview could not be created');
 				$ajaxResponse->send();
 			} 
-			else {
+			/*else {
 				$ajaxResponse->setSuccess(true);
 				$ajaxResponse->setMessage('Preview saved');
 				$ajaxResponse->send();
@@ -74,10 +68,10 @@
 		else {
 			$legendUrl = null;
 		}
-
-		
-		break;
-
+		$ajaxResponse->setSuccess(true);
+		$ajaxResponse->setMessage('Preview saved');
+		$ajaxResponse->send();
+/*
 		$updateSQL = <<<SQL
 
 UPDATE layer_preview SET 
@@ -118,7 +112,7 @@
 			new mb_exception("could not insert/update layerPreview into db");
 			$ajaxResponse->setSuccess(false);
 			$ajaxResponse->setMessage("could not insert/Update layerPreview into db: ". pg_last_error());
-		}
+		}*/
 		break;
 
 	default:



More information about the Mapbender_commits mailing list