[Mapbender-commits] r3130 - in branches/print_dev: . tools tools/wms_extent

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Mon Oct 6 07:40:58 EDT 2008


Author: verenadiewald
Date: 2008-10-06 07:40:58 -0400 (Mon, 06 Oct 2008)
New Revision: 3130

Added:
   branches/print_dev/tools/
   branches/print_dev/tools/char_code.php
   branches/print_dev/tools/checksum.json
   branches/print_dev/tools/mapbender_setup.php
   branches/print_dev/tools/mod_monitorCapabilities_main.php
   branches/print_dev/tools/mod_monitorCapabilities_read.php
   branches/print_dev/tools/mod_monitorCapabilities_read_single.php
   branches/print_dev/tools/mod_monitorCapabilities_write.php
   branches/print_dev/tools/send_post.php
   branches/print_dev/tools/url_code.php
   branches/print_dev/tools/wms_extent/
   branches/print_dev/tools/wms_extent/checksum.json
   branches/print_dev/tools/wms_extent/info.html
   branches/print_dev/tools/wms_extent/mapbender_wms.map
   branches/print_dev/tools/wms_extent/wms_geometry.sql
Log:


Added: branches/print_dev/tools/char_code.php
===================================================================
--- branches/print_dev/tools/char_code.php	                        (rev 0)
+++ branches/print_dev/tools/char_code.php	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1,26 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Url-Encode and -Decode</title>
+</head>
+<body>
+<form method='POST'>
+  <textarea name="c" rows="10" cols="100"><?php  if($_REQUEST["c"]){echo $_REQUEST["c"];}?></textarea>
+  <br>
+  <input type='submit' name='encode' value='encode'>
+  <br>
+  <input type='submit' name='decode' value='decode'>  
+</form>
+<hr>
+<textarea rows="10" cols="100">
+<?php
+if($_REQUEST["encode"]){
+echo utf8_encode($_REQUEST["c"]);
+}
+if($_REQUEST["decode"]){
+echo utf8_decode($_REQUEST["c"]);	
+}
+?>
+</textarea>
+</body>
+</html>
\ No newline at end of file

Added: branches/print_dev/tools/checksum.json
===================================================================
--- branches/print_dev/tools/checksum.json	                        (rev 0)
+++ branches/print_dev/tools/checksum.json	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1 @@
+{"mod_monitorCapabilities_write.php":"7f8041ccc1ecdc7e3d9be0f3e2fba511f03fda0d","mod_monitorCapabilities_main.php":"67875475f4ee436171519809e5b94444fc98ecb8","char_code.php":"66ee6b32dfb8c88e69e6803a9b7f0cac204434fa","send_post.php":"df1f6b3859c358a909062ae52d02e8d36de82826","mod_monitorCapabilities_read.php":"f59ebbc5b852ab9b5ed05654147ded2997325b0e","mapbender_setup.php":"31468fa370372388f12af19a63e874d095aee2d6","url_code.php":"620c0a2d12fe6216b38726c523afe3951c1f13ff","mod_monitorCapabilities_read_single.php":"bdfe7388de236ce9a06035332ba2e120189e43d2"}
\ No newline at end of file

