X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=application%2Fplugin%2FPluginManager.php;h=2d93cb3a2173c58bada5803b8ca4fd522819991f;hb=2cd0509b503332b1989f06da45d569d4d2929be5;hp=f7b24a8e88c979031873ee1a8a59fe88503c4bf5;hpb=e1850388348d4bfdf463a5aa341bc470da79cf32;p=github%2Fshaarli%2FShaarli.git diff --git a/application/plugin/PluginManager.php b/application/plugin/PluginManager.php index f7b24a8e..2d93cb3a 100644 --- a/application/plugin/PluginManager.php +++ b/application/plugin/PluginManager.php @@ -16,7 +16,7 @@ class PluginManager * * @var array $authorizedPlugins */ - private $authorizedPlugins; + private $authorizedPlugins = []; /** * List of loaded plugins. @@ -108,11 +108,20 @@ class PluginManager $data['_LOGGEDIN_'] = $params['loggedin']; } + if (isset($params['basePath'])) { + $data['_BASE_PATH_'] = $params['basePath']; + } + foreach ($this->loadedPlugins as $plugin) { $hookFunction = $this->buildHookName($hook, $plugin); if (function_exists($hookFunction)) { - $data = call_user_func($hookFunction, $data, $this->conf); + try { + $data = call_user_func($hookFunction, $data, $this->conf); + } catch (\Throwable $e) { + $error = $plugin . t(' [plugin incompatibility]: ') . $e->getMessage(); + $this->errors = array_unique(array_merge($this->errors, [$error])); + } } } }