function lock_acquire($string, $randid) { do { $lock = mdb2_single_assoc("SELECT * FROM locking WHERE locking_id = 0"); if ($lock === NULL) { $PID = getmypid(); $time = time(); if (mdb2_exec_error(MDB2_ERROR_CONSTRAINT, <<<EOQ INSERT INTO locking ( locking_id, locking_pid, locking_status, locking_last_timestamp, locking_randid ) VALUES ( 0, {$PID}, '%q', {$time}, '%q' ) EOQ , $string, $randid)) { return 1; } // we hebben een lock! continue; } // meh, er staat een lock, kijken hoe oud de lock is $oud = time() - $lock['locking_last_timestamp']; if ($oud < 120) { return 0; } // we krijgen geen lock, de oude is nog actueel // de lock is te oud om nog actief te zijn, we wissen de lock en proberen opnieuw een lock te verkrijgen mdb2_exec('DELETE FROM locking WHERE locking_id = 0'); } while (1); }
<?php require_once 'common.php'; check_roostermaker($_GET['secret']); if (isset($_GET['bericht_id'])) { $ber = mdb2_single_assoc(<<<EOQ SELECT * FROM berichten WHERE bericht_id = %i EOQ , $_GET['bericht_id']); $bericht_id = $_GET['bericht_id']; if (!$ber) { fatal_error("bericht bestaat niet, en kan dus niet worden gewijzigd"); } $defaultfrom = date('Y-m-d', $ber['bericht_visiblefrom']); $defaultuntil = date('Y-m-d', $ber['bericht_visibleuntil']); } else { $bericht_id = 0; $defaultfrom = date('Y-m-d'); $defaultuntil = ''; } $koppel_query = <<<EOQ SELECT CONCAT('<span style="display: inline-block"><input type="checkbox" name="entity_ids[]" value="', \tentities.entity_id, '"', CASE WHEN bericht_id IS NOT NULL THEN ' checked' ELSE '' END, '>', \tentity_name, '</input></span>') FROM entities LEFT JOIN entities2berichten ON entities2berichten.entity_id = entities.entity_id AND entities2berichten.bericht_id = %i WHERE (entity_active = 1 OR entities2berichten.entity_id IS NOT NULL) AND entity_type = %i ORDER BY entity_name EOQ; $koppel_count_query = <<<EOQ SELECT COUNT(*) FROM entities2berichten JOIN entities ON entities.entity_id = entities2berichten.entity_id WHERE bericht_id = %i AND entity_type = %i EOQ;
<?php require_once 'common.php'; check_roostermaker($_GET['secret']); $res = mdb2_single_assoc("SELECT * FROM files WHERE file_id = %i", $_GET['file_id']); if ($res === NULL) { fatal_error('file met file_id="' . $_GET['file_id'] . '" niet gevonden'); } $local_filename = config('DATADIR') . $res['file_md5']; if (!is_readable($local_filename)) { fatal_error("file {$local_filename} is not readable (doesn't exist/wrong permissions)"); } if ($res['file_type'] == 2) { header('Content-type: text/plain; charset=' . config('ZERMELO_ENCODING')); } else { if ($res['file_type'] == 1) { header('Content-type: application/gzip'); } } header('Content-disposition: inline; filename=' . $res[file_name]); readfile($local_filename);
} $wijz = mdb2_single_assoc("SELECT file_id, wijz_id, timestamp FROM roosters WHERE week_id = {$week_id} AND basis_id = {$basis['basis_id']} ORDER BY rooster_id DESC LIMIT 1"); if ($basis['file_id'] == $wijz['file_id'] || !$wijz['file_id']) { $wijz['file_id'] = 0; } } else { $wijz = mdb2_single_assoc("SELECT file_id, basis_id, timestamp FROM roosters WHERE week_id = {$week_id} AND wijz_id = 0 ORDER BY rooster_id DESC LIMIT 1"); if (!$wijz) { // als er in een week geen basisrooster staat (dus impliciet een oud basisrooster) // dan zijn $basis en $wijz gelijk $wijz = $basis = mdb2_single_assoc("SELECT file_id, basis_id, timestamp FROM roosters WHERE week_id <= {$week_id} AND wijz_id = 0 ORDER BY rooster_id DESC"); } else { $basis = array(); if ($real_prev_week) { $old_week_id = mdb2_single_val("SELECT week_id FROM weken WHERE week = {$real_prev_week} LIMIT 1"); $basis = mdb2_single_assoc("SELECT file_id, basis_id, timestamp FROM roosters WHERE week_id <= {$old_week_id} AND wijz_id = 0 ORDER BY rooster_id DESC"); } } if (!$basis) { $basis['file_id'] = 0; } } //print_r($basis); //print_r($wijz); $result = mdb2_query("SELECT entity_type, entity_id, entity_name FROM entities WHERE entity_name = '%q'", trim($qs[0])); if (!($target = $result->fetchRow()) || $target[0] == LOKAAL && config('HIDE_ROOMS') || $target[0] == LEERLING && config('HIDE_STUDENTS')) { // niet gevonden $safe_id = ''; $entity_type = ''; $entity_name = ''; $type = '';