ldc-legaulois/app/Http/Controllers/Bo/BreedingPageController.php
Jérémy Munsch 90da93f5c5
- Fix miniAcf videoVimeo regex
LOT 3 de merde
2021-10-09 11:24:41 +02:00

83 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers\Bo;
use App\Enums\BreedingPageType;
use App\Http\Controllers\Controller;
use App\Http\Requests\StoreBreedingPageRequest;
use App\Http\Requests\UpdateBreedingPageRequest;
use App\Models\BreedingPage;
use App\Traits\UpdateModelStatus;
use Illuminate\Support\Facades\File;
class BreedingPageController extends Controller
{
use UpdateModelStatus;
public function __construct()
{
$this->authorizeResource(BreedingPage::class, 'breeding_page');
}
public function index(BreedingPageType $type = null)
{
$query = BreedingPage::query();
if ($type) {
$query = $query->where('type', $type);
}
$query = $this->sortQuery($query);
$pages = $query->paginate();
$searchFields = trans('Titre, Entête, Contenu');
return view('bo.breeding-page.index', compact('pages', 'type', 'searchFields'));
}
public function create(BreedingPageType $type)
{
return view('bo.breeding-page.create', ['type' => $type]);
}
public function store(StoreBreedingPageRequest $request, BreedingPageType $type)
{
$page = new BreedingPage($request->validated());
$page->type = $type;
$this->storeUploadedImage($request, $page, 'picture');
$page->saveOrFail();
return redirect()->route('bo.breeding-page.edit', $page)
->with('success', 'Enregistré !');
}
public function edit(BreedingPage $page)
{
return view('bo.breeding-page.edit', ['page' => $page]);
}
public function update(UpdateBreedingPageRequest $request, BreedingPage $page)
{
$page->fill($request->validated());
$this->storeUploadedImage($request, $page, 'picture');
$page->saveOrFail();
return redirect()->route('bo.breeding-page.edit', $page)
->with('success', 'Enregistré !');
}
public function destroy(BreedingPage $page)
{
foreach ($page->content as $content) {
if (
isset($content['content']['img']['value']) and
File::exists($content['content']['img']['value'])
) {
// TODO: check it does not delete default image ?
File::delete($content['content']['img']['value']);
}
}
if (!$page->delete()) {
return redirect()->route('bo.breeding-page.edit', $page)
->with('error', 'Le contenu n\'a pas pu être supprimé');
}
return redirect()->route('bo.breeding-page.index', $page->type)
->with('warning', 'Le contenu a bien été supprimé');
}
}