/** * @param array $workInfo * @param array $values * @param array $courseInfo * @param int $sessionId * @param int $groupId * @param int $userId * @return null|string */ function processWorkForm($workInfo, $values, $courseInfo, $sessionId, $groupId, $userId) { $work_table = Database :: get_course_table(TABLE_STUDENT_PUBLICATION); $courseId = $courseInfo['real_id']; $groupId = intval($groupId); $sessionId = intval($sessionId); $userId = intval($userId); $title = $values['title']; $description = $values['description']; $contains_file = isset($values['contains_file']) && !empty($values['contains_file']) ? intval($values['contains_file']): 0; $saveWork = true; $message = null; $filename = null; $url = null; if ($values['contains_file']) { $result = uploadWork($workInfo, $courseInfo); if (isset($result['error'])) { $message = $result['error']; $saveWork = false; } $filename = isset($result['filename']) ? $result['filename'] : null; if (empty($title)) { $title = isset($result['title']) && !empty($result['title']) ? $result['title'] : get_lang('Untitled'); } $url = $result['url']; } if (empty($title)) { $title = get_lang('Untitled'); } if ($saveWork) { $active = '1'; $sql = "INSERT INTO ".$work_table." SET c_id = $courseId , url = '".$url . "', title = '".Database::escape_string($title)."', description = '".Database::escape_string($description)."', contains_file = '".$contains_file."', active = '".$active."', accepted = '1', post_group_id = '".$groupId."', sent_date = '".api_get_utc_datetime()."', parent_id = '".$workInfo['id']."' , session_id = '".$sessionId."', user_id = '".$userId."'"; Database::query($sql); $workId = Database::insert_id(); if ($workId) { if (array_key_exists('filename', $workInfo) && !empty($filename)) { $filename = Database::escape_string($filename); $sql = "UPDATE $work_table SET filename = '$filename' WHERE c_id = $courseId AND id = $workId"; Database::query($sql); } if (array_key_exists('document_id', $workInfo)) { $documentId = isset($values['document_id']) ? intval($values['document_id']) : 0; $sql = "UPDATE $work_table SET document_id = '$documentId' WHERE c_id = $courseId AND id = $workId"; Database::query($sql); } api_item_property_update( $courseInfo, 'work', $workId, 'DocumentAdded', $userId, $groupId ); sendAlertToTeacher($workId, $courseInfo, $sessionId); event_upload($workId, $userId, $courseInfo['code'], $sessionId); $message = Display::return_message(get_lang('DocAdd')); } } else { if (empty($message)) { $message = Display::return_message(get_lang('IsNotPosibleSaveTheDocument'), 'error'); } } return $message; }
deleteDirWork($workId); } } break; case 'upload_correction_file': api_protect_course_script(true); // User access same as upload.php $is_allowed_to_edit = api_is_allowed_to_edit(null, true); $itemId = isset($_GET['item_id']) ? intval($_GET['item_id']) : ''; $result = array(); if (!empty($_FILES) && !empty($itemId)) { $file = $_FILES['file']; $courseInfo = api_get_course_info(); $workInfo = get_work_data_by_id($itemId); $workInfoParent = get_work_data_by_id($workInfo['parent_id']); $resultUpload = uploadWork($workInfoParent, $courseInfo, true, $workInfo); $work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION); if (isset($resultUpload['url']) && !empty($resultUpload['url'])) { $title = isset($resultUpload['filename']) && !empty($resultUpload['filename']) ? $resultUpload['filename'] : get_lang('Untitled'); $url = Database::escape_string($resultUpload['url']); $title = Database::escape_string($title); $sql = "UPDATE {$work_table} SET\n url_correction = '" . $url . "',\n title_correction = '" . $title . "'\n WHERE iid = {$itemId}"; Database::query($sql); $result['title'] = $resultUpload['filename']; $result['url'] = 'view.php?' . api_get_cidreq() . '&id=' . $itemId; $json = array(); $json['name'] = Display::url(api_htmlentities($result['title']), api_htmlentities($result['url']), array('target' => '_blank')); $json['type'] = api_htmlentities($file['type']); $json['size'] = format_file_size($file['size']); } if (isset($result['url'])) {
/** * @param array $workInfo * @param array $values * @param array $courseInfo * @param int $sessionId * @param int $groupId * @param int $userId * @return null|string */ function processWorkForm($workInfo, $values, $courseInfo, $sessionId, $groupId, $userId) { $work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION); $courseId = $courseInfo['real_id']; $groupId = intval($groupId); $sessionId = intval($sessionId); $userId = intval($userId); $title = $values['title']; $description = $values['description']; $contains_file = isset($values['contains_file']) && !empty($values['contains_file']) ? intval($values['contains_file']) : 0; $saveWork = true; $message = null; $filename = null; $url = null; if ($values['contains_file']) { $result = uploadWork($workInfo, $courseInfo); if (isset($result['error'])) { $message = $result['error']; $saveWork = false; } $filename = isset($result['filename']) ? $result['filename'] : null; if (empty($title)) { $title = isset($result['title']) && !empty($result['title']) ? $result['title'] : get_lang('Untitled'); } $url = $result['url']; } if (empty($title)) { $title = get_lang('Untitled'); } if ($saveWork) { $active = '1'; $params = ['c_id' => $courseId, 'url' => $url, 'filetype' => 'file', 'title' => $title, 'description' => $description, 'contains_file' => $contains_file, 'active' => $active, 'accepted' => '1', 'post_group_id' => $groupId, 'sent_date' => api_get_utc_datetime(), 'parent_id' => $workInfo['id'], 'session_id' => $sessionId, 'user_id' => $userId]; $workId = Database::insert($work_table, $params); if ($workId) { $sql = "UPDATE {$work_table} SET id = iid WHERE iid = {$workId} "; Database::query($sql); if (array_key_exists('filename', $workInfo) && !empty($filename)) { $filename = Database::escape_string($filename); $sql = "UPDATE {$work_table} SET\n filename = '{$filename}'\n WHERE iid = {$workId}"; Database::query($sql); } if (array_key_exists('document_id', $workInfo)) { $documentId = isset($values['document_id']) ? intval($values['document_id']) : 0; $sql = "UPDATE {$work_table} SET\n document_id = '{$documentId}'\n WHERE iid = {$workId}"; Database::query($sql); } api_item_property_update($courseInfo, 'work', $workId, 'DocumentAdded', $userId, $groupId); sendAlertToUsers($workId, $courseInfo, $sessionId); Event::event_upload($workId); $message = Display::return_message(get_lang('DocAdd')); } } else { if (empty($message)) { $message = Display::return_message(get_lang('IsNotPosibleSaveTheDocument'), 'error'); } } return $message; }