diff --git a/main/lang/english/course_info.inc.php b/main/lang/english/course_info.inc.php index 8108360669..8ac04f7c89 100644 --- a/main/lang/english/course_info.inc.php +++ b/main/lang/english/course_info.inc.php @@ -58,7 +58,7 @@ $langBUAnnounceInMainBase = "Backup of announcements data in main database for"; $langBackupOfDataBase = "Backup of database"; $langCreationDate = "Created"; $langExpirationDate = "Expiration date"; -$langPostPone = "Post pone"; +$langPostPone = "Postpone"; $langLastEdit = "Latest edit"; $langLastVisit = "Latest visit"; $langSubscription = "Subscription"; diff --git a/main/lang/english/trad4all.inc.php b/main/lang/english/trad4all.inc.php old mode 100755 new mode 100644 index 846bdab3f0..84ffb2a1a8 --- a/main/lang/english/trad4all.inc.php +++ b/main/lang/english/trad4all.inc.php @@ -2,6 +2,13 @@ /* for more information: see languages.txt in the lang folder. */ +$ThereIsANewWorkFeedbackInWorkXHere = "There's a new feedback in work: %s Click here to see it."; +$ThereIsANewWorkFeedback = "There's a new feedback in work: %s"; +$LastUpload = "Last upload"; +$EditUserListCSV = "Edit users list"; +$NumberOfCoursesHidden = "Number of hidden courses"; +$Post = "Post"; +$Write = "Write"; $YouHaveNotYetAchievedSkills = "You have not yet achieved skills"; $Corn = "Corn"; $Gray = "Gray"; diff --git a/main/lang/english/userInfo.inc.php b/main/lang/english/userInfo.inc.php index ea8728db8a..d95318e837 100644 --- a/main/lang/english/userInfo.inc.php +++ b/main/lang/english/userInfo.inc.php @@ -128,7 +128,7 @@ $GroupEdit = "Edit group"; $ThereAreNotUsersInTheWaitingList = "There are no users in the waiting list"; $SendInvitationTo = "Send invitation to"; $InviteUsersToGroup = "Invite users to group"; -$PostIn = "It posted"; +$PostIn = "Posted"; $Reply = "Reply"; $Newest = "Newest"; $Popular = "Popular"; diff --git a/main/work/view.php b/main/work/view.php index 5d0749f4c3..9966163d97 100755 --- a/main/work/view.php +++ b/main/work/view.php @@ -44,13 +44,22 @@ if (user_is_author($id) || $course_info['show_score'] == 0 && $work['active'] == if (isset($_FILES["file"])) { $_POST['file'] = $_FILES["file"]; } - addWorkComment(api_get_course_info(), api_get_user_id(), $work, $_POST); + addWorkComment( + api_get_course_info(), + api_get_user_id(), + $my_folder_data, + $work, + $_POST + ); $url = api_get_path(WEB_CODE_PATH).'work/view.php?id='.$work['id'].'&'.api_get_cidreq(); header('Location: '.$url); exit; break; case 'delete_attachment': - deleteCommentFile($_REQUEST['comment_id'], api_get_course_info()); + deleteCommentFile( + $_REQUEST['comment_id'], + api_get_course_info() + ); $url = api_get_path(WEB_CODE_PATH).'work/view.php?id='.$work['id'].'&'.api_get_cidreq(); header('Location: '.$url); exit; diff --git a/main/work/work.lib.php b/main/work/work.lib.php index 23b19d9e4c..ba585d0f33 100755 --- a/main/work/work.lib.php +++ b/main/work/work.lib.php @@ -187,6 +187,7 @@ function create_group_date_select($form, $prefix = '') /** * @param string $path * @param int $courseId + * * @return array */ function get_work_data_by_path($path, $courseId = null) @@ -199,11 +200,12 @@ function get_work_data_by_path($path, $courseId = null) } $work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION); - $sql = "SELECT * FROM ".$work_table." WHERE url = '$path' AND c_id = $courseId "; + $sql = "SELECT * FROM ".$work_table." + WHERE url = '$path' AND c_id = $courseId "; $result = Database::query($sql); $return = array(); if (Database::num_rows($result)) { - $return = Database::fetch_array($result,'ASSOC'); + $return = Database::fetch_array($result, 'ASSOC'); } return $return; @@ -211,6 +213,7 @@ function get_work_data_by_path($path, $courseId = null) /** * @param int $id + * * @return array */ function get_work_data_by_id($id, $courseId = null, $sessionId = null) @@ -261,6 +264,7 @@ function get_work_data_by_id($id, $courseId = null, $sessionId = null) /** * @param int $user_id * @param int $work_id + * * @return int */ function get_work_count_by_student($user_id, $work_id) @@ -270,8 +274,9 @@ function get_work_count_by_student($user_id, $work_id) $course_id = api_get_course_int_id(); $session_id = api_get_session_id(); - $table = Database::get_course_table(TABLE_STUDENT_PUBLICATION); - $sql = "SELECT COUNT(*) as count FROM $table + $table = Database::get_course_table(TABLE_STUDENT_PUBLICATION); + $sql = "SELECT COUNT(*) as count + FROM $table WHERE c_id = $course_id AND parent_id = $work_id AND @@ -290,6 +295,7 @@ function get_work_count_by_student($user_id, $work_id) /** * @param int $id * @param int $courseId + * * @return array */ function get_work_assignment_by_id($id, $courseId = null) @@ -309,6 +315,7 @@ function get_work_assignment_by_id($id, $courseId = null) if (Database::num_rows($result)) { $return = Database::fetch_array($result,'ASSOC'); } + return $return; } @@ -316,6 +323,7 @@ function get_work_assignment_by_id($id, $courseId = null) * @param int $id * @param array $my_folder_data * @param string $add_in_where_query + * * @return array */ function getWorkList($id, $my_folder_data, $add_in_where_query = null) @@ -2873,8 +2881,8 @@ function getDocumentToWorkPerUser($documentId, $workId, $courseId, $sessionId, $ return $workInfo; } - /** + * * @param int $workId * @param int $courseId * @return array @@ -3503,7 +3511,7 @@ function deleteCommentFile($id, $courseInfo = array()) * @param array $data * @return int */ -function addWorkComment($courseInfo, $userId, $work, $data) +function addWorkComment($courseInfo, $userId, $parentWork, $work, $data) { if (ADD_DOCUMENT_TO_WORK == false) { return null; @@ -3520,14 +3528,57 @@ function addWorkComment($courseInfo, $userId, $work, $data) ); $commentId = Database::insert($commentTable, $params); + + $userIdListToSend = array(); + + if (api_is_allowed_to_edit()) { + if (isset($data['send_mail']) && $data['send_mail']) { + // Teacher sends a feedback + $userIdListToSend = array($work['user_id']); + } + } else { + $sessionId = api_get_session_id(); + if (empty($sessionId)) { + $teachers = CourseManager::get_teacher_list_from_course_code( + $courseInfo['code'] + ); + if (!empty($teachers)) { + $userIdListToSend = array_keys($teachers); + } + } else { + $teachers = SessionManager::getCoachesByCourseSession( + $sessionId, + $courseInfo['code'] + ); + + if (!empty($teachers)) { + $userIdListToSend = array_values($teachers); + } + } + } + + $url = api_get_path(WEB_CODE_PATH).'work/view.php?'.api_get_cidreq().'&id='.$work['id']; + $subject = sprintf(get_lang('ThereIsANewWorkFeedback'), $parentWork['title']); + $content = sprintf(get_lang('ThereIsANewWorkFeedbackInWorkXHere'), $work['title'], $url); + + if (!empty($userIdListToSend)) { + foreach ($userIdListToSend as $userId) { + MessageManager::send_message_simple( + $userId, + $subject, + $content + ); + } + } + $fileData = isset($data['file']) ? $data['file'] : null; if (!empty($commentId) && !empty($fileData)) { $workParent = get_work_data_by_id($work['parent_id']); if (!empty($workParent)) { $uploadDir = api_get_path(SYS_COURSE_PATH).$courseInfo['path'].'/work'.$workParent['url']; $newFileName = 'comment_'.$commentId.'_'.php2phps( - replace_dangerous_char($fileData['name'], 'strict') - ); + replace_dangerous_char($fileData['name'], 'strict') + ); $newFilePath = $uploadDir.'/'.$newFileName; $result = move_uploaded_file($fileData['tmp_name'], $newFilePath); if ($result) { @@ -3560,6 +3611,9 @@ function getWorkCommentForm($work) $form->addElement('file', 'file', get_lang('Attachment')); $form->addElement('textarea', 'comment', get_lang('Comment'), array('class' => 'span5', 'rows' => '8')); $form->addElement('hidden', 'id', $work['id']); + if (api_is_allowed_to_edit()) { + $form->addElement('checkbox', 'send_mail', null, get_lang('SendMail')); + } $form->addElement('button', 'button', get_lang('Send')); return $form->return_form(); }