Move addon admin list generation to Core\Addon

This commit is contained in:
Hypolite Petovan 2019-04-27 22:19:54 -04:00
parent 9774c95b80
commit 9f4fb4906a
5 changed files with 40 additions and 29 deletions

View file

@ -27,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 = [];
@ -50,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:
*