Merge pull request #9576 from MrPetovan/bug/9573-addon-install

Don't assume addons must have an *_install function
This commit is contained in:
Michael Vogel 2020-11-22 07:56:16 +01:00 committed by GitHub
commit c5c514fb9a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -163,29 +163,21 @@ class Addon
if (function_exists($addon . '_install')) {
$func = $addon . '_install';
$func(DI::app());
$addon_admin = (function_exists($addon . "_addon_admin") ? 1 : 0);
DBA::insert('addon', ['name' => $addon, 'installed' => true,
'timestamp' => $t, 'plugin_admin' => $addon_admin]);
// we can add the following with the previous SQL
// once most site tables have been updated.
// This way the system won't fall over dead during the update.
if (file_exists('addon/' . $addon . '/.hidden')) {
DBA::update('addon', ['hidden' => true], ['name' => $addon]);
}
DBA::insert('addon', [
'name' => $addon,
'installed' => true,
'timestamp' => $t,
'plugin_admin' => function_exists($addon . '_addon_admin'),
'hidden' => file_exists('addon/' . $addon . '/.hidden')
]);
if (!self::isEnabled($addon)) {
self::$addons[] = $addon;
}
return true;
} else {
Logger::error("Addon {addon}: {action} failed", ['action' => 'install', 'addon' => $addon]);
return false;
}
}
/**