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

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Wed Apr 10 05:45:24 PDT 2019


Author: armin11
Date: 2019-04-10 05:45:24 -0700 (Wed, 10 Apr 2019)
New Revision: 10097

Modified:
   trunk/mapbender/http/php/mod_callCswMetadata.php
Log:
Fix for broken metadata record

Modified: trunk/mapbender/http/php/mod_callCswMetadata.php
===================================================================
--- trunk/mapbender/http/php/mod_callCswMetadata.php	2019-04-09 08:14:50 UTC (rev 10096)
+++ trunk/mapbender/http/php/mod_callCswMetadata.php	2019-04-10 12:45:24 UTC (rev 10097)
@@ -33,7 +33,7 @@
 $searchResources = $dummySearchResources;
 $searchPages = $dummySearchPages;
 //	$resourceIds = NULL; //resourceIds is used to get a comma separated list with ids of the resources - layer - featuretypes - wmc
-//it will be used to filter some results 
+//it will be used to filter some results
 $resultTarget = "web";
 //	$preDefinedMaxResults = array(5,10,15,20,25,30);
 //	$searchEPSG = "EPSG:31466";
@@ -59,7 +59,7 @@
 //$e = new mb_exception("mod_callMetadata.php: searchURL".$searchURL);
 //decode it !
 $searchURL = urldecode($searchURL);
-//list of possibly hierarchyLevels - iso 19115 MD_ScopeCode 
+//list of possibly hierarchyLevels - iso 19115 MD_ScopeCode
 $MD_ScopeCode = array("attribute","attributeType","collectionHardware","collectionSession","dataset","series","nonGeographicDataset","dimensionGroup","feature","featureType","propertyType","fieldSession","software","service","model","tile");
 $MD_ScopeCode[] = "application";
 $MD_ScopeCode[] = "spatialData";
@@ -83,11 +83,11 @@
 	$test="(SELECT\s[\w\*\)\(\,\s]+\sFROM\s[\w]+)| (UPDATE\s[\w]+\sSET\s[\w\,\'\=]+)| (INSERT\sINTO\s[\d\w]+[\s\w\d\)\(\,]*\sVALUES\s\([\d\w\'\,\)]+)| (DELETE\sFROM\s[\d\w\'\=]+)";
 	//validate to csv integer list
 	$testMatch = $_REQUEST["searchText"];
-	$pattern = '/(\%27)|(\')|(\-\-)|(\")|(\%22)/';		
+	$pattern = '/(\%27)|(\')|(\-\-)|(\")|(\%22)/';
  	if (preg_match($pattern,$testMatch)){
-		//echo 'searchText: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>searchText</b> is not valid.<br/>'; 
-		die(); 		
+		//echo 'searchText: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>searchText</b> is not valid.<br/>';
+		die();
  	}
 	$searchText = $testMatch;
         $searchText = str_replace('<','{<}',$searchText);
