tbrehm
2007-03-15 cc4f64a640ddc3acfa8f6c68eb3f5aacee344aa0
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>&nbsp;</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> &nbsp;';
               }
               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();
                  }
             }