<?php
// page.php - modele unique pour les pages creees en base (URL propre /slug).
require_once __DIR__ . '/inc/template.php';

$slug = preg_replace('/[^a-z0-9-]/', '', strtolower($_GET['slug'] ?? ''));
if ($slug === '') { header('Location: /'); exit; }

$st = db()->prepare("SELECT * FROM pages WHERE slug=?");
$st->execute([$slug]);
$pg = $st->fetch(PDO::FETCH_ASSOC);

// Page absente, ou en brouillon et visiteur non connecte -> 404
$estAdmin = function_exists('admin_connecte') && admin_connecte();
if (!$pg || ($pg['statut'] !== 'publie' && !$estAdmin)) {
    http_response_code(404);
    require __DIR__ . '/404.php';
    exit;
}

page_active('page:' . $slug);   // hote des sections
page_title($pg['titre']);
if (!empty($pg['meta_desc'])) page_desc($pg['meta_desc']);

ob_start();
?>
<section class="page-hero">
  <div class="grain"></div>
  <div class="wrap">
    <?= fil_ariane([[$pg['titre'], null]]) ?>
    <?php if ($pg['statut'] !== 'publie'): ?><div class="kick tag">Brouillon</div><?php endif; ?>
    <h1 class="cor"><?= e($pg['titre']) ?></h1>
  </div>
</section>
<?php
// Les sections sont rendues automatiquement par render_page() via l'hote page:{slug}.
render_page(ob_get_clean());
