From e5c06ac3e80401cfedda5d0d02c9a704d2777c1e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@users.sourceforge.net> Date: Wed, 13 Jul 2011 21:33:38 +0000 Subject: [PATCH] Fix: Object should never be a global variable as there is several object in a context. Also object type must be fixed for each "trigger code". So we add trigger code and object on parameter because only caller of a function know which object type we use and what trigger code we want to trigger. --- htdocs/lib/files.lib.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/htdocs/lib/files.lib.php b/htdocs/lib/files.lib.php index 3dbbef2c6b2..5dda38dcc5c 100644 --- a/htdocs/lib/files.lib.php +++ b/htdocs/lib/files.lib.php @@ -20,7 +20,7 @@ /** * \file htdocs/lib/files.lib.php * \brief Library for file managing functions - * \version $Id: files.lib.php,v 1.68 2011/07/11 06:23:22 hregis Exp $ + * \version $Id: files.lib.php,v 1.69 2011/07/13 21:33:38 eldy Exp $ */ /** @@ -590,12 +590,13 @@ function dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disable * @param disableglob Disable usage of glob like * * @param nophperrors Disable all PHP output errors * @param notrigger Disable all triggers + * @param triggercode Code of trigger + * @param object Object for trigger * @return boolean True if file is deleted, False if error */ -function dol_delete_file($file,$disableglob=0,$nophperrors=0,$notrigger=0) +function dol_delete_file($file,$disableglob=0,$nophperrors=0,$notrigger=0,$triggercode='FILE_DELETE',$object=null) { - global $conf, $user, $langs; - global $object; + global $db, $conf, $user, $langs; //print "x".$file." ".$disableglob; $ok=true; @@ -611,12 +612,13 @@ function dol_delete_file($file,$disableglob=0,$nophperrors=0,$notrigger=0) dol_syslog("Removed file ".$filename,LOG_DEBUG); if (! $notrigger) { + if (! is_object($object)) $object=(object) 'dummy'; $object->src_file=$file; // Appel des triggers include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); $interface=new Interfaces($db); - $result=$interface->run_triggers('FILE_DELETE',$object,$user,$langs,$conf); + $result=$interface->run_triggers($triggercode,$object,$user,$langs,$conf); if ($result < 0) { $error++; $errors=$interface->errors; } // Fin appel triggers } -- GitLab