ldc-mesbr-app/app/Http/Controllers/SiteController.php

128 lines
3.5 KiB
PHP
Raw Normal View History

2019-01-15 14:17:15 +01:00
<?php
namespace App\Http\Controllers;
use App\Models\Site;
use App\Models\User;
2019-01-15 14:17:15 +01:00
use Illuminate\Http\Request;
2019-02-27 11:12:39 +01:00
use Illuminate\Support\Facades\Auth;
2021-04-27 17:29:47 +02:00
2019-01-15 14:17:15 +01:00
class SiteController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$sites = Site::all();
return view('site.index')->with('sites', $sites);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('site.create');
}
/**
* Store a newly created resource in storage.
*
2025-04-03 09:30:16 +02:00
* @param \Illuminate\Http\Request $request
2019-01-15 14:17:15 +01:00
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
2021-04-27 17:29:47 +02:00
{
2019-02-21 17:02:25 +01:00
$request->validate([
2019-02-26 16:31:42 +01:00
'site_id' => 'required|unique:site',
2019-02-21 17:02:25 +01:00
'site_nom' => 'required',
'site_contact' => 'required',
2019-02-28 17:05:24 +01:00
'site_logo' => 'required|image|mimes:png',
2019-02-21 17:02:25 +01:00
'site_rcs' => 'required',
'site_libelle' => 'required'
]);
2025-04-03 09:30:16 +02:00
$site = new Site();
$datas = $this->saveImg($request);
$site->site_id = $datas['site_id'];
$site->site_nom = $datas['site_nom'];
2019-01-15 14:17:15 +01:00
$site->site_contact = $datas['site_contact'];
2025-04-03 09:30:16 +02:00
$site->site_logo = $datas['site_logo'];
$site->site_rcs = $datas['site_rcs'];
2019-01-15 14:17:15 +01:00
$site->site_libelle = $datas['site_libelle'];
$site->save();
2019-02-27 11:12:39 +01:00
// --- ADD all new sites to all SuperAdmin
$admins = User::where(['roles' => 'superadmin'])->get();
foreach ($admins as $admin) {
$admin->sites()->save($site);
}
// --- MAJ Selecteur marques
2025-04-03 09:30:16 +02:00
$marques = Auth::user()->sites;
2021-04-27 17:29:47 +02:00
$submarques = $marques->map(function ($marque) {
2019-02-27 11:12:39 +01:00
return $marque->only(['id', 'site_nom', 'site_id', 'site_logo']);
});
session()->put('marques', $submarques);
2019-01-15 14:17:15 +01:00
return view('site.edit', ['site' => $site]);
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\Site $site
2019-01-15 14:17:15 +01:00
* @return \Illuminate\Http\Response
*/
public function edit(Site $site)
{
return view('site.edit')->with('site', $site);
}
/**
* Update the specified resource in storage.
*
2025-04-03 09:30:16 +02:00
* @param \Illuminate\Http\Request $request
* @param \App\Models\Site $site
2019-01-15 14:17:15 +01:00
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Site $site)
{
if ($site->update($this->saveImg($request))) {
session()->flash('update_ok', 'Le site a bien été modifié');
} else {
session()->flash('update_nok', 'Erreur lors de l\'enregistrement');
}
2019-02-28 17:05:24 +01:00
return redirect()->route('site.edit', ['site' => $site]);
2019-01-15 14:17:15 +01:00
}
/**
2025-04-03 09:30:16 +02:00
* @param \Illuminate\Http\Request $request
2019-01-15 14:17:15 +01:00
*
* @return array
*/
private function saveImg(Request $request)
{
$datas = collect($request->all());
// Enregistrer le fichiersi il a changé
if ($request->site_logo) {
$path = $request->site_logo->store('images/logos');
$path = str_replace('public/', '', $path);
$datas->put('site_logo', $path);
} else {
$datas->put('site_logo', $request->input('site_logo_hidden'));
}
return $datas->toArray();
}
}