Merge pull request #10853 from MrPetovan/bug/addon-reload
Fix addon reloading
This commit is contained in:
commit
8f518af011
1 changed files with 10 additions and 8 deletions
|
@ -153,14 +153,16 @@ class Addon
|
||||||
{
|
{
|
||||||
$addon = Strings::sanitizeFilePathItem($addon);
|
$addon = Strings::sanitizeFilePathItem($addon);
|
||||||
|
|
||||||
|
$addon_file_path = 'addon/' . $addon . '/' . $addon . '.php';
|
||||||
|
|
||||||
// silently fail if addon was removed of if $addon is funky
|
// silently fail if addon was removed of if $addon is funky
|
||||||
if (!file_exists('addon/' . $addon . '/' . $addon . '.php')) {
|
if (!file_exists($addon_file_path)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger::notice("Addon {addon}: {action}", ['action' => 'install', 'addon' => $addon]);
|
Logger::notice("Addon {addon}: {action}", ['action' => 'install', 'addon' => $addon]);
|
||||||
$t = @filemtime('addon/' . $addon . '/' . $addon . '.php');
|
$t = @filemtime($addon_file_path);
|
||||||
@include_once('addon/' . $addon . '/' . $addon . '.php');
|
@include_once($addon_file_path);
|
||||||
if (function_exists($addon . '_install')) {
|
if (function_exists($addon . '_install')) {
|
||||||
$func = $addon . '_install';
|
$func = $addon . '_install';
|
||||||
$func(DI::app());
|
$func(DI::app());
|
||||||
|
@ -190,16 +192,16 @@ class Addon
|
||||||
|
|
||||||
foreach ($addons as $addon) {
|
foreach ($addons as $addon) {
|
||||||
$addonname = Strings::sanitizeFilePathItem(trim($addon['name']));
|
$addonname = Strings::sanitizeFilePathItem(trim($addon['name']));
|
||||||
$fname = 'addon/' . $addonname . '/' . $addonname . '.php';
|
$addon_file_path = 'addon/' . $addonname . '/' . $addonname . '.php';
|
||||||
$t = @filemtime($fname);
|
if (file_exists($addon_file_path) && $addon['timestamp'] == filemtime($addon_file_path)) {
|
||||||
if (!file_exists($fname) || ($addon['timestamp'] == $t)) {
|
// Addon unmodified, skipping
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger::notice("Addon {addon}: {action}", ['action' => 'reload', 'addon' => $addon['name']]);
|
Logger::notice("Addon {addon}: {action}", ['action' => 'reload', 'addon' => $addon['name']]);
|
||||||
|
|
||||||
self::uninstall($fname);
|
self::uninstall($addon['name']);
|
||||||
self::install($fname);
|
self::install($addon['name']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue