paniersOwner; return view('panier.index')->with([ 'paniers'=> $paniers, ]); } /** * Page publique d'un panier * * @return \Illuminate\Http\Response */ public function showBasket(Request $request) { $panier_uid = $request->basket_uid; $formats = Format::withoutGlobalScope('App\Scopes\SystemScope')->where('system', 1)->get(); $panier = Panier::where('uid', $panier_uid)->first(); if($panier && $panier->statut == 1){ return view('panier.show')->with([ 'panier'=> $panier, 'formats' => $formats, ]); }else{ abort(404, 'Page introuvable'); } } /** * Ajout de média à un panier */ public function addMediasBasket(Request $request) { $response = false; $mediasToAdd = $request->input('medias'); $panierId = $request->input('panier_id'); $panier = Panier::where('id', $panierId)->with('medias')->first(); if($panier){ $result = $panier->medias()->syncWithoutDetaching($mediasToAdd); $medias = Media::whereIn('id', $result['attached'])->get(); $response = $medias; } return json_encode($response); } /** * Suppression de média à un panier */ public function removeMediasBasket(Request $request) { $response = false; $mediaToRemove = $request->input('media_id'); $panierId = $request->input('panier_id'); $panier = Panier::where('id', $panierId)->with('medias')->first(); if($panier && $mediaToRemove != ""){ $panier->medias()->detach($mediaToRemove); $response = true; } return json_encode($response); } /** * Ajoute un panier */ public function addBasket(Request $request) { $response = false; $uid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)); $title = $request->input('title'); if($title == ""){ $title = "Panier du ".date("d/m/Y"); } $panier = new Panier(); $panier->owner = Auth::user()->id; $panier->libelle = $title; $panier->uid = $uid; if($panier->save()){ $response = $panier; } return json_encode($response); } /** * Supprimer un panier * */ public function removeBasket(Request $request) { $response = false; $basket_id = $request->input('basket_id'); $panier = Panier::where('id', $basket_id); if($panier){ $panier->delete(); $response = true; } return json_encode($response); } /** * Obtenir un panier * */ public function getBasket(Request $request) { $response = false; $basket_id = $request->input('basket_id'); $host = $request->getSchemeAndHttpHost(); $panier = Panier::where('id', $basket_id)->first(); if($panier){ $response['basket'] = $panier; $response['link'] = $host."/basket/".$panier->uid; } return json_encode($response); } /** * Charge un panier */ public function loadBasket(Request $request) { $response = false; $panierId = $request->input('panier_id'); $panier = Panier::where('id', $panierId)->with('medias')->first(); if($panier){ $response = $panier; } return json_encode($response); } /** * enregistre les propriétés d'un panier * */ public function saveBasketProperty(Request $request) { $basket_id = $request->input('basket_id'); $libelle = $request->input('libelle'); $description = $request->input('description'); $statut = $request->input('statut'); $panier = Panier::where('id', $basket_id)->first(); if($panier){ $panier->libelle = $libelle; $panier->description = $description; $panier->statut = $statut; $panier->save(); } return json_encode(true); } }