<?php
// ============================================================
// sections.php - sections multi-colonnes editables en live (admin).
// Reutilise zones_textes / zones_images via des cles dediees.
// Cote public : rend uniquement le HTML des blocs remplis (zero surcout).
// ============================================================
require_once __DIR__ . '/config.php';

// Recupere les sections d'une page hote, ordonnees, avec leurs blocs.
function sections_de(string $hote): array {
    $st = db()->prepare("SELECT id,disposition,position FROM page_sections WHERE page_hote=? ORDER BY position,id");
    $st->execute([$hote]);
    $secs = $st->fetchAll(PDO::FETCH_ASSOC);
    if (!$secs) return [];
    $bs = db()->prepare("SELECT id,colonne,type,position,cle FROM section_blocs WHERE section_id=? ORDER BY colonne,position,id");
    foreach ($secs as &$s) {
        $bs->execute([$s['id']]);
        $s['blocs'] = $bs->fetchAll(PDO::FETCH_ASSOC);
    }
    return $secs;
}

// Rend un bloc selon son type, en reutilisant les zones editables existantes.
function rendre_bloc(array $b): void {
    $edit = function_exists('admin_connecte') && admin_connecte();
    if ($b['type'] === 'image') {
        // zone_image gere deja public/admin et le vide
        zone_image($b['cle'], '4/3', 'Image', 'bloc-img');
        return;
    }
    // titre / texte : reutilise zone_texte (editable en admin, vide masque en public)
    $contenu = function_exists('zone_texte_contenu') ? zone_texte_contenu($b['cle']) : null;
    if ($contenu === null && !$edit) return; // rien a afficher en public
    $defaut = $b['type'] === 'titre'
        ? '<h2 class="cor">Titre</h2>'
        : '<p>Texte a personnaliser.</p>';
    zone_texte($b['cle'], $defaut, $b['type']==='titre' ? 'bloc-titre' : 'bloc-texte');
}

// Rend toutes les sections d'une page hote. $hote ex: 'index', 'le-praticien', 'page:ma-page'
function rendre_sections(string $hote): void {
    $edit = function_exists('admin_connecte') && admin_connecte();
    $secs = sections_de($hote);
    echo '<div class="sx-zone" data-hote="'.e($hote).'">';
    foreach ($secs as $s) {
        $ncol = max(1, min(3, (int)$s['disposition']));
        echo '<section class="sx-sec sx-cols-'.$ncol.($edit?' sx-editable':'').'" data-sec="'.$s['id'].'" data-disp="'.$ncol.'">';
        if ($edit) {
            echo '<div class="sx-sec-tools">';
            echo '<span class="sx-grip">Section</span>';
            echo '<button type="button" class="sx-disp" data-sec="'.$s['id'].'" data-n="1">1 col</button>';
            echo '<button type="button" class="sx-disp" data-sec="'.$s['id'].'" data-n="2">2 col</button>';
            echo '<button type="button" class="sx-disp" data-sec="'.$s['id'].'" data-n="3">3 col</button>';
            echo '<button type="button" class="sx-up" data-sec="'.$s['id'].'">monter</button>';
            echo '<button type="button" class="sx-down" data-sec="'.$s['id'].'">descendre</button>';
            echo '<button type="button" class="sx-del" data-sec="'.$s['id'].'">supprimer</button>';
            echo '</div>';
        }
        echo '<div class="sx-row">';
        for ($c = 0; $c < $ncol; $c++) {
            echo '<div class="sx-col" data-col="'.$c.'">';
            foreach ($s['blocs'] as $b) {
                if ((int)$b['colonne'] !== $c) continue;
                echo '<div class="sx-bloc" data-bloc="'.$b['id'].'" data-type="'.e($b['type']).'">';
                rendre_bloc($b);
                if ($edit) echo '<button type="button" class="sx-bloc-del" data-bloc="'.$b['id'].'" title="Retirer ce bloc">x</button>';
                echo '</div>';
            }
            if ($edit) {
                echo '<div class="sx-add-bloc">';
                echo '<button type="button" data-sec="'.$s['id'].'" data-col="'.$c.'" data-type="titre">+ Titre</button>';
                echo '<button type="button" data-sec="'.$s['id'].'" data-col="'.$c.'" data-type="texte">+ Texte</button>';
                echo '<button type="button" data-sec="'.$s['id'].'" data-col="'.$c.'" data-type="image">+ Image</button>';
                echo '</div>';
            }
            echo '</div>';
        }
        echo '</div></section>';
    }
    if ($edit) {
        echo '<div class="sx-add-sec">';
        echo '<button type="button" class="sx-add-sec-btn" data-hote="'.e($hote).'" data-n="1">+ Section 1 colonne</button>';
        echo '<button type="button" class="sx-add-sec-btn" data-hote="'.e($hote).'" data-n="2">+ Section 2 colonnes</button>';
        echo '<button type="button" class="sx-add-sec-btn" data-hote="'.e($hote).'" data-n="3">+ Section 3 colonnes</button>';
        echo '</div>';
    }
    echo '</div>';
}
