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