Replaced Moment with Carbon #84

Merged
Ghost merged 148 commits from develop into beta 2022-09-22 05:53:36 +02:00
4 changed files with 94 additions and 2 deletions
Showing only changes of commit b527884c51 - Show all commits

View file

@ -4,18 +4,22 @@ namespace App\Http\Controllers;
use App\Interfaces\PageRepositoryInterface;
use App\Services\AuthService;
use App\Services\ThemeService;
class DashController extends Controller
{
protected PageRepositoryInterface $pages;
protected AuthService $auth;
protected ThemeService $themes;
public function __construct(
PageRepositoryInterface $pageRepository,
AuthService $authService,
ThemeService $themeService,
) {
$this->pages = $pageRepository;
$this->auth = $authService;
$this->pages = $pageRepository;
$this->auth = $authService;
$this->themes = $themeService;
}
public function start()
@ -52,6 +56,7 @@ class DashController extends Controller
"status" => $this->auth::status(),
"mode" => $mode,
"page" => $page,
"views" => $this->themes->getCustomViews($page['layout']),
"title" => 'Editing ' . $page['title']
]);
}

View file

@ -9,6 +9,7 @@ use App\Services\SettingsService;
use App\Services\AuthService;
use App\Services\ContentService;
use App\Services\PaginateService;
use App\Services\ThemeService;
class FipamoServiceProvider extends ServiceProvider
{
@ -30,6 +31,10 @@ class FipamoServiceProvider extends ServiceProvider
return new ContentService();
});
$this->app->bind(ThemeService::class, function ($app) {
return new ThemeService(new SettingsService());
});
$this->app->bind(PaginateService::class, function ($app) {
return new PaginateService(new ContentService());
});

View file

@ -0,0 +1,73 @@
<?php
namespace App\Services;
class ThemeService
{
protected $themes = [];
protected $settings;
public function __construct(SettingsService $settingsService)
{
$this->settings = $settingsService;
$_themes = glob(env('THEMES_PATH') . '/*', GLOB_ONLYDIR);
foreach ($_themes as $theme) {
array_push(
$this->themes,
json_decode(file_get_contents($theme . '/theme.json'), true)
);
}
}
public function getThemes()
{
return $this->themes;
}
public function getCustomViews($layout)
{
$views = [];
if (str_contains($layout, 'index')) {
$views = $this->findCustomIndex();
} else {
$views = $this->findCustomViews();
}
return $views;
}
public function findCustomIndex()
{
$currentTheme = $this->settings->getGlobal()['theme'];
$folder = '../content/themes/' . $currentTheme;
$files = array_filter(glob("$folder/*twig"), 'is_file');
$views = [];
foreach ($files as $file) {
$path = explode('/', $file);
$fileName = $path[4];
if (str_contains($fileName, 'index')) {
$page = explode('.', $fileName);
$views[] = $page[0];
}
}
return $views;
}
public function findCustomViews()
{
$currentTheme = $this->settings->getGlobal()['theme'];
$folder = '../content/themes/' . $currentTheme;
$files = array_filter(glob("$folder/*twig"), 'is_file');
$views = [];
foreach ($files as $file) {
$path = explode('/', $file);
$fileName = $path[4];
if (str_contains($fileName, 'page')) {
$page = explode('.', $fileName);
$views[] = $page[0];
}
}
return $views;
}
}

View file

@ -151,6 +151,15 @@
</div>
<div role="page-layouts">
<strong>LAYOUTS</strong>
<select id="page-templates">
@foreach($views as $view)
@if($view == $page['layout'])
<option value={{ $view }} selected>{{ $view }}</option>
@else
<option value={{ $view }}>{{ $view }}</option>
@endif
@endforeach
</select>
</div>
<div role="page-options">
<strong>OPTIONS</strong>