83 lines
2.6 KiB
PHP
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é');
|
|
}
|
|
}
|