[Mapbender-commits] r9826 - in trunk/mapbender: conf http/classes

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Dec 7 05:58:48 PST 2017


Author: armin11
Date: 2017-12-07 05:58:45 -0800 (Thu, 07 Dec 2017)
New Revision: 9826

Modified:
   trunk/mapbender/conf/isoMetadata.conf
   trunk/mapbender/http/classes/class_iso19139.php
Log:
First test to add some machine readable metadata to the html representation of iso19139 records (proved with https://search.google.com/structured-data)

Modified: trunk/mapbender/conf/isoMetadata.conf
===================================================================
--- trunk/mapbender/conf/isoMetadata.conf	2017-12-06 16:19:28 UTC (rev 9825)
+++ trunk/mapbender/conf/isoMetadata.conf	2017-12-07 13:58:45 UTC (rev 9826)
@@ -5,17 +5,17 @@
 array(	ibus => "t01_object.obj_id",
 	iso19139 => "/gmd:MD_Metadata/gmd:fileIdentifier/gco:CharacterString",
 	iso19139explode => "false" ,
-	inspire => "unique resource identifier",
+	inspire => "metadata identifier",
 	inspiremandatory => "false",
 	iso_name => "fileIdentifier",
 	html => _mb("Metadata identifier"),
 	value => "",
 	category => "identification",
-	description => _mb("A value uniquely identifying the resource. The value domain of this metadata element is a mandatory character string code, generally assigned by the data owner, and a character string namespace uniquely identifying the context of the identifier code (for example, the data owner)."),
-	#rdf-a
-	property => null,
-	#content => null,
-	datatype => null
+	description => _mb("A value uniquely identifying the metadata (description) of the resource."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierachy - example
+	schemaorg_property => 'identifier', //TODO - use other identifier for this!!!  - dataset identifier (unique resource identifier) - but not available for services!!!!!
+	rdfa_content => null //fir fix content/value,
 ),
 //B 1.1 (1)
 array(	ibus => "rtitle",
@@ -28,8 +28,10 @@
 	value => "",
 	category => "identification",
 	description => _mb("This a characteristic, and often unique, name by which the resource is known. The value domain of this metadata element is free text."),
-	#rdf-a
-	property => 'http://purl.org/dc/terms/title',
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierachy - example
+	schemaorg_property => 'name',
+	rdfa_content => null //fir fix content/value
 ),
 //B 1.2 (2)
 array(	ibus => "abstract",
@@ -43,7 +45,9 @@
 	category => "identification",
 	description => _mb("This is a brief narrative summary of the content of the resource."),
 	#rdf-a
-	property => 'http://purl.org/dc/terms/description'
+	schemaorg_typeof => null, //use pathes for hierachy - example
+	schemaorg_property => 'description',
+	rdfa_content => null //fir fix content/value
 ),
 //B 1.3 (3)
 array(	ibus => "rtype",
@@ -67,7 +71,11 @@
 	html => _mb("Resource locator"),
 	value => "",
 	category => "identification",
-	description => _mb("The resource locator defines the link(s) to the resource and/or the link to additional information about the resource. The value domain of this metadata element is a character string, commonly expressed as uniform resource locator (URL).")
+	description => _mb("The resource locator defines the link(s) to the resource and/or the link to additional information about the resource. The value domain of this metadata element is a character string, commonly expressed as uniform resource locator (URL)."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierachy - example
+	schemaorg_property => 'url',
+	rdfa_content => null //fir fix content/value
 ),
 //B 1.5 - Identifier of dataset!
 //For RS_Identifier case
@@ -75,10 +83,10 @@
 array(	ibus => "t01_object.obj_id",
 	iso19139 => "/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:citation/gmd:CI_Citation/gmd:identifier/gmd:RS_Identifier/gmd:code/gco:CharacterString",
 	iso19139explode => "false" ,
-	inspire => "unique resource identifier namespace",
+	inspire => "unique resource identifier code part",
 	inspiremandatory => "true",
-	iso_name => "dataset id",
-	html => _mb("Unique resource identifier id"),
+	iso_name => "dataset id code",
+	html => _mb("Unique resource identifier - code"),
 	value => "",
 	category => "identification",
 	description => _mb("A value uniquely identifying the resource. The value domain of this metadata element is a mandatory character string code, generally assigned by the data owner.")
@@ -89,8 +97,8 @@
 	iso19139explode => "false" ,
 	inspire => "unique resource identifier namespace",
 	inspiremandatory => "true",
-	iso_name => "dataset namespace",
-	html => _mb("Unique resource identifier namespace"),
+	iso_name => "dataset id namespace",
+	html => _mb("Unique resource identifier - namespace"),
 	value => "",
 	category => "identification",
 	description => _mb("A character string namespace uniquely identifying the context of the identifier code (for example, the data owner)")
@@ -155,7 +163,11 @@
 	html => _mb("Keyword value"),
 	value => "",
 	category => "keyword",
-	description => _mb("If the resource is a spatial data service, at least one keyword from Part D.4 shall be provided. If a resource is a spatial data set or spatial data set series, at least one keyword shall be provided from the general environmental multilingual thesaurus (GEMET) describing the relevant spatial data theme as defined in Annex I, II or III to Directive 2007/2/EC.")
+	description => _mb("If the resource is a spatial data service, at least one keyword from Part D.4 shall be provided. If a resource is a spatial data set or spatial data set series, at least one keyword shall be provided from the general environmental multilingual thesaurus (GEMET) describing the relevant spatial data theme as defined in Annex I, II or III to Directive 2007/2/EC."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierachy - example
+	schemaorg_property => 'keywords', //TODO - use other identifier for this!!!  - dataset identifier (unique resource identifier)!!!!
+	rdfa_content => null //fir fix content/value
 ),
 //B 4 Geographic Location 
 //B 4.1 Geographic bounding box (12)
@@ -168,7 +180,12 @@
 	html => _mb("Geographic bounding box"),
 	value => "",
 	category => "location",
-	description => _mb("This is the extent of the resource in the geographic space, given as a bounding box. The bounding box shall be expressed with westbound and eastbound longitudes, and southbound and northbound latitudes in decimal degrees, with a precision of at least two decimals.")
+	description => _mb("This is the extent of the resource in the geographic space, given as a bounding box. The bounding box shall be expressed with westbound and eastbound longitudes, and southbound and northbound latitudes in decimal degrees, with a precision of at least two decimals."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierarchy - example
+	schemaorg_property => 'spatialCoverage/Place/GeoShape/box', //
+	schemaorg_processor => 'bbox2geo',
+	rdfa_content => null //fir fix content/value
 ),
 //B 5. Temporal reference (13)
 //B 5.1 Temporal extent
@@ -181,7 +198,12 @@
 	html => _mb("Temporal extent"),
 	value => "",
 	category => "actuality",
-	description => _mb("The temporal extent defines the time period covered by the content of the resource. This time period may be expressed as any of the following: - an individual date, - an interval of dates expressed through the starting date and end date of the interval, - a mix of individual dates and intervals of dates.")
+	description => _mb("The temporal extent defines the time period covered by the content of the resource. This time period may be expressed as any of the following: - an individual date, - an interval of dates expressed through the starting date and end date of the interval, - a mix of individual dates and intervals of dates."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierarchy - example
+	schemaorg_property => 'temporalCoverage', //
+	//schemaorg_processor => 'bbox2geo',
+	rdfa_content => null //fir fix content/value
 ),
 //B 5.2 Date of publication (14)
 array(	ibus => "t01_object.obj_id",
@@ -193,7 +215,12 @@
 	html => _mb("Date of publication"),
 	value => "",
 	category => "actuality",
-	description => _mb("This is the date of publication of the resource when available, or the date of entry into force. There may be more than one date of publication.")
+	description => _mb("This is the date of publication of the resource when available, or the date of entry into force. There may be more than one date of publication."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierarchy - example
+	schemaorg_property => 'datePublished', //
+	//schemaorg_processor => 'bbox2geo',
+	rdfa_content => null //fir fix content/value
 ),
 //B 5.3 Date of last revision (15)
 array(	ibus => "t01_object.obj_id",
@@ -205,7 +232,12 @@
 	html => _mb("Date of last revision"),
 	value => "",
 	category => "actuality",
-	description => _mb("This is the date of last revision of the resource, if the resource has been revised. There shall not be more than one date of last revision.")
+	description => _mb("This is the date of last revision of the resource, if the resource has been revised. There shall not be more than one date of last revision."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierarchy - example
+	schemaorg_property => 'dateModified', //
+	//schemaorg_processor => 'bbox2geo',
+	rdfa_content => null //fir fix content/value
 ),
 //B 5.4 Date of creation (16)
 array(	ibus => "t01_object.obj_id",
@@ -217,7 +249,12 @@
 	html => _mb("Date of creation"),
 	value => "",
 	category => "actuality",
-	description => _mb("This is the date of creation of the resource. There shall not be more than one date of creation.")
+	description => _mb("This is the date of creation of the resource. There shall not be more than one date of creation."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierarchy - example
+	schemaorg_property => 'dateCreated', //
+	//schemaorg_processor => 'bbox2geo',
+	rdfa_content => null //fir fix content/value
 ),
 //B 6. Quality and validity
 //B 6.1 Lineage (17)
@@ -349,7 +386,11 @@
 	html => _mb("Responsible party name"),
 	value => "",
 	category => "contact",
-	description => _mb("The name of the organisation as free text.")
+	description => _mb("The name of the organisation as free text."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierachy - example
+	schemaorg_property => 'legalName', //TODO - use other identifier for this!!!  - dataset identifier (unique resource identifier)!!!!
+	rdfa_content => null //fir fix content/value
 ),
 //B 9.1.2 Responsible party email (27)
 array(	ibus => "t01_object.obj_id",
@@ -361,7 +402,11 @@
 	html => _mb("Responsible party email"),
 	value => "",
 	category => "contact",
-	description => _mb("A contact e-mail address as a character string.")
+	description => _mb("A contact e-mail address as a character string."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierachy - example
+	schemaorg_property => 'email', //TODO - use other identifier for this!!!  - dataset identifier (unique resource identifier)!!!!
+	rdfa_content => null //fir fix content/value
 ),
 //B 9.2 Responsible party role (28)
 array(	ibus => "t01_object.obj_id",
@@ -388,7 +433,11 @@
 	html => _mb("Metadata point of contact name"),
 	value => "",
 	category => "contact",
-	description => _mb("The name of the organisation as free text.")
+	description => _mb("The name of the organisation as free text."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierachy - example
+	schemaorg_property => 'legalName', //TODO - use other identifier for this!!!  - dataset identifier (unique resource identifier)!!!!
+	rdfa_content => null //fir fix content/value
 ),
 //B 10.1.2 Metadata point of contact email (30)
 array(	ibus => "t01_object.obj_id",
@@ -400,7 +449,11 @@
 	html => _mb("Metadata point of contact email"),
 	value => "",
 	category => "contact",
-	description => _mb("A contact e-mail address as a character string.")
+	description => _mb("A contact e-mail address as a character string."),
+	//rdf-a
+	schemaorg_typeof => null, //use pathes for hierachy - example
+	schemaorg_property => 'email', //TODO - use other identifier for this!!!  - dataset identifier (unique resource identifier)!!!!
+	rdfa_content => null //fir fix content/value
 ),
 //B 10.2. Metadata date (31)
 array(	ibus => "t01_object.obj_id",
@@ -587,7 +640,7 @@
 	html => _mb("Unique resource identifier"),
 	value => "",
 	category => "identification",
-	description => _mb("A unique identifier for the ressource (maybe the shapfile)")
+	description => _mb("A value uniquely identifying the resource. The value domain of this metadata element is a mandatory character string code, generally assigned by the data owner, and a character string namespace uniquely identifying the context of the identifier code (for example, the data owner)")
 ),
 
 //Temporal reference start (38)

Modified: trunk/mapbender/http/classes/class_iso19139.php
===================================================================
--- trunk/mapbender/http/classes/class_iso19139.php	2017-12-06 16:19:28 UTC (rev 9825)
+++ trunk/mapbender/http/classes/class_iso19139.php	2017-12-07 13:58:45 UTC (rev 9826)
@@ -770,53 +770,72 @@
 			$html .= '<body>';
 			//define the javascripts to include
 			$html .= '<link type="text/css" href="../css/metadata_responsiv.css" rel="Stylesheet" />';
-			if ($layout == 'tabs') {
-				$html .= '<link type="text/css" href="../extensions/jquery-ui-1.8.1.custom/css/custom-theme/jquery-ui-1.8.5.custom.css" rel="Stylesheet" />';	
-				$html .= '<script type="text/javascript" src="../extensions/jquery-ui-1.8.1.custom/js/jquery-1.4.2.min.js"></script>';
-				$html .= '<script type="text/javascript" src="../extensions/jquery-ui-1.8.1.custom/js/jquery-ui-1.8.1.custom.min.js"></script>';
-				//initialize tabs
-				$html .= '<script type="text/javascript">';
-				$html .= '$(function() {';
-				$html .= '	$("#tabs").tabs();';
-				$html .= '});';
-				$html .= '</script>';
-				//independently define the headers of the parts
-				//window close button top
-                                $html .= '<div style="padding:10px;display:block;text-align:center;"><a href="javascript:window.close()">'._mb("Close window").'</a></div>';
-				$html .= '<div class="demo">';
-				$html .= '<div id="tabs">';
-				$html .= '<ul>';
-				$html .= 	'<li><a href="#tabs-1">'._mb("Overview").'</a></li>';
-				$html .= 	'<li><a href="#tabs-2">'._mb("Properties").'</a></li>';
-				$html .= 	'<li><a href="#tabs-3">'._mb("Contact").'</a></li>';
-				$html .= 	'<li><a href="#tabs-4">'._mb("Terms of use").'</a></li>';
-				$html .= 	'<li><a href="#tabs-5">'._mb("Quality").'</a></li>';
-				$html .= 	'<li><a href="#tabs-6">'._mb("Interfaces").'</a></li>';
-				$html .= '</ul>';
+			//define main vocabulary
+			switch ($iso19139Hash[3]['value']) {
+				case "service":
+					$mainVocabReference = 'vocab="http://schema.org/" typeof="Map"';
+					break;
+				default:
+					$mainVocabReference = 'vocab="http://schema.org/" typeof="Dataset"';
+					break;
 			}
-			if ($layout == 'accordion') {
-				$html .= '<link type="text/css" href="../extensions/jquery-ui-1.8.1.custom/css/custom-theme/jquery-ui-1.8.4.custom.css" rel="Stylesheet" />';	
-				$html .= '<script type="text/javascript" src="../extensions/jquery-ui-1.8.1.custom/js/jquery-1.4.2.min.js"></script>';
-				$html .= '<script type="text/javascript" src="../extensions/jquery-ui-1.8.1.custom/js/jquery-ui-1.8.1.custom.min.js"></script>';
-				//define the javascript functions
-				$html .= '<script type="text/javascript">';
-				$html .= '	$(function() {';
-				$html .= '		$("#accordion").accordion();';
-				//$html .= '		$("#accordion").accordion({ autoHeight: false});';
-				//$html .= '		$("#accordion").accordion({ autoHeight: false , clearStyle: true });';
-				$html .= '	});';
-				$html .= '	</script>';
-				//window close button top
-                                $html .= '<div style="padding:10px;display:block;text-align:center;"><a href="javascript:window.close()">'._mb("Close window").'</a></div>';
-				$html .= '<div class="demo">';
-				$html .= '<div id="accordion">';
+			$providerOrganizationCategory = 'property="provider" typeof="Organization"';
+			$publisherOrganizationCategory = 'property="publisher" typeof="Organization"';
+			$producerOrganizationCategory = 'property="producer" typeof="Organization"';
+
+
+			switch ($layout) {
+				case "tabs":
+					$html .= '<link type="text/css" href="../extensions/jquery-ui-1.8.1.custom/css/custom-theme/jquery-ui-1.8.5.custom.css" rel="Stylesheet" />';	
+					$html .= '<script type="text/javascript" src="../extensions/jquery-ui-1.8.1.custom/js/jquery-1.4.2.min.js"></script>';
+					$html .= '<script type="text/javascript" src="../extensions/jquery-ui-1.8.1.custom/js/jquery-ui-1.8.1.custom.min.js"></script>';
+					//initialize tabs
+					$html .= '<script type="text/javascript">';
+					$html .= '$(function() {';
+					$html .= '	$("#tabs").tabs();';
+					$html .= '});';
+					$html .= '</script>';
+					//independently define the headers of the parts
+					//window close button top
+                                	$html .= '<div style="padding:10px;display:block;text-align:center;"><a href="javascript:window.close()">'._mb("Close window").'</a></div>';
+					$html .= '<div class="demo">';
+					$html .= '<div '.$mainVocabReference.' id="tabs">';
+					$html .= '<ul>';
+					$html .= 	'<li><a href="#tabs-1">'._mb("Overview").'</a></li>';
+					$html .= 	'<li><a href="#tabs-2">'._mb("Properties").'</a></li>';
+					$html .= 	'<li><a href="#tabs-3">'._mb("Contact").'</a></li>';
+					$html .= 	'<li><a href="#tabs-4">'._mb("Terms of use").'</a></li>';
+					$html .= 	'<li><a href="#tabs-5">'._mb("Quality").'</a></li>';
+					$html .= 	'<li><a href="#tabs-6">'._mb("Interfaces").'</a></li>';
+					$html .= '</ul>';
+					break;
+				case "accordion":
+					$html .= '<link type="text/css" href="../extensions/jquery-ui-1.8.1.custom/css/custom-theme/jquery-ui-1.8.4.custom.css" rel="Stylesheet" />';	
+					$html .= '<script type="text/javascript" src="../extensions/jquery-ui-1.8.1.custom/js/jquery-1.4.2.min.js"></script>';
+					$html .= '<script type="text/javascript" src="../extensions/jquery-ui-1.8.1.custom/js/jquery-ui-1.8.1.custom.min.js"></script>';
+					//define the javascript functions
+					$html .= '<script type="text/javascript">';
+					$html .= '	$(function() {';
+					$html .= '		$("#accordion").accordion();';
+					//$html .= '		$("#accordion").accordion({ autoHeight: false});';
+					//$html .= '		$("#accordion").accordion({ autoHeight: false , clearStyle: true });';
+					$html .= '	});';
+					$html .= '	</script>';
+					//window close button top
+                               	 	$html .= '<div style="padding:10px;display:block;text-align:center;"><a href="javascript:window.close()">'._mb("Close window").'</a></div>';
+					$html .= '<div class="demo">';
+					$html .= '<div '.$mainVocabReference.' id="accordion">';
+					break;
+				case "plain":
+					//window close button top
+                                	$html .= '<div style="padding:10px;display:block;text-align:center;"><a href="javascript:window.close()">'._mb("Close window").'</a></div>';
+					$html .= '<div class="demo">';
+					$html .= '<div '.$mainVocabReference.' id="plain">';
+					break;
+				default:
+					$html .= '<div '.$mainVocabReference.'>';
+					break;
 			}
-			if ($layout == 'plain') {
-				//window close button top
-                                $html .= '<div style="padding:10px;display:block;text-align:center;"><a href="javascript:window.close()">'._mb("Close window").'</a></div>';
-				$html .= '<div class="demo">';
-				$html .= '<div id="plain">';
-			}
 			//some placeholders
 			$tableBegin =  "<table>\n";
 			$t_a = "\t<tr>\n\t\t<th>\n\t\t\t";
@@ -863,7 +882,7 @@
 			//resource identifier
 			if ($iso19139Hash[37]['value'] != "") {
 				//split with # - TODO alter this!
-				$mdIdentifier = explode('#',$iso19139Hash[37]['value']);
+				//$mdIdentifier = explode('#',$iso19139Hash[37]['value']);
 				$html .= $this->getHtmlRow($t_a, $t_b, $t_c, $iso19139Hash, 37); //MD Identifier
 			} else {
 				$hashIndices = array(5, 6); //namespace, id
@@ -871,10 +890,10 @@
 					$html .= $this->getHtmlRow($t_a, $t_b, $t_c, $iso19139Hash, $index);
 				}
 			}
-			$hashIndices = array(26, 27); //orga name, email
+			/*$hashIndices = array(26, 27); //orga name, email
 			foreach ($hashIndices as $index) {
 				$html .= $this->getHtmlRow($t_a, $t_b, $t_c, $iso19139Hash, $index);
-			}
+			}*/
 			$html .= $tableEnd;
 			$html .= '</fieldset>';
 		
@@ -891,7 +910,7 @@
 				}
 				$html .= '</fieldset>';	
 			}
-			$html .= '<fieldset><legend>'._mb("Contact").'</legend>';
+			$html .= '<fieldset '.$producerOrganizationCategory.'><legend>'._mb("Contact").'</legend>';
 			$html .= $tableBegin;
 			$hashIndices = array(26, 27); //orga name, email
 			foreach ($hashIndices as $index) {
@@ -973,21 +992,21 @@
 			switch ($layout) {
 				case "accordion":
 					$html .= '<h3><a href="#">'._mb("Contact").'</a></h3>';
-					$html .= '<div style="height:300px">';
+					$html .= '<div '.$offersOfferCategory.'style="height:300px">';
 					break;
 				case "tabs":
-					$html .= '<div id="tabs-3">';
+					$html .= '<div '.$offersOfferCategory.'id="tabs-3">';
 					break;
 				case "plain":
 					$html .= '<h3>'._mb("Contact").'</h3>';
-					$html .= '<div>';
+					$html .= '<div '.$offersOfferCategory.'>';
 					break;
 				default:
-					$html .= '<div>';
+					$html .= '<div '.$offersOfferCategory.'>';
 					break;
 			}
 			//$html .= '<p>';
-			$html .= '<fieldset><legend>'._mb("Data/Service provider").'</legend>';
+			$html .= '<fieldset '.$providerOrganizationCategory.'><legend>'._mb("Data/Service provider").'</legend>';
 			$html .= $tableBegin;
 			$hashIndices = array(26, 28, 27);
 			foreach ($hashIndices as $index) {
@@ -995,7 +1014,7 @@
 			}
 			$html .= $tableEnd;
 			$html .= '</fieldset>';
-			$html .= '<fieldset><legend>'._mb("Metadata provider").'</legend>';
+			$html .= '<fieldset '.$publisherOrganizationCategory.'><legend>'._mb("Metadata provider").'</legend>';
 			$html .= $tableBegin;
 			$hashIndices = array(29, 30);
 			foreach ($hashIndices as $index) {
@@ -1107,7 +1126,7 @@
 			//$html .= '<p>';
 			$html .= '<fieldset><legend>'._mb("Online access").'</legend>';
 			$html .= $tableBegin;
-			$html .= $t_a."<b>".$iso19139Hash[4]['html']."</b>: ".$t_b."<a href='".$iso19139Hash[4]['value']."' target='_blank'>".$iso19139Hash[4]['value']."</a>".$t_c;
+			$html .= $t_a."<b>".$iso19139Hash[4]['html']."</b>: ".$t_b."<a property=\"url\" href='".$iso19139Hash[4]['value']."' target='_blank'>".$iso19139Hash[4]['value']."</a>".$t_c;
 			if ($iso19139Hash[3]['value'] == 'service' && $iso19139Hash[10]['value'] == 'download') {
 					//show link to own atom feed download client
 					//push ATOM Service feed url to client	
@@ -1129,9 +1148,24 @@
 			$html .= $tableEnd;
 			$html .= '</fieldset>';
 			//$html .= '</p>';
-			$html .= '</div>';//element
+			$html .= '</div>';//foreach upper category element
 			//***************************************************************************
-			$html .= '</div>'; //accordion
+			switch ($layout) {
+				case "accordion":
+					$html .= '</div>';
+					$html .= '</div>';
+					break;
+				case "tabs":
+					$html .= '</div>';
+					$html .= '</div>';
+					break;
+				case "plain":
+					$html .= '</div>';
+					$html .= '</div>';
+					break;
+				default:
+					break;
+			}
 			$html .= '</div>'; //demo
 			$html .= '</body>';
 			$html .= '</html>';
@@ -1140,20 +1174,35 @@
 	}
 	
 	private function getHtmlRow($t_a, $t_b, $t_c, $iso19139Hash, $isoHashIndex){
-		$stringToReturn = $t_a."<b>".$iso19139Hash[$isoHashIndex]['html']."</b>: ".$t_b."<p ";
-		if (!isset($iso19139Hash[$isoHashIndex]['content']) && isset($iso19139Hash[$isoHashIndex]['property'])) {
-			$iso19139Hash[$isoHashIndex]['content'] = $iso19139Hash[$isoHashIndex]['value'];
+		$stringToReturn = $t_a."<b>".$iso19139Hash[$isoHashIndex]['html']."</b>: ".$t_b."<span ";
+		if (isset($iso19139Hash[$isoHashIndex]['schemaorg_processor'])) {
+			switch ($iso19139Hash[$isoHashIndex]['schemaorg_processor']) {
+				case "bbox2geo":
+					$bboxArray = explode(",", $iso19139Hash[$isoHashIndex]['value']);
+					$iso19139Hash[$isoHashIndex]['value'] = $bboxArray[2]." ".$bboxArray[1]." ".$bboxArray[3]." ".$bboxArray[2];
+					break;
+				default:
+					break;	
+			}
 		}
-		if (isset($iso19139Hash[$isoHashIndex]['property'])) {
-			$stringToReturn .= ' property="'.$iso19139Hash[$isoHashIndex]['property'].'"';
+		if (isset($iso19139Hash[$isoHashIndex]['rdfa_content'])){
+			//override value with fix content from mapping table
+			$iso19139Hash[$isoHashIndex]['value'] = $iso19139Hash[$isoHashIndex]['rdfa_content'];
 		}
-		if (isset($iso19139Hash[$isoHashIndex]['content'])) {
+		//$stringToReturn .= ' vocab="http://schema.org/"';
+		if (isset($iso19139Hash[$isoHashIndex]['schemaorg_property'])) {
+			$stringToReturn .= ' property="'.$iso19139Hash[$isoHashIndex]['schemaorg_property'].'"';
+		}
+		if (isset($iso19139Hash[$isoHashIndex]['schemaorg_typeof'])) {
+			$stringToReturn .= ' typeof="'.$iso19139Hash[$isoHashIndex]['schemaorg_typeof'].'"';
+		}
+		/*if (isset($iso19139Hash[$isoHashIndex]['content'])) {
 			$stringToReturn .= ' content="'.$iso19139Hash[$isoHashIndex]['content'].'"';
 		}
 		if (isset($iso19139Hash[$isoHashIndex]['datatype'])) {
 			$stringToReturn .= ' datatype="'.$iso19139Hash[$isoHashIndex]['datatype'].'"';
-		}
-		$stringToReturn .= ">".$iso19139Hash[$isoHashIndex]['value']."</p>".$t_c;
+		}*/
+		$stringToReturn .= ">".$iso19139Hash[$isoHashIndex]['value']."</span>".$t_c;
 		return $stringToReturn;
 	}
 	



More information about the Mapbender_commits mailing list