get("mb_lang");
$mapbenderPath = MAPBENDER_PATH."/";
$mapbenderPathArray = parse_url($mapbenderPath);
$mapbenderServerUrl = $mapbenderPathArray['scheme']."://".$mapbenderPathArray['host'];
if (isset($sessionLang) && ($sessionLang!='')) {
$e = new mb_notice("mod_showMetadata.php: language found in session: ".$sessionLang);
$language = $sessionLang;
$langCode = explode("_", $language);
$langCode = $langCode[0]; # Hopefully de or s.th. else
$languageCode = $langCode; #overwrite the GET Parameter with the SESSION information
}
$e = new mb_notice("mod_showMetadata.php: language in SESSION: ".$sessionLang);
$e = new mb_notice("mod_showMetadata.php: new language: ".$languageCode);
$admin = new administration();
$layout = 'tabs';
//Parse REQUEST Parameters
if (isset($_REQUEST["resource"]) & $_REQUEST["resource"] != "") {
//validate to csv integer list
$testMatch = $_REQUEST["resource"];
if (!($testMatch == 'wms' or $testMatch == 'layer' or $testMatch == 'wfs' or $testMatch == 'featuretype' or $testMatch == 'wfs-conf' or $testMatch == 'wmc')){
//echo 'resource: '.$testMatch.' is not valid.
';
echo 'Parameter resource is not valid (wms,layer,wfs,featuretype,wfs-conf,wmc)
';
die();
}
$resource = $testMatch;
$testMatch = NULL;
}
if (isset($_REQUEST["id"]) & $_REQUEST["id"] != "") {
//validate to csv integer list
$testMatch = $_REQUEST["id"];
$pattern = '/^[\d,]*$/';
if (!preg_match($pattern,$testMatch)){
//echo 'id: '.$testMatch.' is not valid.
';
echo 'Parameter id is not valid (integer or cs integer list).
';
die();
}
$id = $testMatch;
$testMatch = NULL;
}
if (isset($_REQUEST["outputFormat"]) & $_REQUEST["outputFormat"] != "") {
//validate to csv integer list
$testMatch = $_REQUEST["outputFormat"];
if (!($testMatch == 'iso19139' or $testMatch == 'html' or $testMatch == 'georss')){
//echo 'outputFormat: '.$testMatch.' is not valid.
';
echo 'Parameter outputFormat is not valid (iso19139,html,georss).
';
die();
}
$outputFormat = $testMatch;
$testMatch = NULL;
}
if (isset($_REQUEST["languageCode"]) & $_REQUEST["languageCode"] != "") {
//validate to csv integer list
$testMatch = $_REQUEST["languageCode"];
if (!($testMatch == 'de' or $testMatch == 'fr' or $testMatch == 'en')){
//echo 'languageCode: '.$testMatch.' is not valid.
';
echo 'Parameter languageCode is not valid (de,fr,en).
';
die();
}
$languageCode = $testMatch;
$testMatch = NULL;
}
if (isset($_REQUEST["layout"]) & $_REQUEST["layout"] != "") {
//validate to csv integer list
$testMatch = $_REQUEST["layout"];
if (!($testMatch == 'tabs' or $testMatch == 'accordion' or $testMatch == 'plain')){
//echo 'layout: '.$testMatch.' is not valid.
';
echo 'Parameter layout is not valid (tabs,accordion,plain).
';
die();
}
$layout = $testMatch;
$testMatch = NULL;
}
if (isset($_REQUEST["subscribe"]) & $_REQUEST["subscribe"] != "") {
//validate to csv integer list
$testMatch = $_REQUEST["subscribe"];
if (!($testMatch == '1' or $testMatch == '0')){
//echo 'layout: '.$testMatch.' is not valid.
';
echo 'Parameter subscribe is not valid (0,1).
';
die();
}
$subscribe = $testMatch;
$testMatch = NULL;
}
$subscribe = intval($subscribe);
$hostName = $_SERVER['HTTP_HOST'];
if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {
$mapbenderBaseUrl = "https://".$hostName;
$mapbenderProtocol = "https://";
}
else {
$mapbenderBaseUrl = "http://".$hostName;
$mapbenderProtocol = "http://";
}
//Array with translations:
switch ($languageCode) {
case "de":
$translation['overview'] = 'Übersicht';
$translation['properties'] = 'Eigenschaften';
$translation['termsOfUse'] = 'Nutzungsbedingungen';
$translation['contact'] = 'Kontakt';
$translation['quality'] = 'Qualität';
$translation['interfaces'] = 'Schnittstellen';
$translation['metadata'] = 'Metadaten';
$translation['kindOfResource'] = 'Art der Ressource';
$translation['wms'] = 'Kartendienst';
$translation['wfs'] = 'Datendienst';
$translation['layer'] = 'Kartenebene';
$translation['featuretype'] = 'Objektart';
$translation['geomtype'] = 'Geometrietyp';
$translation['contentId'] = 'Ressourcenidentifikator';
$translation['contentName'] = 'Name der Ressource';
$translation['serviceId'] = 'Informationen zum Dienst';
$translation['preview'] = 'Voransicht';
$translation['extent'] = 'Ausdehnung';
$translation['resourceAbstract'] = 'Zusammenfassung';
$translation['resourceTitle'] = 'Titel';
$translation['metadataProvider'] = 'Publizierende Stelle';
$translation['wmcProvider'] = 'Verantwortlich für die Zusammenstellung der Datenquellen';
$translation['serviceProvider'] = 'Technisch verantwortliche Stelle';
$translation['contactPerson'] = 'Ansprechpartner';
$translation['contactOrganization'] = 'Organisation';
$translation['contactAddress'] = 'Adresse';
$translation['email'] = 'Email';
$translation['city'] = 'Ort';
$translation['logo'] = 'Logo';
$translation['status'] = 'Status';
$translation['availability'] = 'Verfügbarkeit';
$translation['statusRed'] = 'Probleme beim letzten Monitoring!';
$translation['statusGreen'] = 'Letztes Monitoring OK';
$translation['statusYellow'] = 'Dienstebeschreibung hat sich geändert!';
$translation['queryableFalse'] = 'Ebene nicht abfragbar';
$translation['queryableTrue'] = 'Ebene abfragbar';
$translation['queryable'] = 'Abfragbarkeit';
$translation['restrictedScale'] = 'Sichtbarkeit';
$translation['minscale'] = 'Minimaler Maßstab';
$translation['maxscale'] = 'Maximaler Maßstab';
$translation['crs'] = 'Koordinatenreferenzsysteme (mit BBOX)';
$translation['wmccrs'] = 'Eingestelltes Koordinatenreferenzsystem';
$translation['wgs84Bbox'] = 'Eckpunkte in geogr. Koordinaten';
$translation['wgs84BboxGraphic'] = 'Ausdehnung';
$translation['mapbenderCapabilities'] = 'Geoportal Capabilities';
$translation['originalCapabilities'] = 'Original Capabilities';
$translation['describeFeaturetype'] = 'Link zum Datenschema';
$translation['kml'] = 'KML';
$translation['inspireMetadata'] = 'INSPIRE Service Metadaten';
$translation['showInspireMetadata'] = 'Metadatendatei';
$translation['securedCapabilities'] = 'Secured Capabilities URL';
$translation['inspireCapabilities'] = 'INSPIRE Capabilities URL';
$translation['capabilities'] = 'Link zum Capabilities Dokument';
$translation['showDocument'] = 'Dokument anzeigen';
$translation['showLink'] = 'Link anzeigen';
$translation['inspireMetadataValidation'] = 'Validierung gegen INSPIRE Geoportal';
$translation['showInspireMetadataValidation'] = 'Validierung starten';
$translation['statusOK'] = 'Stabil';
$translation['statusChanged'] = 'Beschreibung hat sich geändert - Aktualisierung nötig';
$translation['statusProblem'] = 'Problem bei letzter Kontrolle';
$translation['contactTelephone'] = 'Telefon';
$translation['wmc'] = 'Web Map Context Dokument';
$translation['graphicUnavailable'] = 'Graphische Übersicht nicht aktiviert';
$translation['notMonitored'] = 'Informationen über die Qualität sind nur verfügbar, wenn das Service Monitoring aktiv ist!';
$translation['wmcQualityText'] = 'Für Web Map Context Dokumente entfällt die Angabe zur Qualität!';
$translation['noTouInformation'] = 'Es sind keine Informationen über Nutzungsbedingungen verfügbar!';
$translation['loadWmc'] = 'Link um Anwendung mit WMC zu starten';
$translation['validate'] = "Validierung";
$translation['uploaded metadata'] = "Hochgeladene Metadaten";
$translation['linked metadata'] = "Verlinkte Metadaten";
$translation['metadata from capabilities'] = "Metadaten von Service Capabilities";
$translation['added from registry'] = "Metadaten über Registry angereichert";
$translation['Coupled Metadata'] = "Verknüpfte Metadaten";
$translation['addLayerToMap'] = "Karte im eigenen Viewer anzeigen";
$translation['showMap'] = "Karte anzeigen";
$translation['Download GML data from INSPIRE Download Service'] = "Download von GML-Daten über INSPIRE Downloaddienst";
$translation['Download raster data from INSPIRE Download Service'] = "Download von Rasterdaten über INSPIRE Downloaddienst";
$translation['Download linked data from INSPIRE Download Service'] = "Download von Daten über INSPIRE Downloaddienst (linked data)";
$translation['mapbenderCapabilitiesSingleLayer'] = "Zugriffspunkt Einzelebene";
$translation['mapbenderCapabilitiesWithSubLayer'] = "Zugriffspunkt mit Unterebenen";
break;
case "en":
$translation['overview'] = 'Overview';
$translation['properties'] = 'Properties';
$translation['termsOfUse'] = 'Terms Of Use';
$translation['contact'] = 'Contact';
$translation['quality'] = 'Quality';
$translation['interfaces'] = 'Interfaces';
$translation['metadata'] = 'Metadata';
$translation['kindOfResource'] = 'Kind of resource';
$translation['wms'] = 'Map Service';
$translation['wfs'] = 'Data Service';
$translation['layer'] = 'Map Layer';
$translation['featuretype'] = 'Featuretype';
$translation['geomtype'] = 'Type of geometry';
$translation['contentId'] = 'Resourceidentifier';
$translation['contentName'] = 'Name of the resource';
$translation['serviceId'] = 'Information about the service';
$translation['preview'] = 'Preview';
$translation['extent'] = 'Extent';
$translation['resourceAbstract'] = 'Abstract';
$translation['resourceTitle'] = 'Title';
$translation['metadataProvider'] = 'Responsible party for publishing';
$translation['wmcProvider'] = 'Responsible for the collection of the datasources';
$translation['serviceProvider'] = 'Responsible party for service';
$translation['contactPerson'] = 'Contact person';
$translation['contactOrganization'] = 'Organization';
$translation['contactAddress'] = 'Address';
$translation['email'] = 'Email';
$translation['city'] = 'City';
$translation['logo'] = 'Logo';
$translation['status'] = 'Status';
$translation['availability'] = 'Availability';
$translation['statusRed'] = 'Problem with last monitoring!';
$translation['statusGreen'] = 'Last Monitoring: OK';
$translation['statusYellow'] = 'Servicedescription changed!';
$translation['queryableFalse'] = 'Layer not queryable';
$translation['queryableTrue'] = 'Layer queryable';
$translation['queryable'] = 'Query';
$translation['restrictedScale'] = 'Visibility';
$translation['minscale'] = 'Minimum scale';
$translation['maxscale'] = 'Maximum scale';
$translation['crs'] = 'Coordinate Reference System';
$translation['wmccrs'] = 'Used Coordinate Reference System';
$translation['wgs84Bbox'] = 'Corner in geographic Coordinates';
$translation['wgs84BboxGraphic'] = 'Spatial Extent';
$translation['mapbenderCapabilities'] = 'Geoportal Capabilities';
$translation['originalCapabilities'] = 'Original Capabilities';
$translation['inspireCapabilities'] = 'INSPIRE Capabilities URL';
$translation['describeFeaturetype'] = 'Dataschema';
$translation['kml'] = 'KML';
$translation['inspireMetadata'] = 'INSPIRE Service Metadata';
$translation['showInspireMetadata'] = 'Metadatendatei';
$translation['securedCapabilities'] = 'Secured Capabilities URL';
$translation['capabilities'] = 'Link zum Capabilities Dokument';
$translation['showDocument'] = 'Show document';
$translation['showLink'] = 'Show link';
$translation['inspireMetadataValidation'] = 'Validation against INSPIRE Geoportal';
$translation['showInspireMetadataValidation'] = 'Start Validation';
$translation['statusOK'] = 'stable';
$translation['statusChanged'] = 'Description changed - update necessary';
$translation['statusProblem'] = 'Problem at last control';
$translation['contactTelephone'] = 'Telephon';
$translation['wmc'] = 'Web Map Context document';
$translation['graphicUnavailable'] = 'Graphical Overview not active';
$translation['notMonitored'] = 'Information about Quality is only available if the service monitoring is activated!';
$translation['wmcQualityText'] = 'In case of Web Map Context Documents the Quality part is not applicable!';
$translation['noTouInformation'] = 'No informations about terms of use are available!';
$translation['loadWmc'] = 'Link to start application with WMC';
$translation['validate'] = "validate";
$translation['uploaded metadata'] = "uploaded metadata";
$translation['linked metadata'] = "linked metadata";
$translation['metadata from capabilities'] = "metadata from capabilities";
$translation['added from registry'] = "added from registry";
$translation['Coupled Metadata'] = "Coupled Metadata";
$translation['addLayerToMap'] = "Show map in own viewer";
$translation['showMap'] = "Show map";
$translation['Download GML data from INSPIRE Download Service'] = "Download GML data from INSPIRE Download Service";
$translation['Download raster data from INSPIRE Download Service'] = "Download raster data from INSPIRE Download Service";
$translation['Download linked data from INSPIRE Download Service'] = "Download linked data from INSPIRE Download Service";
$translation['mapbenderCapabilitiesSingleLayer'] = "Access point for single layer";
$translation['mapbenderCapabilitiesWithSubLayer'] = "Access point (sublayer included)";
break;
case "fr":
$translation['overview'] = 'Vue générale';
$translation['properties'] = 'Propriétés';
$translation['termsOfUse'] = 'Conditions d\'utilisation';
$translation['contact'] = 'Contact';
$translation['quality'] = 'Qualité';
$translation['interfaces'] = 'Interfaces';
$translation['metadata'] = 'Metadonnées';
$translation['kindOfResource'] = 'Genre de ressource';
$translation['wms'] = 'Service des cartes';
$translation['wfs'] = 'Service des données';
$translation['layer'] = 'Couche de la carte';
$translation['featuretype'] = 'Données attributaires';
$translation['geomtype'] = 'Type de geometrie';
$translation['contentId'] = 'Identifiant de la ressource';
$translation['contentName'] = 'Nom de la ressource';
$translation['serviceId'] = 'Information a propos du service';
$translation['preview'] = 'Extrait';
$translation['extent'] = 'Zone géographique';
$translation['resourceAbstract'] = 'Résumé';
$translation['resourceTitle'] = 'Titre';
$translation['metadataProvider'] = 'Responsable du contenu';
$translation['wmcProvider'] = 'Responsable du contenu';
$translation['serviceProvider'] = 'Responsable du service';
$translation['contactPerson'] = 'Personne de contact';
$translation['contactOrganization'] = 'Organisation';
$translation['contactAddress'] = 'Adresse';
$translation['email'] = 'Email';
$translation['city'] = 'Ville';
$translation['logo'] = 'Logo';
$translation['status'] = 'Statut';
$translation['availability'] = 'Accessibilité';
$translation['statusRed'] = 'Problème avec le dernier suivi!';
$translation['statusGreen'] = 'Dernier suivi: OK';
$translation['statusYellow'] = 'Description du service changée!';
$translation['queryableFalse'] = 'Couche non interrogeable';
$translation['queryableTrue'] = 'Couche non interrogeable';
$translation['queryable'] = 'Interroger';
$translation['restrictedScale'] = 'Visibilité';
$translation['minscale'] = 'Echelle minimum';
$translation['maxscale'] = 'Echelle maximum';
$translation['crs'] = 'Système de référence spatial';
$translation['wmccrs'] = 'Système de référence utilisé';
$translation['wgs84Bbox'] = 'Coin en coordonnées géographiques';
$translation['wgs84BboxGraphic'] = 'Etendue spatiale';
$translation['mapbenderCapabilities'] = 'Capabilities du Geoportail';
$translation['originalCapabilities'] = 'Capabilities originales';
$translation['inspireCapabilities'] = 'Capabilities INSPIRE';
$translation['describeFeaturetype'] = 'Schéma des données';
$translation['kml'] = 'KML';
$translation['inspireMetadata'] = 'Métadonnées INSPIRE ';
$translation['showInspireMetadata'] = 'Fichier des métadonnées';
$translation['securedCapabilities'] = 'Capabilities sécurisées';
$translation['capabilities'] = 'Liens sur les capabilities';
$translation['showDocument'] = 'Présenter le document';
$translation['showLink'] = 'Présenter le lien';
$translation['inspireMetadataValidation'] = 'Validation sur le géoportail INSPIRE';
$translation['showInspireMetadataValidation'] = 'Démarrer la validation';
$translation['statusOK'] = 'stable';
$translation['statusChanged'] = 'Description changée - mise à jour nécessaire';
$translation['statusProblem'] = 'Problème au dernier contrôle';
$translation['contactTelephone'] = 'Téléphone';
$translation['wmc'] = 'Web Map Context document';
$translation['graphicUnavailable'] = 'Vue générale non active';
$translation['notMonitored'] = 'L\'nformation relative à la qualité est consultable si et seuleument si le service de suivi est activé!';
$translation['wmcQualityText'] = 'Dans le cas d\'un document Web Map Context il n\'ya pas d\'information sur la qualité!';
$translation['noTouInformation'] = 'Aucune information sur les conditions d\'utilisation n\'est disponible!';
$translation['loadWmc'] = 'Lien pour débuter l\'application avec un WMC';
$translation['validate'] = "valider";
$translation['uploaded metadata'] = "métadonnées téléchargées";
$translation['linked metadata'] = "métadonnées liées";
$translation['metadata from capabilities'] = "metadonnées provenant des capabilities";
$translation['added from registry'] = "ajouté à partir de l'enregistrement";
$translation['Coupled Metadata'] = "Métadonnées couplées";
$translation['addLayerToMap'] = "Ouvrir la carte dans sa propre fenêtre";
$translation['showMap'] = "Ouvrir la carte";
$translation['Download GML data from INSPIRE Download Service'] = "Download von GML-Daten über INSPIRE Downloaddienst";
$translation['Download raster data from INSPIRE Download Service'] = "Download von Rasterdaten über INSPIRE Downloaddienst";
$translation['Download linked data from INSPIRE Download Service'] = "Download von Daten über INSPIRE Downloaddienst (linked data)";
$translation['mapbenderCapabilitiesSingleLayer'] = "Zugriffspunkt Einzelebene";
$translation['mapbenderCapabilitiesWithSubLayer'] = "Zugriffspunkt mit Unterebenen";
break;
default: #to english
$translation['overview'] = 'Overview';
$translation['properties'] = 'Properties';
$translation['termsOfUse'] = 'Terms Of Use';
$translation['contact'] = 'Contact';
$translation['quality'] = 'Quality';
$translation['interfaces'] = 'Interfaces';
$translation['metadata'] = 'Metadata';
$translation['kindOfResource'] = 'Kind of resource';
$translation['wms'] = 'Map Service';
$translation['wfs'] = 'Data Service';
$translation['layer'] = 'Map Layer';
$translation['featuretype'] = 'Featuretype';
$translation['geomtype'] = 'Type of geometry';
$translation['contentId'] = 'Resourceidentifier';
$translation['contentName'] = 'Name of the resource';
$translation['serviceId'] = 'Information about the service';
$translation['preview'] = 'Preview';
$translation['extent'] = 'Extent';
$translation['resourceAbstract'] = 'Abstract';
$translation['resourceTitle'] = 'Title';
$translation['metadataProvider'] = 'Responsible party for publishing';
$translation['wmcProvider'] = 'Responsible for the collection of the datasources';
$translation['serviceProvider'] = 'Responsible party for service';
$translation['contactPerson'] = 'Contact person';
$translation['contactOrganization'] = 'Organization';
$translation['contactAddress'] = 'Address';
$translation['email'] = 'Email';
$translation['city'] = 'City';
$translation['logo'] = 'Logo';
$translation['status'] = 'Status';
$translation['availability'] = 'Availability';
$translation['statusRed'] = 'Problem with last monitoring!';
$translation['statusGreen'] = 'Last Monitoring: OK';
$translation['statusYellow'] = 'Servicedescription changed!';
$translation['queryableFalse'] = 'Layer not queryable';
$translation['queryableTrue'] = 'Layer queryable';
$translation['queryable'] = 'Query';
$translation['restrictedScale'] = 'Visibility';
$translation['minscale'] = 'Minimum scale';
$translation['maxscale'] = 'Maximum scale';
$translation['crs'] = 'Coordinate Reference System';
$translation['wmccrs'] = 'Used Coordinate Reference System';
$translation['wgs84Bbox'] = 'Corner in geographic Coordinates';
$translation['wgs84BboxGraphic'] = 'Spatial Extent';
$translation['mapbenderCapabilities'] = 'Geoportal Capabilities';
$translation['originalCapabilities'] = 'Original Capabilities';
$translation['describeFeaturetype'] = 'Dataschema';
$translation['kml'] = 'KML';
$translation['inspireMetadata'] = 'INSPIRE Service Metadata';
$translation['showInspireMetadata'] = 'Metadatendatei';
$translation['securedCapabilities'] = 'Secured Capabilities URL';
$translation['inspireCapabilities'] = 'INSPIRE Capabilities URL';
$translation['capabilities'] = 'Link zum Capabilities Dokument';
$translation['inspireMetadataValidation'] = 'Validation against INSPIRE Geoportal';
$translation['showInspireMetadataValidation'] = 'Start Validation';
$translation['statusOK'] = 'stable';
$translation['statusChanged'] = 'Description changed - update necessary';
$translation['statusProblem'] = 'Problem at last control';
$translation['contactTelephone'] = 'Telephon';
$translation['wmc'] = 'Web Map Context document';
$translation['graphicUnavailable'] = 'Graphical Overview not active';
$translation['notMonitored'] = 'Information about Quality is only available if the service monitoring is activated!';
$translation['wmcQualityText'] = 'In case of Web Map Context Documents the Quality part is not applicable!';
$translation['noTouInformation'] = 'No informations about terms of use are available!';
$translation['loadWmc'] = 'Link to start application with WMC';
$translation['validate'] = "validate";
$translation['uploaded metadata'] = "uploaded metadata";
$translation['linked metadata'] = "linked metadata";
$translation['metadata from capabilities'] = "metadata from capabilities";
$translation['added from registry'] = "added from registry";
$translation['Coupled Metadata'] = "Coupled Metadata";
$translation['addLayerToMap'] = "Show map in own viewer";
$translation['showMap'] = "Show map";
$translation['Download GML data from INSPIRE Download Service'] = "Download GML data from INSPIRE Download Service";
$translation['Download raster data from INSPIRE Download Service'] = "Download raster data from INSPIRE Download Service";
$translation['Download linked data from INSPIRE Download Service'] = "Download linked data from INSPIRE Download Service";
$translation['mapbenderCapabilitiesSingleLayer'] = "Access point for single layer";
$translation['mapbenderCapabilitiesWithSubLayer'] = "Access point (sublayer included)";
}
//Array with infos about the different elements which are shown in the tabs
//Check if an id and a resource was given
if (!isset($_REQUEST["id"]) or !isset($_REQUEST["resource"])) {
echo 'Not enough input parameters. resource and id must be given!
';
die();
}
//Read out information from mapbender database
switch ($resource) {
case "wms":
//get root layer information
$sql = "SELECT layer_id FROM layer WHERE fkey_wms_id = $1 AND layer_pos = 0";
$v = array($id);
$t = array("i");
$res = db_prep_query($sql, $v, $t);
$row = db_fetch_array($res);
$layerId = $row["layer_id"];
$sql = "SELECT ";
$sql .= "layer.layer_id as contentid, layer.layer_title as contenttitle, layer.layer_abstract as contentabstract, layer.layer_pos as contentpos, layer.layer_parent as contentparent, ";
$sql .= "layer.layer_minscale as contentminscale, layer.layer_maxscale as contentmaxscale, layer.layer_queryable,";
$sql .= "wms.wms_title as servicetitle, wms.wms_abstract as serviceabstract, wms.wms_id as serviceid, wms.fees, wms.accessconstraints, wms.contactperson, wms.wms_getcapabilities,";
$sql .= "wms.contactposition, wms.contactorganization, wms.address, wms.city, wms_timestamp as timestamp, wms_owner as owner, wms.wms_owsproxy as owsproxy, wms.fkey_mb_group_id,";
$sql .= "wms.stateorprovince, wms.postcode, wms.contactvoicetelephone, wms.contactfacsimiletelephone, ";
$sql .= "wms.contactelectronicmailaddress, wms.country ";
$sql .= "FROM layer, wms WHERE layer.layer_id = $1 AND layer.fkey_wms_id = wms.wms_id LIMIT 1";
$v = array($layerId);
$t = array('i');
$serviceType = 'wms';
$resourceSymbol = " - ".$translation['wms'];
break;
case "layer":
$layerId = $id;
$sql = "SELECT ";
$sql .= "layer.layer_id as contentid, layer.layer_title as contenttitle, layer.layer_abstract as contentabstract, layer.layer_pos as contentpos, layer.layer_parent as contentparent,layer.layer_name as contentname, ";
$sql .= "layer.layer_minscale as contentminscale, layer.layer_maxscale as contentmaxscale, layer.layer_queryable,";
$sql .= "wms.wms_title as servicetitle, wms.wms_abstract as serviceabstract, wms.wms_id as serviceid, wms.fees, wms.accessconstraints, wms.contactperson, wms.wms_getcapabilities,";
$sql .= "wms.contactposition, wms.contactorganization, wms.address, wms.city, wms_timestamp as timestamp, wms_owner as owner, wms.wms_owsproxy as owsproxy, wms.fkey_mb_group_id,";
$sql .= "wms.stateorprovince, wms.postcode, wms.contactvoicetelephone, wms.contactfacsimiletelephone, ";
$sql .= "wms.contactelectronicmailaddress, wms.country ";
$sql .= "FROM layer, wms WHERE layer.layer_id = $1 AND layer.fkey_wms_id = wms.wms_id LIMIT 1";
$v = array($layerId);
$t = array('i');
$serviceType = 'wms';
$resourceSymbol = " - ".$translation['layer'];
break;
case "wfs":
$wfsId = $id;
$sql = "SELECT ";
$sql .= "wfs.wfs_title as servicetitle, wfs.wfs_version as serviceversion, wfs.wfs_abstract as serviceabstract, wfs.wfs_id as serviceid, wfs.wfs_id as contentid,wfs.fees, wfs.accessconstraints, wfs.individualname as contactperson, wfs.wfs_getcapabilities,";
$sql .= "wfs.positionname as contactposition, wfs.providername as contactorganization, wfs.deliverypoint as address, wfs.city, wfs_timestamp as timestamp, wfs_owner as owner, wfs.wfs_owsproxy as owsproxy, wfs.fkey_mb_group_id,";
$sql .= "wfs.administrativearea as stateorprovince, wfs.postalcode as postcode, wfs.voice as contactvoicetelephone, wfs.facsimile as contactfacsimiletelephone, ";
$sql .= "wfs.electronicmailaddress as contactelectronicmailaddress, wfs.country ";
$sql .= "FROM wfs WHERE wfs_id = $1";
$v = array($wfsId);
$t = array('i');
$resourceSymbol = " - ".$translation['wfs'];
$serviceType = 'wfs';
break;
case "featuretype":
$featuretypeId = $id;
$sql = "SELECT ";
$sql .= "wfs_featuretype.featuretype_id as contentid, wfs_featuretype.featuretype_title as contenttitle, wfs_featuretype.featuretype_abstract as contentabstract, wfs_featuretype.featuretype_name as contentname,wfs_featuretype.featuretype_srs, ";
$sql .= "wfs.wfs_title as servicetitle, wfs.wfs_version as serviceversion, wfs.wfs_abstract as serviceabstract, wfs.wfs_id as serviceid, wfs.fees, wfs.accessconstraints, wfs.individualname as contactperson, wfs.wfs_getcapabilities, wfs.wfs_describefeaturetype, ";
$sql .= "wfs.positionname as contactposition, wfs.providername as contactorganization, wfs.deliverypoint as address, wfs.city, wfs_timestamp as timestamp, wfs_owner as owner, wfs.wfs_owsproxy as owsproxy, wfs.fkey_mb_group_id,";
$sql .= "wfs.administrativearea as stateorprovince, wfs.postalcode as postcode, wfs.voice as contactvoicetelephone, wfs.facsimile as contactfacsimiletelephone, ";
$sql .= "wfs.electronicmailaddress as contactelectronicmailaddress, wfs.country, wfs_featuretype.featuretype_latlon_bbox as featuretype_latlon_bbox ";
$sql .= "FROM wfs_featuretype, wfs WHERE wfs_featuretype.featuretype_id = $1 AND wfs_featuretype.fkey_wfs_id = wfs.wfs_id LIMIT 1";
$v = array($featuretypeId);
$t = array('i');
$serviceType = 'wfs';
$resourceSymbol = " - ".$translation['featuretype'];
$serviceType = 'wfs';
break;
case "wfs-conf":
//echo 'Not yet implemented!';
//$serviceType = 'wfs';
//die();
$wfsConfId = $id;
$sql1 = "SELECT fkey_featuretype_id from wfs_conf WHERE wfs_conf_id = $1";
$v1 = array($wfsConfId);
$t1 = array('i');
$res1 = db_prep_query($sql1,$v1,$t1);
$wfsConfResult = db_fetch_array($res1);
$featuretypeId = $wfsConfResult['fkey_featuretype_id'];
$sql = "SELECT ";
$sql .= "wfs_featuretype.featuretype_id as contentid, wfs_featuretype.featuretype_title as contenttitle, wfs_featuretype.featuretype_abstract as contentabstract, wfs_featuretype.featuretype_name as contentname,wfs_featuretype.featuretype_srs, ";
$sql .= "wfs.wfs_title as servicetitle, wfs.wfs_version as serviceversion, wfs.wfs_abstract as serviceabstract, wfs.wfs_id as serviceid, wfs.fees, wfs.accessconstraints, wfs.individualname as contactperson, wfs.wfs_getcapabilities, wfs.wfs_describefeaturetype, ";
$sql .= "wfs.positionname as contactposition, wfs.providername as contactorganization, wfs.deliverypoint as address, wfs.city, wfs_timestamp as timestamp, wfs_owner as owner, wfs.wfs_owsproxy as owsproxy, wfs.fkey_mb_group_id,";
$sql .= "wfs.administrativearea as stateorprovince, wfs.postalcode as postcode, wfs.voice as contactvoicetelephone, wfs.facsimile as contactfacsimiletelephone, ";
$sql .= "wfs.electronicmailaddress as contactelectronicmailaddress, wfs.country ";
$sql .= "FROM wfs_featuretype, wfs WHERE wfs_featuretype.featuretype_id = $1 AND wfs_featuretype.fkey_wfs_id = wfs.wfs_id LIMIT 1";
$v = array($featuretypeId);
$t = array('i');
$serviceType = 'wfs';
$resourceSymbol = " - ".$translation['featuretype'];
$serviceType = 'wfs';
break;
case "wmc":
$wmcId = $id;
$sql = "SELECT ";
$sql .= "mb_user_wmc.wmc_serial_id as contentid, mb_user_wmc.wmc_title as contenttitle, mb_user_wmc.abstract as contentabstract, mb_user_wmc.minx as contentminx,mb_user_wmc.miny as contentminy,mb_user_wmc.maxx as contentmaxx,mb_user_wmc.maxy as contentmaxy,mb_user_wmc.srs as contentcrs, ";
$sql .= "mb_user.mb_user_position_name as contactposition, mb_user.mb_user_organisation_name as contactorganization, (mb_user.mb_user_street || ' ' || mb_user.mb_user_housenumber) as address, mb_user.mb_user_city as city, mb_user_wmc.wmc_timestamp as timestamp, mb_user_wmc.fkey_user_id as owner,";
$sql .= "mb_user.mb_user_country as stateorprovince, mb_user.mb_user_postal_code as postcode, mb_user.mb_user_phone as contactvoicetelephone, mb_user.mb_user_phone1 as contactfacsimiletelephone, ";
$sql .= "mb_user.mb_user_email as contactelectronicmailaddress ";
$sql .= "FROM mb_user_wmc, mb_user WHERE mb_user_wmc.wmc_serial_id = $1 AND mb_user_wmc.fkey_user_id = mb_user.mb_user_id LIMIT 1";
$v = array($wmcId);
$t = array('i');
$serviceType = 'wmc';
$resourceSymbol = " - ".$translation['wmc'];
break;
}
//read resource information from database
//$e = new mb_exception("mod_showMetadata: sql: ".$sql);
$res = db_prep_query($sql,$v,$t);
$resourceMetadata = db_fetch_array($res);
if (!isset($resourceMetadata['contentid']) or ($resourceMetadata['contentid'] == '')) {
echo 'No result for the requested id found in the registry!';
die();
}
if($resourceMetadata['owsproxy']!='') {
$resourceSecured = true;
}
else {
$resourceSecured = false;
}
$serviceId = $resourceMetadata['serviceid'];
/*switch ($serviceType) {
case "wms":
#$resourceSymbol = "";
die();
break;
case "wfs":
#$resourceSymbol = "";
die();
break;
case "wmc":
$resourceSymbol = "";
die();
break;
case "kml":
die();
break;
case "georss":
die();
break;
}
*/
if ($resource == 'layer') {
$serviceType = "wms";
}
if ($resource == 'featuretype') {
$serviceType = "wfs";
}
if ($resource == 'wmc') {
$metadataContactGroup = $admin->getOrgaInfoFromRegistry('wmc', $resourceMetadata['contentid'], $resourceMetadata['owner']);
} else {
$metadataContactGroup = $admin->getOrgaInfoFromRegistry($serviceType, $resourceMetadata['serviceid'], $resourceMetadata['owner']);
}
//Get Geometry Type if featuretype info was requested
if ($resource == 'featuretype') {
$getTypeSql = "SELECT element_id, element_type from wfs_element WHERE fkey_featuretype_id = $1 AND element_type LIKE '%PropertyType';";
$vgetType = array($resourceMetadata['contentid']);
$tgetType = array('i');
$resGetType = db_prep_query($getTypeSql,$vgetType,$tgetType);
$featuretypeElements = db_fetch_array($resGetType);
$resourceMetadata['featuretype_geomType'] = $featuretypeElements['element_type'];
}
//$e = new mb_exception("mod_showMetadata: mb_group_name: ".$metadataContactGroup['mb_group_name']);
//db select for layer previews
if ($resource == 'wms' or $resource == 'layer') {
$resourceMetadata['preview'] = "";
$resourceMetadata['legend'] .= "";
}
if ($resource == 'wmc') {
$resourceMetadata['preview'] = "";
}
//db select for service quality
if ($resource == 'wms' or $resource == 'layer') {
$sql = "SELECT availability, last_status FROM mb_wms_availability WHERE fkey_wms_id = $1";
$v = array($serviceId);
$t = array('i');
$res = db_prep_query($sql, $v, $t);
$serviceQuality = db_fetch_array($res);
}
//db select for service quality
if ($resource == 'wfs' or $resource == 'featuretype' or $resource == 'wfs-conf') {
$sql = "SELECT availability, last_status FROM mb_wfs_availability WHERE fkey_wfs_id = $1";
$v = array($serviceId);
$t = array('i');
$res = db_prep_query($sql, $v, $t);
$serviceQuality = db_fetch_array($res);
}
//db select for content properties
if ($resource == 'wms' or $resource == 'layer') {
//get bbox and crs codes for single layer - maybe some entries ;-)
$sql = "SELECT * FROM layer_epsg WHERE fkey_layer_id = $1";
$contentBboxes = array();
$v = array($layerId);
$t = array('i');
$res = db_prep_query($sql, $v, $t);
$j = 0;
while ($row = db_fetch_array($res)){
$contentBboxes[$j] = array();
$contentBboxes[$j]['epsg'] = $row['epsg'];
$contentBboxes[$j]['minx'] = $row['minx'];
$contentBboxes[$j]['miny'] = $row['miny'];
$contentBboxes[$j]['maxx'] = $row['maxx'];
$contentBboxes[$j]['maxy'] = $row['maxy'];
$j++;
}
$j = 0;
}
if ($resource == 'wmc') {
$contentBboxes[$j]['epsg'] = $resourceMetadata['srs'];
$contentBboxes[$j]['minx'] = $resourceMetadata['minx'];
$contentBboxes[$j]['miny'] = $resourceMetadata['miny'];
$contentBboxes[$j]['maxx'] = $resourceMetadata['maxx'];
$contentBboxes[$j]['maxy'] = $resourceMetadata['maxy'];
}
//db select for content properties
if ($resource == 'wfs' || $resource == 'featuretype') {
//get bbox and crs codes for single layer - maybe some entries ;-)
$sql = "SELECT * FROM wfs_featuretype_epsg WHERE fkey_featuretype_id = $1";
$contentBboxes = array();
$v = array($featuretypeId);
$t = array('i');
$res = db_prep_query($sql, $v, $t);
$j = 0;
while ($row = db_fetch_array($res)){
$contentBboxes[$j] = array();
$contentBboxes[$j]['epsg'] = $row['epsg'];
$contentBboxes[$j]['minx'] = $row['minx'];
$contentBboxes[$j]['miny'] = $row['miny'];
$contentBboxes[$j]['maxx'] = $row['maxx'];
$contentBboxes[$j]['maxy'] = $row['maxy'];
$j++;
}
$j = 0;
}
//generate HTML frame
//Give out page
//Array with structure of metadata
//e.g. tabs and their content
$html = '';
$metadataStr .= '
\n\t\t\t"; $t_a1 = "\t | ||
---|---|---|
\n\t\t\t"; $t_a2 = "\t | ||
\n\t\t\t"; $t_b = "\n\t\t | \n\t\t\n\t\t\t"; $t_b1 = "\n\t\t\n\t\t | \n\t\t\t"; $t_c = "\n\t\t | \n\t
'; if ($resource == 'wmc') { $html .= '
'; $html .= $tableBegin; if ($resource != 'wmc') { switch ($serviceQuality['last_status']) { case '1': $html .= $t_a.$translation['status'].$t_b."".$t_c; break; case '0': $html .= $t_a.$translation['status'].$t_b."".$t_c; break; case '-1': $html .= $t_a.$translation['status'].$t_b."".$t_c; break; } if (isset($serviceQuality['availability'])) { $html .= $t_a.$translation['availability'].$t_b.$serviceQuality['availability']." %".$t_c; } else { $html .= $t_a.$translation['availability'].$t_b.$translation['notMonitored'].$t_c; } } else { //resource is wmc $html .= $translation['wmcQualityText']; } $html .= $tableEnd; //$html .= '
'; $html .= ''; /*$translation['mapbenderCapabilities'] = 'Geoportal Capabilities'; $translation['originalCapabilities'] = 'Original Capabilities'; $translation['kml'] = 'KML'; $translation['inspireMetadata'] = 'INSPIRE Service Metadaten'; $translation['securedCapabilities'] = 'Secured Capabilities URL';*/ $html .= $tableBegin; if ($resource == 'wmc') { $html .= $t_a.$translation['wmc'].$t_b."XML".$t_c; //show qr for link //create uuid for qr graphic $uuid = new Uuid; $filename = "qr_wmc_".$uuid.".png"; //generate qr on the fly in tmp folder //link to invoke wmc per get api if wrapper path isset if (defined("MAPBENDER_PATH") && MAPBENDER_PATH != "") { $invokeLink = MAPBENDER_PATH."/extensions/mobilemap/map.php?wmcid=".$resourceMetadata['contentid']; //$invokeLink = "http://www.geoportal.rlp.de/mapbender/extensions/mobilemap/map.php"; QRcode::png($invokeLink,TMPDIR."/".$filename); $html .= $t_a.$translation['loadWmc'].$t_b."".$t_c; } } if ($resource == 'wms' or $resource == 'layer'){ $html .= $t_a; $html .= $translation['mapbenderCapabilities']; $html .= $t_b; $html .= "