- foreach ($node->settings as $setting) {
- if (!$unconditional and !is_null($setting->get_setting())) {
- //do not override existing defaults
- continue;
- }
- $defaultsetting = $setting->get_defaultsetting();
- if (is_null($defaultsetting)) {
- // no value yet - default maybe applied after admin user creation or in upgradesettings
- continue;
- }
+ foreach ($node->settings as $setting) {
+ if (!$unconditional and !is_null($setting->get_setting())) {
+ // Do not override existing defaults.
+ continue;
+ }
+ $defaultsetting = $setting->get_defaultsetting();
+ if (is_null($defaultsetting)) {
+ // No value yet - default maybe applied after admin user creation or in upgradesettings.
+ continue;
+ }
+
+ $settingname = $node->name . '_' . $setting->name; // Get a unique name for the setting.
+
+ if (!array_key_exists($settingname, $admindefaultsettings)) { // Only update a setting if not already processed.
+ $admindefaultsettings[$settingname] = $settingname;
+ $settingsoutput[$settingname] = $defaultsetting;
+
+ // Set the default for this setting.