@@ -101,11 +101,11 @@
 /*if (isset($_REQUEST["registratingDepartments"]) & $_REQUEST["registratingDepartments"] != "") {
 	//validate to csv integer list
 	$testMatch = $_REQUEST["registratingDepartments"];
-	$pattern = '/^[\d,]*$/';		
- 	if (!preg_match($pattern,$testMatch)){ 
+	$pattern = '/^[\d,]*$/';
+ 	if (!preg_match($pattern,$testMatch)){
 		//echo 'registratingDepartments: <b>'.$testMatch.'</b> is not valid.<br/>';
 		echo 'Parameter <b>registratingDepartments</b> is not valid (integer or cs integer list).<br/>';
-		die(); 		
+		die();
  	}
 	$registratingDepartments = $testMatch;
 	$testMatch = NULL;
@@ -113,11 +113,11 @@
 if (isset($_REQUEST["resourceIds"]) & $_REQUEST["resourceIds"] != "") {
 	//validate to csv integer list
 	$testMatch = $_REQUEST["resourceIds"];
-	$pattern = '/^[\d,]*$/';		
- 	if (!preg_match($pattern,$testMatch)){ 
-		//echo 'resourceIds: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>resourceIds</b> is not valid (integer or cs integer list).<br/>'; 
-		die(); 		
+	$pattern = '/^[\d,]*$/';
+ 	if (!preg_match($pattern,$testMatch)){
+		//echo 'resourceIds: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>resourceIds</b> is not valid (integer or cs integer list).<br/>';
+		die();
  	}
 	$resourceIds = $testMatch;
 	$testMatch = NULL;
@@ -125,11 +125,11 @@
 if (isset($_REQUEST["isoCategories"]) & $_REQUEST["isoCategories"] != "") {
 	//validate to csv integer list
 	$testMatch = $_REQUEST["isoCategories"];
-	$pattern = '/^[\d,]*$/';		
- 	if (!preg_match($pattern,$testMatch)){ 
-		//echo 'isoCategories: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>isoCategories</b> is not valid (integer or cs integer list).<br/>'; 
-		die(); 		
+	$pattern = '/^[\d,]*$/';
+ 	if (!preg_match($pattern,$testMatch)){
+		//echo 'isoCategories: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>isoCategories</b> is not valid (integer or cs integer list).<br/>';
+		die();
  	}
 	$isoCategories = $testMatch;
 	$testMatch = NULL;
@@ -137,11 +137,11 @@
 if (isset($_REQUEST["inspireThemes"]) & $_REQUEST["inspireThemes"] != "") {
 	//validate to csv integer list
 	$testMatch = $_REQUEST["inspireThemes"];
-	$pattern = '/^[\d,]*$/';		
- 	if (!preg_match($pattern,$testMatch)){ 
-		//echo 'inspireThemes: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>inspireThemes</b> is not valid (integer or cs integer list).<br/>'; 
-		die(); 		
+	$pattern = '/^[\d,]*$/';
+ 	if (!preg_match($pattern,$testMatch)){
+		//echo 'inspireThemes: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>inspireThemes</b> is not valid (integer or cs integer list).<br/>';
+		die();
  	}
 	$inspireThemes = $testMatch;
 	$testMatch = NULL;
@@ -150,11 +150,11 @@
 if (isset($_REQUEST["customCategories"]) & $_REQUEST["customCategories"] != "") {
 	//validate to csv integer list
 	$testMatch = $_REQUEST["customCategories"];
-	$pattern = '/^[\d,]*$/';		
+	$pattern = '/^[\d,]*$/';
  	if (!preg_match($pattern,$testMatch)){
  		//echo 'customCategories: <b>'.$testMatch.'</b> is not valid.<br/>';
-		echo 'Parameter <b>customCategories</b> is not valid (integer or cs integer list).<br/>'; 
-		die(); 		
+		echo 'Parameter <b>customCategories</b> is not valid (integer or cs integer list).<br/>';
+		die();
  	}
 	$customCategories = $testMatch;
 	$testMatch = NULL;
@@ -163,22 +163,22 @@
 if (isset($_REQUEST["timeBegin"]) & $_REQUEST["timeBegin"] != "") {
 	//validate to iso date format YYYY-MM-DD
 	$testMatch = $_REQUEST["timeBegin"];
-	$pattern = '/^(19|20)[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/';		
+	$pattern = '/^(19|20)[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/';
  	if (!preg_match($pattern,$testMatch)){
-		//echo 'timeBegin: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>timeBegin</b> is not valid.<br/>'; 
-		die(); 		
+		//echo 'timeBegin: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>timeBegin</b> is not valid.<br/>';
+		die();
  	}
 	$timeBegin = $testMatch;
-	$testMatch = NULL;	
+	$testMatch = NULL;
 }
 if (isset($_REQUEST["timeEnd"]) & $_REQUEST["timeEnd"] != "") {
 	$testMatch = $_REQUEST["timeEnd"];
-	$pattern = '/^(19|20)[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/';		
- 	if (!preg_match($pattern,$testMatch)){ 
-		//echo 'timeEnd: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>timeEnd</b> is not valid.<br/>'; 
-		die(); 		
+	$pattern = '/^(19|20)[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/';
+ 	if (!preg_match($pattern,$testMatch)){
+		//echo 'timeEnd: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>timeEnd</b> is not valid.<br/>';
+		die();
  	}
 	$timeEnd = $testMatch;
 	$testMatch = NULL;
@@ -186,11 +186,11 @@
 if (isset($_REQUEST["regTimeBegin"]) & $_REQUEST["regTimeBegin"] != "") {
 	//validate to iso date format YYYY-MM-DD
 	$testMatch = $_REQUEST["regTimeBegin"];
-	$pattern = '/^(19|20)[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/';		
- 	if (!preg_match($pattern,$testMatch)){ 
-		//echo 'regTimeBegin: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>regTimeBegin</b> is not valid.<br/>'; 
-		die(); 		
+	$pattern = '/^(19|20)[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/';
+ 	if (!preg_match($pattern,$testMatch)){
+		//echo 'regTimeBegin: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>regTimeBegin</b> is not valid.<br/>';
+		die();
  	}
 	$regTimeBegin = $testMatch;
 	$testMatch = NULL;
@@ -198,11 +198,11 @@
 if (isset($_REQUEST["regTimeEnd"]) & $_REQUEST["regTimeEnd"] != "") {
 	//validate to iso date format YYYY-MM-DD
 	$testMatch = $_REQUEST["regTimeEnd"];
-	$pattern = '/^(19|20)[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/';		
- 	if (!preg_match($pattern,$testMatch)){ 
+	$pattern = '/^(19|20)[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/';
+ 	if (!preg_match($pattern,$testMatch)){
 		//echo 'regTimeEnd: <b>'.$testMatch.'</b> is not valid.<br/>';
 		echo 'Parameter <b>regTimeEnd</b> is not valid.<br/>';
-		die(); 		
+		die();
  	}
 	$regTimeEnd = $testMatch;
 	$testMatch = NULL;
@@ -212,11 +212,11 @@
 	//validate integer to 100 - not more
 	$testMatch = $_REQUEST["maxResults"];
 	//give max 99 entries - more will be to slow
-	$pattern = '/^([0-9]{0,1})([0-9]{1})$/';		
- 	if (!preg_match($pattern,$testMatch)){ 
-		//echo 'maxResults: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>maxResults</b> is not valid (integer < 99).<br/>'; 
-		die(); 		
+	$pattern = '/^([0-9]{0,1})([0-9]{1})$/';
+ 	if (!preg_match($pattern,$testMatch)){
+		//echo 'maxResults: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>maxResults</b> is not valid (integer < 99).<br/>';
+		die();
  	}
 	$maxResults = $testMatch;
 	$testMatch = NULL;
@@ -225,32 +225,32 @@
 	//validate integer to 100 - not more
 	$testMatch = $_REQUEST["catalogueId"];
 	//
-	$pattern = '/^([0-9]{0,1})([0-9]{1})$/';		
- 	if (!preg_match($pattern,$testMatch)){ 
-		//echo 'maxResults: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>catalogueId</b> is not valid (integer < 99).<br/>'; 
-		die(); 		
+	$pattern = '/^([0-9]{0,1})([0-9]{1})$/';
+ 	if (!preg_match($pattern,$testMatch)){
+		//echo 'maxResults: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>catalogueId</b> is not valid (integer < 99).<br/>';
+		die();
  	}
 	$catalogueId = $testMatch;
 	$testMatch = NULL;
 } else {
-	echo 'Mandatory parameter <b>catalogueId</b> not set!<br/>'; 
+	echo 'Mandatory parameter <b>catalogueId</b> not set!<br/>';
 	die();
 }
 if (isset($_REQUEST["searchBbox"]) & $_REQUEST["searchBbox"] != "") {
 	//validate to float/integer
 	$testMatch = $_REQUEST["searchBbox"];
-	//$pattern = '/^[-\d,]*$/';	
+	//$pattern = '/^[-\d,]*$/';
 	$pattern = '/^[-+]?([0-9]*\.[0-9]+|[0-9]+)*$/';
 	$testMatchArray = explode(',',$testMatch);
  	if (count($testMatchArray) != 4) {
-		echo 'Parameter <b>searchBbox</b> has a wrong amount of entries.<br/>'; 
-		die(); 
+		echo 'Parameter <b>searchBbox</b> has a wrong amount of entries.<br/>';
+		die();
 	}
 	for($i=0; $i<count($testMatchArray);$i++){
-		if (!preg_match($pattern,$testMatchArray[$i])){ 
-			echo 'Parameter <b>searchBbox</b> is not a valid coordinate value.<br/>'; 
-			die(); 		
+		if (!preg_match($pattern,$testMatchArray[$i])){
+			echo 'Parameter <b>searchBbox</b> is not a valid coordinate value.<br/>';
+			die();
  		}
 	}
 	$searchBbox = $testMatch;
@@ -258,11 +258,11 @@
 }
 if (isset($_REQUEST["searchTypeBbox"]) & $_REQUEST["searchTypeBbox"] != "") {
 	//validate to inside / outside - TODO implement other ones than intersects which is default
-	$testMatch = $_REQUEST["searchTypeBbox"];	
- 	if (!($testMatch == 'inside' or $testMatch == 'outside' or $testMatch == 'intersects')){ 
+	$testMatch = $_REQUEST["searchTypeBbox"];
+ 	if (!($testMatch == 'inside' or $testMatch == 'outside' or $testMatch == 'intersects')){
 		//echo 'searchTypeBbox: <b>'.$testMatch.'</b> is not valid.<br/>';
-		echo 'Parameter <b>searchTypeBbox</b> is not valid (inside,outside,intersects).<br/>'; 
-		die(); 		
+		echo 'Parameter <b>searchTypeBbox</b> is not valid (inside,outside,intersects).<br/>';
+		die();
  	}
 	$searchTypeBbox = $testMatch; //TODO activate this
 	$testMatch = NULL;
@@ -273,21 +273,21 @@
 }*/
 if (isset($_REQUEST["languageCode"]) & $_REQUEST["languageCode"] != "") {
 	//validate to de, en, fr
-	$testMatch = $_REQUEST["languageCode"];	
- 	if (!($testMatch == 'de' or $testMatch == 'en' or $testMatch == 'fr')){ 
-		//echo 'languageCode: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>languageCode</b> is not valid (de,fr,en).<br/>'; 
-		die(); 		
+	$testMatch = $_REQUEST["languageCode"];
+ 	if (!($testMatch == 'de' or $testMatch == 'en' or $testMatch == 'fr')){
+		//echo 'languageCode: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>languageCode</b> is not valid (de,fr,en).<br/>';
+		die();
  	}
 	$languageCode = $testMatch;
 	$testMatch = NULL;
 }
 if (isset($_REQUEST["outputFormat"]) & $_REQUEST["outputFormat"] != "") {
-	$testMatch = $_REQUEST["outputFormat"];	
- 	if (!($testMatch == 'json' or $testMatch == 'georss')){ 
-		//echo 'outputFormat: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>outputFormat</b> is not valid (json,georss).<br/>'; 
-		die(); 		
+	$testMatch = $_REQUEST["outputFormat"];
+ 	if (!($testMatch == 'json' or $testMatch == 'georss')){
+		//echo 'outputFormat: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>outputFormat</b> is not valid (json,georss).<br/>';
+		die();
  	}
 	$outputFormat = $testMatch;
 	$testMatch = NULL;
@@ -295,10 +295,10 @@
 
 //$restrictToOpenData = false;
 /*if (isset($_REQUEST["restrictToOpenData"]) & $_REQUEST["restrictToOpenData"] != "") {
-	$testMatch = $_REQUEST["restrictToOpenData"];	
- 	if (!($testMatch == 'true' or $testMatch == 'false')){ 
-		echo 'Parameter <b>restrictToOpenData</b> is not valid (true,false).<br/>'; 
-		die(); 		
+	$testMatch = $_REQUEST["restrictToOpenData"];
+ 	if (!($testMatch == 'true' or $testMatch == 'false')){
+		echo 'Parameter <b>restrictToOpenData</b> is not valid (true,false).<br/>';
+		die();
  	}
 	switch ($testMatch) {
 		case "true":
@@ -306,16 +306,16 @@
 		break;
 		case "false":
 			$restrictToOpenData = "false";
-		break;	
+		break;
 	}
 	$testMatch = NULL;
 }
 
 if (isset($_REQUEST["resolveCoupledResources"]) & $_REQUEST["resolveCoupledResources"] != "") {
-	$testMatch = $_REQUEST["resolveCoupledResources"];	
- 	if (!($testMatch == 'true' or $testMatch == 'false')){ 
-		echo 'Parameter <b>resolveCoupledResources</b> is not valid (true,false (default to false)).<br/>'; 
-		die(); 		
+	$testMatch = $_REQUEST["resolveCoupledResources"];
+ 	if (!($testMatch == 'true' or $testMatch == 'false')){
+		echo 'Parameter <b>resolveCoupledResources</b> is not valid (true,false (default to false)).<br/>';
+		die();
  	}
 	switch ($testMatch) {
 		case "true":
@@ -323,7 +323,7 @@
 		break;
 		case "false":
 			$resolveCoupledResources = "false";
-		break;	
+		break;
 	}
 	$testMatch = NULL;
 }*/
@@ -330,26 +330,26 @@
 
 if (isset($_REQUEST["hostName"]) & $_REQUEST["hostName"] != "") {
 	//validate to some hosts
-	$testMatch = $_REQUEST["hostName"];	
+	$testMatch = $_REQUEST["hostName"];
 	//look for whitelist in mapbender.conf
 	$HOSTNAME_WHITELIST_array = explode(",",HOSTNAME_WHITELIST);
 	if (!in_array($testMatch,$HOSTNAME_WHITELIST_array)) {
 		//echo "Requested hostname <b>".$testMatch."</b> not whitelist! Please control your mapbender.conf.";
 		echo "Requested <b>hostName</b> not in whitelist! Please control your mapbender.conf.";
-		
+
 		$e = new mb_notice("Whitelist: ".HOSTNAME_WHITELIST);
 		$e = new mb_notice("hostName not found in whitelist!");
-		die(); 	
+		die();
 	}
 	$hostName = $testMatch;
 	$testMatch = NULL;
 }
 /*if (isset($_REQUEST["orderBy"]) & $_REQUEST["orderBy"] != "") {
-	$testMatch = $_REQUEST["orderBy"];	
- 	if (!($testMatch == 'rank' or $testMatch == 'title' or $testMatch == 'id' or $testMatch == 'date')){ 
-		//echo 'orderBy: <b>'.$testMatch.'</b> is not valid.<br/>'; 
-		echo 'Parameter <b>orderBy</b> is not valid (rank,title,id,date).<br/>'; 
-		die(); 		
+	$testMatch = $_REQUEST["orderBy"];
+ 	if (!($testMatch == 'rank' or $testMatch == 'title' or $testMatch == 'id' or $testMatch == 'date')){
+		//echo 'orderBy: <b>'.$testMatch.'</b> is not valid.<br/>';
+		echo 'Parameter <b>orderBy</b> is not valid (rank,title,id,date).<br/>';
+		die();
  	}
 	$orderBy = $testMatch;
 	$testMatch = NULL;
@@ -361,15 +361,15 @@
 	$testMatch = $_REQUEST["searchResources"];
 	#$pattern = '/^(19|20)[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/';
 	$countSR = count(explode(',',$testMatch));
- 	if (!($countSR >= 1 && $countSR <= 6)){ 
-		//echo 'searchResources: <b>'.$testMatch.'</b> count of requested resources out of sync.<br/>'; 
-		echo 'Parameter <b>searchResources</b> count of requested resource types is more than 5.<br/>'; 
-		die(); 		
+ 	if (!($countSR >= 1 && $countSR <= 6)){
+		//echo 'searchResources: <b>'.$testMatch.'</b> count of requested resources out of sync.<br/>';
+		echo 'Parameter <b>searchResources</b> count of requested resource types is more than 5.<br/>';
+		die();
  	} else {
 		$testArray = explode(',',$testMatch);
 		for($i=0; $i<count($testArray);$i++){
 			if (!in_array($testArray[$i], $MD_ScopeCode)) {
-			//echo 'searchResources: <b>'.$testMatch.'</b>at least one of them does not exists!<br/>'; 
+			//echo 'searchResources: <b>'.$testMatch.'</b>at least one of them does not exists!<br/>';
 			echo 'Parameter <b>searchResources</b> at least one of them does not exists!<br>';
 			echo implode(',',$MD_ScopeCode);
 			echo '<br/>';
@@ -384,30 +384,30 @@
 if (isset($_REQUEST["searchPages"]) & $_REQUEST["searchPages"] != "") {
 	//validate to csv integer list with dimension of searchResources list
 	$testMatch = $_REQUEST["searchPages"];
-	$pattern = '/^[-\d,]*$/';		
- 	if (!preg_match($pattern,$testMatch)){ 
-		//echo 'searchPages: <b>'.$testMatch.'</b> is not valid.<br/>'; 
+	$pattern = '/^[-\d,]*$/';
+ 	if (!preg_match($pattern,$testMatch)){
+		//echo 'searchPages: <b>'.$testMatch.'</b> is not valid.<br/>';
 		echo 'Parameter <b>searchPages</b> is not valid (integer or integer csv).<br/>';
-		die(); 		
+		die();
  	}
 	if (count(explode(',',$testMatch)) != count(explode(',',$searchResources))) {
-		//echo 'searchPages: <b>'.$testMatch.'</b> has a wrong amount of entries.<br/>'; 
+		//echo 'searchPages: <b>'.$testMatch.'</b> has a wrong amount of entries.<br/>';
 		echo 'Parameter <b>searchPages</b> has a wrong amount of entries.<br/>';
-		die(); 
+		die();
 	}
 	$searchPages = $testMatch;
 	$testMatch = NULL;
 #$searchPages = $_REQUEST["searchPages"];
 	#$searchPages = split(',',$searchPages);
-	
+
 }
 if (isset($_REQUEST["resultTarget"]) & $_REQUEST["resultTarget"] != "") {
 	//validate to web,debug,file
-	$testMatch = $_REQUEST["resultTarget"];	
- 	if (!($testMatch == 'web' or $testMatch == 'debug' or $testMatch == 'file'  or $testMatch == 'webclient' or $testMatch == 'internal' or $testMatch == "categories")){ 
+	$testMatch = $_REQUEST["resultTarget"];
+ 	if (!($testMatch == 'web' or $testMatch == 'debug' or $testMatch == 'file'  or $testMatch == 'webclient' or $testMatch == 'internal' or $testMatch == "categories")){
 		//echo 'resultTarget: <b>'.$testMatch.'</b> is not valid.<br/>';
-		echo 'Parameter <b>resultTarget</b> is not valid (file,web,debug,webclient,internal,categories).<br/>'; 
-		die(); 		
+		echo 'Parameter <b>resultTarget</b> is not valid (file,web,debug,webclient,internal,categories).<br/>';
+		die();
  	}
 	$resultTarget = $testMatch;
 	$testMatch = NULL;
@@ -420,7 +420,7 @@
         //validate integer to 100 - not more
         $testMatch = $_REQUEST["userId"];
         //give max 99 entries - more will be to slow
-        $pattern = '/^[0-9]*$/';  
+        $pattern = '/^[0-9]*$/';
         if (!preg_match($pattern,$testMatch)){
              	//echo 'userId: <b>'.$testMatch.'</b> is not valid.<br/>';
                 echo 'Parameter <b>userId</b> is not valid (integer).<br/>';
@@ -460,7 +460,7 @@
 		$searchPages[$i] = 1;
 	}
 	$searchPages = implode(",",$searchPages);
-	//$e = new mb_exception("mod_callMetadata.php: set searchPages to :".$searchPages);	
+	//$e = new mb_exception("mod_callMetadata.php: set searchPages to :".$searchPages);
 }
 if ($resultTarget == 'web' or $resultTarget == 'debug') {
 	if (!isset($searchResources) OR ($searchResources == "")) {
@@ -632,9 +632,9 @@
 		$orderByTitle['rank'] = 'Nachfrage';
 		$orderByTitle['date'] = 'Letzte Änderung';
 
-		$maxResultsTitle['header'] = 'Treffer pro Seite:'; 
+		$maxResultsTitle['header'] = 'Treffer pro Seite:';
 
-	
+
        	break;
         case 'en':
         	$classificationElements[0]['name2show'] = 'Search Term(s):';
@@ -641,7 +641,7 @@
 		$classificationElements[1]['name2show'] = 'Spatial Filter:';
 		$classificationElements[2]['name2show'] = 'Kind of resource:';
 
-		$resourceCategories['dataset'] = 'Datasets';		
+		$resourceCategories['dataset'] = 'Datasets';
 		$resourceCategories['spatialData'] = 'Spatial data';
 		$resourceCategories['series'] = 'Datasetseries';
 		$resourceCategories['tile'] = 'Datasetstiles';
@@ -662,7 +662,7 @@
         	$classificationElements[0]['name2show'] = 'Mots clés:';
 		$classificationElements[1]['name2show'] = 'Requête spatiale:';
 		$classificationElements[2]['name2show'] = 'Art der Ressource:';
-		
+
 		$resourceCategories['dataset'] = 'Datasets';
 		$resourceCategories['spatialData'] = 'Spatial data';
 		$resourceCategories['series'] = 'Datasetseries';
@@ -701,9 +701,9 @@
 
 		$maxResultsTitle['header'] = 'Results per page:';
 
-}	
+}
 
-//generate search filter file - if more categories are defined give 
+//generate search filter file - if more categories are defined give
 //echo "<br> number of filter elements: ".count($classificationElements)."<br>";
 for($i=0; $i < count($classificationElements); $i++){
 	//echo "<br> filter for element: ".$classificationElements[$i]['name']."<br>";
@@ -733,23 +733,23 @@
 			//$queryJSON->searchFilter->{$classificationElements[$i]['name']}->delLink = NULL;
 			$queryJSON->searchFilter->{$classificationElements[$i]['name']}->delLink = delTotalFromQuery($classificationElements[$i]['name'],$searchURL);
 			//$e = new mb_exception('mod_callMetadata.php: dellink: '.$queryJSON->searchFilter->{$classificationElements[$i]['name']}->delLink);
-			
+
 			$queryJSON->searchFilter->{$classificationElements[$i]['name']}->item = array();
 
 			$queryArray = explode(',', ${$classificationElements[$i]['name']});
-		
+
 			//loop for the subcategories
 			for($j=0; $j < count($queryArray); $j++){
 				//$e = new mb_exception('mod_callMetadata.php: queryArrayi: '.$queryArray[$j]);
-				
+
 				if ($classificationElements[$i]['name'] != 'searchResources') {
 					$queryJSON->searchFilter->{$classificationElements[$i]['name']}->item[$j]->title = $queryArray[$j];
 				} else {
 					$queryJSON->searchFilter->{$classificationElements[$i]['name']}->item[$j]->title = $resourceCategories[$queryArray[$j]];
 				}
-				
+
 				//generate links to disable filters on a simple way
-				if (($classificationElements[$i]['name'] === 'searchText' || $classificationElements[$i]['name'] === 'searchResources') & count(explode(',',${$classificationElements[$i]['name']})) === 1) { 
+				if (($classificationElements[$i]['name'] === 'searchText' || $classificationElements[$i]['name'] === 'searchResources') & count(explode(',',${$classificationElements[$i]['name']})) === 1) {
 					//$queryJSON->searchFilter->{$classificationElements[$i]['name']}->item[$j]->delLink = NULL;
 					$newSearchLink = delFromQuery($classificationElements[$i]['name'], $searchURL,$queryArray[$j],$queryArray,${$classificationElements[$i]['name']});
 					$newSearchLink = delTotalFromQuery('searchId',$newSearchLink);
@@ -761,7 +761,7 @@
 				}
 			}
 		}
-	}	
+	}
 }
 
 //get the first page to also count the available records:
@@ -787,8 +787,8 @@
 		$numberOfRecords = $numberOfRecords[0];
 		$maxRecords = (integer)$numberOfRecords;
 		$maxPages = ceil($maxRecords / $maxResults);
-		//$e = new mb_exception("number of records matched: ".$numberOfRecords);	
-		//$e = new mb_exception("operation successfull");	
+		//$e = new mb_exception("number of records matched: ".$numberOfRecords);
+		//$e = new mb_exception("operation successfull");
 		//$e = new mb_exception(gettype($cswClient->operationResult));
 		$metadataRecord = $cswClient->operationResult->xpath('/csw:GetRecordsResponse/csw:SearchResults/gmd:MD_Metadata');
 		//$e = new mb_exception("number of records: ".count($metadataRecord));
@@ -807,10 +807,14 @@
 			$fileIdentifier = (string)$fileIdentifier[0];
 			$resultObject->{$searchResource}->srv[$k-1]->id = $fileIdentifier;
 			$mdDateStamp = $cswClient->operationResult->xpath('/csw:GetRecordsResponse/csw:SearchResults/gmd:MD_Metadata['.$k.']/gmd:dateStamp/gco:Date');
+			if(empty($mdDateStamp)){
+				$mdDateStamp = $cswClient->operationResult->xpath('/csw:GetRecordsResponse/csw:SearchResults/gmd:MD_Metadata['.$k.']/gmd:dateStamp/gco:DateTime');
+			}
 			$mdDateStamp = (string)$mdDateStamp[0];
 			$resultObject->{$searchResource}->srv[$k-1]->date = $mdDateStamp;
+			/*	WORKAROUND
 			switch ($searchResource) {
-				case "service": 
+				case "service":
 					$identifikationXPath = "srv:SV_ServiceIdentification";
 					break;
 				default:
@@ -817,6 +821,9 @@
 					$identifikationXPath = "gmd:MD_DataIdentification";
 					break;
 			}
+			*/
+			$identifikationXPath = "";
+
 			$datasetIdentifier = $cswClient->operationResult->xpath('/csw:GetRecordsResponse/csw:SearchResults/gmd:MD_Metadata['.$k.']/gmd:identificationInfo/'.$identifikationXPath.'/@uuid');
 			$datasetidentifier = (string)$datasetidentifier[0];
 			//preview image if available
@@ -862,18 +869,18 @@
 				$accessUrl = $cswClient->operationResult->xpath('/csw:GetRecordsResponse/csw:SearchResults/gmd:MD_Metadata['.$k.']/gmd:identificationInfo/srv:SV_ServiceIdentification/srv:containsOperations/srv:SV_OperationMetadata/srv:connectPoint/gmd:CI_OnlineResource/gmd:linkage/gmd:URL');
 			}
 			$accessUrl = $accessUrl[0];
-			$isViewService = false;	
+			$isViewService = false;
 			$isDownloadService = false;
 			$typeOfServiceUpper = strtoupper($typeOfService);
 			//check for view service type
 			if ($typeOfServiceUpper == 'WMS' || $typeOfServiceUpper == 'VIEW'  || strpos($typeOfServiceUpper,'WMS') !== false) {
-				$isViewService = true;	
+				$isViewService = true;
 				//echo "view service identified<br>";
 			}
 
 
 			if ($typeOfServiceUpper == 'DOWNLOAD' || $typeOfServiceUpper == 'ATOM'  || strpos($typeOfServiceUpper,'PREDEFINED ATOM') !== false) {
-				$isDownloadService = true;	
+				$isDownloadService = true;
 				//echo "view service identified<br>";
 			}
 			//check if service is view or wms and correct it for wms 1.1.1 capabilities request
@@ -906,7 +913,7 @@
 			}
 			//html view
 			$resultObject->{$searchResource}->srv[$k-1]->htmlLink = $scheme.'://'.$_SERVER['HTTP_HOST'].str_replace(basename($_SERVER['SCRIPT_NAME']), "mod_exportIso19139.php", $_SERVER['PHP_SELF'])."?url=".urlencode($resultObject->{$searchResource}->srv[$k-1]->mdLink);
-			//service urls if available 
+			//service urls if available
 			//type of service
 			//inspire url for service
 			$url =  $cswClient->operationResult->xpath('/csw:GetRecordsResponse/csw:SearchResults/gmd:MD_Metadata['.$k.']/gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource/gmd:linkage/gmd:URL');
@@ -955,7 +962,7 @@
 		}
 		/*if ($paramName == "searchResources") {
 			$str2exchange = "searchResources=".$dummySearchResources."&";
-			
+
 		} else {
 			$str2exchange = "";
 		}*/
