/** * @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; }