setVar('menu', $menu);
$this->setVar('header', $header);
$this->setVar('title', $title);
?>
= $this->extend('layouts/default') ?>
= $this->section('content') ?>
";
// print_r($config_course);
// echo "";
// $config_tp['timingpoint'] doit exister
$timingPoints = $config_tp['timingpoint'] ?? [];
// Hauteur fixe visuelle de chaque TP (en px)
$tpHeight = 80;
$tpGap = 10;
// Largeur de chaque colonne d'intervalle (en px)
$intervalColWidth = 60;
// Indexer les TP par tp_id pour les alignements verticaux
$tpIndexById = [];
foreach ($timingPoints as $index => $tp) {
$tpIndexById[$tp['tp_id']] = $index;
}
// Récupérer toutes les lignes d'intervalles (une colonne par intervalle)
$intervals = [];
foreach ($timingPoints as $tp) {
// vérifier si la clé existe
if (!isset($tp['config_tp_interval']['clef_temp_minimum_read_entre'])) {
continue;
}
// lire toutes les lignes de cet interval
foreach ($tp['config_tp_interval']['clef_temp_minimum_read_entre'] as $row) {
$intervals[] = [
'label' => 'clef_temp_minimum_read_entre',
'start_id' => isset($row['value2']) ? (int) $row['value2'] : 0, // DÉBUT (tp_id)
'end_id' => isset($row['value3']) ? (int) $row['value3'] : 0, // FIN (tp_id)
'minimum' => isset($row['value3']) ? (int) $row['value1'] : 0, // FIN (tp_id)
];
}
}
$nbTp = count($timingPoints);
// Hauteur totale = toutes les cartes + les espaces entre elles
$totalHeight = $nbTp * $tpHeight + max(0, $nbTp - 1) * $tpGap;
?>
";
// print_r($tp);
// echo "";
?>
Minumum = $interval['minimum'] ?> sec.
= $this->endSection() ?>