Added page generation
authorEduardo <[email protected]>
Fri, 10 Nov 2023 02:32:31 +0000 (03:32 +0100)
committerEduardo <[email protected]>
Fri, 10 Nov 2023 02:32:31 +0000 (03:32 +0100)
page-generator/index.php

index a6bc0014dae37a283bbfd202f252a4d69b9c1361..e16a752a3baf601a0dc20828f69e9d371e7232a8 100644 (file)
@@ -126,10 +126,114 @@ mkdir(BASE_PATH_TEMP . "/pages");
 $generator->generateFoldersForPages($page_array, BASE_PATH_TEMP . "/pages");
 
 // generate each page
-$generator->setTemplateVar($partialsPath . "/head.html", "lang-code", "en");
-$generator->setTemplateVar($partialsPath . "/head.html", "page-title", "TheRiceGoat");
+$generator->setTemplateVar($head_path, "lang-code", "en");
+$generator->setTemplateVar($head_path, "page-title", "TheRiceGoat");
 
-// add partials to pages
+$path_title = [];
+foreach ($menu_list as $item) {
+    $path_title[$item['path']] = $item['title'];
+}
+
+$page_list = file_get_contents(URL . '?sheet=_pages');
+$page_list = json_decode($page_list, true);
+
+foreach ($page_list as $page) {
+    $page_path = BASE_PATH_TEMP . "/pages/" . $page['path'] . "/index.html";
+
+    // put headers
+    $generator->writeToFile($page_path, file_get_contents($head_path));
+    $generator->writeToFile($page_path, file_get_contents($header_path));
+    $generator->writeToFile($page_path, '<section id="content" class="' . $page["type"] . '">');
+
+    // put title
+    $generator->writeToFile($page_path, '<h1>' . $path_title[$page['path']] . '</h1>');
+
+    // get page data
+    $page_data = file_get_contents(URL . '?sheet=' . $page['path']);
+    $page_data = json_decode($page_data, true);
+
+    switch ($page["type"]) {
+            # simple pages
+        case '1-col':
+            $section = "";
+            foreach ($page_data as $key => $line) {
+                if ($line['section'] != $section) {
+                    if ($key != 0)
+                        $generator->writeToFile($page_path, '</p>');
+                    $section = $line['section'];
+                    $generator->writeToFile($page_path, '<h2>' . $line['section'] . '</h2><p>');
+                } elseif ($key == 0)
+                    $generator->writeToFile($page_path, '<p>');
+
+                if ($line['url'] != null) {
+                    $generator->writeToFile($page_path, $generator->a($line['url'], $line['text']));
+                } else {
+                    $generator->writeToFile($page_path, $line['text']);
+                }
+
+                $generator->writeToFile($page_path, '<br>');
+            }
+            $generator->writeToFile($page_path, '</p>');
+            break;
+
+        case '1-col-list':
+            $section = "";
+            foreach ($page_data as $key => $line) {
+                if ($line['section'] != $section) {
+                    if ($key != 0)
+                        $generator->writeToFile($page_path, '</ul>');
+                    $section = $line['section'];
+                    $generator->writeToFile($page_path, '<h2>' . $line['section'] . '</h2><ul>');
+                } elseif ($key == 0)
+                    $generator->writeToFile($page_path, '<ul>');
+
+                $generator->writeToFile($page_path, '<li>' . $line['text'] . '</li>');
+            }
+            $generator->writeToFile($page_path, '</ul>');
+            break;
+
+        case '2-col':
+            $section = "";
+            $generator->writeToFile($page_path, '<div class="row">');
+            $generator->writeToFile($page_path, '<div class="col">');
+            foreach ($page_data as $key => $line) {
+                if ($line['section'] != $section) {
+                    if ($key != 0)
+                        $generator->writeToFile($page_path, '</div><div class="col">');
+
+                    $section = $line['section'];
+                    $generator->writeToFile($page_path, '<h2>' . $line['section'] . '</h2>');
+                }
+                $generator->writeToFile($page_path, $line['text'] . '<br>');
+            }
+
+            $generator->writeToFile($page_path, '</div></div>');
+            break;
+
+        case '2-col-list':
+            $section = "";
+            $generator->writeToFile($page_path, '<div class="row">');
+            $generator->writeToFile($page_path, '<div class="col">');
+            foreach ($page_data as $key => $line) {
+                if ($line['section'] != $section) {
+                    if ($key != 0)
+                        $generator->writeToFile($page_path, '</ul></div><div class="col">');
+
+                    $section = $line['section'];
+                    $generator->writeToFile($page_path, '<h2>' . $line['section'] . '</h2><ul>');
+                } elseif ($key == 0)
+                    $generator->writeToFile($page_path, '<ul>');
+
+                $generator->writeToFile($page_path, '<li>' . $line['text'] . '</li>');
+            }
+
+            $generator->writeToFile($page_path, '</ul></div></div>');
+            break;
+    }
+
+    $generator->writeToFile($page_path, '</section>');
+    $generator->writeToFile($page_path, file_get_contents($footer_path));
+}
 
 // remove partials
 $generator->deleteRecursive(BASE_PATH_TEMP . "/partials");