key] = $setting->value; } if ($_SERVER["REQUEST_METHOD"] === "POST") { $input = $request->all(); //comparer les settingsToPrint (en base) avec les inputs (pour trouver un nouveau) foreach($input as $key=>$value) { if(!isset($settingsToPrint[$key]) && $key != "_method" && $key != "_token") { //new setting $setting = new Setting(); $setting->key = $key; $setting->value = $value ?? 0; $setting->save(); } } for($i = 0; $i < count($settings); $i++) { $settings[$i]->value = $request->input($settings[$i]->key) === null ? 0 : $request->input($settings[$i]->key); $settings[$i]->save(); } return redirect()->route('bo.settings')->with('success', 'Modifications enregistrés !'); } return view('bo.settings', compact('settingsToPrint')); } /** * Management des settings dont la clé est préfixée theme_ */ public function manageTheme(Request $request) { $settings = Setting::where('key', 'LIKE', 'theme_%')->get(); $settingsToPrint = []; foreach ($settings as $setting) { $settingsToPrint[$setting->key] = $setting->value; } $config_settings = Config::get(('theme.bo_theme_settings')); //check if, for each of the theme defined settings we have a database setting foreach ($config_settings as $onekey => $params) { if (!isset($settingsToPrint['theme_' . $onekey])) { $dbsetting = new Setting(); $dbsetting->key = 'theme_' . $onekey; $dbsetting->value = $params['default_value']; $dbsetting->save(); //injection dans settings to print $settingsToPrint[$dbsetting->key] = $dbsetting->value; } } if ($_SERVER["REQUEST_METHOD"] === "POST") { for($i = 0; $i < count($settings); $i++) { //attention pour les booléens/checkbox on enregistre 'on' $settings[$i]->value = $request->input($settings[$i]->key) === null ? 0 : $request->input($settings[$i]->key); $settings[$i]->save(); } return redirect()->route('bo.themesettings')->with('success', 'Modifications enregistrés !'); } return view('bo.settings.theme', compact('settingsToPrint', 'config_settings')); } }