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') {
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;
}
/**
- * 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()
+ );
}
/**
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, [