X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FAddon.php;h=2ec46b71c1835b2792841c4d418a1c2e03ac5ff6;hb=cbe435bb708ccf17a4b5bea1e20c3258c9524700;hp=2c28c24ee9299c244f3326978f9efecbd91566c4;hpb=9bbb4385345640b39d51086b9d8e0471ff682591;p=friendica.git diff --git a/src/Core/Addon.php b/src/Core/Addon.php index 2c28c24ee9..2ec46b71c1 100644 --- a/src/Core/Addon.php +++ b/src/Core/Addon.php @@ -2,6 +2,7 @@ /** * @file src/Core/Addon.php */ + namespace Friendica\Core; use Friendica\BaseObject; @@ -26,6 +27,14 @@ class Addon extends BaseObject */ private static $addons = []; + /** + * Returns the list of available addons with their current status and info. + * 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 + * @throws \Exception + */ public static function getAvailableList() { $addons = []; @@ -49,6 +58,30 @@ class Addon extends BaseObject return $addons; } + /** + * Returns a list of addons that can be configured at the node level. + * The list is formatted for display in the admin panel aside. + * + * @return array + * @throws \Exception + */ + public static function getAdminList() + { + $addons_admin = []; + $addonsAdminStmt = DBA::select('addon', ['name'], ['plugin_admin' => 1], ['order' => ['name']]); + while ($addon = DBA::fetch($addonsAdminStmt)) { + $addons_admin[$addon['name']] = [ + 'url' => 'admin/addons/' . $addon['name'], + 'name' => $addon['name'], + 'class' => 'addon' + ]; + } + DBA::close($addonsAdminStmt); + + return $addons_admin; + } + + /** * @brief Synchronize addons: * @@ -116,6 +149,8 @@ class Addon extends BaseObject $func(); } + DBA::delete('hook', ['file' => 'addon/' . $addon . '/' . $addon . '.php']); + unset(self::$addons[array_search($addon, self::$addons)]); Addon::saveEnabledList(); @@ -313,7 +348,7 @@ class Addon extends BaseObject */ public static function saveEnabledList() { - return Config::set('system', 'addon', implode(', ', self::$addons)); + return Config::set('system', 'addon', implode(',', self::$addons)); } /**