template generator functions for partials and first generation (for testing)
authorEduardo <[email protected]>
Thu, 2 Nov 2023 02:02:14 +0000 (03:02 +0100)
committerEduardo <[email protected]>
Thu, 2 Nov 2023 02:02:14 +0000 (03:02 +0100)
page-generator/generator.php
page-generator/index.php

index f99c8bb36a2d60bd8e067b171211c1ca9c39434a..9be2709b5e05216a590bcbd7691639dc740c7f4c 100644 (file)
@@ -53,4 +53,29 @@ class CodeGenerator
                 mkdir($basePath . '/' . $folder);
         }
     }
+
+    /**
+     * Create or append to a file ($filePath) the text in $content
+     */
+    function writeToFile(string $filePath, string $content)
+    {
+        file_put_contents($filePath, $content, FILE_APPEND | LOCK_EX);
+    }
+
+    /**
+     * returns a string with the var name encoded to be set later with setTemplateVar()
+     */
+    function templateVar(string $name): string
+    {
+        return "$$" . $name . "$$";
+    }
+
+    function setTemplateVar(string $filePath, string $var, string $value)
+    {
+        $replaceVar = "$$" . $var . "$$";
+
+        $content = file_get_contents($filePath);
+        $content = str_replace($replaceVar, $value, $content);
+        file_put_contents($filePath, $content, LOCK_EX);
+    }
 }
index 23a5d4086808247cf4f8215a3cfb4d6306339c47..16fbf8d2831434f30d1e141f0f8829adce2c9e7a 100644 (file)
@@ -29,14 +29,25 @@ foreach ($image_list as $image) {
 }
 
 // create partials:
-mkdir(BASE_PATH_TEMP . "/partials");
+$partialsPath = BASE_PATH_TEMP . "/partials";
+mkdir($partialsPath);
 
 // generate head
+$generator->writeToFile($partialsPath . "/head.html", '
+<!DOCTYPE html>
+<html lang="'. $generator->templateVar("lang-code") .'">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>'. $generator->templateVar("page-title") .'</title>
+</head>
+');
+
 // generate footer
 
 // get menu
 $menu_list = file_get_contents(URL . '?sheet=_menu');
-$menu_list = json_decode($menu_list);
+$menu_list = json_decode($menu_list, true);
 // FIXME: DEBUG
 print_r($menu_list);
 
@@ -55,6 +66,7 @@ mkdir(BASE_PATH_TEMP . "/pages");
 $generator->generateFoldersForPages($page_array, BASE_PATH_TEMP . "/pages");
 
 // generate each page
+$generator->setTemplateVar($partialsPath . "/head.html", "page-title", "TheRiceGoat");
 
 // add partials to pages