From 25ece9c51091bf98f06a4578deb2175e6dfb1112 Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Thu, 22 Feb 2007 07:39:22 -0500 Subject: [PATCH] Updated several base libraries and added advanced search functionality. --- interface/lib/classes/tform_actions.inc.php | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 162 insertions(+), 12 deletions(-) diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php index 26a4912..0bcc13d 100644 --- a/interface/lib/classes/tform_actions.inc.php +++ b/interface/lib/classes/tform_actions.inc.php @@ -56,6 +56,16 @@ // Importing ID $this->id = intval($_REQUEST["id"]); + + // show print version of the form + if($_GET["print_form"] == 1) { + $this->onPrintForm(); + } + + // send this form by email + if($_GET["send_form_by_mail"] == 1) { + $this->onMailSendForm(); + } if(count($_POST) > 1) { $this->dataRecord = $_POST; @@ -108,14 +118,25 @@ $this->onAfterUpdate(); if($_REQUEST["next_tab"] == '') { - $list_name = $_SESSION["s"]["form"]["return_to"]; - if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { + $list_name = $_SESSION["s"]["form"]["return_to"]; + // When a list is embedded inside of a form + + //if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { + if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { $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); + // When a returnto variable is set + } elseif ($_SESSION["s"]["form"]["return_to_url"] != '') { + $redirect = $_SESSION["s"]["form"]["return_to_url"]; + $_SESSION["s"]["form"]["return_to_url"] = ''; + session_write_close(); + header("Location: ".$redirect); + exit; + // Use the default list of the form } else { - header("Location: ".$app->tform->formDef['list_default']); + header("Location: ".$app->tform->formDef['list_default']); } exit; } else { @@ -150,15 +171,23 @@ } $this->onAfterInsert(); + if($_REQUEST["next_tab"] == '') { $list_name = $_SESSION["s"]["form"]["return_to"]; - if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { - $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"]; + // if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { + if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { + $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 { + exit; + } elseif ($_SESSION["s"]["form"]["return_to_url"] != '') { + $_SESSION["s"]["form"]["return_to_url"] = ''; + session_write_close(); + header("Location: ".$_SESSION["s"]["form"]["return_to_url"]); + exit; + } else { header("Location: ".$app->tform->formDef['list_default']); } exit; @@ -244,13 +273,13 @@ // Call plugin foreach($this->plugins as $plugin) { - $plugin->onInsert(); + $plugin->onDelete(); } } - //header("Location: ".$liste["file"]."?PHPSESSID=".$_SESSION["s"]["id"]); - $list_name = $_SESSION["s"]["form"]["return_to"]; - if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { + //header("Location: ".$liste["file"]."?PHPSESSID=".$_SESSION["s"]["id"]); + $list_name = $_SESSION["s"]["form"]["return_to"]; + if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_id"] != $this->id && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { $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(); @@ -261,6 +290,113 @@ exit; } + + /** + * Function to print the form content + */ + + function onPrintForm() { + global $app, $conf; + + if($app->tform->formDef['template_print'] == '') die('No print template available.'); + + $app->tpl->newTemplate("print.tpl.htm"); + $app->tpl->setInclude("content_tpl",$app->tform->formDef['template_print']); + + 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)) $app->error($app->lng('error_no_view_permission')); + + $record["datum"] = date("d.m.Y"); + + $app->tpl->setVar($app->tform->wordbook); + + $app->tpl->setVar($record); + $app->tpl_defaults(); + $app->tpl->pparse(); + exit; + + } + + /** + * Function to print the form content + */ + + function onMailSendForm() { + global $app, $conf; + + if($app->tform->formDef['template_mailsend'] == '') die('No print template available.'); + + if($_POST["email"] == '' && $_POST["sender"] == '') { + // Zeige Formular zum versenden an. + $app->tpl->newTemplate("form.tpl.htm"); + $app->tpl->setInclude("content_tpl",$app->tform->formDef['template_mailsend']); + $app->tpl->setVar('show_form',1); + $app->tpl->setVar("form_action",$app->tform->formDef['action'].'?send_form_by_mail=1'); + $app->tpl->setVar("id",$this->id); + $app->tpl_defaults(); + $app->tpl->pparse(); + exit; + } else { + $app->tpl->newTemplate("mail.tpl.htm"); + $app->tpl->setInclude("content_tpl",$app->tform->formDef['template_mailsend']); + $app->tpl->setVar('show_mail',1); + 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)) $app->error($app->lng('error_no_view_permission')); + + $record["datum"] = date("d.m.Y"); + $record["mailmessage"] = $_POST["message"]; + + $app->tpl->setVar($app->tform->wordbook); + + $app->tpl->setVar($record); + $app->tpl_defaults(); + + $email_message = $app->tpl->grab(); + $email = $_POST["email"]; + $sender = $_POST["sender"]; + + $headers = "MIME-Version: 1.0\n"; + $headers .= "Content-type: text/html; charset=iso-8859-1\n"; + $headers .= "From: $sender\n"; + + if (!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+' . '@' . '([-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.)+' . '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $sender)) { + $sender = 'noreply@iprguard.de'; + } + + if (ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+' . '@' . '([-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.)+' . '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email)) { + mail($email, 'Domainrecherche Statement '.$record["domain"], $email_message, $headers); + } + echo "<p> </p><p>Email wurde versand.</p>"; + exit; + } + + + + 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)) $app->error($app->lng('error_no_view_permission')); + + $record["datum"] = date("d.m.Y"); + + $app->tpl->setVar($app->tform->wordbook); + + $app->tpl->setVar($record); + $app->tpl_defaults(); + $app->tpl->pparse(); + exit; + + } /** * Function called on page show @@ -284,8 +420,20 @@ // Setting default values $app->tpl_defaults(); + // Show the navigation bar of the form + if($app->tform->formDef['navibar'] == 'yes') { + $navibar = ''; + if($app->tform->formDef['template_print'] != '') { + $navibar .= '<a href="'.$app->tform->formDef['action'].'?id='.$this->id.'&print_form=1" target="_blank"><img src="../themes/iprg/icons/printer.png" border="0" alt="Drucken" /></a> '; + } + if($app->tform->formDef['template_mailsend'] != '') { + $navibar .= "<a href=\"#\" onClick=\"window.open('".$app->tform->formDef['action'].'?id='.$this->id."&send_form_by_mail=1','send','width=370,height=240')\"><img src=\"../themes/iprg/icons/mail.png\" border=\"0\" alt=\"Als E-Mail versenden\" /></a>"; + } + $app->tpl->setVar('form_navibar',$navibar); + } + + // loading plugins - //$next_tab = $app->tform->getNextTab(); $this->loadPlugins($this->active_tab); // Calling the Plugin onShow Events and set the data in the @@ -337,7 +485,7 @@ $this->dataRecord = $record; - // Userdaten umwandeln + // Userdaten umwandeln $record = $app->tform->getHTML($record, $this->active_tab,'EDIT'); $record['id'] = $this->id; @@ -360,6 +508,8 @@ $app->load($plugin_class); $this->plugins[$plugin_name] = new $plugin_class; $this->plugins[$plugin_name]->setOptions($plugin_name,$plugin_settings['options']); + // Make the data of the form easily accessible for the plugib + $this->plugins[$plugin_name]->form = $this; $this->plugins[$plugin_name]->onLoad(); } } -- Gitblit v1.9.1