/** * {@inheritDoc} * @see \MyArtJaub\Webtrees\Hook\HookProviderInterface::updateHooks() */ public function updateHooks() { if (Auth::isAdmin()) { $ihooks = self::getInstalledHooks(); $phooks = self::getPossibleHooks(); // Insert hooks not existing yet in the DB if ($phooks !== null) { foreach ($phooks as $phook => $priority) { $array_hook = explode('#', $phook); if ($ihooks === null || !array_key_exists($phook, $ihooks)) { $chook = new Hook($array_hook[1], $array_hook[2]); $chook->subscribe($array_hook[0]); $chook->setPriority($array_hook[0], $priority); } } } //Remove hooks not existing any more in the file system if ($ihooks !== null) { foreach (array_keys($ihooks) as $ihook) { $array_hook = explode('#', $ihook); if ($phooks === null || !array_key_exists($ihook, $phooks)) { $chook = new Hook($array_hook[1], $array_hook[2]); $chook->remove($array_hook[0]); } } } } }