Added: branches/print_dev/tools/mapbender_setup.php
===================================================================
--- branches/print_dev/tools/mapbender_setup.php	                        (rev 0)
+++ branches/print_dev/tools/mapbender_setup.php	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1,291 @@
+<?php
+ # $Id: mapbender_setup.php 2655 2008-07-11 15:16:21Z christoph $
+ # Copyright (C) 2002 CCGIS 
+ # Created on 18.05.2006/10:03:40
+ #  
+ # http://www.mapbender.org/index.php/Installation_en
+ # Projekt: mapbender 
+ # File: mapbender_setup.php
+ #
+ # 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.
+ 
+require_once(dirname(__FILE__)."/../../core/globalSettings.php");
+ 
+?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+        "http://www.w3.org/TR/html4/loose.dtd"> 
+<html>
+	<head><meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="robots" content="noindex,nofollow">
+	<title>Mapbender Setup-Checker</title>
+</head>
+<link rel="stylesheet" type="text/css" href="../css/mapbender.css">
+<body>
+<table  BGCOLOR="#ffffff" width="95%" height="95%" ALIGN="center" CELLSPACING="0" CELLPADDING="10" STYLE="-moz-border-radius:8px; border:2px #000000 solid;">
+<tr><td VALIGN="center" STYLE="margin-bottom:0px; padding-bottom:0px;">
+<H1 style="padding:0px; margin:0px; font:32px/32px bold Arial,Helvetica,sans-serif; font-stretch:extra-expanded;font-weight:bold">
+<font align="left"" style="font-weight:bold" color="#000000">&nbsp;Ma</font><font color="#0000CE" style="font-weight:bold">p</font><font color="#C00000">b</font><font color="#000000" style="font-weight:bold">ender</font>
+</H1>
+<font color="#000000" style="font-weight:bold">Setup-Checker</font>
+<br>
+<HR STYLE="color:#629093; height:2px; margin:0px; padding:0px;" WIDTH="100%" NOSHADE COLOR="#808080">
+</tr></tr>
+<tr><td VALIGN="TOP">
+	<table style="border: 2px solid rgb(128, 128, 128); -moz-border-radius-topleft: 8px; -moz-border-radius-topright: 8px; -moz-border-radius-bottomright: 8px; -moz-border-radius-bottomleft: 8px;" bgcolor=#dddddd cellspacing=0 cellpadding=0 width="95%">
+	<th colspan="3" bgcolor=#F0F0F0>PHP Configurationcheck</th>
+	<?php
+###########################################
+#PHP Configurationcheck
+###########################################
+#phpversion
+	$check ="<tr ><td  width=\"25%\">php Version</td>";
+	if (phpversion()>='5.1.0'){
+		if (phpversion()<'5.2.0') $check .="<td width=\"10\"></td><td><font color=#0000FF>Version: " . phpversion() . "! You should think about upgrade to the current php version (get it <a href='http://www.php.net/downloads.php' target='_blank'>here</a>)</td></tr>";
+		else $check .="<td width=\"10\">X</td><td><font color=#00D000>Version: " . phpversion() . "</td></tr>";
+	}
+	else $check .="<td width=\"10\"></td><td><font color=#FF0000>Version: " . phpversion() . "! Your PHP Version is very old, please upgrade to version >=5.1.0 to use full mapbender functionality and reduce problems!</td></tr>";
+#php-schnittstelle 
+	if(php_sapi_name() == 'cgi') $check.="<tr><td >interface</td><td>X</td><td><font color=#00D000>CGI-PHP</td></tr>";
+	else $check.="<tr><td >interface</td><td>X</td><td><font color=#00D000>Modul-PHP</td></tr>";
+# path to php.ini
+	if (!get_cfg_var('cfg_file_path')) $check .="<tr ><td>path to php.ini</td><td></td><td><font color=#FF0000>No Path to php.ini found</font></td></tr>";
+	else $check .="<tr ><td>path to php.ini</td><td>X</td><td><font color=#00D000>" . get_cfg_var('cfg_file_path') . "</font></td></tr>";
+# extension dir
+	if (!get_cfg_var('extension_dir')||get_cfg_var('extension_dir')=='') $check .="<tr ><td>extension_dir</td><td></td><td><font color=#FF0000>no extension_dir set!</font></td></tr>";
+	else $check .="<tr ><td>extension_dir</td><td>X</td><td><font color=#00D000>" . get_cfg_var('extension_dir') . "</font><font color='#0000FF'>(check the path, is it correct?)</font></td></tr>"; 
+# session.save_path
+	if (!get_cfg_var('session.save_path')) $check .="<tr ><td>session.save_path</td><td></td><td><font color=#FF0000>please configure a session.save_path!</font></td></tr>";
+	else $check .="<tr ><td>session.save_path</td><td>X</td><td><font color=#00D000>" . get_cfg_var('session.save_path') . " </font><font color='#0000FF'>(check out the authorisation of the dir)</font></td></tr>"; 
+# memory_limit
+	if (get_cfg_var('memory_limit')) $check .="<tr ><td>memory Limit</td><td>X</td><td><font color=#00D000>" . get_cfg_var('memory_limit') . "</font><font color='#0000FF'> (running in memory-trouble with printing? Perhaps raise your memory limit)</font></td></tr>";
+	else $check .="<tr ><td>memory Limit</td><td></td><td><font color=#FF0000>memory_limit must be set (30M will be enough for the moment)</font></td></tr>";
+# error_reporting
+#Error Reporting: 6135 =>error_reporting  =  E_ALL & ~E_NOTICE (6135-8(E_NOTICE))
+#Error Reporting: 1 => error_reporting  =  E_ERROR
+#Error Reporting: 6143 => error_reporting  =  E_ALL
+	$check .="<tr ><td>error-reporting</td>";
+	 if (get_cfg_var('error_reporting')==6143||get_cfg_var('error_reporting')==8) $check .="<td></td><td><font color=#FF0000>please set error_reporting to 'E_ALL & ~E_NOTICE' or 'E_ERROR' except for debugging</td></tr>";
+	elseif  (get_cfg_var('error_reporting')==6135)$check .="<td>X</td><td><font color=#00D000>ok, error_reporting = E_ALL & ~E_NOTICE</td></tr>";
+	elseif  (get_cfg_var('error_reporting')==1)$check .="<td>X</td><td><font color=#00D000>ok, error_reporting = E_ERROR</td></tr>";
+	else $check .="<td></td><td><font color=#0000FF>(Your error_reporting configuration is not implementet into this test yet. You shoul know what you are doing or set it to E_ALL & ~E_NOTICE)</td></tr>";
+# session.save_handler
+	if (!get_cfg_var('session.save_handler')||get_cfg_var('session.save_handler')!='files') $check .="<tr ><td>session.save_handler</td><td></td><td><font color=#FF0000>session.save_handler must be set to 'session.save_handler = files'!</font></td></tr>";
+	else $check .="<tr ><td>session.save_handler</td><td>X</td><td><font color=#00D000>session.save_handler = " . get_cfg_var('session.save_handler') . "</font></td></tr>"; 
+# file_uploads
+	$check .="<tr><td>file_Uploads</td>";
+	 if (get_cfg_var('file_uploads')=='1') $check .= "<td>X</td><td><font color=#00D000>On</font></td></tr>";
+	 else $check .= "<td></td><td><font color=#FF0000>Off</font></td></tr>";
+# allow_url_fopen
+	$check .="<tr ><td>allow_url_fopen</td>"; 
+	if (get_cfg_var('allow_url_fopen')=='1') $check .= "<td>X</td><td><font color=#00D000>On</font></td></tr>";
+	else $check .= "<td></td><td><font color=#FF0000>Off =>allow_url_fopen must be on read <a href='http://www.mapbender.org/index.php/Allow_url_fopen' target=_blank>this</a></font></td></tr>";
+# short_open_tag 
+	$check .="<tr ><td>short_open_tag</td>"; 
+	if (get_cfg_var('short_open_tag')!='1') $check .= "<td>X</td><td><font color=#00D000>Off</font></td></tr>";
+	else $check .= "<td></td><td><font color=#FF0000>On => Displaying XML files will not work properly</font></td></tr>";
+	echo $check;
+#################################################
+#PHP Extensioncheck
+#################################################
+	?>
+	<th colspan="3" bgcolor=#F0F0F0>PHP Extensioncheck</th>
+	<?php
+#MYSQL	
+	if(!extension_loaded('mysql')) $check="<tr ><td width=\"25%\">MySQL check</td><td width=\"10\"></td><td><font color=#FF0000 >MySQL not installed! (You have to include mysql-extension if you want to use MySQL as MB-Database!)</font></td></tr>";
+	else $check="<tr ><td width=\"25%\">MySQL check</td><td width=\"10\">X</td><td><font color=#00D000 >MySQL installed</font></td></tr>";
+#PGSQL
+	if(!extension_loaded('pgsql')) $check.="<tr><td>PostgreSQL check</td><td></td><td><font color=#FF0000>PostgreSQL not installed (You have to include pgsql-extension if you want to use Postgres as MB-Database!)</font></td></tr>";
+	else $check.="<tr><td>PostgreSQL check</td><td>X</td><td><font color=#00D000>PostgreSQL installed</font></td></tr>";
+#GD
+	if(extension_loaded('gd')) $check.="<tr ><td>GD2 check</td><td>X</td><td><font color=#00D000>GD installed</font></td></tr>";
+	else $check.="<tr ><td>GD2 check</td><td></td><td><font color=#FF0000>GD not installed (no printing possible)</font></td></tr>";
+
+#mbstring
+	if(extension_loaded('mbstring')) $check.="<tr ><td>mbstring check</td><td>X</td><td><font color=#00D000>mbstring installed</font></td></tr>";
+	else $check.="<tr ><td>mbstring check</td><td></td><td><font color=#FF0000>PHP extension mbstring is not installed</font></td></tr>";
+
+#gettext
+	if(extension_loaded('gettext')) $check.="<tr ><td>gettext check</td><td>X</td><td><font color=#00D000>gettext installed</font></td></tr>";
+	else $check.="<tr ><td>gettext check</td><td></td><td><font color=#FF0000>PHP extension gettext is not installed</font></td></tr>";
+
+echo $check;	    
+####################################
+# Database check
+####################################
+	?>
+	</table>
+	<br><br>
+	<table style="border: 2px solid rgb(128, 128, 128); -moz-border-radius-topleft: 8px; -moz-border-radius-topright: 8px; -moz-border-radius-bottomright: 8px; -moz-border-radius-bottomleft: 8px;" bgcolor=#dddddd cellspacing=0 cellpadding=0 width="95%">
+	<th colspan="3" bgcolor=#F0F0F0>Database check</th>
+	<?php
+	$con = @db_connect(DBSERVER,OWNER,PW);
+	if (SYS_DBTYPE=="mysql"){
+		$check = "<tr ><td width=\"25%\">Administration Database</td><td>X</td><td><font color=#00D000>MySQL</td><tr>";
+		$check .= "<tr ><td>Connect to Database</td>";
+		if($con) $check .="<td width=\"10\">X</td><td><font color=#00D000>connected</font></td></tr>";
+		else $check .="<td width=\"10\"></td><td><font color=#FF0000>not connected</font></td></tr>";
+		$check .="<tr><td colspan=3><b>PostGIS function check</b></td></tr>";
+		$con_string = "host= " . GEOS_DBSERVER . " port=" . GEOS_PORT . " dbname=" . GEOS_DB . " user=" . GEOS_OWNER . " password=" .GEOS_PW;
+		if (pg_connect($con_string)){
+			pg_connect($con_string);
+			$con_postgis = pg_connect($con_string);
+			$sql = "Select postgis_full_version();";
+			$res = pg_query($con_postgis,$sql);
+			if(!$res) $check .="<tr width=\"20%\><td>PostGIS support</td><td></td><td><font color=#FF0000>no PostGIS function available</td></tr>";
+			else{
+				$cnt=0;
+				while(pg_fetch_row($res)){
+					$check .="<tr><td>PostGIS support</td><td>X</td><td><font color=#00D000>PostGIS function available</td></tr>";
+					$check .="<tr><td>Version</td><td>X</td><td><font color=#00D000>" . pg_fetch_result($res,$cnt,0). "</td></tr>";
+		  		  	$cnt++;
+		  		}
+				if ($cnt==0) $check .="<tr><td>PostGIS support</td><td></td><td><font color=#FF0000>no PostGIS function available</td></tr>";
+			}
+		}
+		else $check .="<tr><td>Postgis support</td><td></td><td><font color=#FF0000>no PostGIS function available</font></td></tr>";
+		echo $check;
+	}
+	else{
+		$check = "<tr><td width=\"25%\">Administration Database</td><td>X</td><td><font color=#00D000>PostgreSQL</td></tr>";
+		$check .= "<tr><td>Connect to Database</td>";
+		if($con) $check .="<td width=\"10\">X</td><td><font color=#00D000>connected</font></td></tr>";
+		else $check .="<td width=\"10\"></td><td><font color=#FF0000>not connected</font></td></tr>";
+# md5 support	
+		$sql = "Select md5('root');";
+		$res = pg_query($sql);
+		if(!$res) $check .="<tr><td>MD5 support</td><td></td><td><font color=#FF0000>no md5 support</td></tr>";
+		else{
+			$row = db_fetch_array($res);
+			if ($row) $check .="<tr><td>MD5 support</td><td>X</td><td><font color=#00D000>md5 supported</td></tr>";
+			else $check .="<tr><td>MD5 support</td><td></td><td><font color=#FF0000>no md5 support</td></tr>";
+		}
+		echo $check;	
+######################################
+# PostGIS check
+######################################	
+	?>
+	<th colspan="3" bgcolor=#F0F0F0>PostGIS check</th>
+	<?php
+		$check ="";
+		if ($con){
+			$sql = "select postgis_full_version();";
+			if (pg_query($con,$sql))$res = pg_query($con,$sql);
+			else echo "<tr><td><font>pg_query($con,$sql)";
+			if(!$res) $check .="<tr><td width=\"25%\">PostGIS support</td><td width=\"10\"></td><td><font color=#FF0000>no PostGIS function available</td></tr>";
+			else{
+				$cnt=0;
+				while(pg_fetch_row($res)){
+					$check .="<tr><td width=\"25%\">PostGIS support</td><td width=\"10\">X</td><td><font color=#00D000>PostGIS function available</td></tr>";
+					$check .="<tr><td>Version</td><td width=\"10\">X</td><td><font color=#00D000>" . pg_fetch_result($res,$cnt,0). "</td></tr>";
+		  		  	$cnt++; 	
+		  		}
+				if ($cnt==0) $check .="<tr><td width=\"25%\">PostGIS support</td><td width=\"10\"></td><td><font color=#FF0000>no PostGIS function available</td></tr>";
+			}
+		}
+		else $check .="<tr><td width=\"25%\">Postgis support</td><td width=\"10\"></td><td><font color=#FF0000>no PostGIS function available</font></td></tr>";
+		echo $check;
+	} 
+#################################
+# Mapbender configuration check
+#################################
+	?>
+	</table>
+	<br><br>
+	<table style="border: 2px solid rgb(128, 128, 128); -moz-border-radius-topleft: 8px; -moz-border-radius-topright: 8px; -moz-border-radius-bottomright: 8px; -moz-border-radius-bottomleft: 8px;" bgcolor=#dddddd cellspacing=0 cellpadding=0 width="95%">
+	<th colspan="4" bgcolor=#F0F0F0>Mapbender Configuration Check</th>
+	<?php 
+# SYS_DBTYPE
+	if ((SYS_DBTYPE == 'mysql' || SYS_DBTYPE == 'pgsql') && defined('SYS_DBTYPE')) $check ="<tr><td>Administration Database</td><td >X</td><td><font color=#00D000>" . SYS_DBTYPE . "</font></td></tr>";
+	else $check ="<tr><td width=\"25%\">Administration Database</td><td width=\"10\"></td><td><font color=#FF0000>SYS_DBTYPE is not defined for mysql or pgsql</font></td></tr>";
+# DBSERVER
+	if (DBSERVER !="<HOST>" && DBSERVER != "" && defined('DBSERVER')) $check .="<tr><td>DB-Server</td><td>X</td><td><font color=#00D000>" . DBSERVER . "</font><font color='#0000FF'> (is this your DB-Server)</font></td></tr>";
+	else $check .="<tr><td>DB-Server</td><td></td><td><font color=#FF0000>DBSERVER is not defined</font></td></tr>";
+# Mapbender-DB
+	if (DB !="<database>" && DB != "" && defined('DB')) $check .="<tr><td>Mapbender-DB</td><td>X</td><td><font color=#00D000>" . DB . "</font><font color='#0000FF'> (is this your Mapbender-DB)</font></td></tr>";
+	else $check .="<tr><td>Mapbender-DB</td><td></td><td><font color=#FF0000>DB is not defined</font></td></tr>";
+# DB Owner
+	if (OWNER !="<owner>" && OWNER != "" && defined('OWNER')) $check .="<tr><td>DB-Owner</td><td>X</td><td><font color=#00D000>" . OWNER . "</font><font color='#0000FF'> (is this your DB-Owner)</font></td></tr>";
+	else $check .="<tr><td>DB-Owner</td><td></td><td><font color=#FF0000>OWNER is not defined</font></td></tr>";
+# PREPAREDSTATEMENTS
+	if (defined('PREPAREDSTATEMENTS')){
+		if (PREPAREDSTATEMENTS == true){
+			if (phpversion()<'5.1.0') $check.="<tr><td width=\"25%\">PREPAREDSTATEMENTS</td><td width=\"10\"></td><td><font color=\"#ff0000\">PREPAREDSTATEMENTS =set to 'true' and php version " . phpversion() . " is incompatible<br>set PREPAREDSTATEMENTS to false or update php to >=5.1</td></tr>";
+			else $check .="<tr><td width=\"25%\">PREPAREDSTATEMENTS</td><td width=\"10\">X</td><td><font color=#00D000>set to 'true' and php " . phpversion() . " should work</td></tr>";
+		}
+		else{
+			if (phpversion()<'5.1.0') $check .="<tr><td width=\"25%\">PREPAREDSTATEMENTS-<br>compatibility</td><td width=\"10\">X</td><td><font color=#00D000>set to 'false' and php " . phpversion() . " should work </font><font color='#0000FF'> (but think about upgrading to php 5.1)</td></tr>";
+			else $check .="<tr><td width=\"25%\">PREPAREDSTATEMENTS-<br>compatibility</td><td width=\"10\">X</td><td><font color=#00D000>set to 'false' and php " . phpversion() . " should work <font color=#0000FF>(but you can set PREPAREDSTATEMENTS to 'true')</font></td></tr>";
+		}
+	}
+    else $check .="<tr><td width=\"25%\">PREPAREDSTATEMENTS-<br>compatibility</td><td width=\"10\"></td><td><font color=#FF0000>PREPAREDSTATEMENTS is not defined</td></tr>";
+# CHARSET
+	if (CHARSET != "" && defined('CHARSET')) $check .="<tr><td>CHARSET</td><td>X</td><td><font color=#00D000>" . CHARSET . "</font><font color='#0000FF'></font></td></tr>";
+	else $check .="<tr><td>CHARSET</td><td></td><td><font color=#FF0000>CHARSET is not defined</font></td></tr>";
+# TMPDIR
+	if (TMPDIR != "" && defined('TMPDIR')) $check .="<tr><td>TMPDIR</td><td>X</td><td><font color=#00D000>" . TMPDIR . "</font><font color='#0000FF'></font></td></tr>";
+	else $check .="<tr><td>TMPDIR</td><td></td><td><font color=#FF0000>TMPDIR is not defined</font></td></tr>";
+# OWSPROXY
+	if (OWSPROXY != "" && defined('OWSPROXY')) $check .="<tr><td>OWSPROXY</td><td>X</td><td><font color=#00D000>" . OWSPROXY . "</font><font color=#0000FF> (Is this the right URL to your OWSPROXY?)</font></td></tr>";
+	else $check .="<tr><td>OWSPROXY</td><td></td><td><font color=#FF0000>OWSPROXY not defined</font><font color=#0000FF>(if you want to camouflage your WMS, you should think about OWSPROXY!)</font></td></tr>";
+#AUTO_UPDATE
+	if (AUTO_UPDATE != "" && defined('AUTO_UPDATE')){
+		if (AUTO_UPDATE == '1'){ 
+			$check .="<tr><td>AUTO_UPDATE</td><td>X</td><td>set to 1: will update all out-of-date WMS automatically<td></tr>";
+			if (!TIME_LIMIT || TIME_LIMIT == "")$check .="<tr><td>TIME_LIMIT</td><td></td><td><font color=#FF0000>you should define a TIME_LIMIT for the AUTO_UPDATE funtionallity</font><td></tr>";
+		}
+		elseif (AUTO_UPDATE == '0') $check .="<tr><td>AUTO_UPDATE</td><td>X</td><td><font color=#00D000>set to 0:</font> <font color=#0000FF>(see the result of the test and update WMS manually)</font></td></tr>";
+		else $check .="<tr><td>AUTO_UPDATE</td><td></td><td><font color=#FF0000>set to " . AUTO_UPDATE . ": this configuration value is not supported(as yet!)</td></tr>";
+	} 			    	
+	else $check .="<tr><td>AUTO_UPDATE</td><td></td><td><font color=#FF0000>AUTO_UPDATE not defined </font><font color=#0000FF>(for the wms monitoring 	functionality you have to define this constant)</font></td></tr>";
+# ERROR LOGGING
+	$testLog = new mb_notice("This is a test run by the Mapbender setup script.");
+	if ($testLog->result) {
+		$check .="<tr><td>ERROR LOGGING</td><td>X</td><td><font color=#00D000>" . $testLog->message . "</font></td></tr>";		
+	}
+	else {
+		$check .="<tr><td>ERROR LOGGING</td><td></td><td><font color=#FF0000>" . $testLog->message . "</font></td></tr>";		
+	}
+#LOG_LEVEL (off,error,warning,all)
+	if (LOG_LEVEL !="" && defined('LOG_LEVEL')){
+		if (LOG_LEVEL =='off') $check .="<tr><td>LOG_LEVEL</td><td>X</td><td>switched off: <font color=#FF0000>-no Mapbender-errors logging</font><td></tr>"; 
+		elseif (LOG_LEVEL =='error') $check .="<tr><td>LOG_LEVEL</td><td>X</td><td><font color=#00D000>set to 'error': </font><font color=#0000FF>-Mapbender-errors will be logged</font><td></tr>";
+		elseif (LOG_LEVEL =='warning') $check .="<tr><td>LOG_LEVEL</td><td>X</td><td><font color=#00D000>set to 'warning: </font><font color=#0000FF>- Mapbender-errors and -warnings will be logged</font><td></tr>";
+		elseif (LOG_LEVEL =='notice') $check .="<tr><td>LOG_LEVEL</td><td>X</td><td><font color=#00D000>set to 'notice': </font><font color=#0000FF>-really every little notice will be logged!!</font><td></tr>";
+		elseif (LOG_LEVEL =='all') $check .="<tr><td>LOG_LEVEL</td><td>X</td><td><font color=#00D000>set to 'all': </font><font color=#0000FF>-really every little notice will be logged!!</font><td></tr>";
+		else $check .="<tr><td>LOG_LEVEL</td><td></td><td><font color=#FF0000>set to " . LOG_LEVEL . ": this configuration value is not supported (as yet!)</font></td></tr>";		
+	}
+# PORTAL
+	if (defined('PORTAL')){
+		if (PORTAL == true) $check .="<tr><td width=\"25%\">PORTAL</td><td width=\"10\">X</td><td><font color=#00D000>true</font><font color='#0000FF'> (Users can create theirs own accounts)</font></td></tr>";
+		else $check .="<tr><td width=\"25%\">PORTAL</td><td width=\"10\">X</td><td><font color=#00D000>false<font color=#0000FF> (Users can't create their own accounts at the moment)</font></td></tr>";
+	}
+    else $check .="<tr><td width=\"25%\">PORTAL</td><td width=\"10\"></td><td><font color=#FF0000>PORTAL is not defined<font color=#0000FF>(Maybe an old configuration file?)</font></td></tr>";
+# MAXLOGIN
+	if (MAXLOGIN != "" && defined('MAXLOGIN')) $check .="<tr><td>MAXLOGIN</td><td>X</td><td><font color=#00D000>" . MAXLOGIN . "</font><font color='#0000FF'></font></td></tr>";
+	else $check .="<tr><td>MAXLOGIN</td><td></td><td><font color=#0000FF>MAXLOGIN is not defined</font></td></tr>";		    	
+# LOGIN
+	if (defined('LOGIN')) $check .= "<tr height=10/><tr><td>Login-Path</td><td colspan=2><a href='" . LOGIN . "' target='_blank'>" . LOGIN . "</a><br><font color=#0000FF> (If this link doesn't work, check your url to 'Login' in your mapbender.conf<br>Perhaps an alias in your httpd.conf will solve the problem, too)</td>";
+	else $check .= "<tr height=10/><tr><td>Login-Path</td><td colspan=2><font color=#FF0000>LOGIN is not defined</font></td>";
+	echo $check;	
+	echo "<tr height=10/><tr bgcolor=#F0F0F0><td colspan=4>Legend:<br><font color=#FF0000>red = maybe your Mapbender will run into trouble</font><br><font color=#0000FF>blue = just a tip</font><br><font color=#00D000>green = seems to be alright</font></td></tr>";
+	echo "</table>";
+	echo "<tr><td colspan=3 align=right>for further informations visit <a href=\"http://www.mapbender.org/index.php/Installation_en\" target=\"_blank\"><font align=\"left\" style=\"font-weight:bold\" color=\"#000000\">&nbsp;Ma</font><font color=\"#0000CE\" style=\"font-weight:bold\">p</font><font color=\"#C00000\" style=\"font-weight:bold\">b</font><font color=\"#000000\" style=\"font-weight:bold\">ender</font> installation instructions</a></td></tr>";
+	?>
+	</td></tr>
+</table>
+</body> 
+</html>
\ No newline at end of file

