diff --git a/app/Http/Controllers/Theming/ThemeController.php b/app/Http/Controllers/Theming/ThemeController.php
index 0d70c6c..ac2b7da 100644
--- a/app/Http/Controllers/Theming/ThemeController.php
+++ b/app/Http/Controllers/Theming/ThemeController.php
@@ -40,7 +40,7 @@ class ThemeController extends Controller
$view == 'index' ?
$template = $currentTheme . '.index' :
$template = $currentTheme . '.page';
- $page = $this->pages->getById('09E5A362-BA31-4AE2-9DEE-C93DFBE005C3');
+ $page = $this->pages->getById('532E2250-F8CB-4E87-9782-8AFBEE88DD5E');
$data = $this->sort->page($page);
$pageData = [
"debug" => "true",
@@ -67,7 +67,7 @@ class ThemeController extends Controller
'theme' => $currentTheme, // for theme kit
'title' => 'Pages Tagged as Tag',
'dynamicRender' => $data['info']['dynamicRender'],
- 'tags' => $data['info']['tags'][3]['pages'],
+ '$pages' => $data['info']['tags'][3]['pages'],
'info' => $data['info'],
'menu' => $data['info']['menu'],
'media' => [
diff --git a/app/Providers/FipamoServiceProvider.php b/app/Providers/FipamoServiceProvider.php
index 438bb73..d50622a 100644
--- a/app/Providers/FipamoServiceProvider.php
+++ b/app/Providers/FipamoServiceProvider.php
@@ -64,7 +64,8 @@ class FipamoServiceProvider extends ServiceProvider
new ContentService(),
new StringService(),
),
- new SettingsService(new DocService())
+ new SettingsService(new DocService()),
+ new ContentService(),
);
});
diff --git a/app/Repositories/PageRepository.php b/app/Repositories/PageRepository.php
index 17b1027..cf71f32 100644
--- a/app/Repositories/PageRepository.php
+++ b/app/Repositories/PageRepository.php
@@ -9,6 +9,7 @@ use App\Services\PaginateService;
use App\Services\StringService;
use App\Services\DocService;
use App\Services\SortingService;
+use App\Services\RenderService;
use Carbon\Carbon;
class PageRepository implements PageRepositoryInterface
@@ -20,6 +21,7 @@ class PageRepository implements PageRepositoryInterface
protected $strings;
protected $docs;
protected $sort;
+ protected $render;
public function __construct(
ContentService $contentService,
@@ -28,6 +30,7 @@ class PageRepository implements PageRepositoryInterface
StringService $stringService,
DocService $docService,
SortingService $sortingService,
+ RenderService $renderService
) {
$this->content = $contentService;
$this->settings = $settingsService;
@@ -35,6 +38,7 @@ class PageRepository implements PageRepositoryInterface
$this->strings = $stringService;
$this->docs = $docService;
$this->sort = $sortingService;
+ $this->render = $renderService;
$this->pages = $this->content->loadAllPages();
}
@@ -123,11 +127,9 @@ class PageRepository implements PageRepositoryInterface
$this->settings->getGlobal()['renderOnSave'] == 'true' &&
$this->settings->getGlobal()['dynamicRender'] == 'false'
) {
- //TODO: RENDER ENGINE STUFF
- //$render = new Render();
- //$render->renderTags();
- //$render->renderArchive();
- //$render->renderPages();
+ $this->render->tags();
+ $this->render->archive();
+ $this->render->pages();
$message = 'Filed edited and rendered. NOICE.';
} else {
$message = 'File edited. Nice work';
@@ -139,7 +141,6 @@ class PageRepository implements PageRepositoryInterface
//Settings::updateTags();
// if new page added, update current index in Settings file
if ($task == 'create') {
- //Settings::updateIndex();
$this->settings->updatePageIndex();
}
diff --git a/app/Services/RenderService.php b/app/Services/RenderService.php
index bd2a344..f0ea49b 100644
--- a/app/Services/RenderService.php
+++ b/app/Services/RenderService.php
@@ -2,51 +2,129 @@
namespace App\Services;
+use Illuminate\Support\Facades\File;
+
class RenderService
{
private $sort;
private $settings;
+ private $contents;
private $pageInfo;
private $menu;
private $background;
+ private $theme;
- public function __construct(SortingService $sortingService, SettingsService $settingsService)
- {
+ public function __construct(
+ SortingService $sortingService,
+ SettingsService $settingsService,
+ ContentService $contentService
+ ) {
$this->sort = $sortingService;
$this->settings = $settingsService;
+ $this->contents = $contentService;
+ $this->theme = $this->settings->getGlobal()['theme'];
}
- public function tag()
+ public function archive()
{
- $list = $this->sort->tags();
- foreach ($list as $item) {
- $template = 'tags.twig';
- $pageOptions = [
- 'title' => 'Pages Tagged as ' . $item['tag_name'],
- 'background' => $this->pageInfo['image'],
- 'tag_list' => $item['pages'],
- 'info' => $this->pageInfo,
- 'menu' => $this->menu,
- 'media' => [['file' => $this->pageInfo['image'], 'type' => trim(pathinfo($this->pageInfo['image'], PATHINFO_EXTENSION))]],
- ];
+ $template = $this->theme . '.archive';
+ $data = $this->sort->archive();
+ $pageData = [
+ 'theme' => $this->theme, // for theme kit
+ 'title' => 'Archives',
+ 'dynamicRender' => $data['info']['dynamicRender'],
+ 'archive' => $data['archive'],
+ 'info' => $data['info'],
+ 'menu' => $data['info']['menu'],
+ 'media' => [
+ ['file' => $data['info']['image'],
+ 'type' => trim(pathinfo($data['info']['image'], PATHINFO_EXTENSION))]
+ ],
+ ];
+ $location = '../public/archive.html';
+ File::put(
+ $location,
+ view($template)
+ ->with($pageData)
+ ->render()
+ );
+ }
- $html = $this->twig->render($template, $pageOptions);
+ public function tags()
+ {
+ $data = $this->sort->tags();
+ foreach ($data['tags'] as $item) {
+ //$template = 'tags.twig';
+ $template = $this->theme . '.tags';
+ $pageData = [
+ 'theme' => $this->theme, // for theme kit
+ 'title' => 'Pages Tagged as ' . $item['tag_name'],
+ 'dynamicRender' => $data['info']['dynamicRender'],
+ 'info' => $data['info'],
+ 'menu' => $data['info']['menu'],
+ 'pages' => $item['pages'],
+ 'media' => [
+ ['file' => $data['info']['image'],
+ 'type' => trim(pathinfo($data['info']['image'], PATHINFO_EXTENSION))]
+ ],
+ ];
$location = '../public/tags/' . $item['slug'] . '.html';
- //if tags folder doesn't exist, make it
if (!is_dir('../public/tags')) {
mkdir('../public/tags', 0755, true);
- } else {
}
- if (!is_file($location)) {
- file_put_contents($location, $html);
+ File::put(
+ $location,
+ view($template)
+ ->with($pageData)
+ ->render()
+ );
+ }
+ }
+
+ public function pages()
+ {
+ $pages = $this->contents->loadAllPages();
+ foreach ($pages as $page) {
+ $template;
+ $page['layout'] == 'index' ?
+ $template = $this->theme . '.index' :
+ $template = $this->theme . '.page';
+
+ $data = $this->sort->page($page);
+ $pageData = [
+ "theme" => $this->theme,
+ "status" => false,
+ "title" => $data['title'],
+ "meta" => $data['meta'],
+ "menu" => $data['menu'],
+ "info" => $data['info'],
+ "media" => $data['media'],
+ "files" => $data['files'],
+ "content" => $data['content'],
+ "recent" => $data['recent'],
+ "feature" => $data['featured'],
+ "tags" => $data['tags'],
+ "dynamicRender" => $data['dynamicRender'],
+ ];
+
+ if (str_contains($page['layout'], 'index')) {
+ $location = '../public/index.html';
} else {
- ($new = fopen($location, 'w')) or die('Unable to open file!');
- fwrite($new, $html);
- fclose($new);
+ // if page is a menu item, render the page on public root
+ if ($page['menu'] == 'true') {
+ $location = '../public/' . $page['slug'] . '.html';
+ } else {
+ $dir = '../public/' . $page['path'];
+ if (!is_dir($dir)) {
+ mkdir($dir, 0755, true);
+ }
+ $location = '../public/' . $page['path'] . '/' . $page['slug'] . '.html';
+ }
}
+ File::put($location, view($template)->with($pageData)->render());
}
}
}
diff --git a/content/themes/fipamo-default-v2/base.blade.php b/content/themes/fipamo-default-v2/base.blade.php
index 067fce8..50e845e 100644
--- a/content/themes/fipamo-default-v2/base.blade.php
+++ b/content/themes/fipamo-default-v2/base.blade.php
@@ -42,7 +42,7 @@
@endif
@endforeach
@else
- @if($media != '')
+ @if(isset($media[0]) && $media != '')
@if($media[0]['type'] == "mp4")
diff --git a/content/themes/fipamo-default-v2/tags.blade.php b/content/themes/fipamo-default-v2/tags.blade.php
index b8ee123..55318de 100644
--- a/content/themes/fipamo-default-v2/tags.blade.php
+++ b/content/themes/fipamo-default-v2/tags.blade.php
@@ -5,15 +5,15 @@
@section('main-content')
{{ $title }}
- @foreach($tags as $tag)
+ @foreach($pages as $page)
@if(isset($dynamicRender))
@if($dynamicRender == 'true')
- {{ $tag['title'] }}
+ {{ $page['title'] }}
@else
- {{ $tag['title'] }}
+ {{ $page['title'] }}
@endif
@else
- {{ $tag['title'] }}
+ {{ $page['title'] }}
@endif
@endforeach