sujets; $typemedias = Typemedia::all(); $langues = Langue::all(); $copyrights = Copyright::all(); $etiquettes = Etiquette::all(); $sites = Site::all(); $marques = Marque::all(); return view('media_manager')->with([ 'sujets'=> $sujets, 'typemedias'=> $typemedias, 'langues'=> $langues, 'copyrights'=> $copyrights, 'etiquettes'=> $etiquettes, 'sites'=> $sites, 'marques'=> $marques, ]); } /** * Chargement des médias * */ public function loadMedia(Request $request) { $response = array(); $dossier_id = $request->input('dossier_id'); $sujet_id = $request->input('sujet_id'); $offset = $request->input('offset'); $limit = $request->input('limit'); $orderField = $request->input('orderField'); $order = $request->input('order'); if($dossier_id == "0"){ $response['data'] = Media::where('sujet_id', $sujet_id)->whereNull('dossier_id')->with('Etiquette')->offset($offset)->limit($limit)->orderBy($orderField, $order)->get(); }else{ $response['data'] = Media::where('sujet_id', $sujet_id)->where('dossier_id', $dossier_id)->with('Etiquette')->offset($offset)->limit($limit)->orderBy($orderField, $order)->get(); } if(Auth::user()->hasRole([config('roles.const.ADMIN'), config('roles.const.REDACTEUR')] )){ $response['draggable'] = true; }else{ $response['draggable'] = false; } return json_encode($response); } /** * Déplacement des médias * */ public function moveMedia(Request $request) { Auth::user()->authorizeRoles([config('roles.const.ADMIN'), config('roles.const.REDACTEUR')]); $response = array(); $dossier_id = $request->input('dossier_id'); $data = $request->input('data'); $data = explode(",", $data); foreach ($data as $key => $media_id) { $media = Media::where('id', $media_id)->first(); if($media){ if($dossier_id > 0){ $media->dossier_id = $dossier_id; }else{ $media->dossier_id = null; } $media->save(); } } return json_encode(true); } /** * supprimer des médias * */ public function removeMedia(Request $request) { Auth::user()->authorizeRoles([config('roles.const.ADMIN'), config('roles.const.REDACTEUR')]); $medias = $request->input('medias'); Media::destroy($medias); return json_encode(true); } /** * Obtenir toutes les informations d'un média * */ public function getOneMedia(Request $request) { $response = array(); $media_id = $request->input('media_id'); $media = Media::where('id', $media_id)->with('sujet')->with('sites')->with('marques')->with('tags:libelle')->first(); if($media){ $response['data'] = $media; foreach ($media->tags as $tag) { $response['tags'][] = $tag->libelle; } } return json_encode($response); } /** * Sauvegarde toutes les informations d'un média * */ public function saveMedia(Request $request) { Auth::user()->authorizeRoles([config('roles.const.ADMIN'), config('roles.const.REDACTEUR'), config('roles.const.CONTRIBUTEUR')]); $response = array(); return json_encode($response); } /** * Sauvegarde toutes les informations d'un média * */ public function applySticker(Request $request) { Auth::user()->authorizeRoles([config('roles.const.ADMIN'), config('roles.const.REDACTEUR'), config('roles.const.CONTRIBUTEUR')]); $response = array(); $medias = $request->input('medias'); $etiquette_id = $request->input('etiquette_id'); $etiquette = Etiquette::where('etiquette_id', $etiquette_id)->first(); $response = $etiquette; if($etiquette){ foreach ($medias as $media_id) { $media = Media::where('id', $media_id)->first(); if($media){ $media->etiquette_id = $etiquette_id; $media->save(); } } } return json_encode($response); } /** * Sauvegarde une retouche photo * */ public function editPhoto(Request $request) { Auth::user()->authorizeRoles([config('roles.const.ADMIN'), config('roles.const.REDACTEUR'), config('roles.const.CONTRIBUTEUR')]); $response = array(); $media_id = $request->input('media_id'); $image = $request->input('image'); preg_match("/data:image\/(.*?);/",$image,$image_extension); // extract the image extension $image = preg_replace('/data:image\/(.*?);base64,/','',$image); // remove the type part $image = str_replace(' ', '+', $image); $media = Media::where('id', $media_id)->first(); if($media){ Storage::put($media->source, base64_decode($image)); $response = $media; } return json_encode($response); } }