Added: branches/print_dev/tools/mod_monitorCapabilities_main.php
===================================================================
--- branches/print_dev/tools/mod_monitorCapabilities_main.php	                        (rev 0)
+++ branches/print_dev/tools/mod_monitorCapabilities_main.php	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1,213 @@
+<?php
+# $Id: mod_monitorCapabilities_main.php 1240 2007-10-24 09:27:00Z baudson $
+# http://www.mapbender.org/index.php/Monitor_Capabilities
+# 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.
+//require_once(dirname(__FILE__) . "/../php/mb_validateSession.php");
+require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+//session_start();
+//import_request_variables("PG");
+require_once(dirname(__FILE__)."/../classes/class_administration.php");
+$con = db_connect($DBSERVER,$OWNER,$PW);
+db_select_db(DB,$con);
+$admin = new administration();
+
+//$user = "root";
+$user = "";
+$gui = "";
+$cl = 0;
+
+
+function getConjunctionCharacter($onlineresource){
+	if(strstr($onlineresource, "?")) {
+		$lastChar = substr($onlineresource,strlen($onlineresource)-1, 1);  
+		if ($lastChar == "?" || $lastChar == "&") {return "";}
+		else{return "&";}
+	}
+	else {return "?";} 
+}
+
+// retrieve username and gui_id
+if ($_REQUEST['user']) {
+	$cl = 0;
+	//browser
+	echo "browser";
+	$user = $_REQUEST['user'];
+	$gui = $_REQUEST['gui'];
+}
+elseif ($_SERVER["argv"][1]) {
+	$cl = 1;
+	//command line
+	$p1 = $_SERVER["argv"][1];
+	$p2 = $_SERVER["argv"][2];
+	if (substr($p1, 0,5) == "user:") {
+		$user = substr($p1, 5);
+		if (substr($p2, 0,4) == "gui:") {
+			$gui = substr($p2, 4);
+		}
+	}
+}
+else {
+	echo "Please specify a username!\n";die();
+}
+
+$userid = $admin->getUserIdByUserName($user);
+
+/*
+ * if the current user is a valid user...
+ */
+if ($userid) {
+	$ownguis = $admin->getGuisByOwner($userid,true);
+	/*
+	 * if monitoring is restricted to a single GUI...
+	 */
+	if ($gui) {
+		// ... abort if the GUI doesn't exist
+		if (!$admin->guiExists($gui)) {
+			echo "GUI " . $gui . " doesn't exist.\n"; die();
+		}
+		// ... add the GUI to the array of GUIs that will be monitored
+		elseif (in_array($gui, $ownguis)) {
+			$ownguis = array($gui);
+		} 
+		// ... abort if the GUI is not owned by the current user
+		else {
+			echo "User " . $user . " is not owner of GUI " . $gui . ".\n"; die();
+		}
+	}
+}
+/*
+ * if current user is not a valid user, abort
+ */
+else {
+	echo $user . " is not a valid username.\n";	die();
+}
+
+/**
+ * Array of WMS IDs. These are the WMS that the user owns.
+ */
+$wms_id_own = $admin->getWmsByOwnGuis($ownguis);
+
+// initialise monitoring processes
+echo "Starting monitoring cycle...\n\n";
+if ($cl == 0) echo "<br/><br/>";
+echo "WMS services are requested for availability.\n"; 
+if ($cl == 0) echo "<br/>";
+echo "Capabilities documents are requested and all changes synchronized with the database cache.\n\n";
+if ($cl == 0) echo "<br/><br/>";
+
+$time = strval(time()-2);
+
+for ($k=0; $k<count($wms_id_own); $k++) {
+	$sql = "SELECT wms_upload_url FROM wms WHERE wms_id = $1";
+	$v = array($wms_id_own[$k]);
+	$t = array('i');
+	$res = db_prep_query($sql,$v,$t);
+	$someArray = db_fetch_row($res);
+	$url = $someArray[0];
+	
+	if (!$upload_url || $upload_url == "") {
+		$sql = "SELECT wms_version, wms_getcapabilities FROM wms WHERE wms_id = $1";
+		$v = array($wms_id_own[$k]);
+		$t = array('i');
+		$res = db_prep_query($sql,$v,$t);
+		$someArray = db_fetch_row($res);
+
+		$version = $someArray[0];
+		$capabilities = $someArray[1]; 	
+		if ($version == "1.0.0" ) {
+			$url = $capabilities . getConjunctionCharacter($capabilities) . "REQUEST=capabilities&WMTVER=1.0.0";
+		}
+		else {
+			$url = $capabilities . getConjunctionCharacter($capabilities) . "REQUEST=GetCapabilities&SERVICE=WMS&VERSION=" . $version;	
+		}
+	}
+	
+	$sql = "INSERT INTO mb_monitor (upload_id, fkey_wms_id, status, status_comment, timestamp_begin, timestamp_end, upload_url, updated) ";
+	$sql .= "VALUES ($1, $2, $3, $4, $5, $6, $7, $8)";
+	$v = array($time,$wms_id_own[$k],"-2","Monitoring is still in progress...", time(),time(),$url,"0");
+	$t = array('s', 'i', 's', 's', 's', 's', 's', 's');
+	$res = db_prep_query($sql,$v,$t);
+}
+
+for ($k=0; $k<count($wms_id_own); $k++) {
+
+	if (intval(AUTO_UPDATE)) {
+		$exec = PHP_PATH . "php5 mod_monitorCapabilities_write.php ".$wms_id_own[$k]." ".$time." 1 > ../tmp/output_".$time."_".$wms_id_own[$k].".txt &";
+	}
+	else {
+		$exec = PHP_PATH . "php5 mod_monitorCapabilities_write.php ".$wms_id_own[$k]." ".$time." 0 > ../tmp/output_".$time."_".$wms_id_own[$k].".txt &";
+	}
+	exec($exec);
+}
+echo "Monitoring Cycle completed (total: " . count($wms_id_own) . " wms).\n\n";
+if ($cl == 0) echo "<br/><br/>";
+set_time_limit(2*TIME_LIMIT);
+
+// wait until all monitoring processes are finished
+echo "please wait " . TIME_LIMIT . " seconds for the monitoring to finish...\n\n";
+if ($cl == 0) echo "<br/><br/>";
+sleep(TIME_LIMIT);
+
+$sql = "SELECT fkey_wms_id, status, status_comment, timestamp_begin, timestamp_end, upload_url FROM mb_monitor WHERE upload_id = $1";
+$v = array($time);
+$t = array('i');
+$res = db_prep_query($sql,$v,$t);
+
+$cnt=0;
+while ($row = db_fetch_array($res)) {
+	$status[$cnt] = intval(db_result($res,$cnt,"status"));
+	$wms_id[$cnt] = db_result($res,$cnt,"fkey_wms_id");
+	$comment[$cnt] = db_result($res,$cnt,"status_comment");
+	$upload_url[$cnt] = db_result($res,$cnt,"upload_url");
+	$timestamp_begin[$cnt] = db_result($res,0,"timestamp_begin");
+	$timestamp_end[$cnt] = db_result($res,0,"timestamp_end");
+	$cnt++;
+}
+
+$body = "";
+for ($i=0; $i<$cnt; $i++) {
+	// if monitoring is still in progress and time limit has expired, update database
+	if ($status[$i] == -2 && intval(time())-intval($timestamp_begin[$i]) > intval(TIME_LIMIT)) {
+		$comment[$i] = "Monitoring process timed out.";
+		$status[$i] = -1;	
+		$new_sql = "UPDATE mb_monitor SET status = '-1', image = '-1', status_comment = 'Monitoring process timed out.', timestamp_end = $1 WHERE fkey_wms_id = $2 AND upload_id = $3";
+		$new_v = array((intval($upload_id[$i])+intval(TIME_LIMIT)), $wms_id[$i], $time);
+		$new_t = array('s', 'i', 's');
+		$new_res = db_prep_query($new_sql,$new_v,$new_t);
+	}
+	// compose mail message
+	echo $wms_id[$i] . ": status " . $status[$i] . "\n";
+	if ($cl == 0) echo "<br/><br/>";
+	if ($status[$i] == -1) {
+		$body .= $admin->getWmsTitleByWmsId($wms_id[$i]) . " (" . $wms_id[$i] . "): " . $comment[$i] . "\n\n";
+	}
+}
+
+// Send an email to the user
+if ($body) {
+	$error_msg = "";
+	if ($admin->getEmailByUserId($userid)) {
+//		$admin->sendEmail(MAILADMIN, MAILADMINNAME, $admin->getEmailByUserId($userid), $user, "WMS monitor report " . date("F j, Y, G:i:s", $time), utf8_decode($body), &$error_msg);
+	}
+	else {
+		$error_msg = "Email address of user '" . $admin->getUserNameByUserId($userid) . "' unknown!\n";
+	}
+	if ($error_msg) {
+		echo "\n ERROR: " . $error_msg;
+	}
+}
+?>

