|
|
@@ -42,11 +42,18 @@ class Extension extends ExtensionAbstract
|
|
|
foreach (extension_name_list() as $extensionID) {
|
|
|
/** @var ExtensionAbstract $extension */
|
|
|
$extension = $this->autoloadService->getExtension($extensionID);
|
|
|
- get_class($extension)::macro('available', function () {
|
|
|
+ $className = get_class($extension);
|
|
|
+ if (method_exists($extension, 'available')
|
|
|
+ || $className::hasMacro('available')
|
|
|
+ ) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $className::macro('available', function () {
|
|
|
$extensionID = $this->getInfo()['id'];
|
|
|
return ExtensionModel::where('id', $extensionID)
|
|
|
->value('status', ExtensionStatusEnum::UNINSTALLED, true) === ExtensionStatusEnum::ENABLED;
|
|
|
});
|
|
|
+
|
|
|
}
|
|
|
parent::boot();
|
|
|
}
|