[Mapbender-commits] r1969 - branches/2.5/http/classes
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Wed Jan 16 05:56:54 EST 2008
Author: christoph
Date: 2008-01-16 05:56:53 -0500 (Wed, 16 Jan 2008)
New Revision: 1969
Modified:
branches/2.5/http/classes/class_gui.php
Log:
prepared statements
Modified: branches/2.5/http/classes/class_gui.php
===================================================================
--- branches/2.5/http/classes/class_gui.php 2008-01-15 14:12:05 UTC (rev 1968)
+++ branches/2.5/http/classes/class_gui.php 2008-01-16 10:56:53 UTC (rev 1969)
@@ -1,5 +1,4 @@
<?php
-
# $Id$
# http://www.mapbender.org/index.php/class_gui.php
# Copyright (C) 2002 CCGIS
@@ -19,253 +18,201 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+
$con = db_connect($DBSERVER,$OWNER,$PW);
db_select_db(DB,$con);
-class gui{
+/**
+ * GUI is a set of GUI elements and services.
+ */
+class gui {
- function gui() {
+ public function __construct () {
}
- // CB - returns true if a gui '$gui_id' exists
- function guiExists($gui_id){
- $sql = "SELECT * FROM gui ";
- $sql .= "WHERE gui_id = $1";
+ /**
+ * Checks if a GUI with a given ID exists in the database
+ *
+ * @param integer $gui_id the ID of the GUI that is being checked
+ * @return boolean true if a gui '$gui_id' exists; else false
+ */
+ public function guiExists ($gui_id){
+ $sql = "SELECT * FROM gui WHERE gui_id = $1";
$v = array($gui_id);
$t = array('s');
$res = db_prep_query($sql,$v,$t);
$row = db_fetch_array($res);
- if ($row) return true;
- else return false;
+ if ($row) {
+ return true;
+ }
+ return false;
}
- // CB - deletes a GUI $guiId and all its links to users, layers etc.
- function deleteGui ($guiId) {
+
+ /**
+ * Deletes a GUI $guiId and all its links to users, layers etc.
+ *
+ * @param Integer $guiId the GUI that is going to be deleted
+ * @return boolean true if the deletion succeded, else false
+ */
+ public function deleteGui ($guiId) {
$guiList = $guiId;
- $sql = "BEGIN";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ $sql = array();
+ $v = array();
+ $t = array();
- $sql = "DELETE FROM gui WHERE gui_id = $1";
- $v = array($guiList);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push("BEGIN");
+ array_push($v, array());
+ array_push($t, array());
+
+ array_push($sql, "DELETE FROM gui WHERE gui_id = $1");
+ array_push($v, array($guiList));
+ array_push($t, array('s'));
- $sql = "DELETE FROM gui_element WHERE fkey_gui_id = $1";
- $v = array($guiList);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "DELETE FROM gui_element WHERE fkey_gui_id = $1");
+ array_push($v, array($guiList));
+ array_push($t, array('s'));
- $sql = "DELETE FROM gui_element_vars WHERE fkey_gui_id = $1";
- $v = array($guiList);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "DELETE FROM gui_element_vars WHERE fkey_gui_id = $1");
+ array_push($v, array($guiList));
+ array_push($t, array('s'));
- $sql = "DELETE FROM gui_layer WHERE fkey_gui_id = $1";
- $v = array($guiList);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "DELETE FROM gui_layer WHERE fkey_gui_id = $1");
+ array_push($v, array($guiList));
+ array_push($t, array('s'));
- $sql = "DELETE FROM gui_mb_group WHERE fkey_gui_id = $1";
- $v = array($guiList);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "DELETE FROM gui_mb_group WHERE fkey_gui_id = $1");
+ array_push($v, array($guiList));
+ array_push($t, array('s'));
- $sql = "DELETE FROM gui_mb_user WHERE fkey_gui_id = $1";
- $v = array($guiList);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "DELETE FROM gui_mb_user WHERE fkey_gui_id = $1");
+ array_push($v, array($guiList));
+ array_push($t, array('s'));
- $sql = "DELETE FROM gui_treegde WHERE fkey_gui_id = $1";
- $v = array($guiList);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "DELETE FROM gui_treegde WHERE fkey_gui_id = $1");
+ array_push($v, array($guiList));
+ array_push($t, array('s'));
- $sql = "DELETE FROM gui_wfs WHERE fkey_gui_id = $1";
- $v = array($guiList);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "DELETE FROM gui_wfs WHERE fkey_gui_id = $1");
+ array_push($v, array($guiList));
+ array_push($t, array('s'));
- $sql = "DELETE FROM gui_wms WHERE fkey_gui_id = $1";
- $v = array($guiList);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "DELETE FROM gui_wms WHERE fkey_gui_id = $1");
+ array_push($v, array($guiList));
+ array_push($t, array('s'));
- // if $error is true, the transaction is aborted -> rollback
- if (!$error) {
- $sql = "COMMIT";
- $res = db_query($sql);
+ array_push($sql, "COMMIT");
+ array_push($v, array());
+ array_push($t, array());
+
+ // execute all SQLs
+ for ($i = 0; $i < count($sql); $i++) {
+ $res = db_prep_query($sql[$i], $v[$i], $t[$i]);
+ // if an SQL fails, send a ROLLBACK and return false
if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
+ db_query("ROLLBACK");
+ return false;
}
}
- //if $error is false, the transaction is executed -> commit
- else {
- $sql = "ROLLBACK";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
- }
- return !$error;
+ return true;
}
- // CB - rename a GUI
- function renameGui ($guiId, $newGuiName) {
- $error = false;
+ /** Renames the GUI $guiID to $newGUIName
+ *
+ * @param Integer $guiId ID of the GUI
+ * @param String $newGuiName the new name of the GUI
+ * @return boolean true if the renaming succeded, else false
+ */
+ public function renameGui ($guiId, $newGuiName) {
if ($this->copyGui($guiId, $newGuiName, true)) {
$this->deleteGui($guiId);
+ return true;
}
- else {
- $error = true;
- }
- return !$error;
+ return false;
}
- // CB - copies a GUI $guiId and all its links to users, layers etc. to GUI $newGuiName
- function copyGui ($guiId, $newGuiName, $withUsers) {
- $error = false;
+ /**
+ *
+ * Copies a GUI $guiId and all its links to users, layers etc. to GUI $newGuiName
+ *
+ * @param Integer $guiId ID of the GUI
+ * @param String $newGuiName the new name of the GUI
+ * @param boolean $withUsers true if the users, that may access the GUI $guiId, shall have access to the new GUI; else false.
+ *
+ * @return boolean true if the renaming succeded, else false
+ */
+ public function copyGui ($guiId, $newGuiName, $withUsers) {
$guiList = $guiId;
if (!$this->guiExists($newGuiName)) {
- $sql = "BEGIN";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+
+ $sql = array();
+ $v = array();
+ $t = array();
+
+ array_push($sql, "BEGIN");
+ array_push($v, array());
+ array_push($t, array());
- $sql = "INSERT INTO gui (gui_id, gui_name, gui_description, gui_public) SELECT '" . $newGuiName . "', '" . $newGuiName . "',gui_description, gui_public FROM gui WHERE gui_id = '" . $guiList . "';";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "INSERT INTO gui (gui_id, gui_name, gui_description, gui_public) SELECT $1, $2, gui_description, gui_public FROM gui WHERE gui_id = $3;");
+ array_push($v, array ($newGuiName, $newGuiName, $guiList));
+ array_push($t, array ("s", "s", "s"));;
+
+ array_push($sql, "INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_title, 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, e_url) SELECT $1, e_id, e_pos, e_public, e_comment, e_title, 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, e_url FROM gui_element WHERE fkey_gui_id = $2;");
+ array_push($v, array($newGuiName, $guiList));
+ array_push($t, array("s", "s"));
- $sql = "INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_title, 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, e_url) SELECT '" . $newGuiName . "', e_id, e_pos, e_public, e_comment, e_title, 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, e_url FROM gui_element WHERE fkey_gui_id = '" . $guiList . "';";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "INSERT INTO gui_element_vars (fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) SELECT $1, fkey_e_id, var_name, var_value, context, var_type FROM gui_element_vars WHERE fkey_gui_id = $2;");
+ array_push($v, array($newGuiName, $guiList));
+ array_push($t, array("s", "s"));
- $sql = "INSERT INTO gui_element_vars (fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) SELECT '" . $newGuiName . "', fkey_e_id, var_name, var_value, context, var_type FROM gui_element_vars WHERE fkey_gui_id = '" . $guiList . "';";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "INSERT INTO gui_layer (fkey_gui_id, 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) SELECT $1, 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 = $2;");
+ array_push($v, array($newGuiName, $guiList));
+ array_push($t, array("s", "s"));
- $sql = "INSERT INTO gui_layer (fkey_gui_id, 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) 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 . "';";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
-
if ($withUsers == true) {
/* group of original gui is copied as well */
- $sql = "INSERT INTO gui_mb_group (fkey_gui_id, fkey_mb_group_id, mb_group_type) SELECT '" . $newGuiName . "', fkey_mb_group_id, mb_group_type FROM gui_mb_group WHERE fkey_gui_id = '" . $guiList . "';";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "INSERT INTO gui_mb_group (fkey_gui_id, fkey_mb_group_id, mb_group_type) SELECT $1, fkey_mb_group_id, mb_group_type FROM gui_mb_group WHERE fkey_gui_id = $2;");
+ array_push($v, array($newGuiName, $guiList));
+ array_push($t, array("s", "s"));
/* users of original gui are copied as well */
- $sql = "INSERT INTO gui_mb_user (fkey_gui_id, fkey_mb_user_id, mb_user_type) SELECT '" . $newGuiName . "', fkey_mb_user_id, mb_user_type FROM gui_mb_user WHERE fkey_gui_id = '" . $guiList . "';";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql = "INSERT INTO gui_mb_user (fkey_gui_id, fkey_mb_user_id, mb_user_type) SELECT $1, fkey_mb_user_id, mb_user_type FROM gui_mb_user WHERE fkey_gui_id = $2;");
+ array_push($v, array($newGuiName, $guiList));
+ array_push($t, array("s", "s"));
}
else {
// users of original gui are not copied, the current user is set as owner
- $sql = "INSERT INTO gui_mb_user (fkey_gui_id, fkey_mb_user_id, mb_user_type) VALUES ($1, $2, 'owner')";
- $v = array($newGuiName, $_SESSION["mb_user_id"]);
- $t = array('s', 'i');
- $res = db_prep_query($sql,$v,$t);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql = "INSERT INTO gui_mb_user (fkey_gui_id, fkey_mb_user_id, mb_user_type) VALUES ($1, $2, 'owner')");
+ array_push($v, array($newGuiName, $_SESSION["mb_user_id"]));
+ array_push($t, array('s', 'i'));
}
- $sql = "INSERT INTO gui_treegde (fkey_gui_id, fkey_layer_id, id, lft, rgt, my_layer_title, layer, wms_id) SELECT '" . $newGuiName . "', fkey_layer_id, id, lft, rgt, my_layer_title, layer, wms_id FROM gui_treegde WHERE fkey_gui_id = '" . $guiList . "';";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "INSERT INTO gui_treegde (fkey_gui_id, fkey_layer_id, id, lft, rgt, my_layer_title, layer, wms_id) SELECT $1, fkey_layer_id, id, lft, rgt, my_layer_title, layer, wms_id FROM gui_treegde WHERE fkey_gui_id = $2;");
+ array_push($v, array($newGuiName, $guiList));
+ array_push($t, array("s", "s"));
- $sql = "INSERT INTO gui_wfs (fkey_gui_id, fkey_wfs_id) SELECT '" . $newGuiName . "', fkey_wfs_id FROM gui_wfs WHERE fkey_gui_id = '" . $guiList . "';";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "INSERT INTO gui_wfs (fkey_gui_id, fkey_wfs_id) SELECT $1, fkey_wfs_id FROM gui_wfs WHERE fkey_gui_id = $2;");
+ array_push($v, array($newGuiName, $guiList));
+ array_push($t, array("s", "s"));
- $sql = "INSERT INTO gui_wms (fkey_gui_id, fkey_wms_id, gui_wms_position, gui_wms_mapformat, gui_wms_featureinfoformat, gui_wms_exceptionformat, gui_wms_epsg, gui_wms_visible) 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 . "';";
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
+ array_push($sql, "INSERT INTO gui_wms (fkey_gui_id, fkey_wms_id, gui_wms_position, gui_wms_mapformat, gui_wms_featureinfoformat, gui_wms_exceptionformat, gui_wms_epsg, gui_wms_visible) SELECT $1, 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 = $2;");
+ array_push($v, array($newGuiName, $guiList));
+ array_push($t, array("s", "s"));
+
+ array_push($sql, "COMMIT");
+ array_push($v, array());
+ array_push($t, array());
- // if $error is false, the transaction is executed -> commit
- if (!$error) {
- $sql = "COMMIT";
- }
- else {
- $sql = "ROLLBACK";
+ // execute all SQLs
+ for ($i = 0; $i < count($sql); $i++) {
+ $res = db_prep_query($sql[$i], $v[$i], $t[$i]);
+ // if an SQL fails, send a ROLLBACK and return false
+ if (!$res) {
+ db_query("ROLLBACK");
+ return false;
+ }
}
- $res = db_query($sql);
- if (!$res) {
- $report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
- $error = true;
- }
- return !$error;
+ return true;
}
else {
echo "<script language='javascript'>";
More information about the Mapbender_commits
mailing list