Added: branches/print_dev/tools/mod_monitorCapabilities_read.php
===================================================================
--- branches/print_dev/tools/mod_monitorCapabilities_read.php	                        (rev 0)
+++ branches/print_dev/tools/mod_monitorCapabilities_read.php	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1,246 @@
+<?php
+# $Id: mod_monitorCapabilities_read.php 1283 2007-10-25 15:20:25Z baudson $
+# http://www.mapbender.org/index.php/Monitor_Capabilities
+# 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.
+#require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+require_once(dirname(__FILE__)."/../classes/class_administration.php");
+session_start();
+import_request_variables("PG");
+$con = db_connect($DBSERVER,$OWNER,$PW);
+db_select_db(DB,$con);
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html>
+<head>
+<meta http-equiv="cache-control" content="no-cache">
+<meta http-equiv="pragma" content="no-cache">
+<meta http-equiv="expires" content="0">
+<?php
+echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
+?>
+</head>
+<body>
+<?php
+$admin = new administration();
+
+// update selected wms
+for ($i=0; $i < $_POST['cbs']; $i++) {
+	$upd_wmsid = intval($_POST['cb'.$i]); 
+	if ($upd_wmsid) {
+		
+		$now = time();
+		$sql = "UPDATE mb_monitor SET status = '-2', status_comment = 'Monitoring is still in progress...', timestamp_begin = $1, timestamp_end = $2 WHERE upload_id = $3 AND fkey_wms_id = $4";
+		$v = array($now, $now, $_POST['upl_id'.$i], $upd_wmsid);
+		$t = array('s', 's', 's', 'i');
+		$res = db_prep_query($sql,$v,$t);
+		
+		$exec = PHP_PATH . "php mod_monitorCapabilities_write.php ".$upd_wmsid." ".$_POST['upl_id'.$i]." 1 > output.txt &";
+		exec($exec);
+	}
+}
+
+$sql = "SELECT DISTINCT fkey_wms_id FROM mb_monitor";
+$res = db_prep_query($sql, array(), array());
+$cnt = 0;
+$wms = array();
+while(db_fetch_row($res)){
+	$wms[$cnt] = db_result($res,$cnt,"fkey_wms_id");
+	$cnt++;
+}
+
+$status = array();
+$upload_id = array();
+for ($i=0; $i<count($wms); $i++) {
+	$wms_id[$wms[$i]] = $wms[$i];
+	// get upload id
+	$sql = "SELECT MAX(upload_id) FROM mb_monitor WHERE fkey_wms_id = $1";
+	$v = array($wms[$i]);
+	$t = array('i');
+	$res = db_prep_query($sql,$v,$t);
+	$upload_id[$wms[$i]] = db_result($res,0,0);
+
+	$sql = "SELECT AVG(timestamp_begin), AVG(timestamp_end) FROM mb_monitor WHERE fkey_wms_id = $1 AND NOT status = '-1' AND NOT status = '-2'";
+	$v = array($wms[$i]);
+	$t = array('i');
+	$res = db_prep_query($sql,$v,$t);
+	if (db_result($res,0,1) == 0 && db_result($res,0,0) == 0) {
+		$avg_response_time[$wms[$i]] = NULL;	
+	}
+	else {
+		$avg_response_time[$wms[$i]] = round(db_result($res,0,1)-db_result($res,0,0), 1);
+	}
+	
+	$sql = "SELECT status, status_comment, timestamp_begin, timestamp_end, upload_url, updated, image, map_url FROM mb_monitor ";
+	$sql .= "WHERE upload_id = $1 AND fkey_wms_id = $2 ORDER BY status, status_comment, timestamp_end, fkey_wms_id";
+	$v = array($upload_id[$wms[$i]], $wms_id[$wms[$i]]);
+	$t = array('s', 'i');
+	$res = db_prep_query($sql,$v,$t);
+
+	$status[$wms[$i]] = intval(db_result($res,0,"status"));
+	$comment[$wms[$i]] = db_result($res,0,"status_comment");
+	$timestamp_begin[$wms[$i]] = db_result($res,0,"timestamp_begin");
+	$timestamp_end[$wms[$i]] = db_result($res,0,"timestamp_end");
+	$upload_url[$wms[$i]] = db_result($res,0,"upload_url");
+	$updated[$wms[$i]] = db_result($res,0,"updated");
+	$mapurl[$wms[$i]] = db_result($res,0,"map_url");
+	$image[$wms[$i]] = db_result($res,0,"image");
+	
+ 	if ($status[$wms[$i]] == -2 && intval(time())-intval($timestamp_begin[$wms[$i]]) > intval(TIME_LIMIT)) {
+		$comment[$wms[$i]] = "Monitoring process timed out.";	
+		
+		$new_sql = "UPDATE mb_monitor SET status = '-1', status_comment = 'Monitoring process timed out.', timestamp_end = $1 WHERE fkey_wms_id = $2 AND upload_id = $3";
+		$new_v = array((intval($upload_id[$wms[$i]])+intval(TIME_LIMIT)), $wms_id[$wms[$i]], $upload_id[$wms[$i]]);
+		$new_t = array('s', 'i', 's');
+		$new_res = db_prep_query($new_sql,$new_v,$new_t);
+	}
+
+	$sql = "SELECT COUNT(upload_id) FROM mb_monitor WHERE fkey_wms_id = $1 AND NOT status = '-2'";
+	$v = array($wms[$i]);
+	$t = array('i');
+	$res = db_prep_query($sql, $v, $t);
+	$total[$wms[$i]] = db_result($res, 0, 0);
+
+	$sql = "SELECT COUNT(upload_id) FROM mb_monitor WHERE fkey_wms_id = $1 AND status = '-1'";
+	$v = array($wms[$i]);
+	$t = array('i');
+	$res = db_prep_query($sql, $v, $t);
+	$fail = db_result($res, 0, 0);
+	
+	$percentage[$wms[$i]] = 100 - round(100*floatval($fail)/floatval($total[$wms[$i]]), 1);
+}
+
+
+$newArray = $status;
+if ($_GET['sortby']) {
+	if ($_GET['sortby'] == "wms") {
+		$newArray = $wms_id;
+		asort($newArray);
+	}
+	elseif ($_GET['sortby'] == "status") {
+		$newArray = $status;
+		asort($newArray);
+	}
+	elseif ($_GET['sortby'] == "avgresp") {
+		$newArray = $avg_response_time;
+		asort($newArray);
+	}
+	elseif ($_GET['sortby'] == "avail") {
+		$newArray = $percentage;
+		arsort($newArray);
+	}
+	elseif ($_GET['sortby'] == "last") {
+		$newArray = $upload_id;
+		arsort($newArray);
+	}
+	elseif ($_GET['image'] == "last") {
+		$newArray = $image;
+		arsort($newArray);
+	}
+}
+
+
+
+$str = "<span style='font-size:30'>monitoring results</span><hr><br>\n";
+$str .= "<form name = 'form1' method='post' action='".$PHP_SELF."?sortby=".$_GET['sortby']."'>\n\t";
+$str .= "\n\t<input type=submit value='update selected WMS'>\n";
+$str .= "\n\t<input type=button onclick=\"self.location.href='".$PHP_SELF."?sortby=".$_GET['sortby']."'\" value='refresh'>\n<br/><br/>\n	";
+$str .= "<table cellpadding=10 cellspacing=0 border=0>";
+$str .= "<tr bgcolor='#dddddd'><th></th><th align='left'><a href='".$PHP_SELF."?sortby=wms'>wms</a></th>";
+$str .= "<th align='left' colspan = 2><a href='".$PHP_SELF."?sortby=status'>current status</a></th>";
+$str .= "<th align='left'><a href='".$PHP_SELF."?sortby=image'>image</a></th>";
+$str .= "<th align='left'><a href='".$PHP_SELF."?sortby=avgresp'>avg. response time</a></th>";
+$str .= "<th align='left'><a href='".$PHP_SELF."?sortby=avail'>overall availability</a></th><th></th></tr>";
+
+$cnt = 0;
+foreach ($newArray as $k => $value) {
+	$img = "stop.bmp";
+	if ($status[$k]==0) $img = "wait.bmp";
+	elseif ($status[$k]==1) $img = "go.bmp";
+
+	if ($updated[$k] == "0" && $status[$k] == 0) $fill = "checked"; else $fill = "disabled";
+
+	if (fmod($cnt, 2) == 1) {
+		$str .= "\n\t\t<tr bgcolor='#e6e6e6'>";
+	}
+	else {
+		$str .= "\n\t\t<tr bgcolor='#f0f0f0'>";
+	}
+	$str .= "\n\t\t\t<td><input name='cb".$cnt."' value='" . $wms_id[$k] . "' type=checkbox ".$fill." /><input type=hidden name='upl_id".$cnt."' value='".$upload_id[$k]."'></td>";
+	$str .= "\n\t\t\t<td valign='top'><b>" . $wms_id[$k] . "</b><br>" . $admin->getWmsTitleByWmsId($wms_id[$k]) . "</td>";
+	$str .= "\n\t\t\t<td valign='top'><a href='".$upload_url[$k]."' target=_blank><img title='Connect to service' border=0 src = '../img/trafficlights/". $img. "'></a></td>";
+	$str .= "\n\t\t\t<td valign='top'>" . $comment[$k] . "<br><div style='font-size:12'>".date("F j, Y, G:i:s", $upload_id[$k])."</div></td>";
+	$str .= "\n\t\t\t<td valign='top'>";
+
+	$str .= "<table bgcolor='black' border=1 cellspacing=1 cellpadding=0><tr><td height=20 width=20 align=center valign=middle bgcolor='";
+
+	if ($image[$k] == -1) {
+		$str .= "red";
+	}
+	elseif ($image[$k] == 0) {
+		$str .= "yellow";
+	}
+	elseif ($image[$k] == 1) {
+		$str .= "green";
+	}
+
+	if ($image[$k] != -1) {
+		$str .= "'><a href='".$mapurl[$k]."'>o</a></td></tr></table></td>";
+	}
+	else {
+		$str .= "'><a href='".$mapurl[$k]."'>x</a></td></tr></table></td>";
+	}
+
+	$str .= "\n\t\t\t<td valign='top' align = 'left'>";
+	if ($avg_response_time[$k] == NULL) {
+		$str .= "n/a";
+	}
+	else {
+		$str .= $avg_response_time[$k] . " s";
+	}
+	$str .= "</td>";
+	$str .= "\n\t\t\t<td valign='top'><b>" . $percentage[$k] . " %</b>&nbsp;&nbsp;<span style='font-size:12'>(" . $total[$k] . " cycles)</span><br>";
+	$str .= "<table bgcolor='black' border=1 cellspacing=1 cellpadding=0><tr>";
+	$val = $percentage[$k];
+	for ($i=0; $i<10; $i++) {
+		if ($val>=10) {
+			$str .= "<td height=10 width='10' bgcolor='red'></td>";
+			$val-=10;
+		}
+		elseif($val>0){
+			$str .= "<td height=10 width='" . round($val) . "' bgcolor='red'></td>";
+			if (round($val) < 10) {
+				$str .= "<td height=10 width='" . (9-round($val)) . "' bgcolor='white'></td>";
+			}
+			$val=-1;
+		}
+		else {
+			$str .= "<td height=10 width='10' bgcolor='white'></td>";
+		}
+	}
+	$str .= "</tr></table></td>";
+	
+#	$str .= "\n\t\t\t<td><a href='output_".$wms_id[$k]."_".$max.".txt' target=_blank>log</a></td>";
+	$str .= "\n\t\t<td><input type=button value='details' onclick=\"var newWindow = window.open('../tools/mod_monitorCapabilities_read_single.php?wmsid=".$wms_id[$k]."','wms','width=500,height=700,scrollbars');newWindow.href.location='test.php'\"></td></tr>";
+	$cnt++;
+}
+$str .= "\n\t</table>\n\t<br/><input type=hidden name=cbs value='".$cnt."'>\n</form>";
+echo $str;
+
+?>
+</body></html>

