b2in/app/Livewire/Web/Components/Sections/MagazinDetail.php
2026-04-10 17:18:17 +02:00

58 lines
1.3 KiB
PHP

<?php
namespace App\Livewire\Web\Components\Sections;
use Livewire\Component;
class MagazinDetail extends Component
{
public $articleId;
public $article;
public $relatedArticles;
public $content;
public function mount($id = 1)
{
$this->articleId = (int) $id;
$this->loadArticle();
$this->loadRelatedArticles();
$this->loadThemeContent();
}
private function loadArticle()
{
$articles = $this->getArticlesData();
$this->article = $articles[$this->articleId] ?? $articles[1];
}
private function loadRelatedArticles()
{
$articles = $this->getArticlesData();
$this->relatedArticles = collect($articles)
->filter(fn ($article, $key) => $key != $this->articleId)
->take(2)
->values()
->toArray();
}
private function loadThemeContent()
{
$this->content = cms_theme_section('magazin_detail');
}
private function getArticlesData()
{
return trans('b2in.articles');
}
public function render()
{
return view('livewire.web.components.sections.magazin-detail', [
'article' => $this->article,
'relatedArticles' => $this->relatedArticles,
]);
}
}