mirror of
https://github.com/slawkens/myaac.git
synced 2025-05-24 14:34:29 +02:00
feat: autoload settings.php
This commit is contained in:
parent
1e9b10d648
commit
e574943707
@ -346,6 +346,25 @@ class Plugins {
|
||||
}
|
||||
|
||||
$settings = [];
|
||||
foreach (self::getAllPluginsJson() as $plugin) {
|
||||
if (!self::getAutoLoadOption($plugin, 'settings', true)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$settingsFileName = PLUGINS . $plugin['filename'] . '/settings.php';
|
||||
if (!is_file($settingsFileName)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$settingsFile = require $settingsFileName;
|
||||
if (!isset($settingsFile['key'])) {
|
||||
warning("Settings file for plugin - {$plugin['name']} does not contain 'key' field");
|
||||
continue;
|
||||
}
|
||||
|
||||
$settings[$settingsFile['key']] = ['pluginFilename' => $plugin['filename'], 'settingsFilename' => 'plugins/' . $plugin['filename'] . '/settings.php'];
|
||||
}
|
||||
|
||||
foreach (self::getAllPluginsJson() as $plugin) {
|
||||
if (isset($plugin['settings'])) {
|
||||
$settingsFile = require BASE . $plugin['settings'];
|
||||
@ -401,8 +420,14 @@ class Plugins {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!isset($plugin_json['settings']) || !file_exists(BASE . $plugin_json['settings'])) {
|
||||
return false;
|
||||
$settingsFileName = PLUGINS . $plugin_json['filename'] . '/settings.php';
|
||||
if (!is_file($settingsFileName)) {
|
||||
if (!isset($plugin_json['settings']) || !is_file(BASE . $plugin_json['settings'])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return 'plugins/' . $plugin_json['filename'] . '/settings.php';
|
||||
}
|
||||
|
||||
return $plugin_json['settings'];
|
||||
@ -432,6 +457,8 @@ class Plugins {
|
||||
return false;
|
||||
}
|
||||
|
||||
$plugin_json['filename'] = $filename;
|
||||
|
||||
return $plugin_json;
|
||||
}
|
||||
|
||||
|
@ -560,8 +560,8 @@ class Settings implements \ArrayAccess
|
||||
$settingsFilePath = BASE . $settings[$pluginKeyName]['settingsFilename'];
|
||||
}
|
||||
|
||||
if (!file_exists($settingsFilePath)) {
|
||||
throw new \RuntimeException('Failed to load settings file for plugin: ' . $pluginKeyName);
|
||||
if (!is_file($settingsFilePath)) {
|
||||
throw new \RuntimeException('Failed to load settings file for plugin: ' . $pluginKeyName . ' (Tried: ' . $settingsFilePath . ')');
|
||||
}
|
||||
|
||||
$this->settingsFile[$pluginKeyName] = require $settingsFilePath;
|
||||
|
Loading…
x
Reference in New Issue
Block a user