Added: branches/print_dev/tools/mod_monitorCapabilities_read_single.php
===================================================================
--- branches/print_dev/tools/mod_monitorCapabilities_read_single.php	                        (rev 0)
+++ branches/print_dev/tools/mod_monitorCapabilities_read_single.php	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1,102 @@
+
+<?php
+# $Id: mod_monitorCapabilities_read_single.php 76 2006-08-15 12:25:34Z heuser $
+# http://www.mapbender.org/index.php/Monitor_Capabilities
+# 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.
+#require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+require_once(dirname(__FILE__)."/../classes/class_administration.php");
+session_start();
+import_request_variables("PG");
+$con = db_connect($DBSERVER,$OWNER,$PW);
+db_select_db(DB,$con);
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html>
+<head>
+<meta http-equiv="cache-control" content="no-cache">
+<meta http-equiv="pragma" content="no-cache">
+<meta http-equiv="expires" content="0">
+<?php
+echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
+?>
+</head>
+<body>
+<?php
+$admin = new administration();
+
+if ($_GET['wmsid']) {
+	$wms_id = intval($_GET['wmsid']); 
+}
+else {
+	echo "Invalid WMS ID.";
+	die;
+}
+
+$sql = "SELECT upload_id, status, status_comment, timestamp_begin, timestamp_end, upload_url, updated FROM mb_monitor ";
+$sql .= "WHERE fkey_wms_id = $1 AND NOT status = '-2' ORDER BY upload_id DESC";
+$v = array($wms_id);
+$t = array('i');
+$res = db_prep_query($sql,$v,$t);
+
+$cnt=0;
+while ($row = db_fetch_array($res)) {
+	$upload_id[$cnt] = db_result($res,$cnt,"upload_id");
+	$status[$cnt] = intval(db_result($res,$cnt,"status"));
+	$comment[$cnt] = db_result($res,$cnt,"status_comment");
+	$timestamp_begin = db_result($res,$cnt,"timestamp_begin");
+	$timestamp_end = db_result($res,$cnt,"timestamp_end");
+	$upload_url[$cnt] = db_result($res,$cnt,"upload_url");
+	if ($status[$cnt] == '0' || $status[$cnt] == '1') {
+		$response_time[$cnt] = strval($timestamp_end-$timestamp_begin) . " s"; 
+	}
+	else {
+		$response_time[$cnt] = "n/a"; 
+	}
+	$cnt++;
+}
+	
+
+$str = "<span style='font-size:30'>monitoring results</span><hr><br>\n";
+$str .= "<b>" . $wms_id . "</b><br>" . $admin->getWmsTitleByWmsId($wms_id) . "<br><br><br>\n";
+$str .= "<table cellpadding=10 cellspacing=0 border=0>";
+$str .= "<tr bgcolor='#dddddd'><th align='left'>date</th><th align='left' colspan = 2>status</th><th align='center'>response time</th></tr>";
+
+for ($k=0; $k<count($upload_id); $k++) {
+	$img = "stop.bmp";
+	if ($status[$k]==0) $img = "wait.bmp";
+	elseif ($status[$k]==1) $img = "go.bmp";
+
+	if (fmod($k, 2) == 1) {
+		$str .= "\n\t\t<tr bgcolor='#e6e6e6'>";
+	}
+	else {
+		$str .= "\n\t\t<tr bgcolor='#f0f0f0'>";
+	}
+	$str .= "\n\t\t\t<td>".date("F j, Y, G:i:s", $upload_id[$k])."</td>";
+	$str .= "\n\t\t\t<td><a href='".$upload_url[$k]."' target=_blank><img title='Connect to service' border=0 src = '../img/trafficlights/". $img. "'></a></td>";
+	$str .= "\n\t\t\t<td>" . $comment[$k] . "</td>";
+	$str .= "\n\t\t\t<td align='center'>" . $response_time[$k] . "</td>";
+	
+#	$str .= "\n\t\t\t<td><a href='output_".$wms_id[$k]."_".$max.".txt' target=_blank>log</a></td>";
+}
+$str .= "\n\t</table>\n\t";
+echo $str;
+
+?>
+</body></html>
\ No newline at end of file

