From f4038a2160d55a7f519a3b42be1aa96e29e9a908 Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Wed, 27 Feb 2013 09:01:40 -0500
Subject: [PATCH] - Fixed "FUNCTION databasename.CONCAT does not exist" error for older MySQL versions.

---
 interface/lib/classes/tform_actions.inc.php |   81 ++++++++++++++++++++++------------------
 1 files changed, 45 insertions(+), 36 deletions(-)

diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php
index 812c792..d60ecbf 100644
--- a/interface/lib/classes/tform_actions.inc.php
+++ b/interface/lib/classes/tform_actions.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,20 +28,13 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-/**
-* Action framework for the tform library.
-*
-* @author Till Brehm <t.brehm@scrigo.org>
-* @copyright Copyright &copy; 2005, Till Brehm
-*/
-
 class tform_actions {
 
-        var $id;
-        var $activeTab;
-        var $dataRecord;
-        var $plugins = array();
-		var $oldDataRecord; // This array is only filled during updates and when db_history is enabled.
+        public $id;
+        public $activeTab;
+        public $dataRecord;
+        public $plugins = array();
+		public $oldDataRecord; // This array is only filled during updates and when db_history is enabled.
 
         function onLoad() {
                 global $app, $conf, $tform_def_file;
@@ -56,7 +49,7 @@
                 $app->tform->loadFormDef($tform_def_file);
 				
 				// Importing ID
-                $this->id = (isset($_REQUEST["id"]))?intval($_REQUEST["id"]):0;
+                $this->id = (isset($_REQUEST["id"]))?$app->functions->intval($_REQUEST["id"]):0;
 				
 				// show print version of the form
 				if(isset($_GET["print_form"]) && $_GET["print_form"] == 1) {
@@ -87,9 +80,11 @@
 
                 // Calling the action functions
                 if($this->id > 0) {
-                        $this->onUpdate();
+					$app->tform->action == 'EDIT';
+					$this->onUpdate();
                 } else {
-                        $this->onInsert();
+					$app->tform->action == 'NEW';
+					$this->onInsert();
                 }
         }
 
@@ -112,17 +107,19 @@
 						
 						// Save record in database
 						$this->onUpdateSave($sql);
-						
+						$app->plugin->raiseEvent($_SESSION['s']['module']['name'].':'.$app->tform->formDef['name'].':'.'on_update_save',array('page_form'=>$this, 'sql'=>$sql));
+                        
 						// loading plugins
 						$next_tab = $app->tform->getCurrentTab();
                 		$this->loadPlugins($next_tab);
 
                         // Call plugin
                         foreach($this->plugins as $plugin) {
-                                $plugin->onInsert();
+                                $plugin->onUpdate();
                         }
-
-                        $this->onAfterUpdate();
+						
+						$this->onAfterUpdate();
+						$app->plugin->raiseEvent($_SESSION['s']['module']['name'].':'.$app->tform->formDef['name'].':'.'on_after_update',$this);
 						
 						// Write data history (sys_datalog)
 						if($app->tform->formDef['db_history'] == 'yes') {
@@ -143,7 +140,7 @@
                                 session_write_close();
                                 header($redirect);
 							// When a returnto variable is set
-							} elseif ($_SESSION["s"]["form"]["return_to_url"] != '') {
+							} elseif (isset($_SESSION["s"]["form"]["return_to_url"]) && $_SESSION["s"]["form"]["return_to_url"] != '') {
 								$redirect = $_SESSION["s"]["form"]["return_to_url"];
 								$_SESSION["s"]["form"]["return_to_url"] = '';
 								session_write_close();
@@ -168,7 +165,7 @@
 		
 		function onUpdateSave($sql) {
 			global $app;
-			if(!empty($sql) && !$app->tform->isReadonlyTab($app->tform->getCurrentTab())) {
+			if(!empty($sql) && !$app->tform->isReadonlyTab($app->tform->getCurrentTab(),$this->id)) {
 				$app->db->query($sql);
 				if($app->db->errorMessage != '') die($app->db->errorMessage);
 			}
@@ -189,7 +186,8 @@
                 if($app->tform->errorMessage == '') {
 						
 						$this->id = $this->onInsertSave($sql);
-						
+						$app->plugin->raiseEvent($_SESSION['s']['module']['name'].':'.$app->tform->formDef['name'].':'.'on_insert_save',array('page_form'=>$this, 'sql'=>$sql));
+                        
 						// loading plugins
 						$next_tab = $app->tform->getCurrentTab();
                 		$this->loadPlugins($next_tab);
@@ -200,7 +198,8 @@
                         }
 
                         $this->onAfterInsert();
-						
+						$app->plugin->raiseEvent($_SESSION['s']['module']['name'].':'.$app->tform->formDef['name'].':'.'on_after_insert',$this);
+
 						// Write data history (sys_datalog)
 						if($app->tform->formDef['db_history'] == 'yes') {
 							$new_data_record = $app->tform->getDataRecord($this->id);
@@ -219,9 +218,10 @@
                             header($redirect);
 							exit;
                         } 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: ".$_SESSION["s"]["form"]["return_to_url"]);
+							header("Location: ".$redirect);
 							exit;
 						} else {
                                 header("Location: ".$app->tform->formDef['list_default']);
@@ -270,7 +270,7 @@
         function onError() {
                 global $app, $conf;
 
-                $app->tpl->setVar("error","<b>".$app->lng('Error').":</b><br>".$app->tform->errorMessage);
+                $app->tpl->setVar("error","<li>".$app->tform->errorMessage."</li>");
                 $app->tpl->setVar($this->dataRecord);
                 $this->onShow();
         }
@@ -291,7 +291,7 @@
                 $app->tform->loadFormDef($tform_def_file);
 
                 // importing ID
-                $this->id = intval($_REQUEST["id"]);
+                $this->id = $app->functions->intval($_REQUEST["id"]);
 
                 if($this->id > 0) {
 
@@ -318,13 +318,14 @@
 						$next_tab = $app->tform->getCurrentTab();
                 		$this->loadPlugins($next_tab);
 						
-						
+                	
                         // Call plugin
                         foreach($this->plugins as $plugin) {
                                 $plugin->onDelete();
                         }
 						
 						$this->onAfterDelete();
+						$app->plugin->raiseEvent($_SESSION['s']['module']['name'].':'.$app->tform->formDef['name'].':'.'on_after_delete',$this);
                 }
 
                 		//header("Location: ".$liste["file"]."?PHPSESSID=".$_SESSION["s"]["id"]);
@@ -364,7 +365,7 @@
 			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');
+            	$sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('r');
             }
             if(!$record = $app->db->queryOneRecord($sql)) $app->error($app->lng('error_no_view_permission'));
 			
@@ -405,7 +406,7 @@
 				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');
+            		$sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('r');
             	}
             	if(!$record = $app->db->queryOneRecord($sql)) $app->error($app->lng('error_no_view_permission'));
 			
@@ -425,11 +426,11 @@
 				$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)) {
+				if (!preg_match('/^[-!#$%&\'*+\\./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)) {
+				if (preg_match('/^[-!#$%&\'*+\\./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>";
@@ -441,7 +442,7 @@
 			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');
+            	$sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('r');
             }
             if(!$record = $app->db->queryOneRecord($sql)) $app->error($app->lng('error_no_view_permission'));
 			
@@ -485,11 +486,19 @@
 						$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>";
+						$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);
 				}
 				
+                if(isset($_SESSION['show_info_msg'])) {
+                    $app->tpl->setVar('show_info_msg', $_SESSION['show_info_msg']);
+                    unset($_SESSION['show_info_msg']);
+                }
+                if(isset($_SESSION['show_error_msg'])) {
+                    $app->tpl->setVar('show_error_msg', $_SESSION['show_error_msg']);
+                    unset($_SESSION['show_error_msg']);
+                }
 				
 				// loading plugins
                 $this->loadPlugins($this->active_tab);
@@ -532,14 +541,14 @@
                 // bestehenden Datensatz anzeigen
                 if($app->tform->errorMessage == '') {
                         if($app->tform->formDef['auth'] == 'yes' && $_SESSION["s"]["user"]["typ"] != 'admin') {
-                        	$sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('u');
+                        	$sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id." AND ".$app->tform->getAuthSQL('r');
                         } else {
                         	$sql = "SELECT * FROM ".$app->tform->formDef['db_table']." WHERE ".$app->tform->formDef['db_table_idx']." = ".$this->id;
                         }
                         if(!$record = $app->db->queryOneRecord($sql)) $app->error($app->lng('error_no_view_permission'));
                 } else {
                         // $record = $app->tform->encode($_POST,$this->active_tab);
-						$record = $app->tform->encode($this->dataRecord,$this->active_tab);
+						$record = $app->tform->encode($this->dataRecord,$this->active_tab,false);
                 }
 
                 $this->dataRecord = $record;

--
Gitblit v1.9.1