[Mapbender-commits] r8683 - trunk/mapbender/http/classes

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Wed Jul 31 07:22:38 PDT 2013


Author: verenadiewald
Date: 2013-07-31 07:22:38 -0700 (Wed, 31 Jul 2013)
New Revision: 8683

Modified:
   trunk/mapbender/http/classes/class_wms.php
Log:
some code cleaning to avoid masses of PHP Notices + one bugfix in updateObjInDB 

Modified: trunk/mapbender/http/classes/class_wms.php
===================================================================
--- trunk/mapbender/http/classes/class_wms.php	2013-07-31 14:09:41 UTC (rev 8682)
+++ trunk/mapbender/http/classes/class_wms.php	2013-07-31 14:22:38 UTC (rev 8683)
@@ -557,219 +557,219 @@
 		$this->gui_wms_featureinfoformat = "";
 		$this->wms_max_imagesize = 0;
 		foreach ($values as $element) {
-			if(mb_strtoupper($element[tag]) == "WMT_MS_CAPABILITIES" && $element[type] == "open"){
-				$this->wms_version = $element[attributes][version];
+			if(mb_strtoupper($element['tag']	) == "WMT_MS_CAPABILITIES" && $element['type'] == "open"){
+				$this->wms_version = $element['attributes']['version'];
 			}
 			//WMS 1.3.0
-			if(mb_strtoupper($element[tag]) == "WMS_CAPABILITIES" && $element[type] == "open"){
-				$this->wms_version = $element[attributes][version];
+			if(mb_strtoupper($element['tag']	) == "WMS_CAPABILITIES" && $element['type'] == "open"){
+				$this->wms_version = $element['attributes']['version'];
 			}
-			if(mb_strtoupper($element[tag]) == "TITLE" && $element[level] == '3'){
-				$this->wms_title = $this->stripEndlineAndCarriageReturn($element[value]);
+			if(mb_strtoupper($element['tag']	) == "TITLE" && $element['level'] == '3'){
+				$this->wms_title = $this->stripEndlineAndCarriageReturn($element['value']);
 			}
-			if(mb_strtoupper($element[tag]) == "ABSTRACT" && $element[level] == '3'){
-				$this->wms_abstract = $this->stripEndlineAndCarriageReturn($element[value]);
+			if(mb_strtoupper($element['tag']	) == "ABSTRACT" && $element['level'] == '3'){
+				$this->wms_abstract = $this->stripEndlineAndCarriageReturn($element['value']);
 			}
-			if(mb_strtolower($element[tag]) == "fees"){
-				$this->fees = $element[value];
+			if(mb_strtolower($element['tag']	) == "fees"){
+				$this->fees = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "accessconstraints"){
-				$this->accessconstraints = $element[value];
+			if(mb_strtolower($element['tag']	) == "accessconstraints"){
+				$this->accessconstraints = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "contactperson"){
-				$this->contactperson = $element[value];
+			if(mb_strtolower($element['tag']	) == "contactperson"){
+				$this->contactperson = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "contactposition"){
-				$this->contactposition = $element[value];
+			if(mb_strtolower($element['tag']	) == "contactposition"){
+				$this->contactposition = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "contactorganization"){
-				$this->contactorganization = $element[value];
+			if(mb_strtolower($element['tag']	) == "contactorganization"){
+				$this->contactorganization = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "address"){
-				$this->address = $element[value];
+			if(mb_strtolower($element['tag']	) == "address"){
+				$this->address = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "city"){
-				$this->city = $element[value];
+			if(mb_strtolower($element['tag']	) == "city"){
+				$this->city = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "stateorprovince"){
-				$this->stateorprovince = $element[value];
+			if(mb_strtolower($element['tag']	) == "stateorprovince"){
+				$this->stateorprovince = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "postcode"){
-				$this->postcode = $element[value];
+			if(mb_strtolower($element['tag']	) == "postcode"){
+				$this->postcode = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "country"){
-				$this->country = $element[value];
+			if(mb_strtolower($element['tag']	) == "country"){
+				$this->country = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "contactvoicetelephone"){
-				$this->contactvoicetelephone = $element[value];
+			if(mb_strtolower($element['tag']	) == "contactvoicetelephone"){
+				$this->contactvoicetelephone = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "contactfacsimiletelephone"){
-				$this->contactfacsimiletelephone = $element[value];
+			if(mb_strtolower($element['tag']	) == "contactfacsimiletelephone"){
+				$this->contactfacsimiletelephone = $element['value'];
 			}
-			if(mb_strtolower($element[tag]) == "contactelectronicmailaddress"){
-				$this->contactelectronicmailaddress = $element[value];
+			if(mb_strtolower($element['tag']	) == "contactelectronicmailaddress"){
+				$this->contactelectronicmailaddress = $element['value'];
 			}
-	  		if(mb_strtolower($element[tag]) == "keyword" && $section != 'layer'){
-				$this->wms_keyword[count($this->wms_keyword)] = $element[value];
+	  		if(mb_strtolower($element['tag']	) == "keyword" && $section != 'layer'){
+				$this->wms_keyword[count($this->wms_keyword)] = $element['value'];
 			}
 			
 			/*map section*/
 			if($this->wms_version == "1.0.0"){
-		 		if(mb_strtoupper($element[tag]) == "MAP" && $element[type] == "open"){
+		 		if(mb_strtoupper($element['tag']	) == "MAP" && $element['type'] == "open"){
 					$section = "map";
 				}
-				if($section == "map" && mb_strtoupper($element[tag]) == "GET"){
-					$this->wms_getmap = $element[attributes][onlineResource];
+				if($section == "map" && mb_strtoupper($element['tag']	) == "GET"){
+					$this->wms_getmap = $element['attributes'][onlineResource];
 				}
-				if($section == "map" && mb_strtoupper($element[tag]) == "FORMAT" && $element[type] == "open"){
+				if($section == "map" && mb_strtoupper($element['tag']	) == "FORMAT" && $element['type'] == "open"){
 					$format = "map";
 				}
-				if(mb_strtoupper($element[tag]) != "FORMAT" && $section == "map" && $format == "map"){
-					if (!$this->formatExists("map", trim($element[tag]))) {
+				if(mb_strtoupper($element['tag']	) != "FORMAT" && $section == "map" && $format == "map"){
+					if (!$this->formatExists("map", trim($element['tag']	))) {
 						$this->data_type[$cnt_format] = "map";
-						$this->data_format[$cnt_format] = trim($element[tag]);
+						$this->data_format[$cnt_format] = trim($element['tag']	);
 						$cnt_format++;
 					}
 				}
-				if(mb_strtoupper($element[tag]) == "FORMAT" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "FORMAT" && $element['type'] == "close"){
 					$format = "";
 				}
-				if(mb_strtoupper($element[tag]) == "MAP" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "MAP" && $element['type'] == "close"){
 					$section = "";
 				}
 			}
 			else{
-				if(mb_strtoupper($element[tag]) == "GETMAP" && $element[type] == "open"){
+				if(mb_strtoupper($element['tag']	) == "GETMAP" && $element['type'] == "open"){
 					$section = "map";
 				}
-				if($section == "map" && mb_strtoupper($element[tag]) == "GET" && $element[type] == "open"){
+				if($section == "map" && mb_strtoupper($element['tag']	) == "GET" && $element['type'] == "open"){
 					$request = "get";
 				}
-				if($section == "map" && $request == "get" && mb_strtoupper($element[tag]) == "ONLINERESOURCE"){
-					$this->wms_getmap = $element[attributes]["xlink:href"];
+				if($section == "map" && $request == "get" && mb_strtoupper($element['tag']	) == "ONLINERESOURCE"){
+					$this->wms_getmap = $element['attributes']["xlink:href"];
 				}
-				if($section == "map" && mb_strtoupper($element[tag]) == "FORMAT"){
-					if (!$this->formatExists("map", trim($element[value]))) {
+				if($section == "map" && mb_strtoupper($element['tag']	) == "FORMAT"){
+					if (!$this->formatExists("map", trim($element['value']))) {
 						$this->data_type[$cnt_format] = "map";
-						$this->data_format[$cnt_format] = trim($element[value]);
+						$this->data_format[$cnt_format] = trim($element['value']);
 						$cnt_format++;
 					}
 				}
-				if($section == "map" && mb_strtoupper($element[tag]) == "GET" && $element[type] == "close"){
+				if($section == "map" && mb_strtoupper($element['tag']	) == "GET" && $element['type'] == "close"){
 					$request = "";
 				}
-				if(mb_strtoupper($element[tag]) == "GETMAP" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "GETMAP" && $element['type'] == "close"){
 					$section = "";
 				}
 			}
 			/*capabilities section*/
 			if($this->wms_version == "1.0.0"){
-				if(mb_strtoupper($element[tag]) == "CAPABILITIES" && $element[type] == "open"){
+				if(mb_strtoupper($element['tag']	) == "CAPABILITIES" && $element['type'] == "open"){
 					$section = "capabilities";
 				}
-				if($section == "capabilities" && mb_strtoupper($element[tag]) == "GET"){
-					$this->wms_getcapabilities = $element[attributes][onlineResource];
+				if($section == "capabilities" && mb_strtoupper($element['tag']	) == "GET"){
+					$this->wms_getcapabilities = $element['attributes'][onlineResource];
 				}
-				if(mb_strtoupper($element[tag]) == "CAPABILITIES" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "CAPABILITIES" && $element['type'] == "close"){
 					$section = "";
 				}
 			}
 			else{
-				if(mb_strtoupper($element[tag]) == "GETCAPABILITIES" && $element[type] == "open"){
+				if(mb_strtoupper($element['tag']	) == "GETCAPABILITIES" && $element['type'] == "open"){
 					$section = "capabilities";
 				}
-				if($section == "capabilities" && mb_strtoupper($element[tag]) == "GET" && $element[type] == "open"){
+				if($section == "capabilities" && mb_strtoupper($element['tag']	) == "GET" && $element['type'] == "open"){
 					$request = "get";
 				}
-				if($section == "capabilities" && $request == "get" && mb_strtoupper($element[tag]) == "ONLINERESOURCE"){
-					$this->wms_getcapabilities = $element[attributes]["xlink:href"];
+				if($section == "capabilities" && $request == "get" && mb_strtoupper($element['tag']	) == "ONLINERESOURCE"){
+					$this->wms_getcapabilities = $element['attributes']["xlink:href"];
 				}
-				if($section == "capabilities" && mb_strtoupper($element[tag]) == "GET" && $element[type] == "close"){
+				if($section == "capabilities" && mb_strtoupper($element['tag']	) == "GET" && $element['type'] == "close"){
 					$request = "";
 				}
-				if(mb_strtoupper($element[tag]) == "GETCAPABILITIES" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "GETCAPABILITIES" && $element['type'] == "close"){
 					$section = "";
 				}
 			}
 			/*featureInfo section*/
 			if($this->wms_version == "1.0.0"){
-				if(mb_strtoupper($element[tag]) == "FEATUREINFO" && $element[type] == "open"){
+				if(mb_strtoupper($element['tag']	) == "FEATUREINFO" && $element['type'] == "open"){
 					$section = "featureinfo";
 				}
-				if($section == "featureinfo" && mb_strtoupper($element[tag]) == "GET"){
-					$this->wms_getfeatureinfo = $element[attributes][onlineResource];
+				if($section == "featureinfo" && mb_strtoupper($element['tag']	) == "GET"){
+					$this->wms_getfeatureinfo = $element['attributes'][onlineResource];
 				}
-				if($section == "featureinfo" && mb_strtoupper($element[tag]) == "FORMAT" && $element[type] == "open"){
+				if($section == "featureinfo" && mb_strtoupper($element['tag']	) == "FORMAT" && $element['type'] == "open"){
 					$format = "featureinfo";
 				}
-				if(mb_strtoupper($element[tag]) != "FORMAT" && $section == "featureinfo" && $format == "featureinfo"){
-					if (!$this->formatExists("featureinfo", trim($element[tag]))) {
+				if(mb_strtoupper($element['tag']	) != "FORMAT" && $section == "featureinfo" && $format == "featureinfo"){
+					if (!$this->formatExists("featureinfo", trim($element['tag']	))) {
 						$this->data_type[$cnt_format] = "featureinfo";
-						$this->data_format[$cnt_format] = trim($element[tag]);
+						$this->data_format[$cnt_format] = trim($element['tag']	);
 						$cnt_format++;
 					}
 				}
-				if(mb_strtoupper($element[tag]) == "FORMAT" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "FORMAT" && $element['type'] == "close"){
 					$format = "";
 				}
-				if(mb_strtoupper($element[tag]) == "FEATUREINFO" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "FEATUREINFO" && $element['type'] == "close"){
 					$section = "";
 				}
 			}
 			else{
-				if(mb_strtoupper($element[tag]) == "GETFEATUREINFO" && $element[type] == "open"){
+				if(mb_strtoupper($element['tag']	) == "GETFEATUREINFO" && $element['type'] == "open"){
 					$section = "featureinfo";
 				}
-				if($section == "featureinfo" && mb_strtoupper($element[tag]) == "GET" && $element[type] == "open"){
+				if($section == "featureinfo" && mb_strtoupper($element['tag']	) == "GET" && $element['type'] == "open"){
 					$request = "get";
 				}
-				if($section == "featureinfo" && $request == "get" && mb_strtoupper($element[tag]) == "ONLINERESOURCE"){
-					$this->wms_getfeatureinfo = $element[attributes]["xlink:href"];
+				if($section == "featureinfo" && $request == "get" && mb_strtoupper($element['tag']	) == "ONLINERESOURCE"){
+					$this->wms_getfeatureinfo = $element['attributes']["xlink:href"];
 				}
-				if($section == "featureinfo" && mb_strtoupper($element[tag]) == "FORMAT"){
-					if (!$this->formatExists("featureinfo", trim($element[value]))) {
+				if($section == "featureinfo" && mb_strtoupper($element['tag']	) == "FORMAT"){
+					if (!$this->formatExists("featureinfo", trim($element['value']))) {
 						$this->data_type[$cnt_format] = "featureinfo";
-						$this->data_format[$cnt_format] = trim($element[value]);
+						$this->data_format[$cnt_format] = trim($element['value']);
 						$cnt_format++;
 					}
 				}
-				if($section == "featureinfo" && mb_strtoupper($element[tag]) == "GET" && $element[type] == "close"){
+				if($section == "featureinfo" && mb_strtoupper($element['tag']	) == "GET" && $element['type'] == "close"){
 					$request = "";
 				}
-				if(mb_strtoupper($element[tag]) == "GETFEATUREINFO" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "GETFEATUREINFO" && $element['type'] == "close"){
 					$section = "";
 				}
 			}
 			/*exception section*/
 			if($this->wms_version == "1.0.0"){
-				if(mb_strtoupper($element[tag]) == "EXCEPTION" && $element[type] == "open"){
+				if(mb_strtoupper($element['tag']	) == "EXCEPTION" && $element['type'] == "open"){
 					$section = "exception";
 				}
-				if($section == "exception" && mb_strtoupper($element[tag]) == "FORMAT" && $element[type] == "open"){
+				if($section == "exception" && mb_strtoupper($element['tag']	) == "FORMAT" && $element['type'] == "open"){
 					$format = "exception";
 				}
-				if(mb_strtoupper($element[tag]) != "FORMAT" && $section == "exception" && $format == "exception"){
+				if(mb_strtoupper($element['tag']	) != "FORMAT" && $section == "exception" && $format == "exception"){
 					$this->data_type[$cnt_format] = "exception";
-					$this->data_format[$cnt_format] = trim($element[tag]);
+					$this->data_format[$cnt_format] = trim($element['tag']	);
 					$cnt_format++;
 				}
-				if($section == "exception" && mb_strtoupper($element[tag]) == "FORMAT" && $element[type] == "close"){
+				if($section == "exception" && mb_strtoupper($element['tag']	) == "FORMAT" && $element['type'] == "close"){
 					$format = "";
 				}
-				if(mb_strtoupper($element[tag]) == "EXCEPTION" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "EXCEPTION" && $element['type'] == "close"){
 					$section = "";
 				}
 			}
 			else{
-				if(mb_strtoupper($element[tag]) == "EXCEPTION" && $element[type] == "open"){
+				if(mb_strtoupper($element['tag']	) == "EXCEPTION" && $element['type'] == "open"){
 					$section = "exception";
 				}
-				if($section == "exception" && mb_strtoupper($element[tag]) == "FORMAT"){
+				if($section == "exception" && mb_strtoupper($element['tag']	) == "FORMAT"){
 					$this->data_type[$cnt_format] = "exception";
-					$this->data_format[$cnt_format] = trim($element[value]);
+					$this->data_format[$cnt_format] = trim($element['value']);
 					$cnt_format++;
 				}
-				if(mb_strtoupper($element[tag]) == "EXCEPTION" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "EXCEPTION" && $element['type'] == "close"){
 					$section = "";
 				}
 			}
@@ -778,224 +778,224 @@
 	      
 	      }
 	      else{
-	        if(mb_strtoupper($element[tag]) == "GETLEGENDGRAPHIC" && $element[type] == "open"){
+	        if(mb_strtoupper($element['tag']	) == "GETLEGENDGRAPHIC" && $element['type'] == "open"){
 				$section = "legend";
 			}
-	        if($section == "legend" && mb_strtoupper($element[tag]) == "GET" && $element[type] == "open"){
+	        if($section == "legend" && mb_strtoupper($element['tag']	) == "GET" && $element['type'] == "open"){
 				$request = "get";
 			}
-			if($section == "legend" && $request == "get" && mb_strtoupper($element[tag]) == "ONLINERESOURCE"){
-				$this->wms_getlegendurl = $element[attributes]["xlink:href"];
+			if($section == "legend" && $request == "get" && mb_strtoupper($element['tag']	) == "ONLINERESOURCE"){
+				$this->wms_getlegendurl = $element['attributes']["xlink:href"];
 			}
-	        if($section == "legend" && mb_strtoupper($element[tag]) == "GET" && $element[type] == "close"){
+	        if($section == "legend" && mb_strtoupper($element['tag']	) == "GET" && $element['type'] == "close"){
 				$request = "";
 			}
-			if(mb_strtoupper($element[tag]) == "GETLEGENDGRAPHIC" && $element[type] == "close"){
+			if(mb_strtoupper($element['tag']	) == "GETLEGENDGRAPHIC" && $element['type'] == "close"){
 				$section = "";
 			}         
 	      }
 			/* sld section */	      
-			if(mb_strtoupper($element[tag]) == "USERDEFINEDSYMBOLIZATION" && $element[type] == "complete"){
-				$this->wms_supportsld = $element[attributes]["SupportSLD"];
-				$this->wms_userlayer = $element[attributes]["UserLayer"];
-				$this->wms_userstyle = $element[attributes]["UserStyle"];
-				$this->wms_remotewfs = $element[attributes]["RemoteWFS"];
+			if(mb_strtoupper($element['tag']	) == "USERDEFINEDSYMBOLIZATION" && $element['type'] == "complete"){
+				$this->wms_supportsld = $element['attributes']["SupportSLD"];
+				$this->wms_userlayer = $element['attributes']["UserLayer"];
+				$this->wms_userstyle = $element['attributes']["UserStyle"];
+				$this->wms_remotewfs = $element['attributes']["RemoteWFS"];
 			}
 	      	      
 			/*layer section*/				
-			if(mb_strtoupper($element[tag]) == "LAYER"){
+			if(mb_strtoupper($element['tag']	) == "LAYER"){
 				$section = "layer";
-				if ($element[type] == "open") {
+				if ($element['type'] == "open") {
 					$cnt_epsg = -1;
 					//new for resolving metadataurls and dataurls
 					$cnt_metadataurl = -1;
 					$cnt_dataurl = -1;
 					$cnt_layer++;
-					$parent[$element[level]+1] = $cnt_layer;
-					$myParent[$cnt_layer]= $parent[$element[level]];
+					$parent[$element['level']+1] = $cnt_layer;
+					$myParent[$cnt_layer]= $parent[$element['level']];
 					$this->addLayer($cnt_layer,$myParent[$cnt_layer]);
-					$this->objLayer[$cnt_layer]->layer_queryable = $element[attributes][queryable];
+					$this->objLayer[$cnt_layer]->layer_queryable = $element['attributes']['queryable'];
 				}
-				if ($element[type] == "close") {
+				if ($element['type'] == "close") {
 				
 				}
 			}
 			/* attribution */
-			if(mb_strtoupper($element[tag]) == "ATTRIBUTION"){
-				if ($element[type] == "open") {
+			if(mb_strtoupper($element['tag']	) == "ATTRIBUTION"){
+				if ($element['type'] == "open") {
 					$section = "attribution";
 				}
-				if ($element[type] == "close") {
+				if ($element['type'] == "close") {
 					$section = "layer";
 				}
 			}
 			/* styles */
-			if(mb_strtoupper($element[tag]) == "STYLE"){
+			if(mb_strtoupper($element['tag']	) == "STYLE"){
 				$section = "style";
 				if($cnt_layer != $layer_style){
 					$layer_style = $cnt_layer;
 					$cnt_styles = -1;
 				}
-				if ($element[type] == "open") {
+				if ($element['type'] == "open") {
 					$cnt_styles++;
 				}
-				if ($element[type] == "close") {
+				if ($element['type'] == "close") {
 					$section = "layer";
 				}
 			}
 			if($section == "style"){
-				if(mb_strtoupper($element[tag]) == "NAME"){
-					$this->objLayer[$cnt_layer]->layer_style[$cnt_styles]["name"] = ($element[value] ? $element[value] : 'default');
+				if(mb_strtoupper($element['tag']	) == "NAME"){
+					$this->objLayer[$cnt_layer]->layer_style[$cnt_styles]["name"] = ($element['value'] ? $element['value'] : 'default');
 				}
-				if(mb_strtoupper($element[tag]) == "TITLE"){
-					$this->objLayer[$cnt_layer]->layer_style[$cnt_styles]["title"] = ($element[value] ? $element[value] : '');
+				if(mb_strtoupper($element['tag']	) == "TITLE"){
+					$this->objLayer[$cnt_layer]->layer_style[$cnt_styles]["title"] = ($element['value'] ? $element['value'] : '');
 				}
-	      			if(mb_strtoupper($element[tag]) == "LEGENDURL" && $element[type] == "open"){
+	      			if(mb_strtoupper($element['tag']	) == "LEGENDURL" && $element['type'] == "open"){
 					$legendurl = true;
 				}
-				if($legendurl && mb_strtoupper($element[tag]) == "FORMAT"){
-					$this->objLayer[$cnt_layer]->layer_style[$cnt_styles]["legendurlformat"] = $element[value];
+				if($legendurl && mb_strtoupper($element['tag']	) == "FORMAT"){
+					$this->objLayer[$cnt_layer]->layer_style[$cnt_styles]["legendurlformat"] = $element['value'];
 				}
-				if($legendurl && mb_strtoupper($element[tag]) == "ONLINERESOURCE"){
-					$this->objLayer[$cnt_layer]->layer_style[$cnt_styles]["legendurl"] = $element[attributes]["xlink:href"];
+				if($legendurl && mb_strtoupper($element['tag']	) == "ONLINERESOURCE"){
+					$this->objLayer[$cnt_layer]->layer_style[$cnt_styles]["legendurl"] = $element['attributes']["xlink:href"];
 				}
-				if(mb_strtoupper($element[tag]) == "LEGENDURL" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "LEGENDURL" && $element['type'] == "close"){
 					$legendurl = false;
 				}   
 			}
 			/* end of styles */
 			if($section == "layer"){
-				if(mb_strtoupper($element[tag]) == "NAME"){
-					$this->objLayer[$cnt_layer]->layer_name = $element[value];
+				if(mb_strtoupper($element['tag']	) == "NAME"){
+					$this->objLayer[$cnt_layer]->layer_name = $element['value'];
 				}
-				if(mb_strtoupper($element[tag]) == "TITLE"){
-					$this->objLayer[$cnt_layer]->layer_title = $this->stripEndlineAndCarriageReturn($element[value]);
+				if(mb_strtoupper($element['tag']	) == "TITLE"){
+					$this->objLayer[$cnt_layer]->layer_title = $this->stripEndlineAndCarriageReturn($element['value']);
 				}
-				if(mb_strtoupper($element[tag]) == "ABSTRACT"){
-					$this->objLayer[$cnt_layer]->layer_abstract = $this->stripEndlineAndCarriageReturn($element[value]);
+				if(mb_strtoupper($element['tag']	) == "ABSTRACT"){
+					$this->objLayer[$cnt_layer]->layer_abstract = $this->stripEndlineAndCarriageReturn($element['value']);
 				}
-				if(mb_strtoupper($element[tag]) == "KEYWORD"){
-					array_push($this->objLayer[$cnt_layer]->layer_keyword, trim($element[value]));
+				if(mb_strtoupper($element['tag']	) == "KEYWORD"){
+					array_push($this->objLayer[$cnt_layer]->layer_keyword, trim($element['value']));
 				}
-	      			if(mb_strtoupper($element[tag]) == "DATAURL" && $element[type] == "open"){
+	      			if(mb_strtoupper($element['tag']	) == "DATAURL" && $element['type'] == "open"){
 					$dataurl = true;
 					$cnt_dataurl++;
 				}
-				if($dataurl && mb_strtoupper($element[tag]) == "FORMAT"){
-					$this->objLayer[$cnt_layer]->layer_dataurl[$cnt_dataurl]->format = $element[value];
+				if($dataurl && mb_strtoupper($element['tag']	) == "FORMAT"){
+					$this->objLayer[$cnt_layer]->layer_dataurl[$cnt_dataurl]->format = $element['value'];
 				}
-				if($dataurl && mb_strtoupper($element[tag]) == "ONLINERESOURCE"){
-					$this->objLayer[$cnt_layer]->layer_dataurl[$cnt_dataurl]->href = $element[attributes]["xlink:href"]; //TODO exchange the parsing with a real xml parsing cause namespaces will make problems!
+				if($dataurl && mb_strtoupper($element['tag']	) == "ONLINERESOURCE"){
+					$this->objLayer[$cnt_layer]->layer_dataurl[$cnt_dataurl]->href = $element['attributes']["xlink:href"]; //TODO exchange the parsing with a real xml parsing cause namespaces will make problems!
 				}
-			    	if(mb_strtoupper($element[tag]) == "DATAURL" && $element[type] == "close"){
+			    	if(mb_strtoupper($element['tag']	) == "DATAURL" && $element['type'] == "close"){
 					$dataurl = false;
 			   	}   				
-				if(mb_strtoupper($element[tag]) == "METADATAURL" && $element[type] == "open"){
+				if(mb_strtoupper($element['tag']	) == "METADATAURL" && $element['type'] == "open"){
 					$metadataurl = true;
 					$cnt_metadataurl++;
-					$this->objLayer[$cnt_layer]->layer_metadataurl[$cnt_metadataurl]->type = $element[attributes]["type"];
+					$this->objLayer[$cnt_layer]->layer_metadataurl[$cnt_metadataurl]->type = $element['attributes']["type"];
 				}
-				if($metadataurl && mb_strtoupper($element[tag]) == "FORMAT"){
-					$this->objLayer[$cnt_layer]->layer_metadataurl[$cnt_metadataurl]->format = $element[value];
+				if($metadataurl && mb_strtoupper($element['tag']	) == "FORMAT"){
+					$this->objLayer[$cnt_layer]->layer_metadataurl[$cnt_metadataurl]->format = $element['value'];
 				}
-				if($metadataurl && mb_strtoupper($element[tag]) == "ONLINERESOURCE"){
-					$this->objLayer[$cnt_layer]->layer_metadataurl[$cnt_metadataurl]->href = $element[attributes]["xlink:href"];
+				if($metadataurl && mb_strtoupper($element['tag']	) == "ONLINERESOURCE"){
+					$this->objLayer[$cnt_layer]->layer_metadataurl[$cnt_metadataurl]->href = $element['attributes']["xlink:href"];
 				}
-			    	if(mb_strtoupper($element[tag]) == "METADATAURL" && $element[type] == "close"){
+			    	if(mb_strtoupper($element['tag']	) == "METADATAURL" && $element['type'] == "close"){
 					$metadataurl = false;
 				}   
 				
-				if(mb_strtoupper($element[tag]) == "SRS"){
+				if(mb_strtoupper($element['tag']	) == "SRS"){
 					if(count($this->wms_srs) < 1000){ //workaround: only import up to 1000 srs
 					// unique srs only, see http://www.mapbender.org/index.php/Arrays_with_unique_entries
-					$this->wms_srs = array_keys(array_flip(array_merge($this->wms_srs, explode(" ", strtoupper($element[value])))));
+					$this->wms_srs = array_keys(array_flip(array_merge($this->wms_srs, explode(" ", strtoupper($element['value'])))));
 					}
 				}
 				#WMS 1.3.0
-				if(mb_strtoupper($element[tag]) == "CRS"){
+				if(mb_strtoupper($element['tag']	) == "CRS"){
 					if(count($this->wms_srs) < 1000){ //workaround: only import up to 1000 srs
 					// unique srs only, see http://www.mapbender.org/index.php/Arrays_with_unique_entries
-					$this->wms_srs = array_keys(array_flip(array_merge($this->wms_srs, explode(" ", strtoupper($element[value])))));	}
+					$this->wms_srs = array_keys(array_flip(array_merge($this->wms_srs, explode(" ", strtoupper($element['value'])))));	}
 				}
 				#WMS 1.3.0
-				if(mb_strtoupper($element[tag]) == "EX_GEOGRAPHICBOUNDINGBOX" && $element[type] == "open"){
+				if(mb_strtoupper($element['tag']	) == "EX_GEOGRAPHICBOUNDINGBOX" && $element['type'] == "open"){
 					$section_bbox = "ex_geographicboundingbox";
 				}
-				if($section_bbox == "ex_geographicboundingbox" && mb_strtoupper($element[tag]) == "WESTBOUNDLONGITUDE"){
+				if($section_bbox == "ex_geographicboundingbox" && mb_strtoupper($element['tag']	) == "WESTBOUNDLONGITUDE"){
 					$cnt_epsg++;
 					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["epsg"] = "EPSG:4326";
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = trim($element[value]);
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = trim($element['value']);
 				}
-				if($section_bbox == "ex_geographicboundingbox" && mb_strtoupper($element[tag]) == "SOUTHBOUNDLATITUDE"){
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = trim($element[value]);
+				if($section_bbox == "ex_geographicboundingbox" && mb_strtoupper($element['tag']	) == "SOUTHBOUNDLATITUDE"){
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = trim($element['value']);
 				}
-				if($section_bbox == "ex_geographicboundingbox" && mb_strtoupper($element[tag]) == "EASTBOUNDLONGITUDE"){
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = trim($element[value]);
+				if($section_bbox == "ex_geographicboundingbox" && mb_strtoupper($element['tag']	) == "EASTBOUNDLONGITUDE"){
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = trim($element['value']);
 				}
-				if($section_bbox == "ex_geographicboundingbox" && mb_strtoupper($element[tag]) == "NORTHBOUNDLATITUDE"){
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = trim($element[value]);
+				if($section_bbox == "ex_geographicboundingbox" && mb_strtoupper($element['tag']	) == "NORTHBOUNDLATITUDE"){
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = trim($element['value']);
 				}
-				if(mb_strtoupper($element[tag]) == "GEOGRAPHICBOUNDINGBOX" && $element[type] == "close"){
+				if(mb_strtoupper($element['tag']	) == "GEOGRAPHICBOUNDINGBOX" && $element['type'] == "close"){
 					$section_bbox = "";
 				}						      
-				if(mb_strtoupper($element[tag]) == "LATLONBOUNDINGBOX"){
+				if(mb_strtoupper($element['tag']	) == "LATLONBOUNDINGBOX"){
 					$cnt_epsg++;
 					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["epsg"] = "EPSG:4326";
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element[attributes][minx];
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element[attributes][miny];
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element[attributes][maxx];
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element[attributes][maxy];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element['attributes']['minx'];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element['attributes']['miny'];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element['attributes']['maxx'];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element['attributes']['maxy'];
 				}
-				if(mb_strtoupper($element[tag]) == "BOUNDINGBOX" && $element[attributes][SRS] != "EPSG:4326"
+				if(mb_strtoupper($element['tag']	) == "BOUNDINGBOX" && $element['attributes']['SRS'] != "EPSG:4326"
 										&& $this->wms_version != "1.3.0"){
 					$cnt_epsg++;
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["epsg"] = $element[attributes][SRS];
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element[attributes][minx];
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element[attributes][miny];
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element[attributes][maxx];
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element[attributes][maxy];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["epsg"] = $element['attributes']['SRS'];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element['attributes']['minx'];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element['attributes']['miny'];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element['attributes']['maxx'];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element['attributes']['maxy'];
 					// a default epsg for mapbender
-					if($cnt_layer == 0 && $this->default_epsg == 0 && mb_strlen(trim($element[attributes][SRS]))>= 10){
+					if($cnt_layer == 0 && $this->default_epsg == 0 && mb_strlen(trim($element['attributes']['SRS']))>= 10){
 						$this->default_epsg = $cnt_epsg;
 					}
 				}
 				#WMS 1.3.0
-				if(mb_strtoupper($element[tag]) == "BOUNDINGBOX" && $element[attributes][CRS] == "EPSG:4326"
+				if(mb_strtoupper($element['tag']	) == "BOUNDINGBOX" && $element['attributes']['CRS'] == "EPSG:4326"
 										&& $this->wms_version == "1.3.0"){
 					$cnt_epsg++;
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["epsg"] = $element[attributes][CRS];
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element[attributes][miny];
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element[attributes][minx];
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element[attributes][maxy];
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element[attributes][maxx];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["epsg"] = $element['attributes']['CRS'];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element['attributes']['miny'];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element['attributes']['minx'];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element['attributes']['maxy'];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element['attributes']['maxx'];
 				}
 				#WMS 1.3.0
-				if(mb_strtoupper($element[tag]) == "BOUNDINGBOX" && $element[attributes][CRS] != "EPSG:4326"
+				if(mb_strtoupper($element['tag']	) == "BOUNDINGBOX" && $element['attributes']['CRS'] != "EPSG:4326"
 										&& $this->wms_version == "1.3.0"){
 					$cnt_epsg++;
-					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["epsg"] = $element[attributes][CRS];
-					$tmp_epsg = $element[attributes][CRS];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["epsg"] = $element['attributes']['CRS'];
+					$tmp_epsg = $element['attributes']['CRS'];
 					$tmp_epsg = str_replace('CRS:','',str_replace ( 'EPSG:', '', $tmp_epsg ));
 					if(check_epsg_wms_13($tmp_epsg)){
-						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element[attributes][miny];
-						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element[attributes][minx];
-						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element[attributes][maxy];
-						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element[attributes][maxx];
+						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element['attributes']['miny'];
+						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element['attributes']['minx'];
+						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element['attributes']['maxy'];
+						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element['attributes']['maxx'];
 					}else{
 						$e = new mb_exception("class_wms: createObjFromXML: WMS 1.3.0 ELSE");
-						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element[attributes][minx];
-						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element[attributes][miny];
-						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element[attributes][maxx];
-						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element[attributes][maxy];
+						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element['attributes']['minx'];
+						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element['attributes']['miny'];
+						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element['attributes']['maxx'];
+						$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element['attributes']['maxy'];
 					}
 					// a default epsg for mapbender
-					if($cnt_layer == 0 && $this->default_epsg == 0 && mb_strlen(trim($element[attributes][SRS]))>= 10){
+					if($cnt_layer == 0 && $this->default_epsg == 0 && mb_strlen(trim($element['attributes']['SRS']))>= 10){
 						$this->default_epsg = $cnt_epsg;
 					}
 				}
-				if(mb_strtoupper($element[tag]) == "SCALEHINT"){
-					if($element[attributes][max]>1000) $max = 0; else $max = $element[attributes][max]; 	
-					if($element[attributes][min]>1000) $min = 0; else $min = $element[attributes][min]; 	
+				if(mb_strtoupper($element['tag']	) == "SCALEHINT"){
+					if($element['attributes']['max']>1000) $max = 0; else $max = $element['attributes']['max']; 	
+					if($element['attributes']['min']>1000) $min = 0; else $min = $element['attributes']['min']; 	
 					$this->objLayer[$cnt_layer]->layer_minscale = round(($min * 2004.3976484406788493955738891127));
 					$this->objLayer[$cnt_layer]->layer_maxscale = round(($max * 2004.3976484406788493955738891127));
 					$this->objLayer[$cnt_layer]->layer_minscale = sprintf("%u", $this->objLayer[$cnt_layer]->layer_minscale);
@@ -1143,10 +1143,10 @@
 		}
 		
 		if(count($this->objLayer[0]->layer_epsg)>1){
-			$this->gui_wms_epsg = $this->objLayer[0]->layer_epsg[$this->default_epsg][epsg];
+			$this->gui_wms_epsg = $this->objLayer[0]->layer_epsg[$this->default_epsg]['epsg'];
 		}
 		else{
-			$this->gui_wms_epsg = $this->objLayer[0]->layer_epsg[0][epsg];
+			$this->gui_wms_epsg = $this->objLayer[0]->layer_epsg[0]['epsg'];
 		}
 		/*the queryable layers*/
 		for($i=0; $i<count($this->objLayer); $i++){
@@ -1225,16 +1225,16 @@
 			echo "<br>BBOXes:<br>";
 			echo "<table border='1'>";
 			for($j=0; $j<count($this->objLayer[$i]->layer_epsg);$j++){
-				echo "<tr><td>".$this->objLayer[$i]->layer_epsg[$j][epsg]."</td><td>".$this->objLayer[$i]->layer_epsg[$j][minx]."</td>";
-				echo "<td>".$this->objLayer[$i]->layer_epsg[$j][miny]."</td><td>".$this->objLayer[$i]->layer_epsg[$j][maxx]."</td>";
-				echo "<td>".$this->objLayer[$i]->layer_epsg[$j][maxy]."</td></tr>";
+				echo "<tr><td>".$this->objLayer[$i]->layer_epsg[$j]['epsg']."</td><td>".$this->objLayer[$i]->layer_epsg[$j]['minx']."</td>";
+				echo "<td>".$this->objLayer[$i]->layer_epsg[$j]['miny']."</td><td>".$this->objLayer[$i]->layer_epsg[$j]['maxx']."</td>";
+				echo "<td>".$this->objLayer[$i]->layer_epsg[$j]['maxy']."</td></tr>";
 			}
 			echo "</table>";
 			echo "layerstyle:";
 			echo "<table border='1'>";
 			echo "<tr><td>name</td><td>title</td><td>legendurl</td><td>legendurlformat</td></tr>";
 			for($j=0; $j<count($this->objLayer[$i]->layer_style);$j++){
-				echo "<tr><td>".$this->objLayer[$i]->layer_style[$j][name]."</td><td>".$this->objLayer[$i]->layer_style[$j][title]."</td><td>".$this->objLayer[$i]->layer_style[$j][legendurl]."</td><td>".$this->objLayer[$i]->layer_style[$j][legendurlformat]."</td></tr>";
+				echo "<tr><td>".$this->objLayer[$i]->layer_style[$j]['name']."</td><td>".$this->objLayer[$i]->layer_style[$j]['title']."</td><td>".$this->objLayer[$i]->layer_style[$j]['legendurl']."</td><td>".$this->objLayer[$i]->layer_style[$j]['legendurlformat']."</td></tr>";
 			}
 			echo "</table>";
 	        echo "<hr>";
@@ -2217,9 +2217,9 @@
 		for($j=0; $j<count($this->objLayer[$i]->layer_epsg);$j++){
 			$sql = "INSERT INTO layer_epsg (fkey_layer_id, epsg, minx, miny, maxx, maxy) ";
 			$sql .= "VALUES($1,$2,$3,$4,$5,$6)";
-			$v = array($this->objLayer[$i]->db_id,$this->objLayer[$i]->layer_epsg[$j][epsg],
-				$this->objLayer[$i]->layer_epsg[$j][minx],$this->objLayer[$i]->layer_epsg[$j][miny],
-				$this->objLayer[$i]->layer_epsg[$j][maxx],$this->objLayer[$i]->layer_epsg[$j][maxy]
+			$v = array($this->objLayer[$i]->db_id,$this->objLayer[$i]->layer_epsg[$j]['epsg'],
+				$this->objLayer[$i]->layer_epsg[$j]['minx'],$this->objLayer[$i]->layer_epsg[$j]['miny'],
+				$this->objLayer[$i]->layer_epsg[$j]['maxx'],$this->objLayer[$i]->layer_epsg[$j]['maxy']
 				); 
 			$e = new mb_notice("class_wms.php: insertLayerEPSG: INSERT SQL:".$sql. " for Layer ".$this->objLayer[$i]->db_id);
 			$t = array('i','s','d','d','d','d');
@@ -2228,7 +2228,7 @@
 				db_rollback();	
 			}
 			//push this srs into the currentSrsArray!
-			//array_push($currentSrsArray,$this->objLayer[$i]->layer_epsg[$j][epsg]);
+			//array_push($currentSrsArray,$this->objLayer[$i]->layer_epsg[$j]['epsg']);
 		}
 		
 //		GET SRS_ARRAY of mapbender.conf
@@ -2636,7 +2636,6 @@
 			$this->update_gui_wms($myWMS);
 		}
 		
-		
 		//NEW 2012-11: Check for changed layer names with options $changedLayersObj
         for($i=0; $i<count($changedLayers); $i++){
             if(trim($changedLayers[$i]["oldLayerName"]) != trim($changedLayers[$i]["newLayerName"])) {
@@ -2653,21 +2652,16 @@
 		    #new mb_notice("newLayerName ==================". $changedLayers[$i]["newLayerName"]);
         }
 		
+        ######## NEW 2013-07: split off the check routine to insert and update layers to one section for root layer and one for all child layers 
+        ######## reason: If root layer and child layer have same name, it crashes here!!!
+        ################################ start section for root-layer
+        
 		# update TABLE layer	
 		$oldLayerNameArray = array();
-		$v = array($myWMS);
-		$t = array('i');
-		$c = 2;
-		$sql = "SELECT layer_id, layer_name, layer_title, layer_abstract, inspire_download FROM layer WHERE fkey_wms_id = $1 AND NOT layer_name IN(";
-		for($i=0; $i<count($this->objLayer); $i++){
-			if($i>0){$sql .= ',';}
-			$sql .= "$".$c;
-			array_push($v,$this->objLayer[$i]->layer_name);
-			//$e = new mb_exception("class_wms: old layer name added for read: ".$this->objLayer[$i]->layer_name);
-			array_push($t,'s');		
-			$c++;
-		}
-		$sql .= ")";
+		$sql = "SELECT layer_id, layer_name, layer_title, layer_abstract, inspire_download FROM layer WHERE fkey_wms_id = $1 AND layer_pos = 0 AND NOT layer_name = $2"; 
+		$v = array($myWMS,$this->objLayer[0]->layer_name);
+		$t = array("i","s");
+		
 		$res = db_prep_query($sql,$v,$t);
 		while ($row = db_fetch_array($res)) {
 			$oldLayerNameArray[]= array(
@@ -2682,50 +2676,102 @@
 		
 		# delete all layer which are outdated
 		//first delete their metadataUrl entries*****
-
-
-
-
 		$e = new mb_notice("class_wms.php: delete all metadataUrl relations of old layer");
+		$sql = "DELETE FROM ows_relation_metadata WHERE fkey_layer_id IN " ;
+		$sql .= "(SELECT layer_id FROM layer WHERE fkey_wms_id = $1 AND layer_pos = 0 AND NOT layer_name = $2)";
+		$sql .= " AND ows_relation_metadata.relation_type = 'capabilities'";
+		$v = array($myWMS, $this->objLayer[0]->layer_name);
+		$t = array("i", "s");
+		$res = db_prep_query($sql,$v,$t);
+		
+		//*******************************************
+		//TODO: is this done for the keywords too? Maybe not, cause they are stored only once! Only the relations have to be deleted!
+		//and then the layer entries
 		$v = array($myWMS);
 		$t = array('i');
 		$c = 2;
-		$sql = "DELETE FROM ows_relation_metadata WHERE fkey_layer_id IN " ;
-		$sql .= "(SELECT layer_id FROM layer WHERE fkey_wms_id = $1 AND NOT layer_name IN (";
+		$sql = "DELETE FROM layer WHERE fkey_wms_id = $1 AND layer_pos = 0 AND NOT layer_name = $2";
+		$v = array($myWMS, $this->objLayer[0]->layer_name);
+		$t = array('i','s');
+		$res = db_prep_query($sql,$v,$t);
+		if(!$res){
+			db_rollback();	
+		}
+		
+		################################ end section for root-layer
+		
+		################################ start section for all child layers
+		
+		# update TABLE layer
+		$oldLayerNameArray = array();
+		$v = array($myWMS);
+		$t = array('i');
+		$c = 2;
+		$sql = "SELECT layer_id, layer_name, layer_title, layer_abstract, inspire_download FROM layer WHERE fkey_wms_id = $1 AND layer_pos > 0 AND NOT layer_name IN(";
 		for($i=0; $i<count($this->objLayer); $i++){
 			if($i>0){$sql .= ',';}
 			$sql .= "$".$c;
 			array_push($v,$this->objLayer[$i]->layer_name);
-			array_push($t,'s');		
+			#$e = new mb_exception("class_wms: old layer name added for read: ".$this->objLayer[$i]->layer_name);
+			array_push($t,'s');
 			$c++;
 		}
-		$sql .= ") )";
-		$sql .= " AND ows_relation_metadata.relation_type = 'capabilities'";
+		$sql .= ")";
 		$res = db_prep_query($sql,$v,$t);
-
-
+		while ($row = db_fetch_array($res)) {
+			$oldLayerNameArray[]= array(
+					"id" => $row["layer_id"],
+					"name" => $row["layer_name"],
+					"title" => $row["layer_title"],
+					"abstract" => $row["layer_abstract"]
+					//"inspire_download" => $row["inspire_download"]
+			);
+				
+		}
 		
+		# delete all layer which are outdated
+		//first delete their metadataUrl entries*****
+		$e = new mb_notice("class_wms.php: delete all metadataUrl relations of old layer");
+		$v = array($myWMS);
+				$t = array('i');
+				$c = 2;
+		$sql = "DELETE FROM ows_relation_metadata WHERE fkey_layer_id IN " ;
+		$sql .= "(SELECT layer_id FROM layer WHERE fkey_wms_id = $1 AND layer_pos > 0 AND NOT layer_name IN (";
+		for($i=0; $i<count($this->objLayer); $i++){
+				if($i>0){$sql .= ',';}
+				$sql .= "$".$c;
+				array_push($v,$this->objLayer[$i]->layer_name);
+				array_push($t,'s');
+				$c++;
+				}
+				$sql .= ") )";
+				$sql .= " AND ows_relation_metadata.relation_type = 'capabilities'";
+		$res = db_prep_query($sql,$v,$t);
+		
+		
 		//*******************************************
 		//TODO: is this done for the keywords too? Maybe not, cause they are stored only once! Only the relations have to be deleted!
 		//and then the layer entries
 		$v = array($myWMS);
 		$t = array('i');
 		$c = 2;
-		$sql = "DELETE FROM layer WHERE fkey_wms_id = $1 AND NOT layer_name IN(";
+		$sql = "DELETE FROM layer WHERE fkey_wms_id = $1 AND layer_pos > 0 AND NOT layer_name IN(";
 		for($i=0; $i<count($this->objLayer); $i++){
 			if($i>0){$sql .= ',';}
 			$sql .= "$".$c;
 			array_push($v,$this->objLayer[$i]->layer_name);
-			//$e = new mb_exception("class_wms: old layer name added for delete: ".$this->objLayer[$i]->layer_name);
-			array_push($t,'s');		
+			#$e = new mb_exception("class_wms: old layer name added for delete: ".$this->objLayer[$i]->layer_name);
+			array_push($t,'s');
 			$c++;
 		}
 		$sql .= ")";
-		
+	
 		$res = db_prep_query($sql,$v,$t);
 		if(!$res){
-			db_rollback();	
+			db_rollback();
 		}
+		
+		################ end section for all child layers
 			
 		# update or insert?
 		$sql = "SELECT layer_name FROM layer WHERE fkey_wms_id = $1";
@@ -2748,7 +2794,7 @@
 		$newLayerArray = array();
 		for($i=0; $i<count($this->objLayer); $i++){
 			if(in_array($this->objLayer[$i]->layer_name,$exLayer)){
-				//echo "<br>update: ".$this->objLayer[$i]->layer_name;
+				#echo "<br>update: ".$this->objLayer[$i]->layer_name;
 				$e = new mb_notice("update layer of wms: ".$myWMS);
 				$this->updateLayer($i,$myWMS,$updateMetadataOnly);
 				for($j=0; $j<count($exGui); $j++){
@@ -2756,7 +2802,7 @@
 				}
 			}
 			else{
-				//echo "<br>append: ".$this->objLayer[$i]->layer_name;
+				#echo "<br>append: ".$this->objLayer[$i]->layer_name;
 				$e = new mb_notice("insert layer");
 				$this->insertLayer($i,$myWMS);
 				$newLayerArray[]= $i;
@@ -2964,7 +3010,7 @@
 				
 			# gui_wms_epsg
 			for($j=0; $j<count($this->objLayer[0]->layer_epsg);$j++){
-				if($this->objLayer[0]->layer_epsg[$j][epsg] == mb_strtoupper($row["gui_wms_epsg"])){
+				if($this->objLayer[0]->layer_epsg[$j]['epsg'] == mb_strtoupper($row["gui_wms_epsg"])){
 					$myGUI_EPSG = true;
 				}
 			}



More information about the Mapbender_commits mailing list