Added: branches/print_dev/tools/mod_monitorCapabilities_write.php
===================================================================
--- branches/print_dev/tools/mod_monitorCapabilities_write.php	                        (rev 0)
+++ branches/print_dev/tools/mod_monitorCapabilities_write.php	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1,41 @@
+<?php
+# $Id: mod_monitorCapabilities_write.php 1235 2007-10-23 15:42:55Z baudson $
+# http://www.mapbender.org/index.php/Monitor_Capabilities
+# 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.
+
+session_start();
+
+require_once(dirname(__FILE__)."/../classes/class_monitor.php");
+
+/*
+ * incoming parameters from command line
+ */
+if ($_SERVER["argc"] != 4) {
+	echo "Insufficient arguments! Monitoring aborted.";
+	die();
+}
+
+$wmsId = $_SERVER["argv"][1];
+$uploadId = $_SERVER["argv"][2];
+$autoUpdate = intval($_SERVER["argv"][3]);
+
+$monitor = new Monitor($wmsId, $uploadId, $autoUpdate);
+
+echo $monitor;	
+
+$monitor->updateInDB();
+?>
\ No newline at end of file

Added: branches/print_dev/tools/send_post.php
===================================================================
--- branches/print_dev/tools/send_post.php	                        (rev 0)
+++ branches/print_dev/tools/send_post.php	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1,79 @@
+<html>
+<head>
+<?php
+# $Id: send_post.php 1601 2007-08-06 08:30:31Z christoph $
+# http://www.mapbender.org/index.php/send_post.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.
+
+require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
+?>
+<title>Test WFS-T operated by CCGIS</title>
+</head>
+<?php
+if(isset($_REQUEST["filter"]) && $_REQUEST["filter"] != "" && $_REQUEST["onlineresource"] != ''){
+	$arURL = parse_url($_REQUEST["onlineresource"]);
+	$host = $arURL["host"];
+	$port = $arURL["port"]; 
+	if($port == ''){
+		$port = 80;	
+	}
+	$path = $arURL["path"];
+	$method = "POST";
+
+	$data = stripslashes($_REQUEST["filter"]);
+
+	$out = sendToHost($host,$port,$method,html_entity_decode($path),$data);
+	echo "-------------------get-------------<br>";
+	echo htmlentities($out);
+	echo "-------------------end of get-------------<br>";
+}
+function sendToHost($host,$port,$method,$path,$data)
+{
+	echo "-------------------send-------------<br>";
+	echo $host."<br>".$method."<br>".$path."<br>".htmlspecialchars($data)."<br>";
+	echo "-------------------end of send-------------<br>";
+	$buf = '';
+    if (empty($method)) {
+        $method = 'POST';
+    }
+    $method = mb_strtoupper($method);
+    $fp = fsockopen($host, $port);
+    fputs($fp, "$method $path HTTP/1.1\r\n");
+    fputs($fp, "Host: $host\r\n");
+    fputs($fp,"Content-type: application/x-www-form-urlencoded\r\n");
+    fputs($fp, "Content-length: " . strlen($data) . "\r\n");
+    fputs($fp, "Connection: close\r\n\r\n");
+	fputs($fp, $data);
+    while (!feof($fp)) {
+        $buf .= fgets($fp,4096);
+    }
+    fclose($fp);
+    return $buf;
+}
+?>
+<body>
+<form action='wfs_post.php' method='post'>
+OnlineResource:
+<input name='onlineresource' type='text' size='100' value='<?php echo $_REQUEST["onlineresource"]; ?>'>
+<br>
+Filter:
+<textarea name='filter' cols='100' rows='10'><?php echo stripslashes($_REQUEST["filter"]); ?></textarea>
+<input type='submit' value='ok'>
+</form>
+</body>
+</html>
\ No newline at end of file

