ldc-legaulois/app/Http/Controllers/OCBController.php
2021-04-26 15:44:00 +02:00

68 lines
2.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Enums\OCBType;
use App\Models\OCBBreeder;
use App\Models\OCBContent;
use Illuminate\Support\Facades\DB;
class OCBController extends Controller
{
public function testimonials()
{
if (
!session()->has('ocbtestimony.rand') ||
(intval(session()->get('ocbtestimony.time', time())) - intval(time())) > (60 * 60 * 60) // 1 hour
) {
session()->put('ocbtestimony.time', time());
session()->put('ocbtestimony.rand', DB::table(resolve(OCBBreeder::class)->getTable())
->select('id')->inRandomOrder()->get()->pluck('id')->toArray());
session()->save();
}
$breeders = OCBBreeder::ocbValidated()->where('status', true)
->select('slug', 'picture', 'first_name', 'last_name', 'testimony')
->orderByRaw(\sprintf('FIELD(id, %s)', implode(", ", session()->get('ocbtestimony.rand'))))
->paginate(8);
return view('front.ocb.testimonials', compact('breeders'));
}
public function breeder(OCBBreeder $breeder)
{
if (!$breeder->status) {
abort(404);
}
// Contient les images de l'exploitation de l'éleveur
$pictures = [];
if ($breeder->site !== null && $breeder->site->presentation_type === 2) {
if ($breeder->site->picture1 !== null) {
$pictures[] = $breeder->site->picture1;
}
if ($breeder->site->picture2 !== null) {
$pictures[] = $breeder->site->picture2;
}
if ($breeder->site->picture3 !== null) {
$pictures[] = $breeder->site->picture3;
}
}
return view('front.ocb.breeder', compact('breeder', 'pictures'));
}
public function poultry()
{
$ocbContents = OCBContent::where('type', OCBType::poultry())->get();
$breeder = OCBBreeder::ocbValidated()->where('status', true)
->inRandomOrder()->first();
$ocbType = OCBType::poultry();
return view('front.ocb.poultry', compact('breeder', 'ocbType', 'ocbContents'));
}
public function egg()
{
$ocbContents = OCBContent::where('type', OCBType::egg())->get();
return view('front.ocb.egg', compact('ocbContents'));
}
}