get(); return view('back.slides.index', compact('slides')); } /** * Show the form for creating a new resource. * * @param Slide $slide * @return \Illuminate\Http\Response * @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass */ public function create(Slide $slide) { $sliders = Slider::all(); return view('back.slides.create', compact('sliders', 'slide')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\StoreSlideRequest $request * @return \Illuminate\Http\Response */ public function store(StoreSlideRequest $request) { $slide = new Slide($request->validated()); $slide->order = $this->getLastOrder(); if (is_a($request->picture, "SplFileInfo")) { $slide->picture = Utils::storeImage($request->picture, $slide->getTable()); } $slide->saveOrFail(); return redirect()->route('bo.slides.edit', $slide->id)->with('success', 'Slide créé !'); } /** * Show the form for editing the specified resource. * * @param Slide $slide * @return \Illuminate\Http\Response * phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass */ public function edit(Slide $slide) { $sliders = Slider::all(); return view('back.slides.edit', compact('slide', 'sliders')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\StoreSlideRequest $request * @param Slide $slide * @return \Illuminate\Http\Response */ public function update(StoreSlideRequest $request, Slide $slide) { $slide->fill($request->validated()); if (is_a($request->picture, "SplFileInfo")) { $slide->picture = Utils::storeImage($request->picture, $slide->getTable()); } if (!$slide->saveOrFail()) { return redirect()->route('bo.slides.edit', $slide->id)->with('error', trans('La modification a échoué')); } return redirect()->route('bo.slides.edit', $slide->id)->with('success', trans('Modifications enregistrées !')); } /** * Remove the specified resource from storage. * * @param Slide $slide * @return \Illuminate\Http\Response */ public function destroy(Slide $slide) { if (!$slide->delete()) { return redirect()->route('bo.slides.index')->with('error', trans('La suppression a échoué')); } return redirect()->route('bo.slides.index')->with('success', trans('Suppression faite avec succès')); } /** * change order for a slide * * @param Slide $slide * @param string $action * * @return \Illuminate\Http\RedirectResponse */ public function changeOrder(Slide $slide, string $action) { if ($action === 'up') { $tmp = Slide::where('order', '<', $slide->order)->orderBy('order', 'DESC')->first(); $newOrder = $tmp->order; $tmp->order = $slide->order; $slide->order = $newOrder; } else { $tmp = Slide::where('order', '>', $slide->order)->orderBy('order', 'ASC')->first(); $newOrder = $tmp->order; $tmp->order = $slide->order; $slide->order = $newOrder; } $tmp->save(); $slide->save(); return back(); } /** * retreive order position to put a new slide to * * @return integer */ private function getLastOrder() { $order = Slide::select('order')->orderBy('order', 'DESC')->first(); return $order === null ? 1 : $order->order + 1; } }