Author: Pedro Lucas Porcellis <porcellis@eletrotupi.com>
views: add common layout and sprinkle tailwind on top of it
app/helpers/Template.php | 6 ++++++ app/views/layout.php | 29 +++++++++++++++++++++++++++++
diff --git a/app/helpers/Template.php b/app/helpers/Template.php
index 4f14a1a7965620a629d4a13dcea2bc3851bc6a9f..29352c02a42d01bc1eebd6427ffc2b58fe066ca3 100644
--- a/app/helpers/Template.php
+++ b/app/helpers/Template.php
@@ -4,6 +4,7 @@ class Template {
public static function render($view, $data = []) {
// TODO: Add support for multiple controller/pages?
$viewPath = __DIR__ . '/../views/' . $view . '.php';
+ $layoutPath = __DIR__ . '/../views/layout.php';
if (!file_exists($viewPath)) {
throw new Exception("View not found: " . $view);
@@ -14,6 +15,11 @@
ob_start();
include $viewPath;
$content = ob_get_clean();
+
+ // Render within layout
+ ob_start();
+ include $layoutPath;
+ return ob_get_clean();
return $content;
}
diff --git a/app/views/layout.php b/app/views/layout.php
new file mode 100644
index 0000000000000000000000000000000000000000..74d117cec2786f0d6307d6ab0978d096ade19938
--- /dev/null
+++ b/app/views/layout.php
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="pt-br">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title><?= $title ?? 'Dinheiro' ?></title>
+ <script src="https://cdn.tailwindcss.com"></script>
+</head>
+<body class="bg-gray-100 text-gray-800">
+ <header class="bg-white shadow">
+ <div class="max-w-4xl mx-auto px-4 py-6">
+ <a href="/" class="text-2xl font-bold text-blue-700">
+ Dinheiro
+ </a>
+ </div>
+ </header>
+
+ <main class="max-w-4xl mx-auto px-4 py-8">
+ <?= $content ?>
+ </main>
+
+ <footer class="bg-white border-t mt-8">
+ <div class="max-w-4xl mx-auto px-4 py-4 text-sm text-gray-500">
+ © <?= date('Y') ?> Dinheiro
+ </div>
+ </footer>
+</body>
+</html>
+