Example #1
0
/**
 * @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;
}