Added: branches/print_dev/tools/url_code.php
===================================================================
--- branches/print_dev/tools/url_code.php	                        (rev 0)
+++ branches/print_dev/tools/url_code.php	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<?php
+# $Id: url_code.php 916 2006-11-21 10:54:10Z christoph $
+# http://www.mapbender.org/index.php/url_code.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.
+
+require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
+?>
+<title>Url-Encode and -Decode</title>
+</head>
+<body>
+<form method='POST'>
+  <textarea name="c" rows="10" cols="100"><?php  if($_REQUEST["c"]){echo $_REQUEST["c"];}?></textarea>
+  <br>
+  <input type='submit' name='encode' value='encode'>
+  <br>
+  <input type='submit' name='decode' value='decode'>  
+</form>
+<hr>
+<textarea rows="10" cols="100">
+<?php
+if($_REQUEST["encode"]){
+echo urlencode($_REQUEST["c"]);
+}
+if($_REQUEST["decode"]){
+echo urldecode($_REQUEST["c"]);	
+}
+?>
+</textarea>
+</body>
+</html>
\ No newline at end of file

Added: branches/print_dev/tools/wms_extent/checksum.json
===================================================================
--- branches/print_dev/tools/wms_extent/checksum.json	                        (rev 0)
+++ branches/print_dev/tools/wms_extent/checksum.json	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1 @@
+{"info.html":"790a1e3c8b3095e632fb808ec00c9784c7f7b7b7","wms_geometry.sql":"948382657a0f8dbcfb1ca40471f4a0cea5fa3923","mapbender_wms.map":"0093497a61f6a07153b00aab1d5e4538d6f89aa8"}
\ No newline at end of file

