if (!($until = strtotime($_POST['until']))) { fatal_error("het veld 'Zichtbaar vanaf' bevat geen geldige datum"); } if (isset($_POST['bericht_id'])) { if ($_POST['submit'] == 'Opslaan') { // we wijzigen een bestaand bericht mdb2_exec("UPDATE berichten SET bericht_title = '%q', bericht_body = '%q', bericht_visiblefrom = '%q', bericht_visibleuntil = '%q', bericht_update = {$_SERVER['REQUEST_TIME']} WHERE bericht_id = %i", bbtohtml(htmlenc($_POST['title'])), bbtohtml(htmlenc($_POST['body'])), $from, $until, $_POST['bericht_id']); mdb2_exec("DELETE FROM entities2berichten WHERE bericht_id = %i", $_POST['bericht_id']); if (isset($_POST['entity_ids'])) { foreach ($_POST['entity_ids'] as $entity_id) { mdb2_exec("INSERT INTO entities2berichten ( entity_id, bericht_id ) VALUES ( %i, %i )", $entity_id, $_POST['bericht_id']); } } } else { if ($_POST['submit'] == 'Wissen') { mdb2_exec("DELETE FROM berichten WHERE bericht_id = %i", $_POST['bericht_id']); mdb2_exec("DELETE FROM entities2berichten WHERE bericht_id = %i", $_POST['bericht_id']); } else { fatal_error('onmogelijke submit!'); } } } else { mdb2_exec("INSERT INTO berichten ( bericht_title, bericht_body, bericht_visiblefrom, bericht_visibleuntil, bericht_update ) VALUES ( '%q', '%q', '%q', '%q', {$_SERVER['REQUEST_TIME']} )", bbtohtml(htmlenc($_POST['title'])), bbtohtml(htmlenc($_POST['body'])), $from, $until); $bericht_id = mdb2_last_insert_id(); if (isset($_POST['entity_ids'])) { foreach ($_POST['entity_ids'] as $entity_id) { mdb2_exec("INSERT INTO entities2berichten ( entity_id, bericht_id ) VALUES ( %i, {$bericht_id} )", $entity_id); } } } header('Location: upload.php?secret=' . $_POST['secret']);
function insert_les($separator, $zermelo_id, $dag0, $uur0, $vakken0, $lesgroepen0, $docenten0, $lokalen0, $file_id, $notitie) { $dag = $dag0 == '' ? 0 : get_dag($dag0); $uur = $uur0 == '' ? 0 : ($separator == '/' ? get_uur($uur0) : get_uur_udmz($uur0)); if ($uur > config('MAX_LESUUR')) { logit("lesuur in rooster ({$uur}) groter dan MAX_LESUUR"); } $lesgroepen1 = implode(',', $lesgroepen = array_map('cleanup_lesgroepen', explode_and_sort($separator, $lesgroepen0))); $vakken1 = implode(',', $vakken = explode_and_sort($separator, $vakken0)); $docenten1 = implode(',', $docenten = explode_and_sort($separator, $docenten0)); $lokalen1 = implode(',', $lokalen = explode_and_sort($separator, $lokalen0)); // als er een dollarteken in een notitie voorkomt, // gooi het en alles erna (en whitespace ervoor) dan weg if (($clean = strstr($notitie, '$', true)) !== false) { $notitie = trim($clean); } // we hebben een lock, dus er is geen race condition // hebben we deze les al? $les_id = mdb2_single_val(<<<EOQ SELECT les_id FROM lessen WHERE dag = {$dag} AND uur = {$uur} AND vakken = '%q' AND lesgroepen = '%q' AND docenten = '%q' AND lokalen = '%q' AND notitie = '%q' EOQ , $vakken1, $lesgroepen1, $docenten1, $lokalen1, $notitie); if (!$les_id) { // deze les is nieuw mdb2_exec(<<<EOT INSERT INTO lessen ( dag, uur, vakken, lesgroepen, docenten, lokalen, notitie ) VALUES ( {$dag}, {$uur}, '%q', '%q', '%q', '%q', '%q' ) EOT , $vakken1, $lesgroepen1, $docenten1, $lokalen1, $notitie); $les_id = mdb2_last_insert_id(); $entity_ids = array(); // FIXME schrap dl.+ van vakken $vakken = array_map('addslash', $vakken); if ($lesgroepen0) { foreach ($lesgroepen as $naam) { $entity_ids[] = add_entity($naam, LESGROEP); } } if ($vakken0) { foreach ($vakken as $naam) { $entity_ids[] = add_entity($naam, VAK); } } if ($docenten0) { foreach ($docenten as $naam) { $entity_ids[] = add_entity($naam, DOCENT); } } if ($lokalen0) { foreach ($lokalen as $naam) { $entity_ids[] = add_entity($naam, LOKAAL); } } foreach ($entity_ids as $entity_id) { add_entities2lessen($entity_id, $les_id); } } mdb2_exec("INSERT INTO files2lessen ( file_id, zermelo_id, les_id ) VALUES ( {$file_id}, {$zermelo_id}, {$les_id} )"); }