コード例 #1
0
ファイル: HookProvider.php プロジェクト: jon48/webtrees-lib
 /**
  * {@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]);
                 }
             }
         }
     }
 }