- _c8j2g16 pasa a texto libre ("Tipo de examen"), sin opciones predefinidas
- Separadores de tomas sin condición → siempre visibles
- Eliminar lab_tomas_config.php (ya no necesario)
- $_gruposConfig incluye todos los grupos directamente
- Script _migrate_tomas_simplify.php para actualizar esquema en BD
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
57 lines
2.1 KiB
PHP
57 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* Migración: simplificar formulario de Tomas Prolongadas (id=15)
|
|
* - Campo _c8j2g16 pasa de radio/checkbox a texto libre ("Tipo de examen")
|
|
* - Se eliminan las condiciones de todos los separadores (siempre visibles)
|
|
* Auto-elimina al ejecutar. Acceder como admin.
|
|
*/
|
|
require_once __DIR__ . '/config/config.php';
|
|
if (!isUserLoggedIn() || !in_array($_SESSION['admin_user']['role'] ?? '', ['admin','superadmin'], true)) {
|
|
http_response_code(403); die('Acceso denegado.');
|
|
}
|
|
|
|
$pdo = Database::getInstance()->getConnection();
|
|
$row = $pdo->query("SELECT esquema FROM lab_formularios WHERE id = 15 LIMIT 1")->fetch(PDO::FETCH_ASSOC);
|
|
if (!$row) { die('Formulario id=15 no encontrado.'); }
|
|
|
|
$esquema = json_decode($row['esquema'], true);
|
|
if (!is_array($esquema)) { die('Esquema inválido.'); }
|
|
|
|
$cambios = 0;
|
|
foreach ($esquema as &$campo) {
|
|
$id = $campo['id'] ?? '';
|
|
$tipo = $campo['tipo'] ?? '';
|
|
|
|
// Campo selector → texto libre
|
|
if ($id === '_c8j2g16') {
|
|
$campo['tipo'] = 'texto';
|
|
$campo['label'] = 'Tipo de examen';
|
|
unset($campo['options'], $campo['multiple'], $campo['required']);
|
|
$cambios++;
|
|
}
|
|
|
|
// Separadores con condición sobre _c8j2g16 → quitar condición
|
|
if ($tipo === 'separador' && isset($campo['condicion'])) {
|
|
$condCampo = $campo['condicion']['campo_id'] ?? '';
|
|
if ($condCampo === '_c8j2g16') {
|
|
unset($campo['condicion']);
|
|
$cambios++;
|
|
}
|
|
}
|
|
}
|
|
unset($campo);
|
|
|
|
$pdo->prepare("UPDATE lab_formularios SET esquema = ? WHERE id = 15")
|
|
->execute([json_encode($esquema, JSON_UNESCAPED_UNICODE)]);
|
|
|
|
@unlink(__FILE__);
|
|
|
|
echo '<p style="font-family:sans-serif;padding:2rem">
|
|
<span style="color:green;font-size:1.2rem">✅ Migración completada</span><br><br>
|
|
<strong>' . $cambios . ' campos modificados</strong>:<br>
|
|
• Campo _c8j2g16 → texto libre "Tipo de examen"<br>
|
|
• Condiciones eliminadas de separadores de tomas<br><br>
|
|
<small style="color:#666">Este archivo fue eliminado automáticamente.</small><br><br>
|
|
<a href="lab_formularios.php" style="color:#0d6efd">← Volver a Formularios</a>
|
|
</p>';
|