} else { $overwrite = F_getBoolean($_REQUEST['overwrite']); } // process OMR files on the specified directory if (isset($menu_mode) and $menu_mode == 'upload' and file_exists($omrdir)) { $logfilename = 'log_import_omr_' . time() . '.txt'; $logfile = K_PATH_CACHE . 'OMR/' . $logfilename; $dirhdl = @opendir($omrdir); if ($dirhdl !== false) { while ($file = readdir($dirhdl)) { if ($file != '.' and $file != '..') { $filename = $omrdir . $file; $matches = array(); if (!is_dir($filename) and preg_match('/OMR_([^_]+)_QR.([a-zA-Z]+)/', $file, $matches)) { // read OMR DATA page $omr_testdata = F_decodeOMRTestDataQRCode($filename); if ($omr_testdata === false) { F_print_error('ERROR', $l['m_omr_wrong_test_data']); file_put_contents($logfile, 'ERROR' . "\t" . $file . "\t" . 'UNABLE TO DECODE' . "\n", FILE_APPEND); } else { file_put_contents($logfile, 'OK' . "\t" . $file . "\t" . 'SUCCESSFULLY DECODED' . "\n", FILE_APPEND); // read OMR ANSWER SHEET pages $num_questions = count($omr_testdata) - 1; $num_pages = ceil($num_questions / 30); $omr_answers = array(); for ($i = 1; $i <= $num_pages; ++$i) { $answerfile = 'OMR_' . $matches[1] . '_A' . $i . '.' . $matches[2]; if (file_exists($omrdir . $answerfile)) { $answers_page = F_decodeOMRPage($omrdir . $answerfile); if ($answers_page !== false and !empty($answers_page)) { $omr_answers += $answers_page;
if (isset($_REQUEST['date'])) { $date = $_REQUEST['date']; $date_time = strtotime($date); $date = date(K_TIMESTAMP_FORMAT, $date_time); } else { $date = date(K_TIMESTAMP_FORMAT); } if (!isset($_REQUEST['overwrite']) or empty($_REQUEST['overwrite'])) { $overwrite = false; } else { $overwrite = F_getBoolean($_REQUEST['overwrite']); } // process uploaded files if (isset($menu_mode) and $menu_mode == 'upload' and $user_id > 0 and !empty($_FILES)) { // read OMR DATA page $omr_testdata = F_decodeOMRTestDataQRCode($_FILES['omrfile']['tmp_name'][0]); if ($omr_testdata === false) { F_print_error('ERROR', $l['m_omr_wrong_test_data']); } else { // read OMR ANSWER SHEET pages $num_questions = count($omr_testdata) - 1; $num_pages = ceil($num_questions / 30); $omr_answers = array(); for ($i = 1; $i <= $num_pages; ++$i) { if ($_FILES['omrfile']['error'][$i] == 0) { $answers_page = F_decodeOMRPage($_FILES['omrfile']['tmp_name'][$i]); if ($answers_page !== false and !empty($answers_page)) { $omr_answers += $answers_page; } else { F_print_error('ERROR', '[OMR ANSWER SHEET ' . $i . '] ' . $l['m_omr_wrong_answer_sheet']); }