64 lines
1.8 KiB
PHP
64 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Fo;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Product;
|
|
use App\Models\Range;
|
|
use Illuminate\Http\Request;
|
|
|
|
class RangeController extends Controller
|
|
{
|
|
/**
|
|
* All ranges.
|
|
*
|
|
* @param Request $request
|
|
* @return \Illuminate\Contracts\View\View
|
|
*
|
|
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
|
|
*/
|
|
public function ranges(Request $request)
|
|
{
|
|
// @phpcs:enable
|
|
// $ranges shared in AppServiceProvider.
|
|
return view('theme::pages.ranges.index');
|
|
}
|
|
|
|
/**
|
|
* One Range page.
|
|
*
|
|
* @param Request $request
|
|
* @param string $range_slug
|
|
* @return \Illuminate\Contracts\View\View
|
|
*
|
|
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
|
|
*/
|
|
public function range(Request $request, string $range_slug)
|
|
{
|
|
// @phpcs:enable
|
|
$range = Range::where('slug', $range_slug)->first();
|
|
if (!$range || !$range->status) {
|
|
abort(404);
|
|
}
|
|
$products = Product::where('range_id', $range->id)->where('status', 1)->paginate(9);
|
|
// Find promo within range.
|
|
$offres = Product::where('range_id', $range->id)
|
|
->where('status', 1)
|
|
->has('discount')
|
|
->with('discount')->get();
|
|
return view('theme::pages.ranges.show', compact('range', 'products', 'offres'));
|
|
}
|
|
|
|
/**
|
|
* Range card.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function ajaxRangesCard(Request $request)
|
|
{
|
|
$range = Range::where('status', true)->where('slug', $request->SLUG)->first();
|
|
|
|
return view('theme::partials.ranges.card', compact('range'));
|
|
}
|
|
}
|