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