]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Addon.php
We now can show "Friendica (AP)" as network name
[friendica.git] / src / Core / Addon.php
index 68ea884836b42918346f198897ea6a4712aecbac..4c20c96ad4705546ed0ab6c429c0e64351a74f9b 100644 (file)
@@ -6,7 +6,6 @@ namespace Friendica\Core;
 
 use Friendica\App;
 use Friendica\Database\DBA;
-use Friendica\Database\DBM;
 
 require_once 'include/dba.php';
 
@@ -80,7 +79,7 @@ class Addon
                $addons = Config::get('system', 'addon');
                if (strlen($addons)) {
                        $r = DBA::select('addon', [], ['installed' => 1]);
-                       if (DBM::is_result($r)) {
+                       if (DBA::isResult($r)) {
                                $installed = DBA::toArray($r);
                        } else {
                                $installed = [];
@@ -140,6 +139,8 @@ class Addon
         */
        public static function registerHook($hook, $file, $function, $priority = 0)
        {
+               $file = str_replace(get_app()->get_basepath() . DIRECTORY_SEPARATOR, '', $file);
+
                $condition = ['hook' => $hook, 'file' => $file, 'function' => $function];
                $exists = DBA::exists('hook', $condition);
                if ($exists) {
@@ -161,7 +162,13 @@ class Addon
         */
        public static function unregisterHook($hook, $file, $function)
        {
+               $relative_file = str_replace(get_app()->get_basepath() . DIRECTORY_SEPARATOR, '', $file);
+
+               // This here is only needed for fixing a problem that existed on the develop branch
                $condition = ['hook' => $hook, 'file' => $file, 'function' => $function];
+               DBA::delete('hook', $condition);
+
+               $condition = ['hook' => $hook, 'file' => $relative_file, 'function' => $function];
                $r = DBA::delete('hook', $condition);
                return $r;
        }
@@ -312,7 +319,12 @@ class Addon
                        foreach ($ll as $l) {
                                $l = trim($l, "\t\n\r */");
                                if ($l != "") {
-                                       list($type, $v) = array_map("trim", explode(":", $l, 2));
+                                       $addon_info = array_map("trim", explode(":", $l, 2));
+                                       if (count($addon_info) < 2) {
+                                               continue;
+                                       }
+
+                                       list($type, $v) = $addon_info;
                                        $type = strtolower($type);
                                        if ($type == "author" || $type == "maintainer") {
                                                $r = preg_match("|([^<]+)<([^>]+)>|", $v, $m);