| Conditions | 9 |
| Paths | 30 |
| Total Lines | 35 |
| Code Lines | 22 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 1 | ||
| Bugs | 0 | Features | 0 |
| 1 | <?php |
||
| 24 | public function saveSettings(Server $server, array $settings) |
||
| 25 | { |
||
| 26 | $existsSettings = []; |
||
| 27 | foreach ($server->settings as $setting) { |
||
| 28 | $existsSettings[$setting->name] = $setting; |
||
| 29 | } |
||
| 30 | |||
| 31 | $saveSettings = []; |
||
| 32 | foreach ($settings as $setting) { |
||
| 33 | if (empty($setting['name']) || empty($setting['value'])) { |
||
| 34 | continue; |
||
| 35 | } |
||
| 36 | |||
| 37 | $saveSettings[$setting['name']] = $setting['value']; |
||
| 38 | |||
| 39 | if (array_key_exists($setting['name'], $existsSettings)) { |
||
| 40 | if (!empty($setting['value'])) { |
||
| 41 | $existsSettings[$setting['name']]->value = $setting['value']; |
||
| 42 | $existsSettings[$setting['name']]->save(); |
||
| 43 | } |
||
| 44 | } else { |
||
| 45 | $serverSetting = new ServerSetting(); |
||
| 46 | |||
| 47 | $serverSetting->server_id = $server->id; |
||
| 48 | $serverSetting->name = $setting['name']; |
||
| 49 | $serverSetting->value = $setting['value']; |
||
| 50 | $serverSetting->save(); |
||
| 51 | $existsSettings[$setting['name']] = $serverSetting; |
||
| 52 | } |
||
| 53 | } |
||
| 54 | |||
| 55 | // Remove items |
||
| 56 | foreach ($server->settings as $setting) { |
||
| 57 | if (!array_key_exists($setting['name'], $saveSettings)) { |
||
| 58 | $setting->delete(); |
||
| 59 | } |
||
| 63 | } |