From 2029fcc5f586ed8b79c1dd23db6c4bbbfb7aa388 Mon Sep 17 00:00:00 2001 From: pkamps Date: Fri, 4 Jun 2021 10:42:47 +0200 Subject: [PATCH] Add "cluster/storeFile" cluster event --- doc/features/4.7/cluster_events.md | 3 +++ .../classes/clusterfilehandlers/dfsbackends/mysqli.php | 3 ++- .../interfaces/ezclustereventlistener.php | 10 ++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/doc/features/4.7/cluster_events.md b/doc/features/4.7/cluster_events.md index 830524119fa..c732bb06acc 100644 --- a/doc/features/4.7/cluster_events.md +++ b/doc/features/4.7/cluster_events.md @@ -98,6 +98,9 @@ Try to use constants instead or configuration objects passed to your custom gate - `cluster/storeMetadata` - **Notification**. The metadata array is passed as argument. +- `cluster/storeFile` - **Notification**. + The file path, datatype and scope are passed as arguments. + - `cluster/loadMetadata` - **Filter**. File path we need metadata from is passed as argument. Must return an the metadata array or false. diff --git a/kernel/private/classes/clusterfilehandlers/dfsbackends/mysqli.php b/kernel/private/classes/clusterfilehandlers/dfsbackends/mysqli.php index 0a360c81373..a8f2cb66055 100644 --- a/kernel/private/classes/clusterfilehandlers/dfsbackends/mysqli.php +++ b/kernel/private/classes/clusterfilehandlers/dfsbackends/mysqli.php @@ -971,7 +971,7 @@ function _store( $filePath, $datatype, $scope, $fname = false ) $return = $this->_protect( array( $this, '_storeInner' ), $fname, $filePath, $datatype, $scope, $fname ); - $this->eventHandler->notify( 'cluster/deleteFile', array( $filePath ) ); + $this->eventHandler->notify( 'cluster/storeFile', array( $filePath, $datatype, $scope ) ); return $return; } @@ -2006,6 +2006,7 @@ public function registerListener( eZClusterEventListener $listener ) 'cluster/storeMetadata', 'cluster/loadMetadata', 'cluster/fileExists', + 'cluster/storeFile', 'cluster/deleteFile', 'cluster/deleteByLike', 'cluster/deleteByDirList', diff --git a/kernel/private/classes/clusterfilehandlers/interfaces/ezclustereventlistener.php b/kernel/private/classes/clusterfilehandlers/interfaces/ezclustereventlistener.php index 80859523062..cabf2939ca4 100644 --- a/kernel/private/classes/clusterfilehandlers/interfaces/ezclustereventlistener.php +++ b/kernel/private/classes/clusterfilehandlers/interfaces/ezclustereventlistener.php @@ -104,4 +104,14 @@ public function deleteByDirList( array $dirList, $commonPath, $commonSuffix ); * @return void */ public function deleteByNametrunk( $nametrunk ); + + /** + * Notifies of a storeFile operation + * + * @param string $filePath + * @param string $datatype + * @param string $scope + * @return void + */ + public function storeFile( $filePath, $datatype, $scope ); }