]> git.mxchange.org Git - friendica.git/commitdiff
Simplify AddonHelper::getAvailableAddons(), move style logic into Module class
authorArt4 <art4@wlabs.de>
Tue, 4 Feb 2025 13:48:04 +0000 (13:48 +0000)
committerArt4 <art4@wlabs.de>
Tue, 4 Feb 2025 13:48:04 +0000 (13:48 +0000)
src/Console/Addon.php
src/Core/Addon/AddonHelper.php
src/Core/Addon/AddonProxy.php
src/Module/Admin/Addons/Index.php

index 689359f9689fa27703ab44e0101c0b0253a9708e..c279ef297697bf0b70d86e04061e09ad596f5662 100644 (file)
@@ -124,8 +124,7 @@ HELP;
                                return false;
                }
 
-               foreach ($this->addonHelper->getAvailableAddons() as $addon) {
-                       $addonId = $addon[0];
+               foreach ($this->addonHelper->getAvailableAddons() as $addonId) {
                        $enabled = $this->addonHelper->isAddonEnabled($addonId);
 
                        if ($subCmd === 'all') {
index 47962692f8f256311b2ecf2ed5f8077de66dbcf2..84b0c5f89dba6a7dde4783ead4e459f566317f35 100644 (file)
@@ -22,11 +22,12 @@ interface AddonHelper
        public function getAddonPath(): string;
 
        /**
-        * Returns the list of available addons with their current status and info.
+        * Returns the list of available addons.
+        *
         * This list is made from scanning the addon/ folder.
         * Unsupported addons are excluded unless they already are enabled or system.show_unsupported_addon is set.
         *
-        * @return array<array<string|string|array>>
+        * @return string[]
         */
        public function getAvailableAddons(): array;
 
index 360a54ff06b875bb382e7782d5e2f07d7d15605e..31f9fa90af039168be866226094aa01005bf0210 100644 (file)
@@ -36,15 +36,21 @@ final class AddonProxy implements AddonHelper
        }
 
        /**
-        * Returns the list of available addons with their current status and info.
+        * Returns the list of available addons.
+        *
         * This list is made from scanning the addon/ folder.
         * Unsupported addons are excluded unless they already are enabled or system.show_unsupported_addon is set.
         *
-        * @return array<array<string|string|array>>
+        * @return string[]
         */
        public function getAvailableAddons(): array
        {
-               return Addon::getAvailableList();
+               return array_map(
+                       function(array $item) {
+                               return $item[0];
+                       },
+                       Addon::getAvailableList()
+               );
        }
 
        /**
index 3d3e6a810d54ed46e6e750cfb7687b3e060ed24d..6bc0d0fa1dc5996017abe1ffda0683b0d74f8cfb 100644 (file)
@@ -54,7 +54,23 @@ class Index extends BaseAdmin
                        DI::baseUrl()->redirect('admin/addons');
                }
 
-               $addons = $addonHelper->getAvailableAddons();
+               $addons = [];
+
+               foreach ($addonHelper->getAvailableAddons() as $addonId) {
+                       $addonInfo = $addonHelper->getAddonInfo($addonId);
+
+                       $info = [
+                               'name' => $addonInfo->getName(),
+                               'description' => $addonInfo->getDescription(),
+                               'version' => $addonInfo->getVersion(),
+                       ];
+
+                       $addons[] = [
+                               $addonId,
+                               ($addonHelper->isAddonEnabled($addonId) ? 'on' : 'off'),
+                               $info,
+                       ];
+               }
 
                $t = Renderer::getMarkupTemplate('admin/addons/index.tpl');
                return Renderer::replaceMacros($t, [