@@ -962,12 +969,12 @@
 		$queryStringNew = str_replace($str2search, $str2exchange, $queryString);
 		$queryStringNew = str_replace("&&", "&", $queryStringNew);
 	} else {
-	//there are more than one filter - reduce the filter  
+	//there are more than one filter - reduce the filter
 		$objectList = "";
 		for($i=0; $i < count($queryArray); $i++){
 			if ($queryArray[$i] != $string){
-				$objectList .= $queryArray[$i].",";		
-			} 
+				$objectList .= $queryArray[$i].",";
+			}
 		}
 		//remove last comma
 		$objectList = rtrim($objectList, ",");
@@ -1008,7 +1015,7 @@
 		}
 	}
 	return $arrayname;
-} 
+}
 function correctWmsUrl($wms_url) {
 	//check if last sign is ? or & or none of them
 	$lastChar = substr($wms_url,-1);
@@ -1043,10 +1050,10 @@
 			$wms_url = str_replace('version=1.3.0', 'VERSION=1.1.1', $wms_url);
 			$wms_url = str_replace('VERSION=1.3.0', 'VERSION=1.1.1', $wms_url);
 		}
-		
+
 	}
 
-	//exchange &? with & and & 
+	//exchange &? with & and &
 	$wms_url = str_replace('&?', '&', $wms_url);
 	$wms_url = str_replace('&?', '&', $wms_url);
 	$wms_url = str_replace('&', '&', $wms_url);



More information about the Mapbender_commits mailing list