From cfec7323d7229f379a3d3e98f9770bba74e22cb8 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 7 Mar 2018 12:22:35 +0100 Subject: [PATCH] add hooks on[Post|Pre]RemoveFromDatabaseFolder on[Post|Pre]RemoveFolder is called before and after any removal --- SeedDMS_Core/Core/inc.ClassFolder.php | 34 +++++++++++++++++++++------ 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index b7b29500b..b6ff9e035 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -967,8 +967,8 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { $db = $this->_dms->getDB(); /* Check if 'onPreRemoveFolder' callback is set */ - if(isset($this->_dms->callbacks['onPreRemoveFolder'])) { - foreach($this->_dms->callbacks['onPreRemoveFolder'] as $callback) { + if(isset($this->_dms->callbacks['onPreRemoveFromDatabaseFolder'])) { + foreach($this->_dms->callbacks['onPreRemoveFromDatabaseFolder'] as $callback) { $ret = call_user_func($callback[0], $callback[1], $this); if(is_bool($ret)) return $ret; @@ -1008,10 +1008,10 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { $db->commitTransaction(); /* Check if 'onPostRemoveFolder' callback is set */ - if(isset($this->_dms->callbacks['onPostRemoveFolder'])) { - foreach($this->_dms->callbacks['onPostRemoveFolder'] as $callback) { - /** @noinspection PhpStatementHasEmptyBodyInspection */ - if(!call_user_func($callback[0], $callback[1], $this->_id)) { + if(isset($this->_dms->callbacks['onPostRemoveFromDatabaseFolder'])) { + foreach($this->_dms->callbacks['onPostRemoveFromDatabaseFolder'] as $callback) { + /** @noinspection PhpStatementHasEmptyBodyInspection */ + if(!call_user_func($callback[0], $callback[1], $this->_id)) { } } } @@ -1035,6 +1035,15 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { return false; } + /* Check if 'onPreRemoveFolder' callback is set */ + if(isset($this->_dms->callbacks['onPreRemoveFolder'])) { + foreach($this->_dms->callbacks['onPreRemoveFolder'] as $callback) { + $ret = call_user_func($callback[0], $callback[1], $this); + if(is_bool($ret)) + return $ret; + } + } + //Entfernen der Unterordner und Dateien $res = $this->getSubFolders(); if (is_bool($res) && !$res) return false; @@ -1055,7 +1064,18 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { } } - return $this->removeFromDatabase(); + $ret = $this->removeFromDatabase(); + if(!$ret) + return $ret; + + /* Check if 'onPostRemoveFolder' callback is set */ + if(isset($this->_dms->callbacks['onPostRemoveFolder'])) { + foreach($this->_dms->callbacks['onPostRemoveFolder'] as $callback) { + call_user_func($callback[0], $callback[1], $this); + } + } + + return $ret; } /* }}} */ /**