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