File: D:/HostingSpaces/SBogers10/ste.komma.pro/app/Trainings/TrainingController.php
<?php
namespace App\Trainings;
use App\Base\Controller;
use App\Components\ComponentService;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\View\View;
final class TrainingController extends Controller
{
private TrainingService $trainingService;
public function __construct()
{
parent::__construct();
$this->trainingService = app()->make(TrainingService::class);
}
/**
* @return Application|Factory|View
*/
public function index()
{
$page = $this->links->trainings->node;
// Make language menu for given page
$languageMenu = $this->pageService->makeLanguageSwitchForPage($this->links->{$page->code_name}, $this->links->home);
$componentService = app(ComponentService::class);
$components = $componentService->getViewComponents($page->translation);
// Return view
return view('templates.trainings_index',[
'components' => $components,
'page' => $page,
'links' => $this->links,
'languageMenu' => $languageMenu,
]);
}
/**
* @return Application|Factory|View
*/
public function show(string $c4Id)
{
$training = $this->trainingService->getTrainingByC4Id($c4Id);
// Make language menu for given page
$page = $this->links->trainings->node;
$languageMenu = $this->pageService->makeLanguageSwitchForPage($this->links->trainings, $this->links->home);
// Return view
return view('templates.trainings_show',[
'page' => $page,
'training' => $training,
'links' => $this->links,
'languageMenu' => $languageMenu,
]);
}
/**
* @return Application|Factory|View
*/
public function subscribe(string $c4Id)
{
$training = $this->trainingService->getTrainingByC4Id($c4Id);
// Make language menu for given page
$page = $this->links->trainings->node;
$languageMenu = $this->pageService->makeLanguageSwitchForPage($this->links->trainings, $this->links->home);
// Return view
return view('templates.trainings_subscribe',[
'page' => $page,
'training' => $training,
'links' => $this->links,
'languageMenu' => $languageMenu,
]);
}
public function subscribed()
{
// Make language menu for given page
$page = $this->links->trainings->node;
$languageMenu = $this->pageService->makeLanguageSwitchForPage($this->links->trainings, $this->links->home);
// Return view
return view('templates.trainings_subscribed',[
'page' => $page,
'links' => $this->links,
'languageMenu' => $languageMenu,
]);
}
}