2024-03-14 23:58:11 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\Theming;
|
|
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
|
use App\Interfaces\PageRepositoryInterface;
|
|
|
|
use App\Services\AuthService;
|
|
|
|
use App\Services\SortingService;
|
2024-03-16 19:36:51 +01:00
|
|
|
use App\Services\AssetService;
|
2024-03-14 23:58:11 +01:00
|
|
|
|
|
|
|
class ThemeController extends Controller
|
|
|
|
{
|
|
|
|
protected PageRepositoryInterface $pages;
|
|
|
|
protected AuthService $auth;
|
2024-03-16 19:36:51 +01:00
|
|
|
protected AssetService $assets;
|
2024-03-14 23:58:11 +01:00
|
|
|
protected SortingService $sort;
|
|
|
|
|
|
|
|
public function __construct(
|
|
|
|
PageRepositoryInterface $pageRepository,
|
|
|
|
AuthService $authService,
|
2024-03-16 19:36:51 +01:00
|
|
|
AssetService $assetService,
|
2024-03-14 23:58:11 +01:00
|
|
|
SortingService $sortService,
|
|
|
|
) {
|
2024-03-16 19:36:51 +01:00
|
|
|
$this->pages = $pageRepository;
|
|
|
|
$this->auth = $authService;
|
|
|
|
$this->assets = $assetService;
|
|
|
|
$this->sort = $sortService;
|
2024-03-14 23:58:11 +01:00
|
|
|
}
|
|
|
|
|
2024-03-15 03:03:46 +01:00
|
|
|
public function getView($view = 'index')
|
2024-03-14 23:58:11 +01:00
|
|
|
{
|
2024-03-16 19:36:51 +01:00
|
|
|
//move assets to theme testing dir
|
|
|
|
$this->assets->moveToTheme();
|
|
|
|
$currentTheme = $this->assets->getCurrentTheme();
|
2024-03-15 21:28:26 +01:00
|
|
|
$template;
|
|
|
|
$pageData = [];
|
2024-03-15 03:03:46 +01:00
|
|
|
switch ($view) {
|
2024-03-15 21:28:26 +01:00
|
|
|
case "index":
|
2024-03-15 03:03:46 +01:00
|
|
|
case "page":
|
2024-03-15 21:28:26 +01:00
|
|
|
$view == 'index' ?
|
2024-03-16 19:36:51 +01:00
|
|
|
$template = $currentTheme . '.index' :
|
|
|
|
$template = $currentTheme . '.page';
|
2024-03-18 23:14:17 +01:00
|
|
|
$page = $this->pages->getById('532E2250-F8CB-4E87-9782-8AFBEE88DD5E');
|
2024-03-28 23:42:37 +01:00
|
|
|
$pageData = $this->sort->page($page);
|
2024-03-15 21:28:26 +01:00
|
|
|
break;
|
|
|
|
case "tags":
|
2024-03-16 19:36:51 +01:00
|
|
|
$template = $currentTheme . '.tags';
|
2024-03-28 23:42:37 +01:00
|
|
|
$pageData = $this->sort->tags();
|
2024-03-15 21:28:26 +01:00
|
|
|
break;
|
|
|
|
case "archives":
|
|
|
|
case "archive":
|
2024-03-16 19:36:51 +01:00
|
|
|
$template = $currentTheme . '.archive';
|
2024-03-28 23:42:37 +01:00
|
|
|
$pageData = $this->sort->archive();
|
2024-03-15 03:03:46 +01:00
|
|
|
break;
|
|
|
|
}
|
2024-03-14 23:58:11 +01:00
|
|
|
if ($this->auth::status()) {
|
2024-03-15 21:28:26 +01:00
|
|
|
return view($template, $pageData);
|
2024-03-14 23:58:11 +01:00
|
|
|
} else {
|
|
|
|
return redirect('dashboard/start');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|