forked from projects/fipamo
ro
7f1654d13b
cleaned up the controller directory and renamed files to more approriate names. made the appropriate changes to RouteController as well as tweaking the routing so it's simpler and easier to follow
100 lines
3.6 KiB
PHP
100 lines
3.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Services\SettingsService;
|
|
use App\Services\AuthService;
|
|
use App\Interfaces\PageRepositoryInterface;
|
|
use App\Services\SortingService;
|
|
use App\Services\AssetService;
|
|
|
|
use function _\find;
|
|
|
|
class FrontController extends Controller
|
|
{
|
|
protected $settings;
|
|
protected $auth;
|
|
protected PageRepositoryInterface $pages;
|
|
protected AssetService $assets;
|
|
protected SortingService $sort;
|
|
|
|
public function __construct(
|
|
PageRepositoryInterface $pageRepository,
|
|
SettingsService $settingsService,
|
|
AuthService $authService,
|
|
AssetService $assetService,
|
|
SortingService $sortService,
|
|
) {
|
|
$this->pages = $pageRepository;
|
|
$this->settings = $settingsService;
|
|
$this->auth = $authService;
|
|
$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);
|
|
}
|
|
}
|