svn commit: r49 - trunk/mapbender/http/classes/class_gui.php

uli at osgeo.org uli at osgeo.org
Thu Apr 13 16:59:19 EDT 2006


Author: uli
Date: 2006-04-13 20:59:19+0000
New Revision: 49

Added:
   trunk/mapbender/http/classes/class_gui.php

Log:
import Mapbender source without history

Added: trunk/mapbender/http/classes/class_gui.php
Url: https://mapbender.osgeo.org/source/browse/mapbender/trunk/mapbender/http/classes/class_gui.php?view=auto&rev=49
==============================================================================
--- (empty file)
+++ trunk/mapbender/http/classes/class_gui.php	2006-04-13 20:59:19+0000
@@ -0,0 +1,316 @@
+<?php
+
+# $Id: class_gui.php,v 1.10 2005/12/13 14:00:52 c_baudson Exp $
+# $Header: /cvsroot/mapbender/mapbender/http/classes/class_gui.php,v 1.10 2005/12/13 14:00:52 c_baudson Exp $
+# 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("../../conf/mapbender.conf");
+
+class gui{
+
+	function gui() {
+	}
+
+ 	// CB - returns true if a gui '$gui_id' exists
+
+ 	function guiExists($gui_id){
+ 		global $DBSERVER,$DB,$OWNER,$PW;
+		$con = db_connect($DBSERVER,$OWNER,$PW);
+		db_select_db(DB,$con);
+		$sql = "SELECT * FROM gui ";
+		$sql .= "WHERE gui_id = '".$gui_id."'";
+		$res = db_query($sql);
+  		$count_g = 0;
+  		$array = array();
+		while($row = db_fetch_array($res)){
+			$array[$count_g] = $row["gui_id"];
+			$count_g++;
+		}
+		if ($count_g >0)	{
+			return true;
+		}
+		else {
+			return false;
+		}
+ 	}
+
+
+
+	// CB - deletes a GUI $guiId and all its links to users, layers etc.
+	function deleteGui ($guiId) {
+		//
+		// begin transaction
+		//
+		$guiList = $guiId;
+
+
+		$sql = "BEGIN;";
+		$report .= "<br><br>" . $sql . "<br><br>";
+		$res = db_query($sql);
+		if (!$res) {
+			$report .=  "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+			$error = true;
+		}
+
+		$sql = "DELETE FROM gui WHERE gui_id = '" . $guiList . "';";
+		$report .= "<br><br>" . $sql . "<br><br>";
+		$res = db_query($sql);
+		if (!$res) {
+			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+			$error = true;
+		}
+
+		$sql = "DELETE FROM gui_element WHERE fkey_gui_id = '" . $guiList . "';";
+		$report .= "<br><br>" . $sql . "<br><br>";
+		$res = db_query($sql);
+		if (!$res) {
+			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+			$error = true;
+		}
+
+		$sql = "DELETE FROM gui_element_vars WHERE fkey_gui_id = '" . $guiList . "';";
+		$report .= "<br><br>" . $sql . "<br><br>";
+		$res = db_query($sql);
+		if (!$res) {
+			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+			$error = true;
+		}
+
+		$sql = "DELETE FROM gui_layer WHERE fkey_gui_id = '" . $guiList . "';";
+		$report .= "<br><br>" . $sql . "<br><br>";
+		$res = db_query($sql);
+		if (!$res) {
+			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+			$error = true;
+		}
+
+		$sql = "DELETE FROM gui_mb_group WHERE fkey_gui_id = '" . $guiList . "';";
+		$report .= "<br><br>" . $sql . "<br><br>";
+		$res = db_query($sql);
+		if (!$res) {
+			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+			$error = true;
+		}
+
+		$sql = "DELETE FROM gui_mb_user WHERE fkey_gui_id = '" . $guiList . "';";
+		$report .= "<br><br>" . $sql . "<br><br>";
+		$res = db_query($sql);
+		if (!$res) {
+			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+			$error = true;
+		}
+
+		$sql = "DELETE FROM gui_treegde WHERE fkey_gui_id = '" . $guiList . "';";
+		$report .= "<br><br>" . $sql . "<br><br>";
+		$res = db_query($sql);
+		if (!$res) {
+			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+			$error = true;
+		}
+
+		$sql = "DELETE FROM gui_wfs WHERE fkey_gui_id = '" . $guiList . "';";
+		$report .= "<br><br>" . $sql . "<br><br>";
+		$res = db_query($sql);
+		if (!$res) {
+			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+			$error = true;
+		}
+
+		$sql = "DELETE FROM gui_wms WHERE fkey_gui_id = '" . $guiList . "';";
+		$report .= "<br><br>" . $sql . "<br><br>";
+		$res = db_query($sql);
+		if (!$res) {
+			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+			$error = true;
+		}
+
+		// if $error is true, the transaction is aborted -> rollback
+		if (!$error) {
+			$sql = "COMMIT;";
+			$report .= "<br><br>" . $sql . "<br><br>";
+			$res = db_query($sql);
+			if (!$res) {
+				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+				$error = true;
+			}
+		}
+		//if $error is false, the transaction is executed -> commit
+		else {
+			$sql = "ROLLBACK;";
+			$report .= "<br><br>" . $sql . "<br><br>";
+			$res = db_query($sql);
+			if (!$res) {
+				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+				$error = true;
+			}
+		}
+		return !$error;
+	}
+
+
+
+	// CB - rename a GUI
+	function renameGui ($guiId, $newGuiName) {
+		$error = false;
+		if ($this->copyGui($guiId, $newGuiName, true)) {
+			$this->deleteGui($guiId);
+		}
+		else {
+			$error = true;
+		}
+		return !$error;
+	}
+
+	// CB - copies a GUI $guiId and all its links to users, layers etc. to GUI $newGuiName
+ 	function copyGui ($guiId, $newGuiName, $withUsers) {
+ 		global $DBSERVER,$DB,$OWNER,$PW;
+		$error = false;
+
+		$guiList = $guiId;
+
+		//
+		// begin transaction
+		//
+
+		if (!$this->guiExists($newGuiName)) {
+
+			$sql = "BEGIN;";
+			$report .= "<br><br>" . $sql . "<br><br>";
+			$res = db_query($sql);
+			if (!$res) {
+				$report .=  "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+				$error = true;
+			}
+
+			// INSERT
+			$sql = "INSERT INTO gui SELECT '" . $newGuiName . "', '" . $newGuiName . "',gui_description, gui_public FROM gui WHERE gui_id = '" . $guiList . "';";
+			$report .= "<br><br>" . $sql . "<br><br>";
+			$res = db_query($sql);
+			if (!$res) {
+				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+				$error = true;
+			}
+
+			$sql = "INSERT INTO gui_element SELECT '" . $newGuiName . "', e_id, e_pos, e_public, e_comment, e_element, e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires FROM gui_element WHERE fkey_gui_id = '" . $guiList . "';";
+			$report .= "<br><br>" . $sql . "<br><br>";
+			$res = db_query($sql);
+			if (!$res) {
+				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+				$error = true;
+			}
+
+			$sql = "INSERT INTO gui_element_vars SELECT '" . $newGuiName . "', fkey_e_id, var_name, var_value, context, var_type FROM gui_element_vars WHERE fkey_gui_id = '" . $guiList . "';";
+			$report .= "<br><br>" . $sql . "<br><br>";
+			$res = db_query($sql);
+			if (!$res) {
+				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+				$error = true;
+			}
+
+			$sql = "INSERT INTO gui_layer SELECT '" . $newGuiName . "', fkey_layer_id, gui_layer_wms_id, gui_layer_status, gui_layer_selectable, gui_layer_visible, gui_layer_queryable, gui_layer_querylayer, gui_layer_minscale, gui_layer_maxscale, gui_layer_priority, gui_layer_style, gui_layer_wfs_featuretype FROM gui_layer WHERE fkey_gui_id = '" . $guiList . "';";
+			$report .= "<br><br>" . $sql . "<br><br>";
+			$res = db_query($sql);
+			if (!$res) {
+				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+				$error = true;
+			}
+
+			$sql = "INSERT INTO gui_mb_group SELECT '" . $newGuiName . "', fkey_mb_group_id, mb_group_type FROM gui_mb_group WHERE fkey_gui_id = '" . $guiList . "';";
+			$report .= "<br><br>" . $sql . "<br><br>";
+			$res = db_query($sql);
+			if (!$res) {
+				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+				$error = true;
+			}
+
+			if ($withUsers == true) {
+				/* users of original gui are copied as well */
+				$sql = "INSERT INTO gui_mb_user SELECT '" . $newGuiName . "', fkey_mb_user_id, mb_user_type FROM gui_mb_user WHERE fkey_gui_id = '" . $guiList . "';";
+				$report .= "<br><br>" . $sql . "<br><br>";
+				$res = db_query($sql);
+				if (!$res) {
+					$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+					$error = true;
+				}
+			}
+			else {
+				// users of original gui are not copied, the current user is set as owner 
+				$sql = "INSERT INTO gui_mb_user VALUES ('" . $newGuiName . "', '" . $_SESSION["mb_user_id"] . "', 'owner');";
+				$report .= "<br><br>" . $sql . "<br><br>";
+				$res = db_query($sql);
+				if (!$res) {
+					$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+					$error = true;
+				}
+			}
+			
+			
+			$sql = "INSERT INTO gui_treegde SELECT '" . $newGuiName . "', fkey_layer_id, id, lft, rgt, my_layer_title, layer, wms_id FROM gui_treegde WHERE fkey_gui_id = '" . $guiList . "';";
+			$report .= "<br><br>" . $sql . "<br><br>";
+			$res = db_query($sql);
+			if (!$res) {
+				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+				$error = true;
+			}
+
+			$sql = "INSERT INTO gui_wfs SELECT '" . $newGuiName . "', fkey_wfs_id FROM gui_wfs WHERE fkey_gui_id = '" . $guiList . "';";
+			$report .= "<br><br>" . $sql . "<br><br>";
+			$res = db_query($sql);
+			if (!$res) {
+				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+				$error = true;
+			}
+
+			$sql = "INSERT INTO gui_wms SELECT '" . $newGuiName . "', fkey_wms_id, gui_wms_position, gui_wms_mapformat, gui_wms_featureinfoformat, gui_wms_exceptionformat, gui_wms_epsg, gui_wms_visible FROM gui_wms WHERE fkey_gui_id = '" . $guiList . "';";
+			$report .= "<br><br>" . $sql . "<br><br>";
+			$res = db_query($sql);
+			if (!$res) {
+				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+				$error = true;
+			}
+
+			// if $error is false, the transaction is executed -> commit
+			if (!$error) {
+				$sql = "COMMIT;";
+				$report .= "<br><br>" . $sql . "<br><br>";
+				$res = db_query($sql);
+				if (!$res) {
+					$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+					$error = true;
+				}
+			}
+			// if $error is true, the transaction is aborted -> rollback
+			else {
+				$sql = "ROLLBACK;";
+				$report .= "<br><br>" . $sql . "<br><br>";
+				$res = db_query($sql);
+				if (!$res) {
+					$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+					$error = true;
+				}
+			}
+			return !$error;
+		}
+		else {
+	      echo "<script language='javascript'>";
+	      echo "alert('This gui name " . $newGuiName . " is taken!');";
+	      echo "</script>";
+	      return false;
+		}
+	}
+}
+?>
\ No newline at end of file




More information about the Mapbender_commits mailing list