fipamo/app/Http/Controllers/ThemeController.php

83 lines
2.6 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers;
use App\Interfaces\PageRepositoryInterface;
use App\Services\Assets\AssetService;
use App\Interfaces\MemberRepositoryInterface;
use App\Services\Data\SortingService;
use App\Services\Data\ThemeService;
class ThemeController extends Controller
{
protected PageRepositoryInterface $pages;
protected MemberRepositoryInterface $member;
protected AssetService $assets;
protected SortingService $sort;
protected ThemeService $themes;
public function __construct(
PageRepositoryInterface $pageRepository,
MemberRepositoryInterface $memberRepo,
AssetService $assetService,
SortingService $sortService,
ThemeService $themeService,
) {
$this->pages = $pageRepository;
$this->member = $memberRepo;
$this->assets = $assetService;
$this->sort = $sortService;
$this->themes = $themeService;
}
public function start()
{
if ($this->member::status()) {
return view('theme.start', [
"status" => $this->member::status(),
"title" => "Fipamo Theme Kit",
"pages" => $this->themes->getCustomViews('page')
]);
} else {
return redirect('dashboard');
}
}
public function getView($view = 'index')
{
//move assets to theme testing dir
$this->assets->moveToTheme();
$currentTheme = $this->assets->getCurrentTheme();
$template;
$pageData = [];
switch ($view) {
case "index":
case "page":
$view == 'index' ?
$template = $currentTheme . '.index' :
$template = $currentTheme . '.page';
$page = $this->pages->getById('F4429D34-25E7-4CA9-9B0A-742810277505');
$pageData = $this->sort->page($page);
break;
case "tags":
$template = $currentTheme . '.tags';
$pageData = $this->sort->tags();
break;
case "archives":
case "archive":
$template = $currentTheme . '.archive';
$pageData = $this->sort->archive();
break;
default:
$template = $currentTheme . '.' . $view;
$page = $this->pages->getById('F4429D34-25E7-4CA9-9B0A-742810277505');
$pageData = $this->sort->page($page);
}
if ($this->member::status()) {
return view($template, $pageData);
} else {
return redirect('dashboard/start');
}
}
}