<?php
/**
 * ORDTAK-SKOLEN — kategori.php
 * Viser alle publiserte ordtak i én kategori (?slug=visdom osv.)
 * + setter fremgangs-cookie (ordtak_besokt) for "X/9 kategorier utforsket"
 * Plassering : /home/dstn/public_html/ordtak.dstn.no/kategori.php
 * Dato       : 2026-07-10 20:00
 * Utviklet av: Tormod Kvisvik
 * Firma      : Kvisvik Nettutvikling · org.nr 981309820
 * Web        : https://kvisvik.no
 * E-post     : kundeservice@kvisvik.no
 * Ordtak-skolen er et produkt av Kvisvik Nettutvikling.
 * Norske og engelske ordtak med betydning — nytt hver dag.
 * https://ordtak.dstn.no
 */

require_once __DIR__ . '/includes/lang.php';
require_once __DIR__ . '/includes/db.php';

// ── Hent kategori ────────────────────────────────────────────────
$slug = trim($_GET['slug'] ?? '');
$kategori = null;

if ($slug !== '') {
    $stmt = $mysqli->prepare(
        "SELECT id, navn_no, navn_en, slug FROM ordtak_kategorier WHERE slug = ?"
    );
    $stmt->bind_param('s', $slug);
    $stmt->execute();
    $kategori = $stmt->get_result()->fetch_assoc();
    $stmt->close();
}

if (!$kategori) {
    http_response_code(404);
    $page_title = t('Kategori ikke funnet — Ordtak-skolen', 'Category not found — Ordtak-skolen');
    require_once __DIR__ . '/includes/header.php';
    echo '<main class="ordtak-forside"><section class="ordtak-kort"><h1>'
       . t('Kategorien finnes ikke', 'Category not found')
       . '</h1><p><a href="/">' . t('Tilbake til forsiden', 'Back to front page') . '</a></p></section></main>';
    require_once __DIR__ . '/includes/footer.php';
    exit;
}

// ── Fremgangsindikator: husk besøkte kategorier i cookie ──────────
// MÅ stå FØR require_once header.php — ingen output er sendt ennå her.
$besokt_liste = array_filter(explode(',', $_COOKIE['ordtak_besokt'] ?? ''), 'strlen');
if (!in_array((string)$kategori['id'], $besokt_liste, true)) {
    $besokt_liste[] = (string)$kategori['id'];
    setcookie('ordtak_besokt', implode(',', $besokt_liste), [
        'expires'  => time() + 60 * 60 * 24 * 365,
        'path'     => '/',
        'secure'   => true,
        'httponly' => true,
        'samesite' => 'Lax',
    ]);
}

$kat_navn = $lang === 'en' ? $kategori['navn_en'] : $kategori['navn_no'];

// ── Sjekk om sitater-tabellen finnes (kjører defensivt uansett) ──
$har_sitater_tabell = false;
$res_sjekk = $mysqli->query("SHOW TABLES LIKE 'ordtak_sitater'");
if ($res_sjekk && $res_sjekk->num_rows > 0) {
    $har_sitater_tabell = true;
}

// ── Hent ordtak (+ sitater, blandet) i kategorien ─────────────────
if ($har_sitater_tabell) {
    $stmt = $mysqli->prepare(
        "SELECT tekst_no, tekst_en, betydning_no, betydning_en, opprinnelse, slug,
                'ordtak' AS type, NULL AS forfatter, NULL AS kilde_url
         FROM ordtak_ordtak
         WHERE publisert = 1 AND kategori_id = ?
         UNION ALL
         SELECT tekst_no, tekst_en, NULL AS betydning_no, NULL AS betydning_en,
                NULL AS opprinnelse, slug,
                'sitat' AS type, forfatter, kilde_url
         FROM ordtak_sitater
         WHERE publisert = 1 AND kategori_id = ?
         ORDER BY tekst_no"
    );
    $stmt->bind_param('ii', $kategori['id'], $kategori['id']);
} else {
    $stmt = $mysqli->prepare(
        "SELECT tekst_no, tekst_en, betydning_no, betydning_en, opprinnelse, slug,
                'ordtak' AS type, NULL AS forfatter, NULL AS kilde_url
         FROM ordtak_ordtak
         WHERE publisert = 1 AND kategori_id = ?
         ORDER BY tekst_no"
    );
    $stmt->bind_param('i', $kategori['id']);
}
$stmt->execute();
$res = $stmt->get_result();
$ordtak = [];
while ($rad = $res->fetch_assoc()) {
    $ordtak[] = $rad;
}
$stmt->close();

// ── Sidevariabler FØR header ─────────────────────────────────────
$page_title       = htmlspecialchars($kat_navn) . ' — ' . t('Ordtak-skolen', 'Ordtak-skolen');
$page_description = t(
    'Alle ordtak i kategorien ' . $kat_navn . ' — med betydning på norsk og engelsk.',
    'All proverbs in the category ' . $kat_navn . ' — with meaning in Norwegian and English.'
);
$page_canonical   = 'https://ordtak.dstn.no/kategori.php?slug=' . urlencode($kategori['slug']);

require_once __DIR__ . '/includes/header.php';
?>
<main class="ordtak-forside">

  <section class="ordtak-kategori-topp">
    <h1><?= htmlspecialchars($kat_navn) ?></h1>
    <p><?= count($ordtak) ?> <?= t('ordtak i denne kategorien', 'proverbs in this category') ?> ·
       <a href="/#kategorier"><?= t('Alle kategorier', 'All categories') ?></a></p>
  </section>

  <?php if ($ordtak): ?>
  <ul class="ordtak-liste">
    <?php foreach ($ordtak as $o): ?>
    <li class="ordtak-kort<?= $o['type'] === 'sitat' ? ' sitat-kort' : '' ?>">
      <blockquote class="ordtak-tekst">
        «<?= htmlspecialchars($lang === 'en' ? $o['tekst_en'] : $o['tekst_no']) ?>»
      </blockquote>
      <p class="ordtak-oversettelse">
        <?= htmlspecialchars($lang === 'en' ? $o['tekst_no'] : $o['tekst_en']) ?>
      </p>
      <?php if ($o['type'] === 'sitat'): ?>
      <p class="ordtak-meta sitat-meta">
        — <?= htmlspecialchars($o['forfatter']) ?>
        <?php if (!empty($o['kilde_url'])): ?>
          · <a href="<?= htmlspecialchars($o['kilde_url']) ?>" target="_blank" rel="noopener"><?= t('kilde', 'source') ?></a>
        <?php endif; ?>
      </p>
      <?php else: ?>
      <p class="ordtak-betydning">
        <strong><?= t('Betydning', 'Meaning') ?>:</strong>
        <?= htmlspecialchars($lang === 'en' ? $o['betydning_en'] : $o['betydning_no']) ?>
      </p>
      <p class="ordtak-meta">
        <?= t('Opprinnelse', 'Origin') ?>: <?= htmlspecialchars($o['opprinnelse'] ?? 'ukjent') ?>
      </p>
      <?php endif; ?>
    </li>
    <?php endforeach; ?>
  </ul>
  <?php else: ?>
  <section class="ordtak-kort">
    <p><?= t('Ingen ordtak i denne kategorien ennå — Gemini fyller på hver natt.', 'No proverbs in this category yet — Gemini adds more every night.') ?></p>
  </section>
  <?php endif; ?>

</main>
<?php require_once __DIR__ . '/includes/footer.php'; ?>
