From 1645bb0b4816828ebc900a997a136d833ff38237 Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Thu, 24 Nov 2005 16:34:08 +0000
Subject: [PATCH]

---
 interface/lib/classes/tform_actions.inc.php | 595 ++++++++++----------
 1 file changed, 299 insertions(+), 296 deletions(-)

diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php
index 91b063ae3a..f90c0559e6 100644
--- a/interface/lib/classes/tform_actions.inc.php
+++ b/interface/lib/classes/tform_actions.inc.php
@@ -36,302 +36,305 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 class tform_actions {
-	
-	var $id;
-	var $activeTab;
-	var $dataRecord;
-	var $plugins = array();
-	
-	function onLoad() {
-		global $app, $conf, $tform_def_file;
-		
-		// Loading template classes and initialize template
-		if(!is_object($app->tpl)) $app->uses('tpl');
-		if(!is_object($app->tform)) $app->uses('tform');
-		
-		$app->tpl->newTemplate("tabbed_form.tpl.htm");
-
-		// Load table definition from file
-		$app->tform->loadFormDef($tform_def_file);
-		
-		// loading plugins
-		$next_tab = $app->tform->getNextTab();
-		if(is_array($app->tform->formDef["tabs"][$next_tab]["plugins"])) {
-			$app->load('plugin_base');
-			foreach($app->tform->formDef["tabs"][$next_tab]["plugins"] as $plugin_name => $plugin_settings) {
-				$plugin_class = $plugin_settings["class"];
-				$app->load($plugin_class);
-				$this->plugins[$plugin_name] = new $plugin_class;
-				$this->plugins[$plugin_name]->setOptions($plugin_name,$plugin_settings['options']);
-				$this->plugins[$plugin_name]->onLoad();
-			}
-		}
-		
-		// Importing ID
-		$this->id = intval($_REQUEST["id"]);
-
-		if(count($_POST) > 1) {
-			$this->dataRecord = $_POST;
-			$this->onSubmit();
-		} else {
-			$this->onShow();
-		}
-	}
-	
-	/**
-	* Function called on page submit
-	*/
-	
-	function onSubmit() {
-		global $app, $conf;
-		
-		// Calling the action functions
-		if($this->id > 0) {
-			$this->onUpdate();
-		} else {
-			$this->onInsert();
-		}
-	}
-	
-	/**
-	* Function called on data update
-	*/
-	
-	function onUpdate() {
-		global $app, $conf;
-		
-		$ext_where = '';
-		$sql = $app->tform->getSQL($this->dataRecord,$app->tform->getCurrentTab(),'UPDATE',$this->id,$ext_where);
-		if($app->tform->errorMessage == '') {
-			
-			if(!empty($sql)) {
-				$app->db->query($sql);
-				if($app->db->errorMessage != '') die($app->db->errorMessage);
-			}
-			
-			// Call plugin
-			foreach($this->plugins as $plugin) {
-				$plugin->onInsert();
-			}
-			
-			if($_REQUEST["next_tab"] == '') {
-				if($_SESSION["s"]["form"]["return_to"] != '') {
-					$list_name = $_SESSION["s"]["form"]["return_to"];
-					$redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
-					$_SESSION["s"]["form"]["return_to"] = '';
-					header($redirect);
-				} else {
-    				header("Location: ".$app->tform->formDef['list_default']);
-				}
-        		exit;
-    		} else {
-				$this->onShow();
-			}
-		} else {
-			$this->onError();
-		}
-	}
-	
-	/**
-	* Function called on data insert
-	*/
-	
-	function onInsert() {
-		global $app, $conf;
-		
-		$ext_where = '';
-		$sql = $app->tform->getSQL($this->dataRecord,$app->tform->getCurrentTab(),'INSERT',$this->id,$ext_where);
-		if($app->tform->errorMessage == '') {
-			$app->db->query($sql);
-			if($app->db->errorMessage != '') die($app->db->errorMessage);
-			$this->id = $app->db->insertID();
-			
-			// Call plugin
-			foreach($this->plugins as $plugin) {
-				$plugin->onInsert();
-			}
-			
-			if($_REQUEST["next_tab"] == '') {
-    			if($_SESSION["s"]["form"]["return_to"] != '') {
-					$list_name = $_SESSION["s"]["form"]["return_to"];
-					$redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
-					$_SESSION["s"]["form"]["return_to"] = '';
-					header($redirect);
-				} else {
-    				header("Location: ".$app->tform->formDef['list_default']);
-				}
-        		exit;
-    		} else {
-				$this->onShow();
-			}
-		} else {
-			$this->onError();
-		}
-	}
-	
-	/**
-	* Function called on data insert or update error
-	*/
-	
-	function onError() {
-		global $app, $conf;
-		
-		$app->tpl->setVar("error","<b>".$app->lng('Error').":</b><br>".$app->tform->errorMessage);
-		$app->tpl->setVar($this->dataRecord);
-		$this->onShow();
-	}
-	
-	/**
-	* Function called on data delete
-	*/
-	
-	function onDelete() {
-		global $app, $conf,$list_def_file,$tform_def_file;
-		
-		include_once($list_def_file);
-		
-		// Loading tform framework
-		if(!is_object($app->tform)) $app->uses('tform');
-		
-		// Load table definition from file
-		$app->tform->loadFormDef($tform_def_file);
-
-		// importing ID
-		$this->id = intval($_REQUEST["id"]);
-
-		if($this->id > 0) {
-			
-			// checking permissions
-			if($app->tform->formDef['auth'] == 'yes') {
-				if($app->tform->checkPerm($this->id,'d') == false) die("Deletion denied.<br>\r\n");
-			}
-	
-			$record_old = $app->db->queryOneRecord("SELECT * FROM ".$liste["table"]." WHERE ".$liste["table_idx"]." = ".$this->id);
-			
-			// Saving record to datalog when db_history enabled
-			if($form["db_history"] == 'yes') {
-				$diffrec = array();
-
-				foreach($record_old as $key => $val) {
-					// Record has changed
-					$diffrec[$key] = array('old' => $val,
-								   			'new' => '');
-				}
-
-				$diffstr = $app->db->quote(serialize($diffrec));
-				$username = $app->db->quote($_SESSION["s"]["user"]["username"]);
-				$dbidx = $app->tform->formDef['db_table_idx'].":".$this->id;
-				$sql = "INSERT INTO sys_datalog (dbtable,dbidx,action,tstamp,user,data) VALUES ('".$app->tform->formDef['db_table']."','$dbidx','d','".time()."','$username','$diffstr')";
-				$app->db->query($sql);
-			}
-
-			$app->db->query("DELETE FROM ".$liste["table"]." WHERE ".$liste["table_idx"]." = ".$this->id);
-			
-			// Call plugin
-			foreach($this->plugins as $plugin) {
-				$plugin->onInsert();
-			}
-		}
-
-		//header("Location: ".$liste["file"]."?PHPSESSID=".$_SESSION["s"]["id"]);
-		if($_SESSION["s"]["form"]["return_to"] != '') {
-			$list_name = $_SESSION["s"]["form"]["return_to"];
-			$redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
-			$_SESSION["s"]["form"]["return_to"] = '';
-			header($redirect);
-		} else {
-    		header("Location: ".$liste["file"]);
-		}
-		exit;
-		
-	}
-	
-	/**
-	* Function called on page show
-	*/
-	
-	function onShow() {
-		global $app, $conf;
-		
-		// Which tab do we render
-		$this->active_tab = $app->tform->getNextTab();
-		
-		if($this->id > 0) {
-			$this->onShowEdit();
-		} else {
-			$this->onShowNew();
-		}
-
-		// make Form and Tabs
-		$app->tform->showForm();
-
-		// Setting default values
-		$app->tpl_defaults();
-		
-		// Calling the Plugin onShow Events and set the data in the
-		// plugins placeholder in the template
-		foreach($this->plugins as $plugin_name => $plugin) {
-			$app->tpl->setVar($plugin_name,$plugin->onShow());
-		}
-		
-		// Parse the templates and send output to the browser
-		$this->onShowEnd();
-		
-	}
-	
-	/**
-	* Function called on new record
-	*/
-	
-	function onShowNew() {
-		global $app, $conf;
-		
-		if($app->tform->errorMessage == '') {
-			$record = array();
-			$record = $app->tform->getHTML($record, $app->tform->formDef['tab_default'],'NEW');
-		} else {
-			$record = $app->tform->getHTML($app->tform->encode($_POST,$this->active_tab),$this->active_tab,'EDIT');
-		}
-		
-		$app->tpl->setVar($record);
-	}
-	
-	/**
-	* Function called on edit record
-	*/
-	
-	function onShowEdit() {
-		global $app, $conf;
-		
-		// bestehenden Datensatz anzeigen
-		if($app->tform->errorMessage == '') {
-			if($app->tform->formDef['auth'] == 'no') {
-				$sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id;
-			} else {
-				$sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('u');
-			}
-			if(!$record = $app->db->queryOneRecord($sql)) die("You dont have the permission to view this record or this record does not exist.");
-		} else {
-			$record = $app->tform->encode($_POST,$this->active_tab);
-		}
-		
-		$this->dataRecord = $record;
-	
-    	// Userdaten umwandeln
-		$record = $app->tform->getHTML($record, $this->active_tab,'EDIT');
-		$record['id'] = $this->id;
-		
-		$app->tpl->setVar($record);
-	}
-	
-	function onShowEnd() {
-		global $app, $conf;
-		
-		// Template parsen
-		$app->tpl->pparse();
-	}
-	
-	
+
+        var $id;
+        var $activeTab;
+        var $dataRecord;
+        var $plugins = array();
+
+        function onLoad() {
+                global $app, $conf, $tform_def_file;
+
+                // Loading template classes and initialize template
+                if(!is_object($app->tpl)) $app->uses('tpl');
+                if(!is_object($app->tform)) $app->uses('tform');
+
+                $app->tpl->newTemplate("tabbed_form.tpl.htm");
+
+                // Load table definition from file
+                $app->tform->loadFormDef($tform_def_file);
+
+                // loading plugins
+                $next_tab = $app->tform->getNextTab();
+                if(is_array($app->tform->formDef["tabs"][$next_tab]["plugins"])) {
+                        $app->load('plugin_base');
+                        foreach($app->tform->formDef["tabs"][$next_tab]["plugins"] as $plugin_name => $plugin_settings) {
+                                $plugin_class = $plugin_settings["class"];
+                                $app->load($plugin_class);
+                                $this->plugins[$plugin_name] = new $plugin_class;
+                                $this->plugins[$plugin_name]->setOptions($plugin_name,$plugin_settings['options']);
+                                $this->plugins[$plugin_name]->onLoad();
+                        }
+                }
+
+                // Importing ID
+                $this->id = intval($_REQUEST["id"]);
+
+                if(count($_POST) > 1) {
+                        $this->dataRecord = $_POST;
+                        $this->onSubmit();
+                } else {
+                        $this->onShow();
+                }
+        }
+
+        /**
+        * Function called on page submit
+        */
+
+        function onSubmit() {
+                global $app, $conf;
+
+                // Calling the action functions
+                if($this->id > 0) {
+                        $this->onUpdate();
+                } else {
+                        $this->onInsert();
+                }
+        }
+
+        /**
+        * Function called on data update
+        */
+
+        function onUpdate() {
+                global $app, $conf;
+
+                $ext_where = '';
+                $sql = $app->tform->getSQL($this->dataRecord,$app->tform->getCurrentTab(),'UPDATE',$this->id,$ext_where);
+                if($app->tform->errorMessage == '') {
+
+                        if(!empty($sql)) {
+                                $app->db->query($sql);
+                                if($app->db->errorMessage != '') die($app->db->errorMessage);
+                        }
+
+                        // Call plugin
+                        foreach($this->plugins as $plugin) {
+                                $plugin->onInsert();
+                        }
+
+                        if($_REQUEST["next_tab"] == '') {
+                                if($_SESSION["s"]["form"]["return_to"] != '') {
+                                        $list_name = $_SESSION["s"]["form"]["return_to"];
+                                        $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
+                                        $_SESSION["s"]["form"]["return_to"] = '';
+                                        session_write_close();
+                                        header($redirect);
+                                } else {
+                                    header("Location: ".$app->tform->formDef['list_default']);
+                                }
+                        exit;
+                    } else {
+                                $this->onShow();
+                        }
+                } else {
+                        $this->onError();
+                }
+        }
+
+        /**
+        * Function called on data insert
+        */
+
+        function onInsert() {
+                global $app, $conf;
+
+                $ext_where = '';
+                $sql = $app->tform->getSQL($this->dataRecord,$app->tform->getCurrentTab(),'INSERT',$this->id,$ext_where);
+                if($app->tform->errorMessage == '') {
+                        $app->db->query($sql);
+                        if($app->db->errorMessage != '') die($app->db->errorMessage);
+                        $this->id = $app->db->insertID();
+
+                        // Call plugin
+                        foreach($this->plugins as $plugin) {
+                                $plugin->onInsert();
+                        }
+
+                        if($_REQUEST["next_tab"] == '') {
+                            if($_SESSION["s"]["form"]["return_to"] != '') {
+                                        $list_name = $_SESSION["s"]["form"]["return_to"];
+                                        $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
+                                        $_SESSION["s"]["form"]["return_to"] = '';
+                                        session_write_close();
+                                        header($redirect);
+                                } else {
+                                    header("Location: ".$app->tform->formDef['list_default']);
+                                }
+                        exit;
+                    } else {
+                                $this->onShow();
+                        }
+                } else {
+                        $this->onError();
+                }
+        }
+
+        /**
+        * Function called on data insert or update error
+        */
+
+        function onError() {
+                global $app, $conf;
+
+                $app->tpl->setVar("error","<b>".$app->lng('Error').":</b><br>".$app->tform->errorMessage);
+                $app->tpl->setVar($this->dataRecord);
+                $this->onShow();
+        }
+
+        /**
+        * Function called on data delete
+        */
+
+        function onDelete() {
+                global $app, $conf,$list_def_file,$tform_def_file;
+
+                include_once($list_def_file);
+
+                // Loading tform framework
+                if(!is_object($app->tform)) $app->uses('tform');
+
+                // Load table definition from file
+                $app->tform->loadFormDef($tform_def_file);
+
+                // importing ID
+                $this->id = intval($_REQUEST["id"]);
+
+                if($this->id > 0) {
+
+                        // checking permissions
+                        if($app->tform->formDef['auth'] == 'yes') {
+                                if($app->tform->checkPerm($this->id,'d') == false) die("Deletion denied.<br>\r\n");
+                        }
+
+                        $record_old = $app->db->queryOneRecord("SELECT * FROM ".$liste["table"]." WHERE ".$liste["table_idx"]." = ".$this->id);
+
+                        // Saving record to datalog when db_history enabled
+                        if($form["db_history"] == 'yes') {
+                                $diffrec = array();
+
+                                foreach($record_old as $key => $val) {
+                                        // Record has changed
+                                        $diffrec[$key] = array('old' => $val,
+                                                                                           'new' => '');
+                                }
+
+                                $diffstr = $app->db->quote(serialize($diffrec));
+                                $username = $app->db->quote($_SESSION["s"]["user"]["username"]);
+                                $dbidx = $app->tform->formDef['db_table_idx'].":".$this->id;
+                                $sql = "INSERT INTO sys_datalog (dbtable,dbidx,action,tstamp,user,data) VALUES ('".$app->tform->formDef['db_table']."','$dbidx','d','".time()."','$username','$diffstr')";
+                                $app->db->query($sql);
+                        }
+
+                        $app->db->query("DELETE FROM ".$liste["table"]." WHERE ".$liste["table_idx"]." = ".$this->id);
+
+                        // Call plugin
+                        foreach($this->plugins as $plugin) {
+                                $plugin->onInsert();
+                        }
+                }
+
+                //header("Location: ".$liste["file"]."?PHPSESSID=".$_SESSION["s"]["id"]);
+                if($_SESSION["s"]["form"]["return_to"] != '') {
+                        $list_name = $_SESSION["s"]["form"]["return_to"];
+                        $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
+                        $_SESSION["s"]["form"]["return_to"] = '';
+                        session_write_close();
+                        header($redirect);
+                } else {
+                    header("Location: ".$liste["file"]);
+                }
+                exit;
+
+        }
+
+        /**
+        * Function called on page show
+        */
+
+        function onShow() {
+                global $app, $conf;
+
+                // Which tab do we render
+                $this->active_tab = $app->tform->getNextTab();
+
+                if($this->id > 0) {
+                        $this->onShowEdit();
+                } else {
+                        $this->onShowNew();
+                }
+
+                // make Form and Tabs
+                $app->tform->showForm();
+
+                // Setting default values
+                $app->tpl_defaults();
+
+                // Calling the Plugin onShow Events and set the data in the
+                // plugins placeholder in the template
+                foreach($this->plugins as $plugin_name => $plugin) {
+                        $app->tpl->setVar($plugin_name,$plugin->onShow());
+                }
+
+                // Parse the templates and send output to the browser
+                $this->onShowEnd();
+
+        }
+
+        /**
+        * Function called on new record
+        */
+
+        function onShowNew() {
+                global $app, $conf;
+
+                if($app->tform->errorMessage == '') {
+                        $record = array();
+                        $record = $app->tform->getHTML($record, $app->tform->formDef['tab_default'],'NEW');
+                } else {
+                        $record = $app->tform->getHTML($app->tform->encode($_POST,$this->active_tab),$this->active_tab,'EDIT');
+                }
+
+                $app->tpl->setVar($record);
+        }
+
+        /**
+        * Function called on edit record
+        */
+
+        function onShowEdit() {
+                global $app, $conf;
+
+                // bestehenden Datensatz anzeigen
+                if($app->tform->errorMessage == '') {
+                        if($app->tform->formDef['auth'] == 'no') {
+                                $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id;
+                        } else {
+                                $sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('u');
+                        }
+                        if(!$record = $app->db->queryOneRecord($sql)) die("You dont have the permission to view this record or this record does not exist.");
+                } else {
+                        $record = $app->tform->encode($_POST,$this->active_tab);
+                }
+
+                $this->dataRecord = $record;
+
+            // Userdaten umwandeln
+                $record = $app->tform->getHTML($record, $this->active_tab,'EDIT');
+                $record['id'] = $this->id;
+
+                $app->tpl->setVar($record);
+        }
+
+        function onShowEnd() {
+                global $app, $conf;
+
+                // Template parsen
+                $app->tpl->pparse();
+        }
+
+
 }
 
 ?>
\ No newline at end of file
-- 
GitLab