X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FAddon.php;h=ef2289ca598e6794b096e0c444dbfa1c69613bf7;hb=4e4eab7548c6c7bb7f096beb39419fef276af500;hp=37ef335a47d9a97c3a5967bfd60111e7bcfd18ed;hpb=8db0e090d7afc3fbfeaf7a587140c80c98233484;p=friendica.git diff --git a/src/Core/Addon.php b/src/Core/Addon.php index 37ef335a47..ef2289ca59 100644 --- a/src/Core/Addon.php +++ b/src/Core/Addon.php @@ -1,6 +1,6 @@ 1], ['order' => ['name']]); - while ($addon = DBA::fetch($addonsAdminStmt)) { - $addons_admin[$addon['name']] = [ - 'url' => 'admin/addons/' . $addon['name'], - 'name' => $addon['name'], + $addons = DI::config()->get('addons'); + ksort($addons); + foreach ($addons as $name => $data) { + if (empty($data['admin'])) { + continue; + } + + $addons_admin[$name] = [ + 'url' => 'admin/addons/' . $name, + 'name' => $name, 'class' => 'addon' ]; } - DBA::close($addonsAdminStmt); return $addons_admin; } @@ -113,8 +116,7 @@ class Addon */ public static function loadAddons() { - $installed_addons = DBA::selectToArray('addon', ['name'], ['installed' => true]); - self::$addons = array_column($installed_addons, 'name'); + self::$addons = array_keys(DI::config()->get('addons') ?? []); } /** @@ -128,8 +130,8 @@ class Addon { $addon = Strings::sanitizeFilePathItem($addon); - Logger::notice("Addon {addon}: {action}", ['action' => 'uninstall', 'addon' => $addon]); - DBA::delete('addon', ['name' => $addon]); + Logger::debug("Addon {addon}: {action}", ['action' => 'uninstall', 'addon' => $addon]); + DI::config()->delete('addons', $addon); @include_once('addon/' . $addon . '/' . $addon . '.php'); if (function_exists($addon . '_uninstall')) { @@ -160,7 +162,7 @@ class Addon return false; } - Logger::notice("Addon {addon}: {action}", ['action' => 'install', 'addon' => $addon]); + Logger::debug("Addon {addon}: {action}", ['action' => 'install', 'addon' => $addon]); $t = @filemtime($addon_file_path); @include_once($addon_file_path); if (function_exists($addon . '_install')) { @@ -168,12 +170,9 @@ class Addon $func(DI::app()); } - DBA::insert('addon', [ - 'name' => $addon, - 'installed' => true, - 'timestamp' => $t, - 'plugin_admin' => function_exists($addon . '_addon_admin'), - 'hidden' => file_exists('addon/' . $addon . '/.hidden') + DI::config()->set('addons', $addon, [ + 'last_update' => $t, + 'admin' => function_exists($addon . '_addon_admin'), ]); if (!self::isEnabled($addon)) { @@ -190,20 +189,20 @@ class Addon */ public static function reload() { - $addons = DBA::selectToArray('addon', [], ['installed' => true]); + $addons = DI::config()->get('addons'); - foreach ($addons as $addon) { - $addonname = Strings::sanitizeFilePathItem(trim($addon['name'])); + foreach ($addons as $name => $data) { + $addonname = Strings::sanitizeFilePathItem(trim($name)); $addon_file_path = 'addon/' . $addonname . '/' . $addonname . '.php'; - if (file_exists($addon_file_path) && $addon['timestamp'] == filemtime($addon_file_path)) { + if (file_exists($addon_file_path) && $data['last_update'] == filemtime($addon_file_path)) { // Addon unmodified, skipping continue; } - Logger::notice("Addon {addon}: {action}", ['action' => 'reload', 'addon' => $addon['name']]); + Logger::debug("Addon {addon}: {action}", ['action' => 'reload', 'addon' => $name]); - self::uninstall($addon['name']); - self::install($addon['name']); + self::uninstall($name); + self::install($name); } } @@ -313,11 +312,9 @@ class Addon public static function getVisibleList(): array { $visible_addons = []; - $stmt = DBA::select('addon', ['name'], ['hidden' => false, 'installed' => true]); - if (DBA::isResult($stmt)) { - foreach (DBA::toArray($stmt) as $addon) { - $visible_addons[] = $addon['name']; - } + $addons = DI::config()->get('addons'); + foreach ($addons as $name => $data) { + $visible_addons[] = $name; } return $visible_addons;