From ceacc4ce9800cf27d5e0797d4527e2733704ecae Mon Sep 17 00:00:00 2001
From: Jonas Leder <jonas@jonasled.de>
Date: Sun, 5 Feb 2023 11:52:32 +0100
Subject: [PATCH 1/3] add option to add multiple templates

---
 migrations/Version20230205104809.php         | 31 ++++++++++++++++++++
 src/Controller/PageController.php            |  2 +-
 src/Entity/Page.php                          | 15 ++++++++++
 templates/{pages => template}/page.html.twig |  2 +-
 4 files changed, 48 insertions(+), 2 deletions(-)
 create mode 100644 migrations/Version20230205104809.php
 rename templates/{pages => template}/page.html.twig (98%)

diff --git a/migrations/Version20230205104809.php b/migrations/Version20230205104809.php
new file mode 100644
index 00000000..b06f4052
--- /dev/null
+++ b/migrations/Version20230205104809.php
@@ -0,0 +1,31 @@
+<?php
+
+declare(strict_types=1);
+
+namespace DoctrineMigrations;
+
+use Doctrine\DBAL\Schema\Schema;
+use Doctrine\Migrations\AbstractMigration;
+
+/**
+ * Auto-generated Migration: Please modify to your needs!
+ */
+final class Version20230205104809 extends AbstractMigration
+{
+    public function getDescription(): string
+    {
+        return '';
+    }
+
+    public function up(Schema $schema): void
+    {
+        // this up() migration is auto-generated, please modify it to your needs
+        $this->addSql('ALTER TABLE page ADD template VARCHAR(255) NOT NULL');
+    }
+
+    public function down(Schema $schema): void
+    {
+        // this down() migration is auto-generated, please modify it to your needs
+        $this->addSql('ALTER TABLE page DROP template');
+    }
+}
diff --git a/src/Controller/PageController.php b/src/Controller/PageController.php
index 86b70e7a..f9526656 100644
--- a/src/Controller/PageController.php
+++ b/src/Controller/PageController.php
@@ -40,7 +40,7 @@ class PageController extends AbstractController
         $page = $pageRepository->getPageFromURL($request->getPathInfo());
         if ($page) {
             $page = $placeholderService->replacePlaceholderInPage($page);
-            return $this->render('pages/page.html.twig', [
+            return $this->render('template/' . $page->getTemplate() .'.html.twig', [
             'page' => $page,
             'captcha' => $captchaService->getInlineCaptcha(),
             'name' => '',
diff --git a/src/Entity/Page.php b/src/Entity/Page.php
index 8c322b81..0c20b604 100644
--- a/src/Entity/Page.php
+++ b/src/Entity/Page.php
@@ -40,6 +40,9 @@ class Page
     #[ORM\Column]
     private ?bool $hasPlaceholder = false;
 
+    #[ORM\Column(length: 255)]
+    private ?string $template = 'page';
+
     public function __construct()
     {
         $this->createDate = new \DateTimeImmutable();
@@ -183,4 +186,16 @@ class Page
 
         return $this;
     }
+
+    public function getTemplate(): ?string
+    {
+        return $this->template;
+    }
+
+    public function setTemplate(string $template): self
+    {
+        $this->template = $template;
+
+        return $this;
+    }
 }
diff --git a/templates/pages/page.html.twig b/templates/template/page.html.twig
similarity index 98%
rename from templates/pages/page.html.twig
rename to templates/template/page.html.twig
index 9f65ba9f..ce96fc12 100644
--- a/templates/pages/page.html.twig
+++ b/templates/template/page.html.twig
@@ -1,4 +1,4 @@
-{% extends 'base.html.twig' %}
+{% extends '../base.html.twig' %}
 {% block title %}{{ page.title }}{% endblock %}
 {% block content %}
     {% apply markdown_to_html %}
-- 
GitLab


From a48e6ac4ae27fc24a8d21ce919d66501010375d1 Mon Sep 17 00:00:00 2001
From: Jonas Leder <jonas@jonasled.de>
Date: Sun, 5 Feb 2023 11:52:40 +0100
Subject: [PATCH 2/3] add template for raw display

---
 templates/template/raw.html.twig | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 templates/template/raw.html.twig

diff --git a/templates/template/raw.html.twig b/templates/template/raw.html.twig
new file mode 100644
index 00000000..3b744025
--- /dev/null
+++ b/templates/template/raw.html.twig
@@ -0,0 +1 @@
+{{ page.content }}
\ No newline at end of file
-- 
GitLab


From 591df7c81c3e2fdab396ec25a5f9f2845f0a486c Mon Sep 17 00:00:00 2001
From: Jonas Leder <jonas@jonasled.de>
Date: Sun, 5 Feb 2023 11:53:51 +0100
Subject: [PATCH 3/3] add missing space

---
 src/Controller/PageController.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Controller/PageController.php b/src/Controller/PageController.php
index f9526656..76ea5da4 100644
--- a/src/Controller/PageController.php
+++ b/src/Controller/PageController.php
@@ -40,7 +40,7 @@ class PageController extends AbstractController
         $page = $pageRepository->getPageFromURL($request->getPathInfo());
         if ($page) {
             $page = $placeholderService->replacePlaceholderInPage($page);
-            return $this->render('template/' . $page->getTemplate() .'.html.twig', [
+            return $this->render('template/' . $page->getTemplate() . '.html.twig', [
             'page' => $page,
             'captcha' => $captchaService->getInlineCaptcha(),
             'name' => '',
-- 
GitLab