83 lines
2.6 KiB
PHP
83 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\File;
|
|
use Illuminate\Support\Facades\Artisan;
|
|
|
|
class SettingsController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$settings = config('settings');
|
|
return view('settings.index', compact('settings'));
|
|
}
|
|
|
|
public function update(Request $request)
|
|
{
|
|
$request->validate([
|
|
'company_name' => 'required|string|max:100',
|
|
'company_tagline' => 'nullable|string|max:200',
|
|
'phone' => 'nullable|string|max:50',
|
|
'email' => 'nullable|email|max:100',
|
|
'address' => 'nullable|string|max:200',
|
|
]);
|
|
|
|
$config = [
|
|
'company_name' => $request->company_name,
|
|
'company_tagline' => $request->company_tagline ?? 'Car Rental Management System',
|
|
'logo' => config('settings.logo'),
|
|
'phone' => $request->phone ?? '',
|
|
'email' => $request->email ?? '',
|
|
'address' => $request->address ?? '',
|
|
];
|
|
|
|
$configContent = "<?php\n\nreturn [\n";
|
|
foreach ($config as $key => $value) {
|
|
$configContent .= " '$key' => " . var_export($value, true) . ",\n";
|
|
}
|
|
$configContent .= "];\n";
|
|
|
|
File::put(config_path('settings.php'), $configContent);
|
|
|
|
// Clear config cache
|
|
Artisan::call('config:clear');
|
|
|
|
return redirect()->route('settings.index')->with('success', 'Settings updated successfully!');
|
|
}
|
|
|
|
public function uploadLogo(Request $request)
|
|
{
|
|
$request->validate([
|
|
'logo' => 'required|image|mimes:png,jpg,jpeg,gif,svg|max:2048',
|
|
]);
|
|
|
|
$file = $request->file('logo');
|
|
$filename = 'logo.' . $file->getClientOriginalExtension();
|
|
|
|
// Delete old logo
|
|
$oldLogo = public_path(config('settings.logo'));
|
|
if (File::exists($oldLogo) && strpos(config('settings.logo'), 'logo.') !== false) {
|
|
File::delete($oldLogo);
|
|
}
|
|
|
|
$file->move(public_path('/uploads'), $filename);
|
|
|
|
// Update config
|
|
$config = config('settings');
|
|
$config['logo'] = '/uploads/' . $filename;
|
|
|
|
$configContent = "<?php\n\nreturn [\n";
|
|
foreach ($config as $key => $value) {
|
|
$configContent .= " '$key' => " . var_export($value, true) . ",\n";
|
|
}
|
|
$configContent .= "];\n";
|
|
|
|
File::put(config_path('settings.php'), $configContent);
|
|
Artisan::call('config:clear');
|
|
|
|
return redirect()->route('settings.index')->with('success', 'Logo uploaded successfully!');
|
|
}
|
|
}
|