CreaParametro ('@desc', $desc, 0); $cmd->CreaParametro ('@json_text', $j, 0); $cmd->texto = 'INSERT INTO calendarios (description, json_text) VALUES (@desc, @json_text);'; if (!$cmd->Ejecutar()) { return $cmd->DescripUltimoError(); } return; } function modify_cal_in_db ($id, $desc, $j) { global $cadenaconexion; $cmd = CreaComando ($cadenaconexion); if (!$cmd) { die ($TbMsg['ACCESS_ERROR']); } $cmd->CreaParametro ('@id', $id, 0); $cmd->CreaParametro ('@desc', $desc, 0); $cmd->CreaParametro ('@json_text', $j, 0); $cmd->texto = 'UPDATE calendarios SET description=@desc, json_text=@json_text WHERE idcalendario=@id;'; if (!$cmd->Ejecutar()) { return $cmd->DescripUltimoError(); } return; } function fetch_cal_from_db ($id) { global $cadenaconexion; $cmd = CreaComando ($cadenaconexion); if (!$cmd) { die ($TbMsg['ACCESS_ERROR']); } $cmd->CreaParametro ('@id', $id, 0); $cmd->texto = 'SELECT description, json_text FROM calendarios WHERE idcalendario=@id;'; $rs = new Recordset; $rs->Comando = &$cmd; if (!$rs->Abrir()) return (false); $rs->Primero(); if ($rs->EOF) { return array ('', '{"remotepc_calendar":{"timezone":"' . $tz . '","ruleset":[]}}'); } $desc = $rs->campos['description']; $json = $rs->campos['json_text']; return array ($desc, $json); } function process_post ($cal_id, $desc, $json_str) { $errors = array(); if (empty ($desc)) { array_push ($errors, 'Description of new calendar is unset'); } if (sizeof ($errors)) { return $errors; } if (-1 == $cal_id) { $db_err = add_cal_to_db ($desc, $json_str); } else { $db_err = modify_cal_in_db ($cal_id, $desc, $json_str); } if ($db_err) { array_push ($errors, $db_err); } if (!sizeof ($errors)) { header ('Location: calendars.php'); } return $errors; } $error_str = ''; function parse_params() { global $tz, $error_str; if (isset ($_GET['cal_id']) && isset ($_POST['cal_id'])) { $error_str = "Got a cal_id in both a GET and a POST??\n"; return 0; } if (isset ($_GET['cal_id'])) { $cal_id = $_GET['cal_id']; $is_get = 1; } elseif (isset ($_POST['cal_id'])) { $cal_id = $_POST['cal_id']; $is_get = 0; } else { $error_str = "Didn't get a cal_id in neither GET nor POST\n"; return 0; } $ret = 0; if (-1 == $cal_id) { // nuevo calendario // seguro que es un POST if (!isset ($_POST['desc']) and !isset ($_POST['json_str'])) { // en la lista de calendarios han pinchado en el boton de "nuevo calendario" $desc = ''; $json = '{"remotepc_calendar":{"timezone":"' . $tz . '","ruleset":[{"remote":false,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"from_hr":"8","to_hr":"17"}]}}'; // hagamos que los calendarios nuevos por defecto ya tengan una regla lun-vie 8-17 $ret = 1; } else { // en los detalles del calendario han pinchado en "crear" $desc = $_POST['desc']; $json = $_POST['json_str']; $errors = process_post ($cal_id, $desc, $json); if (sizeof ($errors)) { $error_str = implode (',', $errors); //printf ('after process_post(), error_str (%s)', $error_str); } else { $ret = 1; } } } else { // puede ser GET o POST if ($is_get) { // si GET: ver calendario list ($desc, $json) = fetch_cal_from_db ($cal_id); $ret = 1; } else { // si POST: modificar calendario $desc = $_POST['desc']; $json = $_POST['json_str']; $errors = process_post ($cal_id, $desc, $json); if (sizeof ($errors)) { $error_str = implode (',', $errors); } else { $ret = 1; } } } return array ($ret, $cal_id, $desc, $json); } list ($ok, $cal_id, $desc, $json) = parse_params(); ?> Administración web de calendarios Error: (%s)

', $error_str); } ?>