Added: branches/print_dev/tools/wms_extent/info.html
===================================================================
--- branches/print_dev/tools/wms_extent/info.html	                        (rev 0)
+++ branches/print_dev/tools/wms_extent/info.html	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html>
+<head>
+<title>WMS Extent</title>
+
+<style type="text/css">
+<!-- 
+.sbutton{
+	font-family : Verdana, Arial, Helvetica, sans-serif;
+	font-size : 10px;
+	font-weight: normal;
+	border : solid thin;
+	width: 300px;
+	height: 20px;
+	background: #F0F0F0;
+	border-color: #c0c0c0;  
+} 
+-->
+</style>
+
+</head>
+<body onload='window.resizeTo(800,800);'>
+<table border="1" width="98%" bgcolor="#ffffff" bordercolor ="#B8C1C7" cellspacing="1" cellpadding="2" style="font-family:Verdana, Geneva, Arial, Helvetica, sans-serif; font-size:10pt;background-color:#A6B1BB;color:#000000;" rules='rows'>
+		<tr align="left" style="background-color:#F0F0F0">
+		<th align="left" bgcolor='#F0F0F0'>title:</td>
+		<th bgcolor='#F0F0F0'>[wms_title]</td>
+		</tr>
+		<tr>
+		<td bgcolor='#F0F0F0'>epsg:</td>
+		<td bgcolor='#FFFFFF'>[epsg]</td>
+		</tr>
+		<tr>
+		<td bgcolor='#F0F0F0'>getCapabilities:</td>
+		<td bgcolor='#FFFFFF'><a href="[wms_getcapabilities]&REQUEST=getCapabilities&Version=[wms_version]&SERVICE=WMS" target="_blank">getCapabilities-Request</a></td>
+		</tr>
+		<tr>
+		<td bgcolor='#F0F0F0'>load WMS:</td>
+		<td bgcolor='#FFFFFF'>
+        <br>
+        <form name="Formular" action="">
+        &nbsp;<input class='sbutton' type="button" value="Load this WMS to the gui" onClick="window.opener.addWmsFromFeatureInfo('[wms_getcapabilities]','[wms_version]')">
+        </form></td>
+		</tr>
+		<tr>
+		<td bgcolor='#F0F0F0'>abstract:</td>
+		<td bgcolor='#FFFFFF'>[wms_abstract]</td>
+		</tr>
+</table>
+<br>
+</body>
+</html>
+

Added: branches/print_dev/tools/wms_extent/mapbender_wms.map
===================================================================
--- branches/print_dev/tools/wms_extent/mapbender_wms.map	                        (rev 0)
+++ branches/print_dev/tools/wms_extent/mapbender_wms.map	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1,111 @@
+MAP
+  NAME "mapbender_wms_extent"
+  STATUS ON
+  EXTENT -180 -90 180 90
+  
+  PROJECTION
+      "init=epsg:4326"
+  END
+   
+  SIZE 650 420
+
+  IMAGECOLOR 255 255 255
+  
+  UNITS dd 					
+  RESOLUTION 72				
+
+					
+  WEB
+    METADATA
+      "WMS_SRS"   "epsg:4326 epsg:31467 epsg:31466 epsg:31468 espg:31469"
+      "WMS_ONLINERESOURCE"    "http://wms1.ccgis.de/cgi-bin/mapserv?map=/data/mapbender_dev/http/tools/wms_extent/mapbender_wms.map"
+      "WMS_TITLE"    "WMS Extent"
+      "WMS_FEATURE_INFO_MIME_TYPE"    "text/html"
+      "WMS_ABSTRACT"    "Overview over the WMS loaded in Mapbender"
+
+      "ows_keywordlist" "Mapbender"
+      "ows_fees" "none"
+      "ows_accessconstraints" "none"
+              
+      "ows_addresstype" "postal"
+      "ows_address" "Siemensstr. 8"
+      "ows_city" "Bonn"
+      "ows_stateorprovince" "NRW"
+      "ows_postcode" "53121"
+      "ows_country" "Germany"
+            
+      "ows_contactperson" "A. Emde" 
+      "ows_contactinformation" "Wheregroup"
+      "ows_contactorganization" "WhereGroup"
+      "ows_contactposition" "WhereGroup"
+      "ows_contactelectronicmailaddress" "astrid.emde at whergroup.com"
+      "wms_contactfacsimiletelephone" "0228 90903811"
+      "wms_contactvoicetelephone" "0228 9090380"
+    END
+  END
+  
+  OUTPUTFORMAT
+    NAME 'png'
+    DRIVER 'GD/PNG'
+    MIMETYPE 'image/png'
+    EXTENSION PNG
+    IMAGEMODE PC256
+    TRANSPARENT ON
+  END
+  
+  LEGEND
+    STATUS ON 
+    KEYSIZE 20 10	
+    KEYSPACING 5 5    
+    LABEL
+       COLOR 0 0 0#120 120 120
+       TYPE TRUETYPE
+       FONT "arial"
+       SIZE 10
+    END 
+  END 
+
+#---------------------------------------------------------------
+LAYER
+   NAME "wms_extent"
+   STATUS ON
+   TYPE POLYGON  
+   CONNECTIONTYPE postgis  
+   CONNECTION   "dbname=mapbender user=mypassword port=5432 host=myserver"   
+   DATA "the_geom from (Select * from qry_wms_extent where NOT isempty(the_geom)) as foo using unique layer_id using SRID=4326" 
+ 
+
+   PROJECTION
+      "init=epsg:4326"
+   END
+   
+   METADATA
+	"WMS_SRS"    "epsg:4326"
+	"WMS_TITLE"    "WMS Extent"
+	"WMS_FEATURE_INFO_MIME_TYPE"    "text/html"
+	"ows_keywordlist" "WMS Extent"
+	"ows_abstract" "Extent,WMS"
+   END
+   
+   SYMBOLSCALE 100000
+   
+   TEMPLATE "info.html"
+    
+   #TRANSPARENCY 90
+   LABELITEM 'wms_title'
+   
+   CLASS
+      NAME "WMS Extent"
+      STYLE
+         SYMBOL 0
+         COLOR -1 -1 -1#255 204 255
+         OUTLINECOLOR 60 60 60
+      END
+	LABEL
+    	COLOR 60 60 60
+    END
+    
+   END
+    
+ END
+END
\ No newline at end of file

Added: branches/print_dev/tools/wms_extent/wms_geometry.sql
===================================================================
--- branches/print_dev/tools/wms_extent/wms_geometry.sql	                        (rev 0)
+++ branches/print_dev/tools/wms_extent/wms_geometry.sql	2008-10-06 11:40:58 UTC (rev 3130)
@@ -0,0 +1,38 @@
+-- Add geometry column the_geom
+Select AddGeometryColumn('mapbender','layer_epsg','the_geom',4326,'POLYGON',2);
+
+-- update the column 
+UPDATE layer_epsg set the_geom = 
+transform(
+geometryfromText(
+'POLYGON(('||
+layer_epsg.minx || ' ' || layer_epsg.miny || ',' ||
+layer_epsg.minx || ' ' || layer_epsg.maxy || ',' ||
+layer_epsg.maxx || ' ' || layer_epsg.maxy || ',' ||
+layer_epsg.maxx || ' ' || layer_epsg.miny || ',' ||
+layer_epsg.minx || ' ' || layer_epsg.miny ||
+'))',ltrim(epsg,'EPSG:')::int4) ,4326
+)
+where epsg != 'EPSG:31492'
+AND epsg != 'EPSG:31493'
+AND epsg != 'EPSG:31494'
+AND epsg != 'EPSG:42304'
+AND epsg != 'EPSG:102257'
+AND epsg != 'NONE'
+;
+
+-- create a view which is used in the mapfile mapbender_wms.map
+Create view qry_wms_extent as
+Select DISTINCT layer.layer_id,layer.fkey_wms_id,
+layer_pos,
+wms.wms_id, wms.wms_title,wms.wms_version,wms.wms_abstract,wms.wms_getcapabilities,
+layer_epsg.epsg, 
+layer_epsg.minx,
+layer_epsg.miny,
+layer_epsg.maxx,
+layer_epsg.maxy,
+layer_epsg.the_geom 
+from layer
+LEFT JOIN wms ON wms.wms_id = layer.fkey_wms_id
+LEFT JOIN layer_epsg ON  layer.layer_id = layer_epsg.fkey_layer_id
+where layer.layer_pos=0;



More information about the Mapbender_commits mailing list