function submitForm() { global $course_id, $course_code, $webDir, $langModifDone; // handle uploaded files $fileData = array(); foreach (CourseXMLConfig::$binaryFields as $bkey) { if (in_array($bkey, CourseXMLConfig::$multipleFields) || in_array($bkey, CourseXMLConfig::$arrayFields)) { if (isset($_FILES[$bkey]) && isset($_FILES[$bkey]['tmp_name']) && isset($_FILES[$bkey]['type']) && is_array($_FILES[$bkey]['tmp_name'])) { for ($i = 0; $i < count($_FILES[$bkey]['tmp_name']); $i++) { if (is_uploaded_file($_FILES[$bkey]['tmp_name'][$i]) && isValidImage($_FILES[$bkey]['type'][$i])) { // convert to resized jpg if possible $uploaded = $_FILES[$bkey]['tmp_name'][$i]; $copied = $_FILES[$bkey]['tmp_name'][$i] . '.new'; $type = $_FILES[$bkey]['type'][$i]; if (copy_resized_image($uploaded, $type, IMAGESIZE_LARGE, IMAGESIZE_LARGE, $copied)) { $fileData[$bkey][$i] = base64_encode(file_get_contents($copied)); $fileData[$bkey . '_mime'][$i] = 'image/jpeg'; // copy_resized_image always outputs jpg } else { // erase possible previous image or failed conversion $fileData[$bkey][$i] = ''; $fileData[$bkey . '_mime'][$i] = ''; } } else { // add to array as empty, in order to keep correspondence $fileData[$bkey][$i] = ''; $fileData[$bkey . '_mime'][$i] = ''; } } } } else { if (isset($_FILES[$bkey]) && is_uploaded_file($_FILES[$bkey]['tmp_name']) && isValidImage($_FILES[$bkey]['type'])) { // convert to resized jpg if possible $uploaded = $_FILES[$bkey]['tmp_name']; $copied = $_FILES[$bkey]['tmp_name'] . '.new'; $type = $_FILES[$bkey]['type']; if (copy_resized_image($uploaded, $type, IMAGESIZE_LARGE, IMAGESIZE_LARGE, $copied)) { $fileData[$bkey] = base64_encode(file_get_contents($copied)); $fileData[$bkey . '_mime'] = 'image/jpeg'; // copy_resized_image always outputs jpg // unset old photo because array_merge_recursive below will keep the old one unset($_POST[$bkey]); unset($_POST[$bkey . '_mime']); } else { // erase possible previous image or failed conversion $fileData[$bkey] = ''; $fileData[$bkey . '_mime'] = ''; } } } } $skeleton = $webDir . '/modules/course_metadata/skeleton.xml'; $extraData = CourseXMLElement::getAutogenData($course_id); // manually merge instructor photo, to achieve multiplicity sync foreach ($fileData['course_instructor_photo'] as $key => $value) { if (!empty($value)) { $_POST['course_instructor_photo'][$key] = $value; } } unset($fileData['course_instructor_photo']); foreach ($fileData['course_instructor_photo_mime'] as $key => $value) { if (!empty($value)) { $_POST['course_instructor_photo_mime'][$key] = $value; } } unset($fileData['course_instructor_photo_mime']); $data = array_merge($_POST, $extraData, $fileData); // course-based adaptation $dnum = Database::get()->querySingle("select count(id) as count from document where course_id = ?d", $course_id)->count; $vnum = Database::get()->querySingle("select count(id) as count from video where course_id = ?d", $course_id)->count; $vlnum = Database::get()->querySingle("select count(id) as count from videolink where course_id = ?d", $course_id)->count; if ($dnum + $vnum + $vlnum < 1) { $data['course_confirmVideolectures'] = 'false'; } $xml = simplexml_load_file($skeleton, 'CourseXMLElement'); $xml->adapt($data); $xml->populate($data); CourseXMLElement::save($course_id, $course_code, $xml); return "<div class='alert alert-success'>$langModifDone</div>"; }
$tool_content .= "<div class='alert alert-success'>{$langOpenCoursesWasSet} {$langOpenCoursesIsALevel}</div>"; $level = CourseXMLElement::A_LEVEL; } else { if ($_POST['course_confirmAMinusLevel'] == 'true') { $tool_content .= "<div class='alert alert-success'>{$langOpenCoursesWasSet} {$langOpenCoursesIsAMinusLevel}</div>"; $level = CourseXMLElement::A_MINUS_LEVEL; } else { $tool_content .= "<div class='alert alert-danger'>{$langOpenCoursesWasNotSet}</div>"; $is_certified = 0; } } } $_POST['course_lastLevelConfirmation'] = date("Y-m-d\\TH:i:sP"); $last_review = date('Y-m-d H:i:s'); $xml->populate($_POST); CourseXMLElement::save($course_id, $course_code, $xml); $xmlData = $xml->asFlatArray(); // reload data // insert or update db $exists = ($exres = Database::get()->querySingle("SELECT 1 as `exists` FROM course_review WHERE course_id = ?d", $course_id)) ? $exres->exists : false; if ($exists) { Database::get()->query("UPDATE course_review SET is_certified = ?d, level = ?d, \n last_review = ?t, last_reviewer = ?d WHERE course_id = ?d", $is_certified, $level, $last_review, $uid, $course_id); } else { Database::get()->query("INSERT INTO course_review (course_id, is_certified, level, last_review, last_reviewer)\n VALUES (?d, ?d, ?d, ?s, ?d)", $course_id, $is_certified, $level, $last_review, $uid); } } // checkboxes $checkedAMinusLevel = $xmlData['course_confirmAMinusLevel'] == 'true' ? "checked='checked'" : ''; $checkedALevel = $xmlData['course_confirmALevel'] == 'true' ? "checked='checked'" : ''; $checkedAPlusLevel = $xmlData['course_confirmAPlusLevel'] == 'true' ? "checked='checked'" : ''; $disabledAMinusLevel = !$looksAMinus && !$checkedAMinusLevel ? "disabled='disabled'" : '';