callbacks can have more than one user function

This commit is contained in:
Uwe Steinmann 2016-04-26 12:06:41 +02:00
parent 2ee76efedb
commit 0b69ddb439
3 changed files with 47 additions and 23 deletions

View File

@ -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);
} /* }}} */
/**

View File

@ -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)) {
}
}
}

View File

@ -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)) {
}
}
}