<?php
/**
 * Public article page: /p/{slug}
 */

declare(strict_types=1);

require_once dirname(__DIR__) . '/inc/cms.php';
require_once dirname(__DIR__) . '/inc/markdown.php';

$slug = (string) ($_GET['slug'] ?? '');
$slug = strtolower(trim($slug));
$slug = preg_replace('/[^a-z0-9\-]/', '', $slug) ?? '';

if ($slug === '') {
    http_response_code(404);
    echo 'Not found';
    exit;
}

try {
    $row = cms_find_page_by_slug($slug);
} catch (Throwable $e) {
    http_response_code(503);
    echo 'CMS unavailable';
    exit;
}

if (!$row) {
    http_response_code(404);
    $s = cms_all_settings();
    ?><!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Страница не найдена</title>
  <link rel="stylesheet" href="/css/style.css">
  <link rel="stylesheet" href="/css/page.css">
</head>
<body class="cms-page">
  <header class="cms-page-header">
    <div class="cms-page-header-inner">
      <a href="/">← Ravnovesie</a>
    </div>
  </header>
  <main class="cms-page-main">
    <h1>Страница не найдена</h1>
    <p><a href="/">На главную</a></p>
  </main>
</body>
</html><?php
    exit;
}

$s = cms_all_settings();
$title = (string) $row['name'];
$tagline = (string) $row['tagline'];
$bodyHtml = cms_markdown((string) $row['body_md']);
$desc = (string) ($row['description'] !== '' ? $row['description'] : $tagline);
?>
<!DOCTYPE html>
<html lang="ru">
<head>
  <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png?v=3">
  <link rel="icon" type="image/svg+xml" href="/favicon.svg?v=3">
  <link rel="apple-touch-icon" href="/apple-touch-icon.png?v=3">
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="description" content="<?= cms_h($desc) ?>">
  <title><?= cms_h($title) ?> — Ravnovesie.net</title>
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="/css/style.css">
  <link rel="stylesheet" href="/css/page.css">
</head>
<body class="cms-page">
  <header class="cms-page-header">
    <div class="cms-page-header-inner">
      <a href="/">← <?= cms_h($s['footer_tagline'] ?? 'Ravnovesie') ?></a>
      <nav>
        <a href="/#projects"><?= cms_h($s['nav_projects'] ?? 'Проекты') ?></a>
        <a href="/#contact"><?= cms_h($s['nav_contact'] ?? 'Контакты') ?></a>
      </nav>
    </div>
  </header>
  <main class="cms-page-main">
    <article class="cms-article">
      <header class="cms-article-header">
        <h1><?= cms_h($title) ?></h1>
        <?php if ($tagline !== ''): ?>
          <p class="cms-article-tagline"><?= cms_h($tagline) ?></p>
        <?php endif; ?>
      </header>
      <div class="cms-article-body">
        <?= $bodyHtml ?>
      </div>
    </article>
  </main>
  <footer class="cms-page-footer">
    <p><?= cms_h($s['footer_copyright'] ?? '') ?></p>
  </footer>
</body>
</html>
