forked from projects/fipamo
ro
064407aa88
a class for members was needed for long term handling of member functions like login, update, status checking, etc so that class was created and the AuthService class was removed as it was redundant and it's functionaity moved to the member class
96 lines
3.5 KiB
PHP
96 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Interfaces\PageRepositoryInterface;
|
|
use App\Services\Assets\AssetService;
|
|
use App\Services\Data\SettingsService;
|
|
use App\Services\Data\SortingService;
|
|
|
|
use function _\find;
|
|
|
|
class FrontController extends Controller
|
|
{
|
|
protected $settings;
|
|
protected PageRepositoryInterface $pages;
|
|
protected AssetService $assets;
|
|
protected SortingService $sort;
|
|
|
|
public function __construct(
|
|
PageRepositoryInterface $pageRepository,
|
|
SettingsService $settingsService,
|
|
AssetService $assetService,
|
|
SortingService $sortService,
|
|
) {
|
|
$this->pages = $pageRepository;
|
|
$this->settings = $settingsService;
|
|
$this->assets = $assetService;
|
|
$this->sort = $sortService;
|
|
}
|
|
|
|
//REFACTOR: there is some method overlap between index and pages, so that needs to be addressed
|
|
public function index($first = 00, $second = 00, $third = 00)
|
|
{
|
|
$global = $this->settings->getGlobal();
|
|
$currentTheme = $this->assets->getCurrentTheme();
|
|
$template;
|
|
$pageData = [];
|
|
$pages = $this->pages->getAll();
|
|
//check if configs are present
|
|
if (file_exists(env('FOLKS_PATH')) && file_exists(env('SETTINGS_PATH'))) {
|
|
if ($global['dynamicRender'] == 'true') {
|
|
if (is_numeric($first)) {
|
|
if ($first == 00 || !isset($first)) {
|
|
$page = $pages->where('id', 1)->first();
|
|
$pageData = $this->sort->page($page);
|
|
$template = $currentTheme . '.index';
|
|
} else {
|
|
$page = $this->pages->getBySlug($third);
|
|
$pageData = $this->sort->page($page);
|
|
$template = $currentTheme . '.' . $page['layout'];
|
|
}
|
|
} else {
|
|
if ($first == null || $first == '') {
|
|
$page = $pages->where('id', 1)->first();
|
|
$pageData = $this->sort->page($page);
|
|
$template = $currentTheme . '.index';
|
|
} else {
|
|
}
|
|
}
|
|
return view($template, $pageData);
|
|
} else {
|
|
return response()->file('../public/index.html');
|
|
}
|
|
} else {
|
|
return view('back.init', ["status" => false, "title" => "Set Up"]);
|
|
}
|
|
}
|
|
|
|
public function page($first = 00, $second = 00, $third = 00)
|
|
{
|
|
$currentTheme = $this->assets->getCurrentTheme();
|
|
switch ($first) {
|
|
case 'archive':
|
|
case 'archives':
|
|
$template = $currentTheme . '.archive';
|
|
$pageData = $this->sort->archive();
|
|
break;
|
|
case 'tags':
|
|
$template = $currentTheme . '.tags';
|
|
$tags = $this->sort->tags(false);
|
|
$tagData = find($tags['tags'], ['tag_name' => $second]);
|
|
$pageData = [
|
|
'theme' => $currentTheme, // for theme kit
|
|
'title' => 'Pages Tagged as ' . $second,
|
|
'dynamicRender' => $tags['dynamicRender'],
|
|
'info' => $tags['info'],
|
|
'menu' => $tags['menu'],
|
|
'pages' => $tagData['pages'],
|
|
'media' => $tags['media'],
|
|
];
|
|
break;
|
|
}
|
|
return view($template, $pageData);
|
|
}
|
|
}
|