Simplified code

This commit is contained in:
Michael 2020-03-10 13:13:43 +00:00
parent 8e421f0893
commit d4480ae4be

View file

@ -113,13 +113,7 @@ class Addon
public static function loadAddons() public static function loadAddons()
{ {
$installed_addons = DBA::selectToArray('addon', ['name'], ['installed' => true]); $installed_addons = DBA::selectToArray('addon', ['name'], ['installed' => true]);
self::$addons = array_column($installed_addons, 'name');
$addons_arr = [];
foreach ($installed_addons as $addon) {
$addons_arr[] = $addon['name'];
}
self::$addons = $addons_arr;
} }
/** /**
@ -199,36 +193,28 @@ class Addon
*/ */
public static function reload() public static function reload()
{ {
$installed = DBA::selectToArray('addon', [], ['installed' => 1]); $addons = DBA::selectToArray('addon', [], ['installed' => true]);
$addon_list = []; foreach ($addons as $addon) {
foreach ($installed as $addon) { $addonname = Strings::sanitizeFilePathItem(trim($addon['name']));
$addon_list[] = $addon['name']; $fname = 'addon/' . $addonname . '/' . $addonname . '.php';
$t = @filemtime($fname);
if (!file_exists($fname) || ($addon['timestamp'] == $t)) {
continue;
} }
foreach ($addon_list as $addon) { Logger::notice("Addon {addon}: {action}", ['action' => 'reload', 'addon' => $addon['name']]);
$addon = Strings::sanitizeFilePathItem(trim($addon));
$fname = 'addon/' . $addon . '/' . $addon . '.php';
if (file_exists($fname)) {
$t = @filemtime($fname);
foreach ($installed as $i) {
if (($i['name'] == $addon) && ($i['timestamp'] != $t)) {
Logger::notice("Addon {addon}: {action}", ['action' => 'reload', 'addon' => $i['name']]);
@include_once($fname); @include_once($fname);
if (function_exists($addon . '_uninstall')) { if (function_exists($addonname . '_uninstall')) {
$func = $addon . '_uninstall'; $func = $addonname . '_uninstall';
$func(DI::app()); $func(DI::app());
} }
if (function_exists($addon . '_install')) { if (function_exists($addonname . '_install')) {
$func = $addon . '_install'; $func = $addonname . '_install';
$func(DI::app()); $func(DI::app());
} }
DBA::update('addon', ['timestamp' => $t], ['id' => $i['id']]); DBA::update('addon', ['timestamp' => $t], ['id' => $addon['id']]);
}
}
}
} }
} }