From c9b1098236b7a7db97eb73eabe30d1360d3a4f64 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Thu, 8 Dec 2022 09:37:39 +0100 Subject: [PATCH] Add extension JsonHook info --- plugins/README.md | 3 +++ .../libraries/RainLoop/Plugins/Manager.php | 27 ++++--------------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/plugins/README.md b/plugins/README.md index 850f18234..9e6219fbc 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -242,6 +242,9 @@ $Plugin->addHook('hook.name', 'functionName'); ## Json service actions Called by RainLoop\ServiceActions::ServiceJson() +{actionname} is one of the RainLoop\Actions::Do{ActionName}(), +or an extension action as "Plugin{ActionName}" added with Plugin::addJsonHook() +and called in JavaScript using rl.pluginRemoteRequest(). ### json.before-{actionname} params: none diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Manager.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Manager.php index e490e78c7..a46009df2 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Manager.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Manager.php @@ -378,21 +378,12 @@ class Manager return $bResult; } - /** - * @param mixed $mCallback - */ - public function AddAdditionalJsonAction(string $sActionName, $mCallback) : self + public function AddAdditionalJsonAction(string $sActionName, callable $mCallback) : self { - if ($this->bIsEnabled && \is_callable($mCallback) && \strlen($sActionName)) - { - $sActionName = 'DoPlugin'.$sActionName; - - if (!isset($this->aAdditionalJson[$sActionName])) - { - $this->aAdditionalJson[$sActionName] = $mCallback; - } + $sActionName = "DoPlugin{$sActionName}"; + if ($this->bIsEnabled && \strlen($sActionName) && !isset($this->aAdditionalJson[$sActionName])) { + $this->aAdditionalJson[$sActionName] = $mCallback; } - return $this; } @@ -406,15 +397,7 @@ class Manager */ public function RunAdditionalJson(string $sActionName) { - if ($this->bIsEnabled) - { - if (isset($this->aAdditionalJson[$sActionName])) - { - return $this->aAdditionalJson[$sActionName](); - } - } - - return false; + return $this->HasAdditionalJson($sActionName) ? $this->aAdditionalJson[$sActionName]() : false; } /**