From 93e3c3e3f37251c59f3b5736e528dd44535873fa Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sun, 3 Jun 2012 20:34:09 +0200 Subject: [PATCH] Fix: merge array of hookmanager errors --- htdocs/core/class/hookmanager.class.php | 4 +++- htdocs/societe/soc.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/hookmanager.class.php b/htdocs/core/class/hookmanager.class.php index 8dbe491a53e..a7f0edd173f 100755 --- a/htdocs/core/class/hookmanager.class.php +++ b/htdocs/core/class/hookmanager.class.php @@ -30,6 +30,8 @@ class HookManager { var $db; + var $error; + var $errors=array(); // Context hookmanager was created for ('thirdpartycard', 'thirdpartydao', ...) var $contextarray=array(); @@ -146,7 +148,7 @@ class HookManager $resaction+=$actionclassinstance->$method($parameters, $object, $action, $this); // $object and $action can be changed by method ($object->id during creation for example or $action to go back to other action for example) if ($resaction < 0 || ! empty($actionclassinstance->error) || (! empty($actionclassinstance->errors) && count($actionclassinstance->errors) > 0)) { - $this->error=$actionclassinstance->error; $this->errors=$actionclassinstance->errors; + $this->error=$actionclassinstance->error; $this->errors=array_merge($this->errors, (array) $actionclassinstance->errors); if ($method == 'doActions') { if ($action=='add') $action='create'; // TODO this change must be inside the doActions diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index d9f802305e1..1e559bb6aea 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -80,7 +80,7 @@ $hookmanager->initHooks(array('thirdpartycard')); $parameters=array('id'=>$socid, 'objcanvas'=>$objcanvas); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks -$error=$hookmanager->error; $errors=$hookmanager->errors; +$error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->errors); if (empty($reshook)) {