| 
<?phpif ($_SERVER['REQUEST_METHOD'] == 'POST') {
 $pagina = $_POST['pagina'];
 $uploads_dir = 'uploads/';
 $acesso = 0;
 
 if (!is_dir($uploads_dir)) {
 mkdir($uploads_dir, 0777, true);
 }
 
 function gerar_menu_script($pagina) {
 $numero = 0;
 $menu_script = 'document.addEventListener("DOMContentLoaded", function() {
 let menuHtml = `
 <nav class="light-blue lighten-1" role="navigation">
 <div class="nav-wrapper container">
 <a id="logo-container" href="#" class="brand-logo">Logo</a>
 <ul class="right hide-on-med-and-down">';
 
 foreach ($pagina as $pagina_nome => $conteudo_pagina) {
 if (is_int($pagina_nome)) {
 continue;
 }
 $menu_script .= '<li><a href="' . htmlspecialchars($pagina_nome) . '.html">' . htmlspecialchars($pagina_nome) . '</a></li>';
 }
 
 $menu_script .= '</ul><ul id="nav-mobile" class="sidenav">';
 
 foreach ($pagina as $pagina_nome => $conteudo_pagina) {
 if (is_int($pagina_nome)) {
 continue;
 }
 $numero++;
 $menu_script .= '<li><a href="' . htmlspecialchars($pagina_nome) . '.html"><i class="material-icons">filter_' . $numero . '</i>' . htmlspecialchars($pagina_nome) . '</a></li>';
 }
 
 $menu_script .= '</ul>
 <a href="#" data-target="nav-mobile" class="sidenav-trigger"><i class="material-icons">menu</i></a>
 </div>
 </nav>`;
 
 document.getElementById("menu-container").innerHTML = menuHtml;
 M.Sidenav.init(document.querySelectorAll(".sidenav"));
 
 let footerHtml = `
 <footer class="page-footer orange">
 <div class="container">
 <div class="row">
 <div class="col l6 s12">
 <h5 class="white-text">Company Bio</h5>
 <p class="grey-text text-lighten-4">We are a team of college students working on this project like its our full time job. Any amount would help support and continue development on this project and is greatly appreciated.</p>
 </div>
 <div class="col l3 s12">
 <h5 class="white-text">Settings</h5>
 <ul>
 <li><a class="white-text" href="#!">Link 1</a></li>
 <li><a class="white-text" href="#!">Link 2</a></li>
 <li><a class="white-text" href="#!">Link 3</a></li>
 <li><a class="white-text" href="#!">Link 4</a></li>
 </ul>
 </div>
 <div class="col l3 s12">
 <h5 class="white-text">Connect</h5>
 <ul>
 <li><a class="white-text" href="#!">Link 1</a></li>
 <li><a class="white-text" href="#!">Link 2</a></li>
 <li><a class="white-text" href="#!">Link 3</a></li>
 <li><a class="white-text" href="#!">Link 4</a></li>
 </ul>
 </div>
 </div>
 </div>
 <div class="footer-copyright">
 <div class="container">
 Made by <a class="orange-text text-lighten-3" href="http://materializecss.com">Materialize</a>
 </div>
 </div>
 </footer>`;
 
 document.getElementById("footer-container").innerHTML = footerHtml;
 });
 ';
 
 return $menu_script;
 }
 
 $menu_script = gerar_menu_script($pagina);
 file_put_contents('public/js/menuAndFooter.js', $menu_script);
 
 foreach ($pagina as $pagina_nome => $conteudo_pagina) {
 if (is_int($pagina_nome)) {
 continue;
 }
 if ($acesso === 0) {
 $acesso = $pagina_nome;
 }
 $html = '<!DOCTYPE html>
 <html lang="pt-BR">
 <head>
 <title>' . htmlspecialchars($pagina_nome) . '</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <link href="css/materialize.min.css" rel="stylesheet">
 <link href="css/style.css" type="text/css" rel="stylesheet" media="screen,projection"/>
 </head>
 <body>
 <div id="menu-container"></div>
 <div class="container">';
 if (isset($conteudo_pagina['sections'])) {
 $html .= '<div class="row"><br>';
 foreach ($conteudo_pagina['sections'] as $sectionIndex => $section) {
 $sectionType = $section['type'];
 $sectionContent = '';
 if ($sectionType === 'text') {
 $sectionContent = '<p>' . htmlspecialchars($section['content']) . '</p>';
 } elseif ($sectionType === 'image') {
 $fileTmpPath = $_FILES['pagina']['tmp_name'][$pagina_nome]['sections'][$sectionIndex]['content'];
 $fileName = basename($_FILES['pagina']['name'][$pagina_nome]['sections'][$sectionIndex]['content']);
 $filePath = $uploads_dir . $fileName;
 if (move_uploaded_file($fileTmpPath, 'public/' . $filePath)) {
 $sectionContent = '<img src="' . $filePath . '" alt="' . htmlspecialchars($pagina_nome) . '" style="width: 150px;height: 150px;">';
 } else {
 $sectionContent = '<p>Erro ao fazer upload da imagem.</p>';
 }
 } elseif ($sectionType === 'form') {
 $sectionContent = '
 <form>
 <div class="input-field">
 <input type="text" id="name" name="name" required>
 <label for="name">Nome</label>
 </div>
 <div class="input-field">
 <input type="email" id="email" name="email" required>
 <label for="email">Email</label>
 </div>
 <div class="input-field">
 <textarea id="message" name="message" class="materialize-textarea" required></textarea>
 <label for="message">Mensagem</label>
 </div>
 <button type="submit" class="btn waves-effect waves-light">Enviar</button>
 </form>
 ';
 }
 $html .= '<div class="section col s12 m6">
 <div class="card">
 <div class="card-content">'
 . $sectionContent .
 '</div>
 <div class="card-action">
 </div>
 </div>
 </div>';
 }
 }
 $html .= '</div>';
 $html .= '</div>
 <script src="js/jquery-2.1.1.min.js"></script>
 <script src="js/materialize.js"></script>
 <script src="js/init.js"></script>
 <script src="js/menuAndFooter.js"></script>
 <div id="footer-container"></div>
 </body>
 </html>';
 file_put_contents('public/' . $pagina_nome . '.html', $html);
 }
 // echo '<div class="container"><h3>Páginas geradas com sucesso, na pasta public!</h3>
 // <p><a class="orange-text text-lighten-3" href="public/' . $acesso . '.html">Acessar</a> </p></div>';
 // Gerar o arquivo ZIP
 $zip = new ZipArchive();
 $zipFileName = 'public.zip';
 function addFolderToZip($dir, $zipArchive, $zipdir = '') {
 if (is_dir($dir)) {
 if ($dh = opendir($dir)) {
 if (!empty($zipdir)) {
 $zipArchive->addEmptyDir($zipdir);
 }
 
 while (($file = readdir($dh)) !== false) {
 if (!is_file($dir . $file)) {
 if (($file !== ".") && ($file !== "..")) {
 addFolderToZip($dir . $file . "/", $zipArchive, $zipdir . $file . "/");
 }
 } else {
 $zipArchive->addFile($dir . $file, $zipdir . $file);
 }
 }
 closedir($dh);
 }
 }
 }
 
 
 if ($zip->open($zipFileName, ZipArchive::CREATE | ZipArchive::OVERWRITE) === TRUE) {
 addFolderToZip('public/', $zip);
 $zip->close();
 
 header('Content-Type: application/zip');
 header('Content-disposition: attachment; filename=' . $zipFileName);
 header('Content-Length: ' . filesize($zipFileName));
 readfile($zipFileName);
 
 unlink($zipFileName);
 } else {
 echo 'Falha ao criar o arquivo ZIP.';
 }
 }
 ?>
 
 |