From e483f101a85331e07a8248793568ae4a0d6ec834 Mon Sep 17 00:00:00 2001 From: Eduardo Date: Sun, 29 Oct 2023 02:57:06 +0200 Subject: [PATCH] starting the page generator --- page-generator/generator.php | 56 +++++++++++++++++++++++++++ page-generator/index.php | 75 ++++++++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 page-generator/generator.php create mode 100644 page-generator/index.php diff --git a/page-generator/generator.php b/page-generator/generator.php new file mode 100644 index 0000000..f99c8bb --- /dev/null +++ b/page-generator/generator.php @@ -0,0 +1,56 @@ +isDir()) { + mkdir($toFolder . DIRECTORY_SEPARATOR . $i->getSubPathname()); + } else { + copy($item, $toFolder . DIRECTORY_SEPARATOR . $i->getSubPathname()); + } + } + } + + /** + * Will delete a given folder and all its contents + */ + function deleteRecursive(string $dir) + { + if (empty($dir)) + return; + + if (file_exists($dir)) { + foreach ($i = new \RecursiveIteratorIterator( + new \RecursiveDirectoryIterator($dir, \FilesystemIterator::SKIP_DOTS), + \RecursiveIteratorIterator::CHILD_FIRST + ) as $file) { + if ($file->isDir()) + rmdir($file); + else + unlink($file); + } + + rmdir($dir); + } + } + + function generateFoldersForPages(array $folderList, $basePath) + { + foreach ($folderList as $folder) { + if ($folder == '/') + mkdir($basePath . "/index"); + else + mkdir($basePath . '/' . $folder); + } + } +} diff --git a/page-generator/index.php b/page-generator/index.php new file mode 100644 index 0000000..e08c307 --- /dev/null +++ b/page-generator/index.php @@ -0,0 +1,75 @@ +copyRecursive("../public/assets", BASE_PATH_TEMP . "/assets"); +$generator->copyRecursive("../public/css", BASE_PATH_TEMP . "/css"); +$generator->copyRecursive("../public/img", BASE_PATH_TEMP . "/img"); +$generator->copyRecursive("../public/js", BASE_PATH_TEMP . "/js"); + +// get images sheet +$image_list = file_get_contents(URL . '?sheet=images'); +$image_list = json_decode($image_list); + +// FIXME: DEBUG +print_r($image_list); + +// copy images from whatever they are (if this is in a docker container they may be mounted somewhere) +// rename images + +// create partials: +mkdir(BASE_PATH_TEMP . "/partials"); + +// generate head +// generate footer + +// get menu +$menu_list = file_get_contents(URL . '?sheet=menu'); +$menu_list = json_decode($menu_list); +// FIXME: DEBUG +print_r($menu_list); + +// generate header area + +// generate page folders +$page_array = []; +foreach ($menu_list as $item) { + foreach ($item as $key => $value) { + if ($key == 'path') + $page_array[] = $value; + } +} + +mkdir(BASE_PATH_TEMP . "/pages"); +$generator->generateFoldersForPages($page_array, BASE_PATH_TEMP . "/pages"); + +// generate each page + +// add partials to pages + +// remove partials +$generator->deleteRecursive(BASE_PATH_TEMP . "/partials"); + +// remove old folder +$generator->deleteRecursive("../generated"); + +// rename folder +rename(BASE_PATH_TEMP, "../generated"); + +// done -- 2.30.2