api_get_path(WEB_CODE_PATH).'work/work.php?'.api_get_cidreq(),
'name' => get_lang('StudentPublications')
);
if (api_is_allowed_to_edit()) {
$interbreadcrumb[] = array(
'url' => api_get_path(WEB_CODE_PATH).'work/work_list_all.php?'.api_get_cidreq().'&id='.$work_id,
'name' => $parent_data['title']
);
} else {
$interbreadcrumb[] = array(
'url' => api_get_path(WEB_CODE_PATH).'work/work_list.php?'.api_get_cidreq().'&id='.$work_id,
'name' => $parent_data['title']
);
}
// form title
$form_title = get_lang('Edit');
$interbreadcrumb[] = array('url' => '#', 'name' => $form_title);
$form = new FormValidator(
'form',
'POST',
api_get_self()."?".api_get_cidreq()."&id=".$work_id,
'',
array('enctype' => "multipart/form-data")
);
$form->addElement('header', $form_title);
$show_progress_bar = false;
/*
if ($submitGroupWorkUrl) {
// For user coming from group space to publish his work
$realUrl = str_replace($_configuration['root_sys'], api_get_path(WEB_PATH), str_replace("\\", '/', realpath($submitGroupWorkUrl)));
$form->addElement('hidden', 'newWorkUrl', $submitGroupWorkUrl);
$text_document = $form->addElement('text', 'document', get_lang('Document'));
$defaults['document'] = '' . $realUrl . '';
$text_document->freeze();
} elseif ($item_id && ($is_allowed_to_edit or $is_author)) {
$workUrl = $currentCourseRepositoryWeb . $workUrl;
}*/
$form->addElement('hidden', 'id', $work_id);
$form->addElement('hidden', 'item_id', $item_id);
$form->addText('title', get_lang('Title'), true, array('id' => 'file_upload'));
if ($is_allowed_to_edit && !empty($item_id)) {
$sql = "SELECT contains_file, url
FROM $work_table
WHERE c_id = $course_id AND id ='$item_id' ";
$result = Database::query($sql);
if ($result !== false && Database::num_rows($result) > 0) {
$row = Database::fetch_array($result);
if ($row['contains_file'] || !empty($row['url'])) {
$form->addLabel(
get_lang('Download'),
''.
Display::return_icon('save.png', get_lang('Save'),array(), ICON_SIZE_MEDIUM).'
'
);
}
}
}
$form->addHtmlEditor(
'description',
get_lang('Description'),
false,
false,
getWorkDescriptionToolbar()
);
$defaults['title'] = $work_item['title'];
$defaults["description"] = $work_item['description'];
$defaults['qualification'] = $work_item['qualification'];
if ($is_allowed_to_edit && !empty($item_id)) {
// Get qualification from parent_id that will allow the validation qualification over
$sql = "SELECT qualification FROM $work_table
WHERE c_id = $course_id AND id ='$work_id' ";
$result = Database::query($sql);
$row = Database::fetch_array($result);
$qualification_over = $row['qualification'];
if (!empty($qualification_over) && intval($qualification_over) > 0) {
$form->addText('qualification', array(get_lang('Qualification'), " / ".$qualification_over), false, 'size="10"');
$form->addElement('hidden', 'qualification_over', $qualification_over);
}
$form->addCheckBox(
'send_email',
null,
get_lang('SendMailToStudent')
);
// Check if user to qualify has some DRHs
$drhList = UserManager::getDrhListFromUser($work_item['user_id']);
if (!empty($drhList)) {
$form->addCheckBox(
'send_to_drh_users',
null,
get_lang('SendMailToHR')
);
}
}
$form->addElement('hidden', 'active', 1);
$form->addElement('hidden', 'accepted', 1);
$form->addElement('hidden', 'item_to_edit', $item_id);
$form->addElement('hidden', 'sec_token', $token);
$text = get_lang('UpdateWork');
$class = 'save';
// fix the Ok button when we see the tool in the learn path
$form->addButtonUpdate($text);
$form->setDefaults($defaults);
$error_message = null;
$_course = api_get_course_info();
$currentCourseRepositorySys = api_get_path(SYS_COURSE_PATH).$_course['path'] . '/';
$succeed = false;
if ($form->validate()) {
if ($student_can_edit_in_session && $check) {
/*
* SPECIAL CASE ! For a work edited
*/
//Get the author ID for that document from the item_property table
$item_to_edit_id = intval($_POST['item_to_edit']);
$is_author = user_is_author($item_to_edit_id);
if ($is_author) {
$work_data = get_work_data_by_id($item_to_edit_id);
if (!empty($_POST['title'])) {
$title = isset($_POST['title']) ? $_POST['title'] : $work_data['title'];
}
$description = isset($_POST['description']) ? $_POST['description'] : $work_data['description'];
$add_to_update = null;
if ($is_allowed_to_edit && ($_POST['qualification'] !='' )) {
$add_to_update = ', qualificator_id ='."'".api_get_user_id()."', ";
$add_to_update .= ' qualification = '."'".Database::escape_string($_POST['qualification'])."',";
$add_to_update .= ' date_of_qualification = '."'".api_get_utc_datetime()."'";
if (isset($_POST['send_email'])) {
$url = api_get_path(WEB_CODE_PATH).'work/view.php?'.api_get_cidreq().'&id='.$item_to_edit_id;
$subject = sprintf(get_lang('ThereIsANewWorkFeedback'), $work_item['title']);
$message = sprintf(get_lang('ThereIsANewWorkFeedbackInWorkXHere'), $url);
MessageManager::send_message_simple(
$work_item['user_id'],
$subject,
$message,
api_get_user_id(),
isset($_POST['send_to_drh_users'])
);
}
}
if ($_POST['qualification'] > $_POST['qualification_over']) {
$error_message .= Display::return_message(
get_lang('QualificationMustNotBeMoreThanQualificationOver'),
'error'
);
} else {
$sql = "UPDATE " . $work_table . "
SET title = '".Database::escape_string($title)."',
description = '".Database::escape_string($description)."'
".$add_to_update."
WHERE c_id = $course_id AND id = $item_to_edit_id";
Database::query($sql);
}
api_item_property_update(
$_course,
'work',
$item_to_edit_id,
'DocumentUpdated',
$user_id
);
$succeed = true;
$error_message .= Display::return_message(get_lang('ItemUpdated'));
}
Security::clear_token();
} else {
// Bad token or can't add works
$error_message = Display::return_message(get_lang('IsNotPosibleSaveTheDocument'), 'error');
}
if (!empty($error_message)) {
Session::write('error_message', $error_message);
}
$script = 'work_list.php';
if ($is_allowed_to_edit) {
$script = 'work_list_all.php';
}
header('Location: '.api_get_path(WEB_CODE_PATH).'work/'.$script.'?'.api_get_cidreq().'&id='.$work_id);
exit;
}
$htmlHeadXtra[] = to_javascript_work();
$tpl = new Template();
$content = null;
if (!empty($work_id)) {
if ($is_allowed_to_edit) {
if (api_resource_is_locked_by_gradebook($work_id, LINK_STUDENTPUBLICATION)) {
echo Display::display_warning_message(get_lang('ResourceLockedByGradebook'));
} else {
$comments = getWorkComments($work_item);
$template = $tpl->get_template('work/comments.tpl');
$tpl->assign('comments', $comments);
$commentForm = getWorkCommentForm($work_item, 'edit');
if (api_is_allowed_to_session_edit()) {
$tpl->assign('form', $commentForm);
}
$content .= $form->returnForm();
$content .= $tpl->fetch($template);
}
} elseif ($is_author) {
if (empty($work_item['qualificator_id']) || $work_item['qualificator_id'] == 0) {
$content .= $form->returnForm();
} else {
$content .= Display::return_message(get_lang('ActionNotAllowed'), 'error');
}
} elseif ($student_can_edit_in_session && $has_ended == false) {
$content .= $form->return_form();
} else {
$content .= Display::return_message(get_lang('ActionNotAllowed'), 'error');
}
} else {
$content .= Display::return_message(get_lang('ActionNotAllowed'), 'error');
}
$tpl->assign('content', $content);
$tpl->display_one_col_template();