[Mapbender-commits] r8706 - in trunk/mapbender: conf http/classes http/geoportal http/php http/plugins
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Fri Oct 4 00:16:37 PDT 2013
Author: armin11
Date: 2013-10-04 00:16:36 -0700 (Fri, 04 Oct 2013)
New Revision: 8706
Modified:
trunk/mapbender/conf/mimetype.conf
trunk/mapbender/http/classes/class_ckanApi.php
trunk/mapbender/http/classes/class_iso19139.php
trunk/mapbender/http/classes/class_map.php
trunk/mapbender/http/geoportal/authentication.php
trunk/mapbender/http/geoportal/mod_readCSWResults.php
trunk/mapbender/http/geoportal/updateUserDataIntoDb.php
trunk/mapbender/http/php/mod_callMetadata.php
trunk/mapbender/http/php/mod_exportMapbenderLayer2CkanObjects.php
trunk/mapbender/http/php/mod_getDownloadOptions.php
trunk/mapbender/http/php/mod_inspireAtomFeedISOMetadata.php
trunk/mapbender/http/php/mod_inspireDownloadFeed.php
trunk/mapbender/http/php/mod_syncCkan.php
trunk/mapbender/http/plugins/mb_metadata_addon.php
trunk/mapbender/http/plugins/mb_metadata_server.php
trunk/mapbender/http/plugins/mb_metadata_showMetadataAddon.js
Log:
Some more options for generating INSPIRE conformant downloadservices.
Modified: trunk/mapbender/conf/mimetype.conf
===================================================================
--- trunk/mapbender/conf/mimetype.conf 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/conf/mimetype.conf 2013-10-04 07:16:36 UTC (rev 8706)
@@ -21,6 +21,7 @@
"MapInfo Tab file",
"CSV",
"GML",
+ "Zipped GML",
"GeoTIFF"
);
?>
Modified: trunk/mapbender/http/classes/class_ckanApi.php
===================================================================
--- trunk/mapbender/http/classes/class_ckanApi.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/classes/class_ckanApi.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -495,6 +495,15 @@
$data);
}
+ public function get_group_by_name($name)
+ {
+ $e = new mb_exception("testckan: get group: ".$this->resources['group_register'] . "/" . urlencode($name));
+ return $this->make_request('GET',
+ $this->resources['group_register'] . "/" . urlencode($name));
+ }
+
+
+
// package entity resouce
/**
@@ -505,7 +514,7 @@
*/
public function get_package_entity($package)
{
- $e = new mb_exception($this->resources['package_entity'] . '/' . urlencode($package));
+ //$e = new mb_exception($this->resources['package_entity'] . '/' . urlencode($package));
return $this->make_request('GET',
$this->resources['package_entity'] . '/' . urlencode($package));
}
@@ -533,7 +542,7 @@
public function delete_package_entity($data)
{
- $e = new mb_exception("post: ".$data);
+ //$e = new mb_exception("post: ".$data);
return $this->make_request('POST',
'../action/package_delete',
$data);
@@ -841,14 +850,14 @@
// Set cURL method.
curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, strtoupper($method));
// Set cURL URI.
- $e = new mb_exception($this->base_url . $url);
+ $e = new mb_exception("testckan: ckan url to request: ".$this->base_url . $url);
$curlUrl = $this->base_url . $url;
curl_setopt($this->ch, CURLOPT_URL, $curlUrl);
// If POST or PUT, add Authorization: header and request body
if ($method === 'POST' || $method === 'PUT')
{
// We needs a key and some data, yo!
- $e = new mb_exception("method: ".$method." new url: ".$this->base_url . $url." data: ".$data);
+ //$e = new mb_exception("method: ".$method." new url: ".$this->base_url . $url." data: ".$data);
if ( ! ($this->api_key && $data))
{
// throw exception
@@ -887,7 +896,7 @@
$this->http_status_codes[$info['http_code']]);
} else {
$e = new mb_exception("Returned 200 - OK");
- $e = new mb_exception($response);
+ //$e = new mb_exception($response);
}
// Determine how to parse
if (isset($info['content_type']) && $info['content_type'])
Modified: trunk/mapbender/http/classes/class_iso19139.php
===================================================================
--- trunk/mapbender/http/classes/class_iso19139.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/classes/class_iso19139.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -161,7 +161,7 @@
//$e = new mb_exception("customCatHash: ".$row['custom_category_key'] ." : ". $row['custom_category_id'] );
}
//add namespaces to xml if not given - how? - it is to late now - maybe they were given in the csw tag!
- $e = new mb_exception("Parsing of xml metadata file was successfull");
+ $e = new mb_notice("Parsing of xml metadata file was successfull");
$this->fileIdentifier = $iso19139Xml->xpath('/gmd:MD_Metadata/gmd:fileIdentifier/gco:CharacterString');
$this->fileIdentifier = $this->fileIdentifier[0];
$this->createDate = $iso19139Xml->xpath('/gmd:MD_Metadata/gmd:dateStamp/gco:Date');
Modified: trunk/mapbender/http/classes/class_map.php
===================================================================
--- trunk/mapbender/http/classes/class_map.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/classes/class_map.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -707,7 +707,7 @@
//define key name cache
$mapByAppKey = 'mapApp_'.$appId.'_'.$frameName;
if ($cache->isActive && $activatedGuiHtmlCache && $cache->cachedVariableExists($mapByAppKey)) {
- $e = new mb_exception("class_map.php: read ".$mapByAppKey." from ".$cache->cacheType." cache!");
+ $e = new mb_notice("class_map.php: read ".$mapByAppKey." from ".$cache->cacheType." cache!");
return $cache->cachedVariableFetch($mapByAppKey);
} else {
// find the mapframe in the application elements...
Modified: trunk/mapbender/http/geoportal/authentication.php
===================================================================
--- trunk/mapbender/http/geoportal/authentication.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/geoportal/authentication.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -1,78 +1,79 @@
-<?php
-include_once(dirname(__FILE__)."/../../core/globalSettings.php");
-
-$pw = $_REQUEST['password'];
-$name = $_REQUEST['name'];
-
-$e = new mb_exception('SESSION[mb_user_name]: '.Mapbender::session()->get("mb_user_name"));
-
-# Q4U - Michael Spitz - 16.08.2006 - Falls Cookies deaktiviert sind, muss die Session-ID an die Folgeseiten weitergereicht werden
-$URLAdd="";
-if($_COOKIE[session_name()]=="") {
- $URLAdd="?".session_name()."=".$_REQUEST[session_name()];
-}
-
-$isAuthenticated = authenticate($name,$pw);
-
-if($isAuthenticated != false) {
- setSession();
- Mapbender::session()->set("mb_user_password",$pw);
- Mapbender::session()->set("mb_user_id",$isAuthenticated["mb_user_id"]);
- Mapbender::session()->set("mb_user_name",$isAuthenticated["mb_user_name"]);
- Mapbender::session()->set("mb_user_ip",$_SERVER['REMOTE_ADDR']);
- Mapbender::session()->set("mb_user_email",$isAuthenticated["mb_user_email"]);
- Mapbender::session()->set("mb_user_department",$isAuthenticated["mb_user_department"]);
- Mapbender::session()->set("mb_user_organisation_name",$isAuthenticated["mb_user_organisation_name"]);
- Mapbender::session()->set("mb_user_position_name",$isAuthenticated["mb_user_position_name"]);
- Mapbender::session()->set("mb_user_phone",$isAuthenticated["mb_user_phone"]);
- Mapbender::session()->set("Textsize",$isAuthenticated["mb_user_textsize"]);
- Mapbender::session()->set("Glossar",$isAuthenticated["mb_user_glossar"]);
- Mapbender::session()->set("mb_user_description",$isAuthenticated["mb_user_description"]);
- Mapbender::session()->set("mb_user_city",$isAuthenticated["mb_user_city"]);
- Mapbender::session()->set("mb_user_postal_code",$isAuthenticated["mb_user_postal_code"]);
- Mapbender::session()->set("epsg","EPSG:31466");
- Mapbender::session()->set("HTTP_HOST",$_SERVER["HTTP_HOST"]);
-//INSERT LAST LOGIN DATE AND TIME
-//NEW Filed required "ALTER TABLE mapbender.mb_user ADD COLUMN mb_user_last_login_date date;"
- $sql = "UPDATE mb_user SET";
- $sql .= " mb_user_last_login_date = now()";
- $V[0] = Mapbender::session()->get('mb_user_id');
- $T[0] = 'i';
- $sql .= 'WHERE mb_user_id = $1';
- $res = db_prep_query($sql, $V, $T);
- //UPDATE USER LOGIN DATE and TIME
- require_once(dirname(__FILE__)."/../php/mb_getGUIs.php");
- $arrayGUIs = mb_getGUIs($isAuthenticated["mb_user_id"]);
- Mapbender::session()->set("mb_user_guis",$arrayGUIs);
- header ("Location: http://".$_SERVER['HTTP_HOST']."/portal/success.html".$URLAdd);
- session_write_close();
-} else {
- header ("Location: http://".$_SERVER['HTTP_HOST']."/portal/failed.html".$URLAdd);
-}
-
-function authenticate ($name,$pw){
- $con = db_connect(DBSERVER,OWNER,PW);
- db_select_db(DB,$con);
-
- $sql = "SELECT * FROM mb_user WHERE mb_user_name = $1 AND mb_user_password = $2";
- $v = array($name,md5($pw)); // is md5 used really?
- $t = array('s','s');
- $res = db_prep_query($sql,$v,$t);
-
- if($row = db_fetch_array($res)){
- $e = new mb_exception('row mb_user_name: '.$row['mb_user_name']);
- return $row;
- }
- else
- {
- return false;
- }
-}
-function setSession(){
- session_start(); //function is ok cause the session will be closed directly after starting it!
- session_write_close();
-}
-function killSession(){
- Mapbender::session()->kill();
-}
-?>
+<?php
+include_once(dirname(__FILE__)."/../../core/globalSettings.php");
+
+$pw = $_REQUEST['password'];
+$name = $_REQUEST['name'];
+
+$e = new mb_exception('SESSION[mb_user_name]: '.Mapbender::session()->get("mb_user_name"));
+
+# Q4U - Michael Spitz - 16.08.2006 - Falls Cookies deaktiviert sind, muss die Session-ID an die Folgeseiten weitergereicht werden
+$URLAdd="";
+if($_COOKIE[session_name()]=="") {
+ $URLAdd="?".session_name()."=".$_REQUEST[session_name()];
+}
+
+$isAuthenticated = authenticate($name,$pw);
+
+if($isAuthenticated != false) {
+ setSession();
+ Mapbender::session()->set("mb_user_password",$pw);
+ Mapbender::session()->set("mb_user_id",$isAuthenticated["mb_user_id"]);
+ Mapbender::session()->set("mb_user_name",$isAuthenticated["mb_user_name"]);
+ Mapbender::session()->set("mb_user_ip",$_SERVER['REMOTE_ADDR']);
+ Mapbender::session()->set("mb_user_email",$isAuthenticated["mb_user_email"]);
+ Mapbender::session()->set("mb_user_department",$isAuthenticated["mb_user_department"]);
+ Mapbender::session()->set("mb_user_organisation_name",$isAuthenticated["mb_user_organisation_name"]);
+ Mapbender::session()->set("mb_user_position_name",$isAuthenticated["mb_user_position_name"]);
+ Mapbender::session()->set("mb_user_phone",$isAuthenticated["mb_user_phone"]);
+ Mapbender::session()->set("Textsize",$isAuthenticated["mb_user_textsize"]);
+ Mapbender::session()->set("Glossar",$isAuthenticated["mb_user_glossar"]);
+ Mapbender::session()->set("mb_user_spatial_suggest",$isAuthenticated["mb_user_spatial_suggest"]);
+ Mapbender::session()->set("mb_user_description",$isAuthenticated["mb_user_description"]);
+ Mapbender::session()->set("mb_user_city",$isAuthenticated["mb_user_city"]);
+ Mapbender::session()->set("mb_user_postal_code",$isAuthenticated["mb_user_postal_code"]);
+ Mapbender::session()->set("epsg","EPSG:31466");
+ Mapbender::session()->set("HTTP_HOST",$_SERVER["HTTP_HOST"]);
+//INSERT LAST LOGIN DATE AND TIME
+//NEW Filed required "ALTER TABLE mapbender.mb_user ADD COLUMN mb_user_last_login_date date;"
+ $sql = "UPDATE mb_user SET";
+ $sql .= " mb_user_last_login_date = now()";
+ $V[0] = Mapbender::session()->get('mb_user_id');
+ $T[0] = 'i';
+ $sql .= 'WHERE mb_user_id = $1';
+ $res = db_prep_query($sql, $V, $T);
+ //UPDATE USER LOGIN DATE and TIME
+ require_once(dirname(__FILE__)."/../php/mb_getGUIs.php");
+ $arrayGUIs = mb_getGUIs($isAuthenticated["mb_user_id"]);
+ Mapbender::session()->set("mb_user_guis",$arrayGUIs);
+ header ("Location: http://".$_SERVER['HTTP_HOST']."/portal/success.html".$URLAdd);
+ session_write_close();
+} else {
+ header ("Location: http://".$_SERVER['HTTP_HOST']."/portal/failed.html".$URLAdd);
+}
+
+function authenticate ($name,$pw){
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+
+ $sql = "SELECT * FROM mb_user WHERE mb_user_name = $1 AND mb_user_password = $2";
+ $v = array($name,md5($pw)); // is md5 used really?
+ $t = array('s','s');
+ $res = db_prep_query($sql,$v,$t);
+
+ if($row = db_fetch_array($res)){
+ $e = new mb_exception('row mb_user_name: '.$row['mb_user_name']);
+ return $row;
+ }
+ else
+ {
+ return false;
+ }
+}
+function setSession(){
+ session_start(); //function is ok cause the session will be closed directly after starting it!
+ session_write_close();
+}
+function killSession(){
+ Mapbender::session()->kill();
+}
+?>
Modified: trunk/mapbender/http/geoportal/mod_readCSWResults.php
===================================================================
--- trunk/mapbender/http/geoportal/mod_readCSWResults.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/geoportal/mod_readCSWResults.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -102,6 +102,8 @@
//extract query string - explode by +
$queryString = $_REQUEST["q"];
$queryStringParts = explode("+",$queryString);
+
+//$e = new mb_exception($queryString);
//extract single elements into variables
//first entry is allways the query string for any text
$queryText = $queryStringParts[0];
@@ -132,7 +134,7 @@
}
}
//build bbox if all infos are given
-$e = new mb_notice("q= : ".$_REQUEST["q"]);
+$e = new mb_notice("q=: ".$_REQUEST["q"]);
$e = new mb_notice("ranking: ".$ranking);
$e = new mb_notice("coord: ".$coord);
//$e = new mb_exception("geoportal/mod_readCSWResults.php queryText: ".$queryText);
@@ -192,7 +194,7 @@
//set kind of filter
//debug output
-$e = new mb_notice($spatialFilter);
+$e = new mb_exception($spatialFilter);
#get the information out of the mapbender-db
@@ -214,7 +216,6 @@
//echo "<br>CAT ID from DB: ".$row_csw["fkey_cat_id"]."<br>";
//get urls for getrecords and getrecordbyid from table cat
$v = $row_csw["fkey_cat_id"];
- $e = new mb_notice("<br>cat id: ".$row_csw["fkey_cat_id"]);
$t = 'i';
$sql_gr = "select param_value, param_name from cat_op_conf where fk_cat_id = $1 and param_type = 'getrecords'";
$res_gr = db_prep_query($sql_gr, $v, $t);
@@ -223,22 +224,21 @@
switch ($row_gr['param_name']) {
case "get" :
$csw_list[$cnt_csw] ['getrecordsurl_param_name'] = "get";
- if (isset($row_gr['param_value']) && $row_gr['param_value'] != '') {
+ if (isset($row_gr['param_value']) || $row_gr['param_value'] != '') {
$csw_list[$cnt_csw] ['getrecordsurl'] = $row_gr['param_value'];
break 2;
}
break 1;
case "post" :
$csw_list[$cnt_csw] ['getrecordsurl_param_name'] = "post";
- if (isset($row_gr['param_value']) && $row_gr['param_value'] != '') {
- $e = new mb_exception("<br>getrecords: ".$row_gr['param_value']);
+ if (isset($row_gr['param_value']) || $row_gr['param_value'] != '') {
$csw_list[$cnt_csw] ['getrecordsurl'] = $row_gr['param_value'];
break 2;
}
break 1;
case "post_xml" :
$csw_list[$cnt_csw] ['getrecordsurl_param_name'] = "post_xml";
- if (isset($row_gr['param_value']) && $row_gr['param_value'] != '' ) {
+ if (isset($row_gr['param_value']) || $row_gr['param_value'] != '' ) {
$csw_list[$cnt_csw] ['getrecordsurl'] = $row_gr['param_value'];
break 2;
}
@@ -530,7 +530,7 @@
if($os_catalogs_file_handle = fopen($resdir."/".$cli_id."_os".$catalog_number."_".$request_p.".xml","w")){
fwrite($os_catalogs_file_handle,"<resultlist>\n");
#logit("<resultlist>\n");
- fwrite($os_catalogs_file_handle,"<querystring>".urlencode($queryText)."</querystring>\n");
+ fwrite($os_catalogs_file_handle,"<querystring>".urlencode($queryString)."</querystring>\n");
#logit("<querystring>".urlencode($queryText)."</querystring>\n");
fwrite($os_catalogs_file_handle,"<totalresults>".$n_results."</totalresults>\n");
#logit("<totalresults>".$n_results."</totalresults>\n");
Modified: trunk/mapbender/http/geoportal/updateUserDataIntoDb.php
===================================================================
--- trunk/mapbender/http/geoportal/updateUserDataIntoDb.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/geoportal/updateUserDataIntoDb.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -1,112 +1,114 @@
-<?php
-#
-#
-# Copyright (C) 2002 CCGIS
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#Script which is included by a typo3 script to register the users
-
- require_once(dirname(__FILE__)."/../../core/globalSettings.php");
- require_once(dirname(__FILE__)."/../classes/class_administration.php");
- $adm = new administration();
- $con = db_connect(DBSERVER,OWNER,PW);
- db_select_db(DB,$con);
- // fields which should be updated
- $fields = array();
- // entries
- $v = array();
- // types
- $t = array();
- // start sql statement
- $sql = "UPDATE mb_user SET";
- $sql .= " mb_user_owner = 5299"; #all users belong to the central administrator
- //change username if field is not empty - the variables are from the calling script
- if ($mb_user_name != '') {
- $fields[] = array('mb_user_name', $mb_user_name, 's');
- }
- else
- {
- $mb_user_name = $_SESSION['mb_user_name'];
- }
- // change password if it was set
- if ($mb_user_password != '') {
- $fields[] = array('mb_user_password', md5($mb_user_password), 's');
- #$fields[] = array('mb_user_digest', md5($mb_user_name.";".$mb_user_email.":".REALM.":".$mb_user_password), 's');
- }
- #else
- #{
- # $mb_user_password = $_SESSION['mb_user_password']; # Don't update the password for a guest user - cause no one can get a anonymous user any more - this is done with password guest!
- #}
-
- //update other fields
- $fields[] = array('mb_user_description', $mb_user_description, 's');
- $fields[] = array('mb_user_email', $mb_user_email, 's');
- $fields[] = array('mb_user_phone', $mb_user_phone, 's');
- #$fields[] = array('mb_user_department', $mb_user_department, 's'); # don't update department cause it is used for some relation - TODO uncomment it when relation is obsolet
- $fields[] = array('mb_user_organisation_name', $mb_user_organisation_name, 's');
- $fields[] = array('mb_user_position_name', $mb_user_position_name, 's');
- $fields[] = array('mb_user_city', $mb_user_city, 's');
- #$e = new mb_exception("geoportal/updateUserIntoDb.php: digest new: ".md5($mb_user_name.";".$mb_user_email.":".REALM.":".$mb_user_password));
- $fields[] = array('mb_user_digest', md5($mb_user_name.";".$mb_user_email.":".REALM.":".$mb_user_password), 's');
- if(is_int($mb_user_postal_code) && $mb_user_postal_code >= 0){
- $fields[] = array('mb_user_postal_code', $mb_user_postal_code, 'i'); //postal_code als integer?
- }
- $fields[] = array('mb_user_textsize', $Textsize, 's');
- $fields[] = array('mb_user_glossar', $Glossar, 's');
- // build sql statement
- foreach ($fields as $idx => $field) {
- $sql .= ', '.$field[0].' = $'.($idx + 1);
- $v[] = $field[1];
- $t[] = $field[2];
- }
- // + where condition
-
- $v[] = $_SESSION["mb_user_id"];
- $t[] = 'i';
- $sql .= 'WHERE mb_user_id = $'.count($v);//.' AND mb_user_name != \'guest\'';
- if ($_SESSION["mb_user_id"] != ANONYMOUS_USER) {
- $res = db_prep_query($sql, $v, $t);
- }
- if(!$res)
- {
- $e = new mb_exception("db_query($qstring)=$ret db_error=".db_error());
- }
- //UPDATE of the SESSION VARS
- $_SESSION["mb_user_email"] = $mb_user_email;
- $_SESSION["mb_user_department"] = $mb_user_department;
- $_SESSION["mb_user_organisation_name"] = $mb_user_organisation_name;
- $_SESSION["mb_user_position_name"] = $mb_user_position_name;
- $_SESSION["mb_user_phone"] = $mb_user_phone;
- $_SESSION["Textsize"] = $Textsize;
- $_SESSION["Glossar"] = $Glossar;
- $_SESSION["mb_user_description"]= $mb_user_description;
- $_SESSION["mb_user_city"]= $mb_user_city;
- $_SESSION["mb_user_postal_code"]= $mb_user_postal_code;
-
-
-
-
-/* //Push registrated user into ANONYMOUS_GROUP guest????
- $sql = "SELECT mb_group_id FROM mb_group WHERE mb_group_name = 'guest' LIMIT 1";
- $res = db_prep_query($sql, array(), array());
- $row = db_fetch_array($res);
- $group_id = $row['mb_group_id'];
- $sql = "INSERT INTO mb_user_mb_group (fkey_mb_user_id, fkey_mb_group_id) VALUES ($1, $2)";
- $v = array($adm->getUserIdByUserName($mb_user_name), $group_id);
- $t = array('i', 'i');
- $res = db_prep_query($sql, $v, $t);
-*/
-?>
+<?php
+#
+#
+# Copyright (C) 2002 CCGIS
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#Script which is included by a typo3 script to register the users
+
+ require_once(dirname(__FILE__)."/../../core/globalSettings.php");
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
+ $adm = new administration();
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+ // fields which should be updated
+ $fields = array();
+ // entries
+ $v = array();
+ // types
+ $t = array();
+ // start sql statement
+ $sql = "UPDATE mb_user SET";
+ $sql .= " mb_user_owner = 5299"; #all users belong to the central administrator
+ //change username if field is not empty - the variables are from the calling script
+ if ($mb_user_name != '') {
+ $fields[] = array('mb_user_name', $mb_user_name, 's');
+ }
+ else
+ {
+ $mb_user_name = $_SESSION['mb_user_name'];
+ }
+ // change password if it was set
+ if ($mb_user_password != '') {
+ $fields[] = array('mb_user_password', md5($mb_user_password), 's');
+ #$fields[] = array('mb_user_digest', md5($mb_user_name.";".$mb_user_email.":".REALM.":".$mb_user_password), 's');
+ }
+ #else
+ #{
+ # $mb_user_password = $_SESSION['mb_user_password']; # Don't update the password for a guest user - cause no one can get a anonymous user any more - this is done with password guest!
+ #}
+
+ //update other fields
+ $fields[] = array('mb_user_description', $mb_user_description, 's');
+ $fields[] = array('mb_user_email', $mb_user_email, 's');
+ $fields[] = array('mb_user_phone', $mb_user_phone, 's');
+ #$fields[] = array('mb_user_department', $mb_user_department, 's'); # don't update department cause it is used for some relation - TODO uncomment it when relation is obsolet
+ $fields[] = array('mb_user_organisation_name', $mb_user_organisation_name, 's');
+ $fields[] = array('mb_user_position_name', $mb_user_position_name, 's');
+ $fields[] = array('mb_user_city', $mb_user_city, 's');
+ #$e = new mb_exception("geoportal/updateUserIntoDb.php: digest new: ".md5($mb_user_name.";".$mb_user_email.":".REALM.":".$mb_user_password));
+ $fields[] = array('mb_user_digest', md5($mb_user_name.";".$mb_user_email.":".REALM.":".$mb_user_password), 's');
+ if(is_int($mb_user_postal_code) && $mb_user_postal_code >= 0){
+ $fields[] = array('mb_user_postal_code', $mb_user_postal_code, 'i'); //postal_code als integer?
+ }
+ $fields[] = array('mb_user_textsize', $Textsize, 's');
+ $fields[] = array('mb_user_glossar', $Glossar, 's');
+ $fields[] = array('mb_user_spatial_suggest', $mb_user_spatial_suggest, 's');
+ // build sql statement
+ foreach ($fields as $idx => $field) {
+ $sql .= ', '.$field[0].' = $'.($idx + 1);
+ $v[] = $field[1];
+ $t[] = $field[2];
+ }
+ // + where condition
+
+ $v[] = $_SESSION["mb_user_id"];
+ $t[] = 'i';
+ $sql .= 'WHERE mb_user_id = $'.count($v);//.' AND mb_user_name != \'guest\'';
+ if ($_SESSION["mb_user_id"] != ANONYMOUS_USER) {
+ $res = db_prep_query($sql, $v, $t);
+ }
+ if(!$res)
+ {
+ $e = new mb_exception("db_query($qstring)=$ret db_error=".db_error());
+ }
+ //UPDATE of the SESSION VARS
+ $_SESSION["mb_user_email"] = $mb_user_email;
+ $_SESSION["mb_user_department"] = $mb_user_department;
+ $_SESSION["mb_user_organisation_name"] = $mb_user_organisation_name;
+ $_SESSION["mb_user_position_name"] = $mb_user_position_name;
+ $_SESSION["mb_user_phone"] = $mb_user_phone;
+ $_SESSION["Textsize"] = $Textsize;
+ $_SESSION["Glossar"] = $Glossar;
+ $_SESSION["mb_user_spatial_suggest"] = $mb_user_spatial_suggest;
+ $_SESSION["mb_user_description"]= $mb_user_description;
+ $_SESSION["mb_user_city"]= $mb_user_city;
+ $_SESSION["mb_user_postal_code"]= $mb_user_postal_code;
+
+
+
+
+/* //Push registrated user into ANONYMOUS_GROUP guest????
+ $sql = "SELECT mb_group_id FROM mb_group WHERE mb_group_name = 'guest' LIMIT 1";
+ $res = db_prep_query($sql, array(), array());
+ $row = db_fetch_array($res);
+ $group_id = $row['mb_group_id'];
+ $sql = "INSERT INTO mb_user_mb_group (fkey_mb_user_id, fkey_mb_group_id) VALUES ($1, $2)";
+ $v = array($adm->getUserIdByUserName($mb_user_name), $group_id);
+ $t = array('i', 'i');
+ $res = db_prep_query($sql, $v, $t);
+*/
+?>
Modified: trunk/mapbender/http/php/mod_callMetadata.php
===================================================================
--- trunk/mapbender/http/php/mod_callMetadata.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/php/mod_callMetadata.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -273,6 +273,7 @@
if (!in_array($testMatch,$HOSTNAME_WHITELIST_array)) {
//echo "Requested hostname <b>".$testMatch."</b> not whitelist! Please control your mapbender.conf.";
echo "Requested <b>hostName</b> not in whitelist! Please control your mapbender.conf.";
+
$e = new mb_notice("Whitelist: ".HOSTNAME_WHITELIST);
$e = new mb_notice("hostName not found in whitelist!");
die();
Modified: trunk/mapbender/http/php/mod_exportMapbenderLayer2CkanObjects.php
===================================================================
--- trunk/mapbender/http/php/mod_exportMapbenderLayer2CkanObjects.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/php/mod_exportMapbenderLayer2CkanObjects.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -6,7 +6,7 @@
//select open data information from mapbenders database
$sql = <<<SQL
-select wms_id, layer_id, f_collect_topic_cat_layer(layer_id) as category, f_collect_layer_keywords(layer_id) as keywords, layer.uuid as uuid, wms_title || ' - Ebene: ' || layer_title as title, wms_abstract || '\r\n' || layer_abstract as notes, tou_licence_title, tou_licence_url, tou_licence_id, isopen, to_timestamp(wms_timestamp) as wms_timestamp, to_timestamp(wms_timestamp_create) as wms_timestamp_create, wms_owner as service_owner,fees,accessconstraints, fkey_mb_group_id as service_group, contactperson, address, city, postcode, contactvoicetelephone, contactelectronicmailaddress from (select termsofuse_id, description as tou_licence_title, descriptionlink as tou_licence_url, wms_tou.name as tou_licence_id, wms_tou.isopen as isopen, wms_id, wms_title, wms_timestamp, wms_timestamp_create, wms.wms_abstract, wms.wms_owner,fees,accessconstraints,wms.fkey_mb_group_id, contactperson, address, city, postcode, contactvoicetelephone, contactelectronicmailaddress from (select * from
termsofuse inner join wms_termsofuse on termsofuse.termsofuse_id = wms_termsofuse.fkey_termsofuse_id and termsofuse.termsofuse_id in ($openLicences)) as wms_tou inner join wms on wms_tou.fkey_wms_id = wms.wms_id) as wms_tou2 inner join layer on wms_tou2.wms_id = layer.fkey_wms_id and layer_searchable=1;
+select wms_id, layer_id, f_collect_topic_cat_layer(layer_id) as category, f_collect_layer_keywords(layer_id) as keywords, layer.uuid as uuid, wms_title || ' - Ebene: ' || layer_title as title, wms_abstract || '\r\n' || layer_abstract as notes, tou_licence_title, tou_licence_url, tou_licence_id, tou_licence_timestamp, isopen, to_timestamp(wms_timestamp) as wms_timestamp, to_timestamp(wms_timestamp_create) as wms_timestamp_create, wms_owner as service_owner,fees,accessconstraints, fkey_mb_group_id as service_group, contactperson, address, city, postcode, contactvoicetelephone, contactelectronicmailaddress from (select termsofuse_id, description as tou_licence_title, descriptionlink as tou_licence_url, wms_tou.name as tou_licence_id, wms_tou.isopen as isopen, wms_tou.timestamp as tou_licence_timestamp, wms_id, wms_title, wms_timestamp, wms_timestamp_create, wms.wms_abstract, wms.wms_owner,fees,accessconstraints,wms.fkey_mb_group_id, contactperson, address, city, postcode, conta
ctvoicetelephone, contactelectronicmailaddress from (select * from termsofuse inner join wms_termsofuse on termsofuse.termsofuse_id = wms_termsofuse.fkey_termsofuse_id and termsofuse.termsofuse_id in ($openLicences)) as wms_tou inner join wms on wms_tou.fkey_wms_id = wms.wms_id) as wms_tou2 inner join layer on wms_tou2.wms_id = layer.fkey_wms_id and layer_searchable=1;
SQL;
$result = db_query($sql);
@@ -28,12 +28,14 @@
$sqlTable['service_postcode'][] = $row['postcode'];
$sqlTable['service_phone'][] = $row['contactvoicetelephone'];
$sqlTable['service_email'][] = $row['contactelectronicmailaddress'];
+ $sqlTable['service_timestamp'][] = $row['wms_timestamp'];
$sqlTable['notes'][] = $row['notes'];
$sqlTable['service_fees'][] = $row['fees'];
$sqlTable['service_accessconstraints'][] = $row['accessconstraints'];
$sqlTable['tou_licence_title'][] = $row['tou_licence_title'];
$sqlTable['tou_licence_id'][] = $row['tou_licence_id'];
$sqlTable['tou_licence_url'][] = $row['tou_licence_url'];
+ $sqlTable['tou_licence_timestamp'][] = $row['tou_licence_timestamp'];
$sqlTable['isopen'][] = $row['isopen'];
$sqlTable['temporal_coverage_to'][] = $row['wms_timestamp'];
$sqlTable['temporal_coverage_from'][] = $row['wms_timestamp_create'];
@@ -79,6 +81,11 @@
$sqlTable['group_city'] = $groupOwnerArray[9];
$sqlTable['group_logo'] = $groupOwnerArray[10];
$sqlTable['group_homepage'] = $groupOwnerArray[12];
+
+$sqlTable['group_timestamp'] = $groupOwnerArray[13];
+
+
+
//test output
/*for ($i=0; $i < count($sqlTable['name']); $i++){
echo $sqlTable['name'][$i]." - ".$sqlTable['title'][$i]." - ".$sqlTable['service_id'][$i]." - ".$sqlTable['resource_id'][$i]." - ".$sqlTable['organization'][$i]." - ".$sqlTable['orgaId'][$i]."<br>";
@@ -111,6 +118,18 @@
$package->maintainer = $mbArray['group_title']; //mb_group.mb_group_name
$package->point_of_contact = $mbArray['group_title'];//"Andreas Becker"; //mb_user.mb_user_name - owner
$package->point_of_contact_free_address = $mbArray['group_address']."\r\n". $mbArray['group_postcode']." ".$mbArray['group_city']."\r\n".$mbArray['group_telephone'];//"Ferdinand-Sauerbruch-Straße 15"; //mb_group.mb_group_address
+ //generate timestamp of last change
+ //$e = new mb_exception("mod_exportMapbenderLayer2CkanObjects.php: group timestamp:".$mbArray['group_timestamp']);
+ //$e = new mb_exception("mod_exportMapbenderLayer2CkanObjects.php: service timestamp:".date("Y-m-d H:i:s",strtotime($mbArray['service_timestamp'])));
+ //$e = new mb_exception("mod_exportMapbenderLayer2CkanObjects.php: tou timestamp:".$mbArray['tou_licence_timestamp']);
+ $timestamps = array(
+ date("Y-m-d H:i:s",$mbArray['group_timestamp']),
+ date("Y-m-d H:i:s",strtotime($mbArray['service_timestamp'])),
+ date("Y-m-d H:i:s",$mbArray['tou_licence_timestamp'])
+ );
+ $maxDate = max($timestamps);
+ //
+ $package->timestamp = $maxDate;
$package->point_of_contact_email = $mbArray['group_email'];//"poststelle at lvermgeo.rlp"; //mb_group.mb_group_email
$package->license = $mbArray['tou_licence_title'];//"Datenlizenz Deutschland – Namensnennung – nicht kommerziell"; // termsofuse.description
$package->author = $mbArray['mb_user_id'];//""; //mb_group.mb_group_name
@@ -121,10 +140,15 @@
//$package->groups[0] = CKAN_GROUP_NAME;
//for v3:
$package->groups[0]->name = CKAN_GROUP_NAME; //constant
+ $package->groups[1]->name = "geo"; //constant
if ($mbArray['categories']) {
//add categories as groups
+ $numberOfCategories = 2;
for ($i=0; $i < count($mbArray['categories']); $i++){
- $package->groups[$i + 1]->name = $mbArray['categories'][$i];
+ if ($mbArray['categories'][$i] != "geo") {
+ $package->groups[$numberOfCategories]->name = $mbArray['categories'][$i];
+ $numberOfCategories++;
+ }
}
}
if ($mbArray['resource_keywords'] && $mbArray['resource_keywords'] != '') {
@@ -172,7 +196,7 @@
$package->resources[1]->resource_type = "visualization"; //constant
$package->resources[2]->description = "Metadaten zur WMS Kartenebene";//$mbArray['mb_user_id'];// "Link zur WMS-Darstellung im GeoPortal.rlp, die Darstellung erfolgt ab einem Maßstab 1:500.000"; //fix: "".id.id?
- $package->resources[2]->format = "html"; //constant
+ $package->resources[2]->format = "HTML"; //constant
$package->resources[2]->url = $mapbenderUrl."/php/mod_showMetadata.php?languageCode=de&resource=layer&layout=tabs&id=".$mbArray['resource_id'];// "http://www.geoportal.rlp.de/portal/karten.html?LAYER[zoom]=1&LAYER[id]=36699"; //constant .. ids
$package->resources[2]->resource_type = "metadata"; //constant
@@ -224,7 +248,7 @@
$listGroupIdsString = implode(",",$listGroupIds);
//do the database requests
if ($listOwnerIdsString != "") {
- $sql = "SELECT mb_group_name as metadatapointofcontactorgname, mb_group_title as metadatapointofcontactorgtitle, mb_group_id, mb_group_logo_path as metadatapointofcontactorglogo, mb_group_address as metadatapointofcontactorgaddress, mb_group_email as metadatapointofcontactorgemail, mb_group_postcode as metadatapointofcontactorgpostcode, mb_group_city as metadatapointofcontactorgcity, mb_group_voicetelephone as metadatapointofcontactorgtelephone, mb_group_facsimiletelephone as metadatapointofcontactorgfax , mb_group_homepage, b.mb_user_id as mb_user_id FROM mb_group AS a, mb_user AS b, mb_user_mb_group AS c WHERE b.mb_user_id IN (".$listOwnerIdsString.") AND b.mb_user_id = c.fkey_mb_user_id AND c.fkey_mb_group_id = a.mb_group_id AND c.mb_user_mb_group_type=2";
+ $sql = "SELECT mb_group_name as metadatapointofcontactorgname, mb_group_title as metadatapointofcontactorgtitle, mb_group_id, mb_group_logo_path as metadatapointofcontactorglogo, mb_group_address as metadatapointofcontactorgaddress, mb_group_email as metadatapointofcontactorgemail, mb_group_postcode as metadatapointofcontactorgpostcode, mb_group_city as metadatapointofcontactorgcity, mb_group_voicetelephone as metadatapointofcontactorgtelephone, mb_group_facsimiletelephone as metadatapointofcontactorgfax, a.timestamp as metadatapointofcontactorgtime, mb_group_homepage, b.mb_user_id as mb_user_id, b.timestamp as mb_user_time FROM mb_group AS a, mb_user AS b, mb_user_mb_group AS c WHERE b.mb_user_id IN (".$listOwnerIdsString.") AND b.mb_user_id = c.fkey_mb_user_id AND c.fkey_mb_group_id = a.mb_group_id AND c.mb_user_mb_group_type=2";
$resultOrgaOwner = db_query($sql);
$index = 0;
while ($row = db_fetch_array($resultOrgaOwner)) {
@@ -240,6 +264,8 @@
$metadataContactOwnerArray[$index]['mb_group_homepage'] = $row['mb_group_homepage'];
$metadataContactOwnerArray[$index]['mb_user_id'] = $row['mb_user_id'];
$metadataContactOwnerArray[$index]['orga_id'] = $row['mb_group_id'];
+ $metadataContactOwnerArray[$index]['metadatapointofcontactorgtime'] = $row['metadatapointofcontactorgtime'];
+ //$metadataContactOwnerArray[$index]['mb_user_time'] = $row['mb_user_time'];
$index++;
}
$index = 0;
@@ -258,11 +284,14 @@
$groupOwnerArray[10][$listOwnerIdsKeys[$i]] = $metadataContactOwnerArray[$index]['metadatapointofcontactorglogo']; //logo - 10
$groupOwnerArray[11][$listOwnerIdsKeys[$i]] = $metadataContactOwnerArray[$index]['orga_id'];
$groupOwnerArray[12][$listOwnerIdsKeys[$i]] = $metadataContactOwnerArray[$index]['mb_group_homepage'];
+
+ $groupOwnerArray[13][$listOwnerIdsKeys[$i]] = $metadataContactOwnerArray[$index]['metadatapointofcontactorgtime'];
+ //$groupOwnerArray[14][$listOwnerIdsKeys[$i]] = $metadataContactOwnerArray[$index]['mb_user_time'];
}
}
//for groupList
if ($listGroupIdsString != "") {
- $sql = "SELECT mb_group_name as metadatapointofcontactorgname, mb_group_title as metadatapointofcontactorgtitle, mb_group_id, mb_group_logo_path as metadatapointofcontactorglogo, mb_group_address as metadatapointofcontactorgaddress, mb_group_email as metadatapointofcontactorgemail, mb_group_postcode as metadatapointofcontactorgpostcode, mb_group_city as metadatapointofcontactorgcity, mb_group_voicetelephone as metadatapointofcontactorgtelephone, mb_group_facsimiletelephone as metadatapointofcontactorgfax, mb_group_homepage, mb_group_id FROM mb_group WHERE mb_group_id IN (".$listGroupIdsString.")";
+ $sql = "SELECT mb_group_name as metadatapointofcontactorgname, mb_group_title as metadatapointofcontactorgtitle, mb_group_id, mb_group_logo_path as metadatapointofcontactorglogo, mb_group_address as metadatapointofcontactorgaddress, mb_group_email as metadatapointofcontactorgemail, mb_group_postcode as metadatapointofcontactorgpostcode, mb_group_city as metadatapointofcontactorgcity, mb_group_voicetelephone as metadatapointofcontactorgtelephone, mb_group_facsimiletelephone as metadatapointofcontactorgfax, mb_group_homepage, mb_group_id, timestamp as metadatapointofcontactorgtime FROM mb_group WHERE mb_group_id IN (".$listGroupIdsString.")";
$resultOrgaGroup = db_query($sql);
$index = 0;
while ($row = db_fetch_array($resultOrgaGroup)) {
@@ -278,6 +307,8 @@
$metadataContactGroupArray[$index]['mb_group_homepage'] = $row['mb_group_homepage'];
$metadataContactGroupArray[$index]['mb_group_id'] = $row['mb_group_id'];
$metadataContactGroupArray[$index]['orga_id'] = $row['mb_group_id'];
+
+ $metadataContactGroupArray[$index]['metadatapointofcontactorgtime'] = $row['metadatapointofcontactorgtime'];
$index++;
}
$index = 0;
@@ -297,6 +328,8 @@
$groupOwnerArray[11][$listGroupIdsKeys[$i]] = $metadataContactGroupArray[$index]['orga_id'];
$groupOwnerArray[12][$listGroupIdsKeys[$i]] = $metadataContactGroupArray[$index]['mb_group_homepage'];
+
+ $groupOwnerArray[13][$listGroupIdsKeys[$i]] = $metadataContactGroupArray[$index]['metadatapointofcontactorgtime'];
}
}
return $groupOwnerArray;
Modified: trunk/mapbender/http/php/mod_getDownloadOptions.php
===================================================================
--- trunk/mapbender/http/php/mod_getDownloadOptions.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/php/mod_getDownloadOptions.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -25,6 +25,19 @@
//require_once dirname(__FILE__) . "/../../core/epsg.php";
require_once(dirname(__FILE__) . "/../classes/class_Uuid.php");
+function checkUrlInDatalink($url, $datalinkIds) {
+ $sql = "SELECT datalink_id FROM datalink WHERE datalink_id in (".explode(",",$datalinkIds).") AND datalink_url = ".urldecode($url);
+ $res = db_query($sql);
+ //$row = db_fetch_assoc($res)
+ $e = new mb_exception("num rows: ".db_numrows($res));
+ if (db_numrows($res) > 0) {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+
//make all parameters available as upper case
foreach($_REQUEST as $key => $val) {
$_REQUEST[strtoupper($key)] = $val;
@@ -51,8 +64,8 @@
//define query to pull all download options - actually only the inspire download services based on atom feeds
-$sql = "select service_id, service_uuid, resource_id, resource_type, datalink from (
-select service_id, resource_id, service_uuid, resource_type, fkey_datalink_id as datalink from (select fkey_wms_id as service_id, layer_id as resource_id, 'layer' as resource_type, layer.uuid as service_uuid from layer inner join (select metadata_id, uuid, fkey_layer_id from mb_metadata inner join ows_relation_metadata on ows_relation_metadata.fkey_metadata_id = mb_metadata.metadata_id) ";
+$sql = "select service_id, service_uuid, resource_id, resource_type, datalink, NULL as datalink_text, format from (
+select service_id, resource_id, service_uuid, resource_type, fkey_datalink_id as datalink, format from (select fkey_wms_id as service_id, layer_id as resource_id, 'layer' as resource_type, layer.uuid as service_uuid, format from layer inner join (select metadata_id, format, uuid, fkey_layer_id from mb_metadata inner join ows_relation_metadata on ows_relation_metadata.fkey_metadata_id = mb_metadata.metadata_id) ";
$sql .= "as metadata_relation on metadata_relation.fkey_layer_id = layer.layer_id where layer.inspire_download = 1 and metadata_relation.uuid = $1) as layer_metadata LEFT OUTER JOIN ows_relation_data ON layer_metadata.resource_id = ows_relation_data.fkey_layer_id
) as inspire_layer inner join wms on inspire_layer.service_id = wms.wms_id ";
@@ -60,11 +73,15 @@
$sql .= "union select fkey_wfs_id as service_id, service_uuid, featuretype_id as resource_id, 'wfs' as resource_type, NULL ";
-$sql .= "as datalink from (select wfs_featuretype.featuretype_id ,wfs_featuretype.fkey_wfs_id, wfs.uuid as service_uuid, wfs_featuretype.inspire_download from wfs_featuretype inner join wfs on wfs_featuretype.fkey_wfs_id = wfs.wfs_id WHERE inspire_download = 1 ORDER BY featuretype_id) as featuretype_inspire inner join (select metadata_id, uuid, fkey_featuretype_id from mb_metadata inner join ows_relation_metadata on ";
+$sql .= "as datalink, NULL as datalink_text, 'GML' as format from (select wfs_featuretype.featuretype_id ,wfs_featuretype.fkey_wfs_id, wfs.uuid as service_uuid, wfs_featuretype.inspire_download from wfs_featuretype inner join wfs on wfs_featuretype.fkey_wfs_id = wfs.wfs_id WHERE inspire_download = 1 ORDER BY featuretype_id) as featuretype_inspire inner join (select metadata_id, format, uuid, fkey_featuretype_id from mb_metadata inner join ows_relation_metadata on ";
-$sql .= "ows_relation_metadata.fkey_metadata_id = mb_metadata.metadata_id) as metadata_relation on metadata_relation.fkey_featuretype_id = featuretype_inspire.featuretype_id and metadata_relation.uuid = $1;";
+$sql .= "ows_relation_metadata.fkey_metadata_id = mb_metadata.metadata_id) as metadata_relation on metadata_relation.fkey_featuretype_id = featuretype_inspire.featuretype_id and metadata_relation.uuid = $1 ";
+$sql .= "union select NULL as service_id, NULL as service_uuid, NULL as resource_id, 'metadata' as resource_type, NULL ";
+$sql .= "as datalink, datalinks as datalink_text, format FROM mb_metadata WHERE mb_metadata.uuid = $1;";
+
+
/*
$sql = "select service_id, resource_id, resource_type, fkey_datalink_id as datalink from (select fkey_wms_id as service_id, layer_id as resource_id, 'layer' as resource_type from layer inner join (select metadata_id, uuid, fkey_layer_id from mb_metadata inner join ows_relation_metadata on ows_relation_metadata.fkey_metadata_id = mb_metadata.metadata_id) ";
@@ -109,23 +126,52 @@
$downloadOptions->{$idList[$i]}->option[$j]->serviceId = $row['service_id'];
$downloadOptions->{$idList[$i]}->option[$j]->serviceUuid = $row['service_uuid'];
$downloadOptions->{$idList[$i]}->option[$j]->featureType[0] = $row['resource_id'];
+ $downloadOptions->{$idList[$i]}->option[$j]->format = $row['format'];
}
break;
case "layer":
if (!isset($row['datalink'] ) || $row['datalink'] == '') {
$downloadOptions->{$idList[$i]}->option[$j]->type = "wmslayergetmap";
+ $row['format'] = 'GeoTIFF';
} else {
$downloadOptions->{$idList[$i]}->option[$j]->type = "wmslayerdataurl";
+ //add to array with datalink (ids)
+ //$arrayDataLinks[] = $row['datalink'];
}
$downloadOptions->{$idList[$i]}->option[$j]->serviceId = $row['service_id'];
$downloadOptions->{$idList[$i]}->option[$j]->serviceUuid = $row['service_uuid'];//This is a layer uuid - not a service uuid!!!!
$downloadOptions->{$idList[$i]}->option[$j]->resourceId = $row['resource_id'];
+ $downloadOptions->{$idList[$i]}->option[$j]->format = $row['format'];
$downloadOptions->{$idList[$i]}->option[$j]->dataLink = $row['datalink'];
break;
+ case "metadata":
+ if (isset($row['datalink_text'] ) || $row['datalink_text'] != '') {
+ $downloadLinks = json_decode($row['datalink_text']);
+ $downloadOptions->{$idList[$i]}->option[$j]->type = "downloadlink";
+ //parse json and add some more info?
+ //$downloadLinks = json_decode($row['datalink_text']);
+ foreach ($downloadLinks->downloadLinks as $downloadLink) {
+ $downloadOptions->{$idList[$i]}->option[$j]->link = $downloadLink;
+ //check if
+ $downloadOptions->{$idList[$i]}->option[$j]->format = $row['format'];
+ }
+ }
+
+ break;
}
$j++;
- }
+ }
+ //delete double entries - maybe url is given from dataurl - use this
+ //get all dataurlids
+ //foreach($downloadOptions->{$idList[$i]}->option as $option) {
+ //$option->dataLink;
+
+ //}
+
}
+
+
+//add further option from metadata itself - if
$result = json_encode($downloadOptions);
header('Content-Type: application/json; charset='.CHARSET);
Modified: trunk/mapbender/http/php/mod_inspireAtomFeedISOMetadata.php
===================================================================
--- trunk/mapbender/http/php/mod_inspireAtomFeedISOMetadata.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/php/mod_inspireAtomFeedISOMetadata.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -416,7 +416,9 @@
//WFS uuid (12-4), MD uuid (4-4-8)
//wmsgetmap
//WMS uuid (12-4), Type (4) - 0002, MD uuid (4-8)
- //
+ //metadata
+ //metadata uuid (12-4),hash(downloadurl) (4-8);
+
if (isset($mapbenderMetadata['serviceUuid']) && $mapbenderMetadata['serviceUuid'] != '' ) {
$servicePart = explode('-',$mapbenderMetadata['serviceUuid']);
$mdPart = explode('-',$recordId);
Modified: trunk/mapbender/http/php/mod_inspireDownloadFeed.php
===================================================================
--- trunk/mapbender/http/php/mod_inspireDownloadFeed.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/php/mod_inspireDownloadFeed.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -141,7 +141,7 @@
}
if (!isset($_REQUEST['GENERATEFROM']) || $_REQUEST['GENERATEFROM'] == "") {
- echo '<b>Mandatory parameter GENERATEFROM is not set!</b><br>Please set GENERATEFROM to <b>wmslayer</b>, <b>dataurl</b> or <b>wfs</b> ';
+ echo '<b>Mandatory parameter GENERATEFROM is not set!</b><br>Please set GENERATEFROM to <b>wmslayer</b>, <b>dataurl</b>, <b>metadata</b> or <b>wfs</b> ';
die();
}
@@ -149,9 +149,9 @@
if (isset($_REQUEST['GENERATEFROM']) & $_REQUEST['GENERATEFROM'] != "") {
//validate type
$testMatch = $_REQUEST["GENERATEFROM"];
- if ($testMatch != 'wmslayer' && $testMatch != 'dataurl' && $testMatch != 'wfs' && $testMatch != 'all'){
+ if ($testMatch != 'wmslayer' && $testMatch != 'dataurl' && $testMatch != 'wfs' && $testMatch != 'all' && $testMatch != 'metadata'){
//echo 'GENERATEFROM: <b>'.$testMatch.'</b> is not valid.<br/>';
- echo 'Parameter <b>GENERATEFROM</b> is not valid (wmslayer,dataurl,wfs,all).<br/>';
+ echo 'Parameter <b>GENERATEFROM</b> is not valid (wmslayer,dataurl,wfs,metadata,all).<br/>';
die();
}
$generateFrom = $testMatch;
@@ -208,6 +208,18 @@
$testMatch = NULL;
}
+if (isset($_REQUEST['request']) & $_REQUEST['request'] != "") {
+ //validate type TODO
+ $testMatch = $_REQUEST["request"];
+ if ($testMatch != 'DescribeSpatialDataset' && $testMatch != 'GetSpatialDataset'){
+ //echo 'GENERATEFROM: <b>'.$testMatch.'</b> is not valid.<br/>';
+ echo 'Parameter <b>request</b> is not valid (GetSpatialDataset/DescribeSpatialDataset).<br/>';
+ die();
+ }
+ $osRequest = $testMatch;
+ $testMatch = NULL;
+}
+
if (isset($_REQUEST['language']) & $_REQUEST['language'] != "") {
//validate type TODO
$testMatch = $_REQUEST["language"];
@@ -294,7 +306,7 @@
function answerOpenSearchRequest () {
- global $admin, $type, $mapbenderMetadata, $indexMapbenderMetadata, $layerId, $wfsId, $mapbenderPath, $epsgId, $alterAxisOrder, $departmentMetadata, $userMetadata, $hasPermission, $m, $crs, $crsUpper, $countRessource, $furtherLink, $osDatasetIdentifier, $osQuery, $osDatasetNamespace, $osCrs, $osLanguage;
+ global $admin, $type, $mapbenderMetadata, $indexMapbenderMetadata, $layerId, $wfsId, $mapbenderPath, $epsgId, $alterAxisOrder, $departmentMetadata, $userMetadata, $hasPermission, $m, $crs, $crsUpper, $countRessource, $furtherLink, $osDatasetIdentifier, $osQuery, $osDatasetNamespace, $osCrs, $osLanguage, $osRequest;
//service feed url
$serviceFeed = delTotalFromQuery("getopensearch",$mapbenderPath."..".$_SERVER['REQUEST_URI']);//delete GETOPENSEARCH
$serviceFeed = delTotalFromQuery("OPENSEARCH",$serviceFeed);
@@ -356,26 +368,34 @@
echo "Dataset not available in requested language!";
die();
}
- //check count of links
- //redirect to downloadlink
- //parse dataset atom feed and count links - maybe one or multiple!!!!
- $links = getDatasetFeedLinks($datasetFeed);
- $numberOfTiles = count($links);
- //$e = new mb_exception("mod_inspireDownloadFeed.php: numberOfTiles: ".$numberOfTiles);
- if ($numberOfTiles > 1) {
- //redirect to dataset atom feed
- header("Location: ".$datasetFeed);
- } else {
- if ($returnFile) {
- //echo "links[0]:". $links[0];
- //die();
- header("Location: ".$links[0]);
- } else {
+ switch ($osRequest) {
+ case "DescribeSpatialDataset":
//redirect to datasetfeed
header("Location: ".$datasetFeed);
- }
- }
- die();
+ break;
+ case "GetSpatialDataset":
+ //check count of links
+ //redirect to downloadlink
+ //parse dataset atom feed and count links - maybe one or multiple!!!!
+ $links = getDatasetFeedLinks($datasetFeed);
+ $numberOfTiles = count($links);
+ //$e = new mb_exception("mod_inspireDownloadFeed.php: numberOfTiles: ".$numberOfTiles);
+ if ($numberOfTiles > 1) {
+ //redirect to dataset atom feed
+ header("Location: ".$datasetFeed);
+ } else {
+ if ($returnFile) {
+ //echo "links[0]:". $links[0];
+ //die();
+ header("Location: ".$links[0]);
+ } else {
+ //redirect to datasetfeed
+ header("Location: ".$datasetFeed);
+ }
+ }
+ die();
+ break;
+ }
}
function getDatasetFeedLinks($datasetFeedUrl) {
@@ -454,26 +474,27 @@
$urlSelf = $feedDoc->createElement("Url");
$urlSelf->setAttribute("type", "application/atom+xml");
$urlSelf->setAttribute("rel", "results");
- $urlSelf->setAttribute("template", str_replace("=SERVICE&","=DATASET&",$mapbenderPath."..".$_SERVER['REQUEST_URI']).str_replace("&","&","&OPENSEARCH=true&q={searchTerms}"));
+ $urlSelf->setAttribute("template", str_replace("=SERVICE&","=DATASET&",$mapbenderPath."..".$_SERVER['REQUEST_URI'])."&OPENSEARCH=true&q={searchTerms}");
$feed->appendChild($urlSelf);
//Url - describedby
$urlDescribedby = $feedDoc->createElement("Url");
$urlDescribedby->setAttribute("type", "application/atom+xml");
$urlDescribedby->setAttribute("rel", "describedby");
//see documentation
- $urlDescribedby->setAttribute("template", str_replace("=SERVICE&","=DATASET&",$mapbenderPath."..".$_SERVER['REQUEST_URI']).str_replace("&","&","&OPENSEARCH=true&spatial_dataset_identifier_code={inspire_dls:spatial_dataset_identifier_code?}&spatial_dataset_identifier_namespace={inspire_dls:spatial_dataset_identifier_namespace?}&crs={inspire_dls:crs?}&language={language?}&q={searchTerms?}"));
+ $urlDescribedby->setAttribute("template", str_replace("=SERVICE&","=DATASET&",$mapbenderPath."..".$_SERVER['REQUEST_URI'])."&OPENSEARCH=true&request=DescribeSpatialDataset&spatial_dataset_identifier_code={inspire_dls:spatial_dataset_identifier_code?}&spatial_dataset_identifier_namespace={inspire_dls:spatial_dataset_identifier_namespace?}&crs={inspire_dls:crs?}&language={language?}&q={searchTerms?}");
+ //$urlDescribedby->setAttribute("template", str_replace("=SERVICE&","=DATASET&",$mapbenderPath."..".$_SERVER['REQUEST_URI']));
$feed->appendChild($urlDescribedby);
//Url - results single part (e.g. zipfile)
$urlResults = $feedDoc->createElement("Url");
$urlResults->setAttribute("type", $mimetype);//TODO give reasonable format!! - mimetypes??? geotiff/gml/other - see format of metadata
$urlResults->setAttribute("rel", "results");
- $urlResults->setAttribute("template", str_replace("=SERVICE&","=DATASET&",$mapbenderPath."..".$_SERVER['REQUEST_URI']).str_replace("&","&","&OPENSEARCH=true&spatial_dataset_identifier_code={inspire_dls:spatial_dataset_identifier_code?}&spatial_dataset_identifier_namespace={inspire_dls:spatial_dataset_identifier_namespace?}&crs={inspire_dls:crs?}&language={language?}&q={searchTerms?}"));
+ $urlResults->setAttribute("template", str_replace("=SERVICE&","=DATASET&",$mapbenderPath."..".$_SERVER['REQUEST_URI'])."&OPENSEARCH=true&request=GetSpatialDataset&spatial_dataset_identifier_code={inspire_dls:spatial_dataset_identifier_code?}&spatial_dataset_identifier_namespace={inspire_dls:spatial_dataset_identifier_namespace?}&crs={inspire_dls:crs?}&language={language?}&q={searchTerms?}");
$feed->appendChild($urlResults);
//for firefox?
$urlResults = $feedDoc->createElement("Url");
$urlResults->setAttribute("type", "text/html");//TODO give reasonable format!! - mimetypes??? geotiff/gml/other - see format of metadata - see https://developer.mozilla.org/de/docs/OpenSearch_Plugin_f%C3%BCr_Firefox_erstellen
$urlResults->setAttribute("rel", "results");
- $urlResults->setAttribute("template", str_replace("=SERVICE&","=DATASET&",$mapbenderPath."..".$_SERVER['REQUEST_URI']).str_replace("&","&","&OPENSEARCH=true&spatial_dataset_identifier_code={inspire_dls:spatial_dataset_identifier_code?}&spatial_dataset_identifier_namespace={inspire_dls:spatial_dataset_identifier_namespace?}&crs={inspire_dls:crs?}&language={language?}&q={searchTerms?}"));
+ $urlResults->setAttribute("template", str_replace("=SERVICE&","=DATASET&",$mapbenderPath."..".$_SERVER['REQUEST_URI'])."&OPENSEARCH=true&request=GetSpatialDataset&spatial_dataset_identifier_code={inspire_dls:spatial_dataset_identifier_code?}&spatial_dataset_identifier_namespace={inspire_dls:spatial_dataset_identifier_namespace?}&crs={inspire_dls:crs?}&language={language?}&q={searchTerms?}");
$feed->appendChild($urlResults);
//Url -results multi part
@@ -557,7 +578,11 @@
select *, 'wfs' as origin from (select mb_metadata.metadata_id, featuretype_relation.featuretype_name, featuretype_relation.fkey_wfs_id, featuretype_relation.featuretype_id,featuretype_relation.inspire_download, mb_metadata.uuid as metadata_uuid, mb_metadata.format,mb_metadata.title as metadata_title, mb_metadata.abstract as metadata_abstract, featuretype_relation.featuretype_title, featuretype_relation.featuretype_abstract, mb_metadata.ref_system as metadata_ref_system, mb_metadata.datasetid, mb_metadata.spatial_res_type, mb_metadata.spatial_res_value, mb_metadata.datasetid_codespace, featuretype_relation.featuretype_latlon_bbox as latlonbbox, featuretype_relation.featuretype_srs, mb_metadata.lastchanged as md_timestamp from (select * from wfs_featuretype inner join ows_relation_metadata on wfs_featuretype.featuretype_id = ows_relation_metadata.fkey_featuretype_id) as featuretype_relation inner join mb_metadata on featuretype_relation.fkey_metadata_id = mb_metadata.metadat
a_id where mb_metadata.uuid = $1) as featuretype_data inner join wfs on featuretype_data.fkey_wfs_id = wfs.wfs_id where wfs.wfs_id = $2;
SQL;
break;
-
+ case "metadata":
+ $sql = <<<SQL
+select 'metadata' as origin,mb_metadata.metadata_id, mb_metadata.uuid as metadata_uuid, mb_metadata.format,mb_metadata.title as metadata_title, mb_metadata.abstract as metadata_abstract, mb_metadata.ref_system as metadata_ref_system, mb_metadata.datasetid, mb_metadata.spatial_res_type, mb_metadata.spatial_res_value, mb_metadata.datasetid_codespace, mb_metadata.lastchanged as md_timestamp, box2d(the_geom) as bbox2d, datalinks FROM mb_metadata where uuid = $1;
+SQL;
+ break;
case "all":
$sql = array();
$sql[0] = <<<SQL
@@ -600,7 +625,17 @@
$res = db_prep_query($sql,$v,$t);
fillMapbenderMetadata($res, $generateFrom);
break;
- case "all": //TODO: Maybe a union is a better way, but the sql must be harmonized before
+ case "metadata":
+ //only one sql should be done
+ //$e = new mb_exception("sql metadata: ".$sql);
+ //$e = new mb_exception($recordId);
+ $v = array($recordId);
+ $t = array('s');
+ $res = db_prep_query($sql,$v,$t);
+ //$e = new mb_exception("num rows: ".db_numrows($res));
+ fillMapbenderMetadata($res, $generateFrom);
+ break;
+ case "all"://TODO: Maybe a union is a better way, but the sql must be harmonized before
for ($i = 0; $i < 3; $i++) {
$v = array($recordId);
$t = array('s');
@@ -697,21 +732,35 @@
//infos about the owner of the service - he is the man who administrate the metadata - register the service
$sql = "SELECT mb_user_email, timestamp ";
$sql .= "FROM mb_user WHERE mb_user_id = $1";
- if ($generateFrom != "wfs") {
+ switch ($generateFrom) {
+ case "wmslayer":
$v = array($mapbenderMetadata[$m]->wms_owner);
- } else {
+ $hasPermission=$admin->getLayerPermission($mapbenderMetadata[$m]->fkey_wms_id,$mapbenderMetadata[$m]->layer_name,PUBLIC_USER);
+ break;
+ case "dataurl":
+ $v = array($mapbenderMetadata[$m]->wms_owner);
+ //$hasPermission=$admin->getLayerPermission($mapbenderMetadata[$m]->fkey_wms_id,$mapbenderMetadata[$m]->layer_name,PUBLIC_USER);
+ $hasPermission = true;
+ break;
+ case "wfs":
$v = array($mapbenderMetadata[$m]->wfs_owner);
+ $hasPermission = true;
+ break;
+ case "metadata":
+ $v = array($mapbenderMetadata[$m]->md_owner);
+ $hasPermission = true;
+ break;
}
$t = array('i');
$res = db_prep_query($sql,$v,$t);
$userMetadata = db_fetch_array($res);
//check if resource is freely available to anonymous user - which are all users who search thru metadata catalogues:
- if ($generateFrom != "wfs") {
+ /*if ($generateFrom != "wfs") {
$hasPermission=$admin->getLayerPermission($mapbenderMetadata[$m]->fkey_wms_id,$mapbenderMetadata[$m]->layer_name,PUBLIC_USER);
} else {
$hasPermission = true;
- }
+ }*/
}
@@ -767,7 +816,7 @@
$atomFeedKey .= $wfsId;
break;
}
- $e = new mb_exception("mod_inspireDownloadFeed.php: cachedVariableTimestamp: ".date("Y-m-d H:i:s",$cache->cachedVariableCreationTime($atomFeedKey)));
+ //$e = new mb_exception("mod_inspireDownloadFeed.php: cachedVariableTimestamp: ".date("Y-m-d H:i:s",$cache->cachedVariableCreationTime($atomFeedKey)));
if ($cache->isActive && $cache->cachedVariableExists($atomFeedKey) && (date("Y-m-d H:i:s",$cache->cachedVariableCreationTime($atomFeedKey)) > $maxDate)) {
$e = new mb_exception("class_map.php: read ".$atomFeedKey." from ".$cache->cacheType." cache!");
return $cache->cachedVariableFetch($atomFeedKey);
@@ -860,7 +909,7 @@
$feedLink->setAttribute("href", $mapbenderPath."php/mod_dataISOMetadata.php?id=".$mapbenderMetadata[$m]->metadata_uuid."&outputFormat=iso19139");
}
$feedLink->setAttribute("rel", "describedby");
- $feedLink->setAttribute("type", "application/vnd.iso.19139+xml");
+ $feedLink->setAttribute("type", "application/xml");
//$feedLink->setAttribute("title", "Metadaten");
//$feedLink->setAttribute("hreflang", "de");
$feed->appendChild($feedLink);
@@ -914,7 +963,18 @@
//<link href="http://xyz.org/data/de" rel="alternate" type="application/atom+xml" hreflang="de" title="The download service information in German"/>
//<link href="http://xyz.org/data/index.html" rel="alternate" type="text/html" hreflang="en" title="An HTML version of this document"/>
//<link href="http://xyz.org/data/index.de.html" rel="alternate" type="text/html" hreflang="de" title="An HTML version of this document in German"/>
-
+
+ //optional link to wfs capabilities document / see TG 3.1 from 09.08.2013
+ if ($type == 'SERVICE' && $generateFrom == "wfs") {
+ /*<link rel="related" href="http://xyz.org/wfs?request=GetCapabilities&service=WFS&version=2.0.0" type="application/xml" title="Service implementing Direct Access operations"/>*/
+ $feedLink = $feedDoc->createElement("link");
+ $feedLink->setAttribute("href", $mapbenderMetadata[$m]->wfs_getcapabilities."&request=GetCapabilities&VERSION=1.1.0&SERVICE=WFS");
+ $feedLink->setAttribute("rel", "related");
+ $feedLink->setAttribute("type", "application/xml");
+ //$feedLink->setAttribute("hreflang", "en");
+ $feedLink->setAttribute("title", "Service implementing Direct Access operations");
+ $feed->appendChild($feedLink);
+ }
//<!-- identifier -->
//<id>http://xyz.org/data</id> - also self reference - see 5.1.8 on page 39 of INSPIRE GD for Download Services V 3.0
// and 5.2.1
@@ -1214,7 +1274,7 @@
$bboxFilter = '<Filter xmlns:gml="http://www.opengis.net/gml"><BBOX>';
//$bboxFilter .= '<gml:Box srsName="EPSG:'.$epsgId[1].'"';
- $bboxFilter .= '<ogc:PropertyName>the_geom</ogc:PropertyName>';
+ $bboxFilter .= '<ogc:PropertyName>the_geom</ogc:PropertyName>';//TODO parse DescribeFeatureType for geom property
$bboxFilter .= '<gml:Box>';
$bboxFilter .= '<gml:coordinates>';
$currentBbox = explode(',',$bboxWfs[$mapbenderMetadata[$i]->featuretype_name][$l]);
@@ -1262,6 +1322,10 @@
case "wfs":
$ressourceServiceFeedEntryTitle = $ressourceTitle." - generiert über WFS GetFeature Aufrufe";
break;
+ case "metadata":
+ $ressourceServiceFeedEntryTitle = $ressourceTitle." - generiert über Downloadlinks aus Metadatensatz";
+ break;
+
}
$feedEntryTitle->appendChild($feedDoc->createTextNode("Feed Entry fuer: ".$ressourceServiceFeedEntryTitle)); //TODO: maybe add some category?
} else {
@@ -1275,6 +1339,9 @@
case "wfs":
$ressourceDataFeedEntryTitle = $ressourceTitle." - generiert über WFS GetFeature Aufrufe";
break;
+ case "metadata":
+ $ressourceDataFeedEntryTitle = $ressourceTitle." - generiert über Downloadlinks aus Metadatensatz";
+ break;
}
$feedEntryTitle->appendChild($feedDoc->createTextNode($ressourceDataFeedEntryTitle. " im CRS ".$mapbenderMetadata[$i]->metadata_ref_system." und Format ".$mapbenderMetadata[$i]->format)); //TODO: maybe add some category?
}
@@ -1300,6 +1367,9 @@
case "wfs":
$datasetFeedLink .= "&wfsid=".$mapbenderMetadata[$i]->wfs_id;
break;
+ case "metadata":
+ //$datasetFeedLink .= "&wfsid=".$mapbenderMetadata[$i]->wfs_id;
+ break;
}
$datasetLink = $mapbenderMetadata[$i]->datalink_url;
if ($type == 'SERVICE') {
@@ -1316,7 +1386,7 @@
$feedEntryMetadataLink = $feedDoc->createElement("link");
$feedEntryMetadataLink->setAttribute("href",$metadataLink);
$feedEntryMetadataLink->setAttribute("rel", "describedby");
- $feedEntryMetadataLink->setAttribute("type", "application/vnd.iso.19139+xml");
+ $feedEntryMetadataLink->setAttribute("type", "application/xml");
$feedEntry->appendChild($feedEntryMetadataLink);
$furtherLink = $datasetFeedLink;
$furtherLinkType = "application/atom+xml";
@@ -1344,6 +1414,21 @@
//$feedEntryLink->setAttribute("bbox", $newBox);
$feedEntry->appendChild($feedEntryLink);
break;
+ case "metadata":
+ $downloadLinks = json_decode($mapbenderMetadata[$i]->datalinks);
+ $furtherLink = urldecode($downloadLinks->downloadLinks[0]);
+ $furtherLinkType = $formatsMimetype[$mapbenderMetadata[$m]->format];
+ $furtherLinkTitle = $ressourceTitle." im CRS ".$mapbenderMetadata[$i]->metadata_ref_system."(".$mapbenderMetadata[$m]->format.")";
+ //generate content link
+ $feedEntryLink = $feedDoc->createElement("link");
+ $feedEntryLink->setAttribute("rel", "section");
+ $feedEntryLink->setAttribute("href", $furtherLink);
+ $feedEntryLink->setAttribute("type", $furtherLinkType);
+ $feedEntryLink->setAttribute("hreflang", "de");
+ $feedEntryLink->setAttribute("title", $furtherLinkTitle);
+ //$feedEntryLink->setAttribute("bbox", $newBox);
+ $feedEntry->appendChild($feedEntryLink);
+ break;
case "wmslayer":
//example:
//http://localhost/cgi-bin/mapserv?map=/data/umn/geoportal/karte_rp/testinspiredownload.map&VERSION=1.1.1&REQUEST=GetMap&SERVICE=WMS&LAYERS=inspirewms&STYLES=&SRS=EPSG:4326&BBOX=6.92134,50.130465,6.93241,50.141535000000005&WIDTH=200&HEIGHT=200&FORMAT=image/png&BGCOLOR=0xffffff&TRANSPARENT=TRUE&EXCEPTIONS=application/vnd.ogc.se_inimage
@@ -1584,76 +1669,119 @@
//function increments $indexMapbenderMetadata !!!
global $mapbenderMetadata, $indexMapbenderMetadata;
//echo "<error>fill begins</error>";
- while ($row = db_fetch_assoc($dbResult)) {
- //get relevant information
- //echo "<error>".$indexMapbenderMetadata."</error>";
- if ($row['inspire_download'] == '1') {
+ if ($generateFrom == 'metadata') {
+ $row = db_fetch_assoc($dbResult);
+ //to generate an atom feed from mb_metadata there must be some information avaiable, that is normally used from service metadata
+ //owner, group, bbox, ... - the mb_metadata table have to be filled with the geometry from the layer/featuretype - of which it has been coupled with
$mapbenderMetadata[$indexMapbenderMetadata]->origin = $row['origin'];
- $mapbenderMetadata[$indexMapbenderMetadata]->latlonbbox = $row['latlonbbox'];
- $mapbenderMetadata[$indexMapbenderMetadata]->datalink_id = $row['datalink_id'];
+ $e = new mb_exception($row['origin']);
+ if (isset($row['bbox2d']) && $row['bbox2d'] != '') {
+ $bbox = str_replace(' ',',',str_replace(')','',str_replace('BOX(','',$row['bbox2d'])));
+ //$e = new mb_exception("class_iso19139.php: got bbox for metadata: ".$bbox);
+ $mapbenderMetadata[$indexMapbenderMetadata]->latlonbbox = explode(',',$bbox);
+ $mapbenderMetadata[$indexMapbenderMetadata]->minx = $mapbenderMetadata[$indexMapbenderMetadata]->latlonbbox[0];
+ $mapbenderMetadata[$indexMapbenderMetadata]->miny = $mapbenderMetadata[$indexMapbenderMetadata]->latlonbbox[1];
+ $mapbenderMetadata[$indexMapbenderMetadata]->maxx = $mapbenderMetadata[$indexMapbenderMetadata]->latlonbbox[2];
+ $mapbenderMetadata[$indexMapbenderMetadata]->maxy = $mapbenderMetadata[$indexMapbenderMetadata]->latlonbbox[3];
+ }
$mapbenderMetadata[$indexMapbenderMetadata]->metadata_id = $row['metadata_id'];
$mapbenderMetadata[$indexMapbenderMetadata]->metadata_ref_system = $row['metadata_ref_system'];
- $mapbenderMetadata[$indexMapbenderMetadata]->fkey_mb_group_id = $row['fkey_mb_group_id'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wms_owner = $row['wms_owner'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wfs_owner = $row['wfs_owner'];
- $mapbenderMetadata[$indexMapbenderMetadata]->fkey_wms_id = $row['fkey_wms_id'];
- $mapbenderMetadata[$indexMapbenderMetadata]->layer_id = $row['layer_id'];
- $mapbenderMetadata[$indexMapbenderMetadata]->layer_name = $row['layer_name'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->md_owner = $row['fkey_mb_user_id'];
$mapbenderMetadata[$indexMapbenderMetadata]->datasetid = $row['datasetid'];
$mapbenderMetadata[$indexMapbenderMetadata]->datasetid_codespace = $row['datasetid_codespace'];
$mapbenderMetadata[$indexMapbenderMetadata]->metadata_uuid = $row['metadata_uuid'];
- $mapbenderMetadata[$indexMapbenderMetadata]->minx = $row['minx'];
- $mapbenderMetadata[$indexMapbenderMetadata]->miny = $row['miny'];
- $mapbenderMetadata[$indexMapbenderMetadata]->maxx = $row['maxx'];
- $mapbenderMetadata[$indexMapbenderMetadata]->maxy = $row['maxy'];
$mapbenderMetadata[$indexMapbenderMetadata]->metadata_title = $row['metadata_title'];
- $mapbenderMetadata[$indexMapbenderMetadata]->layer_title = $row['layer_title'];
+ $e = new mb_exception("title: ".$row['metadata_title']);
$mapbenderMetadata[$indexMapbenderMetadata]->metadata_abstract = $row['metadata_abstract'];
- $mapbenderMetadata[$indexMapbenderMetadata]->layer_abstract = $row['layer_abstract'];
- $mapbenderMetadata[$indexMapbenderMetadata]->accessconstraints = $row['accessconstraints'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->accessconstraints = $row['accessconstraints'];//TODO: Let metadata get this from service when created
$mapbenderMetadata[$indexMapbenderMetadata]->metadata_uuid = $row['metadata_uuid'];
$mapbenderMetadata[$indexMapbenderMetadata]->spatial_res_type = $row['spatial_res_type'];
$mapbenderMetadata[$indexMapbenderMetadata]->spatial_res_value = $row['spatial_res_value'];
$mapbenderMetadata[$indexMapbenderMetadata]->metadata_ref_system = $row['metadata_ref_system'];
$mapbenderMetadata[$indexMapbenderMetadata]->format = $row['format'];
- $mapbenderMetadata[$indexMapbenderMetadata]->datalink_url = $row['datalink_url'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wms_getmap = $row['wms_getmap'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wms_owsproxy = $row['wms_owsproxy'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wms_version = $row['wms_version'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wms_max_imagesize = $row['wms_max_imagesize'];
- $mapbenderMetadata[$indexMapbenderMetadata]->layer_name = $row['layer_name'];
- $mapbenderMetadata[$indexMapbenderMetadata]->datalink_format = $row['datalink_format'];
- $mapbenderMetadata[$indexMapbenderMetadata]->metadata_ref_system = $row['metadata_ref_system'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->datalinks = $row['datalinks'];
+// $mapbenderMetadata[$indexMapbenderMetadata]->datalink_format = $row['datalink_format'];
$mapbenderMetadata[$indexMapbenderMetadata]->format = $row['format'];
- $mapbenderMetadata[$indexMapbenderMetadata]->featuretype_name = $row['featuretype_name'];
- $mapbenderMetadata[$indexMapbenderMetadata]->featuretype_srs = $row['featuretype_srs'];
- $mapbenderMetadata[$indexMapbenderMetadata]->featuretype_title = $row['featuretype_title'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wfs_title = $row['wfs_title'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wfs_id = $row['wfs_id'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wfs_abstract = $row['wfs_abstract'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wfs_getfeature = $row['wfs_getfeature'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wfs_version = $row['wfs_version'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wfs_max_features = $row['wfs_max_features'];
-
$mapbenderMetadata[$indexMapbenderMetadata]->md_timestamp = $row['md_timestamp'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wms_timestamp = $row['wms_timestamp'];
- $mapbenderMetadata[$indexMapbenderMetadata]->wfs_timestamp = $row['wfs_timestamp'];
- //$mapbenderMetadata[$indexMapbenderMetadata]->format = $row['format'];
//check if codespace was given in metadata or it must be generated from uuid and default codespace
if (($mapbenderMetadata[$indexMapbenderMetadata]->datasetid_codespace == '' or !isset($mapbenderMetadata[$indexMapbenderMetadata]->datasetid_codespace)) or ($mapbenderMetadata[$indexMapbenderMetadata]->datasetid == '' or !isset($mapbenderMetadata[$indexMapbenderMetadata]->datasetid))) {
//generate one:
$mapbenderMetadata[$indexMapbenderMetadata]->datasetid_codespace = METADATA_DEFAULT_CODESPACE;
$mapbenderMetadata[$indexMapbenderMetadata]->datasetid = $mapbenderMetadata[$indexMapbenderMetadata]->metadata_uuid;
}
- if ($generateFrom == "wfs" or $mapbenderMetadata[$indexMapbenderMetadata]->origin == "wfs") {
- $latlonbbox = explode(",",$mapbenderMetadata[$indexMapbenderMetadata]->latlonbbox);
- $mapbenderMetadata[$indexMapbenderMetadata]->minx = $latlonbbox[0];
- $mapbenderMetadata[$indexMapbenderMetadata]->miny = $latlonbbox[1];
- $mapbenderMetadata[$indexMapbenderMetadata]->maxx = $latlonbbox[2];
- $mapbenderMetadata[$indexMapbenderMetadata]->maxy = $latlonbbox[3];
+ } else {
+ while ($row = db_fetch_assoc($dbResult)) {
+ //get relevant information
+ //echo "<error>".$indexMapbenderMetadata."</error>";
+ if ($row['inspire_download'] == '1') {
+ $mapbenderMetadata[$indexMapbenderMetadata]->origin = $row['origin'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->latlonbbox = $row['latlonbbox'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->datalink_id = $row['datalink_id'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->metadata_id = $row['metadata_id'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->metadata_ref_system = $row['metadata_ref_system'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->fkey_mb_group_id = $row['fkey_mb_group_id'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wms_owner = $row['wms_owner'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wfs_owner = $row['wfs_owner'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->fkey_wms_id = $row['fkey_wms_id'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->layer_id = $row['layer_id'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->layer_name = $row['layer_name'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->datasetid = $row['datasetid'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->datasetid_codespace = $row['datasetid_codespace'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->metadata_uuid = $row['metadata_uuid'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->minx = $row['minx'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->miny = $row['miny'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->maxx = $row['maxx'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->maxy = $row['maxy'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->metadata_title = $row['metadata_title'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->layer_title = $row['layer_title'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->metadata_abstract = $row['metadata_abstract'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->layer_abstract = $row['layer_abstract'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->accessconstraints = $row['accessconstraints'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->metadata_uuid = $row['metadata_uuid'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->spatial_res_type = $row['spatial_res_type'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->spatial_res_value = $row['spatial_res_value'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->metadata_ref_system = $row['metadata_ref_system'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->format = $row['format'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->datalink_url = $row['datalink_url'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wms_getmap = $row['wms_getmap'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wms_owsproxy = $row['wms_owsproxy'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wms_version = $row['wms_version'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wms_max_imagesize = $row['wms_max_imagesize'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->layer_name = $row['layer_name'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->datalink_format = $row['datalink_format'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->metadata_ref_system = $row['metadata_ref_system'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->format = $row['format'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->featuretype_name = $row['featuretype_name'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->featuretype_srs = $row['featuretype_srs'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->featuretype_title = $row['featuretype_title'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wfs_title = $row['wfs_title'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wfs_id = $row['wfs_id'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wfs_abstract = $row['wfs_abstract'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wfs_getfeature = $row['wfs_getfeature'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wfs_getcapabilities = $row['wfs_getcapabilities'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wfs_version = $row['wfs_version'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wfs_max_features = $row['wfs_max_features'];
+
+ $mapbenderMetadata[$indexMapbenderMetadata]->md_timestamp = $row['md_timestamp'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wms_timestamp = $row['wms_timestamp'];
+ $mapbenderMetadata[$indexMapbenderMetadata]->wfs_timestamp = $row['wfs_timestamp'];
+ //$mapbenderMetadata[$indexMapbenderMetadata]->format = $row['format'];
+ //check if codespace was given in metadata or it must be generated from uuid and default codespace
+ if (($mapbenderMetadata[$indexMapbenderMetadata]->datasetid_codespace == '' or !isset($mapbenderMetadata[$indexMapbenderMetadata]->datasetid_codespace)) or ($mapbenderMetadata[$indexMapbenderMetadata]->datasetid == '' or !isset($mapbenderMetadata[$indexMapbenderMetadata]->datasetid))) {
+ //generate one:
+ $mapbenderMetadata[$indexMapbenderMetadata]->datasetid_codespace = METADATA_DEFAULT_CODESPACE;
+ $mapbenderMetadata[$indexMapbenderMetadata]->datasetid = $mapbenderMetadata[$indexMapbenderMetadata]->metadata_uuid;
+ }
+ if ($generateFrom == "wfs" or $mapbenderMetadata[$indexMapbenderMetadata]->origin == "wfs") {
+ $latlonbbox = explode(",",$mapbenderMetadata[$indexMapbenderMetadata]->latlonbbox);
+ $mapbenderMetadata[$indexMapbenderMetadata]->minx = $latlonbbox[0];
+ $mapbenderMetadata[$indexMapbenderMetadata]->miny = $latlonbbox[1];
+ $mapbenderMetadata[$indexMapbenderMetadata]->maxx = $latlonbbox[2];
+ $mapbenderMetadata[$indexMapbenderMetadata]->maxy = $latlonbbox[3];
+ }
+ $indexMapbenderMetadata++;
+ }
}
- $indexMapbenderMetadata++;
- }
}
}
Modified: trunk/mapbender/http/php/mod_syncCkan.php
===================================================================
--- trunk/mapbender/http/php/mod_syncCkan.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/php/mod_syncCkan.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -4,12 +4,13 @@
//@ini_set('display_errors', 'stdout');
// Include class_ckanApi.php
require_once(dirname(__FILE__).'/../classes/class_ckanApi.php');
-require_once(dirname(__FILE__).'/../classes/class_ckan.php');
+//require_once(dirname(__FILE__).'/../classes/class_ckan.php');
require_once(dirname(__FILE__).'/../classes/class_connector.php');
require_once(dirname(__FILE__).'/../../conf/ckan.conf');
// Create CKAN object
// Takes optional API key parameter. Required for POST and PUT methods.
//initial instantiation of api class
+print time()."<br>";
if (defined("CKAN_SERVER_PORT") && CKAN_SERVER_PORT != '') {
$serverUrl = CKAN_SERVER_IP.":".CKAN_SERVER_PORT;
} else {
@@ -75,16 +76,23 @@
print $dataset."<br>";
}
}
+//die();
print "<b>ckan datasets:</b><br>";
//get old package names for defined group in ckan.conf file
//thru action api
-$ckanDatasetArray = get_packages_by_group(CKAN_GROUP_NAME);
+$ckanDataset = group_get(CKAN_GROUP_NAME);
+//$result = json_decode($resultDataset);
+$ckanDatasetArray = array();
+foreach ($ckanDataset->packages as $dataset) {
+ $ckanDatasetArray[] = $dataset;
+}
if ($ckanDatasetArray) {
//debug output
foreach ($ckanDatasetArray as $dataset) {
print $dataset."<br>";
}
}
+//
//compare the arrays
//first those which can be deleted
if ($ckanDatasetArray && $mbDatasetArray) {
@@ -132,6 +140,7 @@
$datasetToCreate = false;
}
}
+
if ($datasetToCreate) {
print "<b>Mapbender datasets to be created for the first time:</b><br>";
foreach ($datasetToCreate as $dataset) {
@@ -141,6 +150,7 @@
} else {
print "<b>No datasets to create!</b><br>";
}
+
//identify which are identical and which are new and which are lost
//first delete the orphaned
foreach ($datasetToDelete as $datasetName) {
@@ -368,6 +378,28 @@
return $datasetNames;
}
+function get_packages_by_group2($groupname) {
+ //by action api
+ unset($ckanApi);
+ $ckan = new ckanApi(API_KEY,CKAN_SERVER_IP);
+ $ckan->set_base_url();
+ $e = new mb_exception("testckan: ".SERVER_URL);
+ $ckan->base_url='http://'.SERVER_URL.'/api/rest';
+ $e = new mb_exception("testckan: ".$ckan->base_url);
+ $datasetNames = array();
+ try {
+ $result = $ckan->get_group_by_name($groupname);
+ }
+ catch (Exception $e) {
+ $error = new mb_exception('mod_syncCkan.php: get_packages_by_group: http_code:'.$e->getMessage());
+ return false;
+ }
+ foreach ($result->packages as $dataset) {
+ $datasetNames[] = $dataset;
+ }
+ return $datasetNames;
+}
+
function package_delete($packageName,$apiVersion) {
//check if package already exists
$existingPackage = package_get ($packageName);
Modified: trunk/mapbender/http/plugins/mb_metadata_addon.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_addon.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/plugins/mb_metadata_addon.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -239,7 +239,7 @@
</fieldset>
<fieldset>
<legend><?php echo _mb("User defined region");?><img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("You can define your own bounding box or region if you upload an gml geometry object. Only bbox and polygons are accepted at the moment!");?>'}" src="../img/questionmark.png" alt="" /></legend>
- <table id='geometryuploadtable' name='geometryuploadtable'><tr><td><img onclick='initUploadForm();' src='../img/button_blue_red/up.png' id='uploadImage' title='upload' /></td><td><?php echo _mb("Upload a surronding geometry for this dataset");?><img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("Help for geometry upload possibility");?>'}" src="../img/questionmark.png" alt="" /></td></tr></table>
+ <table id='geometryuploadtable' name='geometryuploadtable'><tr><td><img id="uploadgmlimage" name= "uploadgmlimage" onclick='initUploadGmlForm();' src='../img/button_blue_red/up.png' id='uploadImage' title='upload' /></td><td><?php echo _mb("Upload a surronding geometry for this dataset");?><img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("Help for geometry upload possibility");?>'}" src="../img/questionmark.png" alt="" /></td></tr></table>
</fieldset>
</div>
<div id="tabs-6">
Modified: trunk/mapbender/http/plugins/mb_metadata_server.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_server.php 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/plugins/mb_metadata_server.php 2013-10-04 07:16:36 UTC (rev 8706)
@@ -37,6 +37,42 @@
return;
}
+function gml2wkt($gml) {
+ //function to create wkt from given gml multipolygon
+ libxml_use_internal_errors(true);
+ try {
+ $gmlObject = simplexml_load_string($gml);
+ if ($gmlObject === false) {
+ foreach(libxml_get_errors() as $error) {
+ $err = new mb_exception("mb_metadata_server.php:".$error->message);
+ }
+ throw new Exception("mb_metadata_server.php:".'Cannot parse Metadata GML!');
+ return false;
+ }
+ }
+ catch (Exception $e) {
+ $err = new mb_exception("mb_metadata_server.php:".$e->getMessage());
+ return false;
+ }
+ //if parsing was successful
+ if ($gmlObject !== false) {
+ //ST_GeomFromText('MULTIPOLYGON(((235670.354215375 894016.780856,235668.324215375 894025.050856,235681.154215375 894028.210856,235683.184215375 894019.940856,235670.354215375 894016.780856)))', 2805) )
+ //read crs from gml
+ $crs = $gmlObject->xpath('/gml:Polygon/@srsName');
+ $crsId = end(explode(":",$crs[0]));
+ $wkt = "SRID=".$crsId.";POLYGON(";
+ //$e = new mb_exception("mb_metadata_server.php: crs:".$crs[0]);
+ //for each found polygon
+ $outerPolygons = $gmlObject->xpath('/gml:Polygon/gml:outerBoundaryIs/gml:LinearRing/gml:coordinates');
+ //$e = new mb_exception("mb_metadata_server.php:".gettype($outerPolygons).$outerPolygons);
+ $wkt .= "(".str_replace(";",",",str_replace(","," ",str_replace(" ",";",$outerPolygons[0])))."))";
+ //$wkt .= ")";
+ //$e = new mb_exception("mb_metadata_server.php: wkt: ".$wkt);
+ return $wkt;
+ }
+}
+
+
switch ($ajaxResponse->getMethod()) {
case "getWms" :
$wmsIdArray = getWms();
@@ -534,31 +570,33 @@
$wms->wms_network_access = intval('0');
}
- if ($ajaxResponse->getParameter("twitterNews") == true) {
- $e = new mb_notice("twitter activated");
+ if (defined("TWITTER_NEWS") && TWITTER_NEWS == true && $ajaxResponse->getParameter("twitterNews") == true) {
+ $wms->twitterNews = true;
+ $twitterIsConfigured = true;
+ $e = new mb_exception("twitter configured");
+ } else {
+ $twitterIsConfigured = false;
+ $e = new mb_exception("twitter not configured");
}
- if ($ajaxResponse->getParameter("setGeoRss") == true) {
- $e = new mb_notice("GeoRSS activated");
- }
- if ($ajaxResponse->getParameter("setGeoRss") == false) {
- $e = new mb_notice("GeoRSS deactivated");
+ if(defined("GEO_RSS_FILE") && GEO_RSS_FILE != "" && $ajaxResponse->getParameter("setGeoRss") == true) {
+ $wms->setGeoRss = true;
+ $rssIsConfigured = true;
+ $e = new mb_exception("rss configured");
+ } else {
+ $rssIsConfigured = false;
+ $wms->setGeoRss = false;
+ $e = new mb_exception("rss not configured");
}
- if ($ajaxResponse->getParameter("twitterNews") == false) {
- $e = new mb_notice("twitter deactivated");
- }
- if (defined("TWITTER_NEWS") && TWITTER_NEWS == true) {
- $wms->twitterNews = $ajaxResponse->getParameter("twitterNews");
- $twitterIsConfigured == true;
- } else {
- $twitterIsConfigured == false;
+ $messResult = "Updated WMS metadata for ID " . $wmsId.". ";
+ //Add helpful hint if publishing is demanded, but not configured in mapbender.conf - do this before update object - cause otherwise it will not give back the right attributes
+ if ($wms->twitterNews && !$twitterIsConfigured) {
+ $messResult .= " Publishing via twitter was requested, but this is not configured. Please check your mapbender.conf! ";
}
- if(defined("GEO_RSS_FILE") && GEO_RSS_FILE != "") {
- $wms->setGeoRss = $ajaxResponse->getParameter("setGeoRss");
- $rssIsConfigured == true;
- } else {
- $rssIsConfigured == false;
+ if ($wms->setGeoRss && !$rssIsConfigured) {
+ $messResult .= " Publishing via rss was requested, but this is not configured. Please check your mapbender.conf! ";
}
+
//try {
$e = new mb_exception("update object in db");
$wms->updateObjInDB($wmsId,true);
@@ -569,14 +607,7 @@
// $ajaxResponse->send();
//}
$e = new mb_exception("object in db updated");
- $messResult = "Updated WMS metadata for ID " . $wmsId.". ";
- //Add helpful hint if publishing is demanded, but not configured in mapbender.conf
- if ($wms->twitterNews && !$twitterIsConfigured) {
- $messResult .= " Publishing via twitter was requested, but this is not configured. Please check your mapbender.conf! ";
- }
- if ($wms->setGeoRss && !$rssIsConfigured) {
- $messResult .= " Publishing via rss was requested, but this is not configured. Please check your mapbender.conf! ";
- }
+
$ajaxResponse->setMessage($messResult);
$ajaxResponse->setSuccess(true);
break;
@@ -1030,6 +1061,35 @@
$ajaxResponse->setSuccess($result['success']);
$ajaxResponse->setMessage($result['message']);
break;
+ case "importGmlAddon":
+ $filename = $ajaxResponse->getParameter("filename");
+ $metadataId = $ajaxResponse->getParameter("metadataId");
+ $gml = file_get_contents($filename);
+ if (!$gml){
+ abort(_mb("Reading file ".$filename." failed!"));
+ }
+ $wktPolygon = gml2wkt($gml);
+ if ($wktPolygon) {
+ //insert polygon into database
+ $sql = <<<SQL
+UPDATE mb_metadata SET bounding_geom = $2 WHERE metadata_id = $1
+SQL;
+ $v = array($metadataId, $wktPolygon);
+ $e = new mb_exception($metadataId);
+ $t = array('i','POLYGON');
+ $res = db_prep_query($sql,$v,$t);
+ if (!$res) {
+ abort(_mb("Problem while storing geometry into database!"));
+ } else {
+ abort(_mb("Stored successfully geometry into database!"));
+ }
+ } else {
+ abort(_mb("Converting GML to WKT failed!"));
+ }
+ //parse gml and extract multipolygon to wkt representation
+ //push multipolygon into database
+
+ break;
case "importXmlAddon" :
//this case is similar to insert the metadata from external link, but came from internal file from tmp folder which has been uploaded before
$resourceId = $ajaxResponse->getParameter("resourceId");
Modified: trunk/mapbender/http/plugins/mb_metadata_showMetadataAddon.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_showMetadataAddon.js 2013-09-25 11:13:10 UTC (rev 8705)
+++ trunk/mapbender/http/plugins/mb_metadata_showMetadataAddon.js 2013-10-04 07:16:36 UTC (rev 8706)
@@ -320,6 +320,12 @@
that.fillLayerForm(layerId);
}
+ initUploadGmlForm = function (metadataId) {
+ //$metadataAddonPopup.dialog("close");
+ //don't show possibility if metadata was not created before - only afterwards!
+ initGmlImport(metadataId);
+ //that.fillLayerForm(layerId);
+ }
this.init = function (metadataId, layerId, isNew) {
$metadataAddonPopup.dialog("close");
@@ -340,10 +346,14 @@
//get initial values (title/abstract)
that.getInitialLayerMetadata(metadataId, layerId);
}
+ //c
that.showForm(metadataId, layerId, isNew);
$("#uploadImage").click(function () {
initUploadForm(layerId);
});
+ $("#uploadgmlimage").click(function () {
+ initUploadGmlForm(metadataId);
+ });
//alert($("#uploadImage").attr('onclick')); //there has been a bigger problem when setting an onclick attribut with jquery :-(
//TODO: make the fields resizable
//$( "#abstract" ).resizable({ minWidth: 75 });
More information about the Mapbender_commits
mailing list