Пример #1
0
    }
    if (get_conf('mail_notification', false) && !get_conf('automatic_mail_notification', false)) {
        $cmdList[] = array('img' => 'settings', 'name' => get_lang('Assignments preferences'), 'url' => claro_htmlspecialchars(Url::Contextualize('work_settings.php')));
    }
}
$out = '';
$out .= claro_html_tool_title($nameTools, $helpUrl, $cmdList);
if ($is_allowedToEdit) {
    $out .= $dialogBox->render();
    // Form
    if (isset($displayAssigForm) && $displayAssigForm) {
        $out .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '" enctype="multipart/form-data">' . "\n" . '<input type="hidden" name="claroFormId" value="' . uniqid('') . '" />' . "\n" . '<input type="hidden" name="cmd" value="' . $cmdToSend . '" />' . "\n" . claro_form_relay_context() . "\n" . '<fieldset>';
        if (!is_null($assigId)) {
            $out .= '<input type="hidden" name="assigId" value="' . $assigId . '" />' . "\n";
        }
        $out .= '<dl>' . '<dt><label for="title">' . get_lang('Assignment title') . ' <span class="required">*</span></label></dt>' . '<dd><input type="text" name="title" id="title" size="50" maxlength="200" value="' . claro_htmlspecialchars($assignment->getTitle()) . '" /></dd>' . '<dt><label for="description">' . get_lang('Description') . '<br /></label></dt>' . '<dd>' . claro_html_textarea_editor('description', $assignment->getDescription()) . '</dd>' . '<dt>' . get_lang('Submission type') . '</dt>' . '<dd>' . '<input type="radio" name="authorized_content" id="authorizeFile" value="FILE" ' . ($assignment->getSubmissionType() == "FILE" ? 'checked="checked"' : '') . ' />
                <label for="authorizeFile">&nbsp;' . get_lang('File (file required, description text optional)') . '</label>
                <br />
                <input type="radio" name="authorized_content" id="authorizeText" value="TEXT" ' . ($assignment->getSubmissionType() == "TEXT" ? 'checked="checked"' : '') . '/>
                <label for="authorizeText">&nbsp;' . get_lang('Text only (text required, no file)') . '</label>
                <br />
                <input type="radio" name="authorized_content" id="authorizeTextFile" value="TEXTFILE" ' . ($assignment->getSubmissionType() == "TEXTFILE" ? 'checked="checked"' : '') . ' />
                <label for="authorizeTextFile">&nbsp;' . get_lang('Text with attached file (text required, file optional)') . '</label>' . '</dd>' . '<dt>' . get_lang('Assignment type') . '</dt>' . '<dd>' . '<input type="radio" name="assignment_type" id="individual" value="INDIVIDUAL" ' . ($assignment->getAssignmentType() == "INDIVIDUAL" ? 'checked="checked"' : '') . ' />
                <label for="individual">&nbsp;' . get_lang('Individual') . '</label>
                <br />
                <input type="radio" name="assignment_type" id="group" value="GROUP" ' . ($assignment->getAssignmentType() == "GROUP" ? 'checked="checked"' : '') . ' />
                <label for="group">&nbsp;' . get_lang('Groups (from groups tool, only group members can post)') . '</label>' . '</dd>' . '<dt>' . get_lang('Start date') . '</dt>' . '<dd>' . claro_html_date_form('startDay', 'startMonth', 'startYear', $assignment_data['start_date'], 'long') . ' ' . claro_html_time_form('startHour', 'startMinute', $assignment_data['start_date']) . '<p class="notice">' . get_lang('(d/m/y hh:mm)') . '</p>' . '</dd>' . '<dt>' . get_lang('End date') . '</dt>' . '<dd>' . claro_html_date_form('endDay', 'endMonth', 'endYear', $assignment_data['end_date'], 'long') . ' ' . claro_html_time_form('endHour', 'endMinute', $assignment_data['end_date']) . '<p class="notice">' . get_lang('(d/m/y hh:mm)') . '</p>' . '</dd>' . '<dt>' . get_lang('Allow late upload') . '</dt>' . '<dd>
                <input type="radio" name="allow_late_upload" id="allowUpload" value="YES" ' . ($assignment->getAllowLateUpload() == "YES" ? 'checked="checked"' : '') . ' />
                <label for="allowUpload">&nbsp;' . get_lang('Yes, allow users to submit works after end date') . '</label>
                <br />
                <input type="radio" name="allow_late_upload" id="preventUpload" value="NO" ' . ($assignment->getAllowLateUpload() == "NO" ? 'checked="checked"' : '') . ' />
Пример #2
0
    if ($thisWrk['is_mine']) {
        $workList[$workId]['name'] = '<b>' . $thisWrk['name'] . '</b>';
    }
    $workList[$workId]['name'] = '<a class="item" href="' . claro_htmlspecialchars(Url::Contextualize('user_work.php' . '?authId=' . $thisWrk['authId'] . '&assigId=' . $req['assignmentId'])) . '">' . $workList[$workId]['name'] . '</a>';
}
/**
 * HEADER
 */
$nameTools = get_lang('Assignment');
ClaroBreadCrumbs::getInstance()->setCurrent($nameTools, Url::Contextualize($_SERVER['PHP_SELF'] . '?assigId=' . (int) $req['assignmentId']));
ClaroBreadCrumbs::getInstance()->prepend(get_lang('Assignments'), Url::Contextualize('../work/work.php'));
/**
 * TOOL TITLE
 */
$pageTitle['mainTitle'] = $nameTools;
$pageTitle['subTitle'] = $assignment->getTitle();
// SHOW FEEDBACK
// only if :
//      - there is a text OR a file in automatic feedback
//    AND
//          feedback must be shown after end date and end date is past
//      OR  feedback must be shown directly after a post (from the time a work was uploaded by the student)
// there is a prefill_ file or text, so there is something to show
$textOrFilePresent = (bool) $assignment->getAutoFeedbackText() != '' || $assignment->getAutoFeedbackFilename() != '';
// feedback must be shown after end date and end date is past
$showAfterEndDate = (bool) ($assignment->getAutoFeedbackSubmitMethod() == 'ENDDATE' && $assignment->getEndDate() < time());
// feedback must be shown directly after a post
// check if user has already posted a work
// do not show to anonymous users because we can't know
// if the user already uploaded a work
$showAfterPost = (bool) claro_is_user_authenticated() && ($assignment->getAutoFeedbackSubmitMethod() == 'AFTERPOST' && count($assignment->getSubmissionList(claro_get_current_user_id())) > 0);
Пример #3
0
 if ($assignmentId == 0) {
     $assignmentRestriction = '';
     if (!empty($tmpFolderPath)) {
         $zipPath = $tmpFolderPath . '/' . claro_get_current_course_id() . '/work/tmp';
     } else {
         $zipPath = get_path('coursesRepositorySys') . claro_get_course_path(claro_get_current_course_id()) . '/work/tmp';
     }
     $zipName = claro_get_current_course_id() . '_' . replace_dangerous_char(get_lang('Assignments')) . $wanted . '.zip';
 } else {
     $assignmentRestriction = " AND s.`assignment_id` = " . (int) $assignmentId;
     if (!empty($tmpFolderPath)) {
         $zipPath = $tmpFolderPath . '/' . claro_get_current_course_id() . '/work/assig_' . (int) $assignmentId . '/' . 'tmp';
     } else {
         $zipPath = get_path('coursesRepositorySys') . claro_get_course_path(claro_get_current_course_id()) . '/work/tmp';
     }
     $zipName = replace_dangerous_char(claro_get_course_name(claro_get_current_course_id())) . '_' . replace_dangerous_char($assignment->getTitle(), 'strict') . $wanted . '.zip';
 }
 if (!empty($tmpFolderPath)) {
     $downloadArchiveFolderPath = $tmpFolderPath . '/' . claro_get_current_course_id() . '/work';
 } else {
     $downloadArchiveFolderPath = get_path('coursesRepositorySys') . claro_get_course_path(claro_get_current_course_id()) . '/tmp/zip';
 }
 if (!is_dir($downloadArchiveFolderPath)) {
     mkdir($downloadArchiveFolderPath, CLARO_FILE_PERMISSIONS, true);
 }
 $downloadArchiveFilePath = $downloadArchiveFolderPath . '/' . $zipName;
 $sql = "SELECT s.`id`,\n                   s.`assignment_id`,\n                   s.`authors`,\n                   s.`submitted_text`,\n                   s.`submitted_doc_path`,\n                   s.`title`,\n                   s.`creation_date`,\n                   s.`last_edit_date`\n              FROM `" . $submissionTbl . "` AS s\n              {$userRestrictions}\n             WHERE s.`parent_id` IS NULL " . $assignmentRestriction . $sqlDateCondition . "\n          ORDER BY s.`authors`,\n                   s.`creation_date`";
 if (!is_dir($zipPath)) {
     mkdir($zipPath, CLARO_FILE_PERMISSIONS, true);
 }
 $results = claro_sql_query_fetch_all($sql);