diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 06d7a6d13..45e93971f 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -271,6 +271,7 @@ class SeedDMS_Core_DMS { $this->maxDirID = 0; //31998; $this->enableConverting = false; $this->convertFileTypes = array(); + $this->callbacks = array(); $this->version = '@package_version@'; if($this->version[0] == '@') $this->version = '4.3.26'; @@ -1291,8 +1292,9 @@ class SeedDMS_Core_DMS { /* Check if 'onPostAddUser' callback is set */ if(isset($this->_dms->callbacks['onPostAddUser'])) { - $callback = $this->_dms->callbacks['onPostUser']; - if(!call_user_func($callback[0], $callback[1], $user)) { + foreach($this->_dms->callbacks['onPostUser'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $user)) { + } } } @@ -1391,8 +1393,9 @@ class SeedDMS_Core_DMS { /* Check if 'onPostAddGroup' callback is set */ if(isset($this->_dms->callbacks['onPostAddGroup'])) { - $callback = $this->_dms->callbacks['onPostAddGroup']; - if(!call_user_func($callback[0], $callback[1], $group)) { + foreach($this->_dms->callbacks['onPostAddGroup'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $group)) { + } } } @@ -1479,8 +1482,9 @@ class SeedDMS_Core_DMS { /* Check if 'onPostAddKeywordCategory' callback is set */ if(isset($this->_dms->callbacks['onPostAddKeywordCategory'])) { - $callback = $this->_dms->callbacks['onPostAddKeywordCategory']; - if(!call_user_func($callback[0], $callback[1], $category)) { + foreach($this->_dms->callbacks['onPostAddKeywordCategory'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $category)) { + } } } @@ -1554,8 +1558,9 @@ class SeedDMS_Core_DMS { /* Check if 'onPostAddDocumentCategory' callback is set */ if(isset($this->_dms->callbacks['onPostAddDocumentCategory'])) { - $callback = $this->_dms->callbacks['onPostAddDocumentCategory']; - if(!call_user_func($callback[0], $callback[1], $category)) { + foreach($this->_dms->callbacks['onPostAddDocumentCategory'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $category)) { + } } } @@ -2272,7 +2277,20 @@ class SeedDMS_Core_DMS { */ function setCallback($name, $func, $params=null) { /* {{{ */ if($name && $func) - $this->callbacks[$name] = array($func, $params); + $this->callbacks[$name] = array(array($func, $params)); + } /* }}} */ + + /** + * Add a callback function + * + * @param string $name internal name of callback + * @param mixed $func function name as expected by {call_user_method} + * @param mixed $params parameter passed as the first argument to the + * callback + */ + function addCallback($name, $func, $params=null) { /* {{{ */ + if($name && $func) + $this->callbacks[$name][] = array($func, $params); } /* }}} */ /** diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index bdf0e33cb..d37252c67 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -1787,9 +1787,10 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ /* Check if 'onPreRemoveDocument' callback is set */ if(isset($this->_dms->callbacks['onPreRemoveDocument'])) { - $callback = $this->_dms->callbacks['onPreRemoveDocument']; - if(!call_user_func($callback[0], $callback[1], $this)) { - return false; + foreach($this->_dms->callbacks['onPreRemoveDocument'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $this)) { + return false; + } } } @@ -1874,8 +1875,9 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ /* Check if 'onPostRemoveDocument' callback is set */ if(isset($this->_dms->callbacks['onPostRemoveDocument'])) { - $callback = $this->_dms->callbacks['onPostRemoveDocument']; - if(!call_user_func($callback[0], $callback[1], $this->_id)) { + foreach($this->_dms->callbacks['onPostRemoveDocument'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $this->_id)) { + } } } diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 7d9a004f1..1155f3706 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -484,8 +484,9 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /* Check if 'onPostAddSubFolder' callback is set */ if(isset($this->_dms->callbacks['onPostAddSubFolder'])) { - $callback = $this->_dms->callbacks['onPostAddSubFolder']; - if(!call_user_func($callback[0], $callback[1], $newFolder)) { + foreach($this->_dms->callbacks['onPostAddSubFolder'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $newFolder)) { + } } } @@ -802,8 +803,9 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /* Check if 'onPostAddDocument' callback is set */ if(isset($this->_dms->callbacks['onPostAddDocument'])) { - $callback = $this->_dms->callbacks['onPostAddDocument']; - if(!call_user_func($callback[0], $callback[1], $document)) { + foreach($this->_dms->callbacks['onPostAddDocument'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $document)) { + } } } @@ -822,9 +824,10 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /* Check if 'onPreRemoveFolder' callback is set */ if(isset($this->_dms->callbacks['onPreRemoveFolder'])) { - $callback = $this->_dms->callbacks['onPreRemoveFolder']; - if(!call_user_func($callback[0], $callback[1], $this)) { - return false; + foreach($this->_dms->callbacks['onPreRemoveFolder'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $this)) { + return false; + } } } @@ -880,8 +883,9 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /* Check if 'onPostRemoveFolder' callback is set */ if(isset($this->_dms->callbacks['onPostRemoveFolder'])) { - $callback = $this->_dms->callbacks['onPostRemoveFolder']; - if(!call_user_func($callback[0], $callback[1], $this->_id)) { + foreach($this->_dms->callbacks['onPostRemoveFolder'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $this->_id)) { + } } }