diff --git a/main/css/base.css b/main/css/base.css index dda1f6c17d..d150a485ac 100755 --- a/main/css/base.css +++ b/main/css/base.css @@ -44,7 +44,7 @@ header #logo img{ margin-left: 30px; } -/*buttom load ajax form*/ +/* button load ajax form */ .button-load{ background: url("../img/icons/64/file_upload.png") no-repeat center 20px; diff --git a/main/forum/forumfunction.inc.php b/main/forum/forumfunction.inc.php index ac0dd0ddbe..2cb1754b20 100755 --- a/main/forum/forumfunction.inc.php +++ b/main/forum/forumfunction.inc.php @@ -26,6 +26,8 @@ use \ChamiloSession as Session; require_once api_get_path(LIBRARY_PATH).'mail.lib.inc.php'; require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php'; +define('FORUM_NEW_POST', 0); + get_notifications_of_user(); $htmlHeadXtra[] = api_get_jquery_libraries_js(array('jquery-ui', 'jquery-upload')); @@ -2447,9 +2449,10 @@ function show_add_post_form($current_forum, $forum_setting, $action = '', $id = $form->setConstants(array('sec_token' => $token)); // Delete from $_SESSION forum attachment from other posts - clearAttachedFiles(0); + // and keep only attachments for new post + clearAttachedFiles(FORUM_NEW_POST); // Get forum attachment ajax table to add it to form - $attachmentAjaxTable = getAttachmentAjaxTable(0, $current_forum['forum_id']); + $attachmentAjaxTable = getAttachmentsAjaxTable(0, $current_forum['forum_id']); $ajaxHtml = $attachmentAjaxTable; $form->addElement('html', $ajaxHtml); $form->display(); @@ -2865,7 +2868,7 @@ function show_edit_post_form($forum_setting, $current_post, $current_thread, $cu // Delete from $_SESSION forum attachment from other posts clearAttachedFiles($current_post['post_id']); // Get forum attachment ajax table to add it to form - $fileData = getAttachmentAjaxTable($current_post['post_id'], $current_forum['forum_id']); + $fileData = getAttachmentsAjaxTable($current_post['post_id'], $current_forum['forum_id']); $form->addElement('html', $fileData); $form->display(); } @@ -3995,18 +3998,22 @@ function get_attachment($post_id) function getAllAttachment($postId) { - $forum_table_attachment = Database :: get_course_table(TABLE_FORUM_ATTACHMENT); - $course_id = api_get_course_int_id(); - $array = array(); + $forumAttachmentTable = Database :: get_course_table(TABLE_FORUM_ATTACHMENT); + $courseId = api_get_course_int_id(); $postId = intval($postId); - $sql = "SELECT id, path, filename, comment FROM $forum_table_attachment - WHERE c_id = $course_id AND post_id = $postId"; - $result = Database::query($sql); - if (Database::num_rows($result) > 0) { - while($row = Database::fetch_array($result)) { - $array[] = $row; - } - } + $columns = array('id', 'path', 'filename', 'comment'); + $conditions = array( + 'where' => array( + 'c_id = ? AND post_id = ?' => array($courseId, $postId) + ) + ); + $array = Database::select( + $columns, + $forumAttachmentTable, + $conditions, + 'all', + 'ASSOC' + ); return $array; } @@ -4761,13 +4768,12 @@ function editAttachedFile($array, $id, $courseId = null) { /** * Return a form to upload asynchronously attachments to forum post. - * @param $forumId Forum ID from where the post is - * @param $threadId Thread ID where forum post is + * @param $forumId Forum ID from where the post are + * @param $threadId Thread ID where forum post are * @param $postId Post ID to identify Post - * @param null $path Path where are forum attachment files * @return string The Forum Attachment Ajax Form */ -function getAttachmentAjaxForm($forumId, $threadId, $postId, $path = null) +function getAttachmentAjaxForm($forumId, $threadId, $postId) { // Init variables $forumId = intval($forumId); @@ -4779,21 +4785,9 @@ function getAttachmentAjaxForm($forumId, $threadId, $postId, $path = null) return ''; } $url = api_get_path(WEB_AJAX_PATH).'forum.ajax.php?forum=' . $forumId . '&thread=' . $threadId . '&postId=' . $postId . '&a=upload_file'; - if (empty($path)) { - // If there is not path, use - $path = '/../upload/forum'; - } else { - $testPath = api_get_path(SYS_COURSE_PATH).'/'.api_get_course_id().'/document'.$path; - // Check if path exists - if (!file_exists($testPath)) { - - return ''; - } - } // Form $formFileUpload = '
| ";
$username = sprintf(get_lang('LoginX'), $rows[$display_post_id]['username']);
-if ($rows[$display_post_id]['user_id']=='0') {
+if ($rows[$display_post_id]['user_id'] == '0') {
$name = prepare4display($rows[$display_post_id]['poster_name']);
} else {
$name = api_get_person_name($rows[$display_post_id]['firstname'], $rows[$display_post_id]['lastname']);
}
if (api_get_course_setting('allow_user_image_forum')) {
- echo ' '.display_user_image($rows[$display_post_id]['user_id'],$name, $origin).' '; + echo ' ' . display_user_image($rows[$display_post_id]['user_id'], $name, $origin) . ' '; } -echo display_user_link($rows[$display_post_id]['user_id'], $name, $origin, $username)." "; -echo api_convert_and_format_date($rows[$display_post_id]['post_date']).' '; -// get attach id -$attachment_list=get_attachment($display_post_id); -$id_attach = !empty($attachment_list)?$attachment_list['id']:''; +echo display_user_link( + $rows[$display_post_id]['user_id'], + $name, + $origin, + $username + ) . " "; +echo api_convert_and_format_date( + $rows[$display_post_id]['post_date'] + ) . ' '; +// Get attach id +$attachment_list = get_attachment($display_post_id); +$id_attach = !empty($attachment_list) ? $attachment_list['id'] : ''; // The user who posted it can edit his thread only if the course admin allowed this in the properties of the forum // The course admin him/herself can do this off course always -if (GroupManager::is_tutor_of_group(api_get_user_id(), $group_id) OR ($current_forum['allow_edit']==1 AND $row['user_id']==$_user['user_id']) or (api_is_allowed_to_edit(false,true) && !(api_is_course_coach() && $current_forum['session_id']!=$_SESSION['id_session']))) { +if ( + GroupManager::is_tutor_of_group(api_get_user_id(), $group_id) OR ( + $current_forum['allow_edit'] == 1 AND + $row['user_id'] == $_user['user_id'] + ) OR ( + api_is_allowed_to_edit(false,true) && !( + api_is_course_coach() && + $current_forum['session_id'] != $_SESSION['id_session'] + ) + ) +) { if ($locked == false) { - echo "". - Display::return_icon('edit.png',get_lang('Edit'), array(), ICON_SIZE_SMALL).''; + echo "" . + Display::return_icon( + 'edit.png', + get_lang('Edit'), + array(), + ICON_SIZE_SMALL + ) . ''; } } -if (GroupManager::is_tutor_of_group(api_get_user_id(), $group_id) OR - api_is_allowed_to_edit(false,true) && - !(api_is_course_coach() && $current_forum['session_id']!=$_SESSION['id_session']) +if ( + GroupManager::is_tutor_of_group(api_get_user_id(), $group_id) OR + api_is_allowed_to_edit(false,true) && !( + api_is_course_coach() && + $current_forum['session_id'] != $_SESSION['id_session'] + ) ) { if ($locked == false) { - echo "".Display::return_icon('delete.png',get_lang('Delete'), array(), ICON_SIZE_SMALL).""; + echo "" . Display::return_icon( + 'delete.png', + get_lang('Delete'), + array(), + ICON_SIZE_SMALL + ).""; } - display_visible_invisible_icon('post', $rows[$display_post_id]['post_id'], $rows[$display_post_id]['visible'],array('forum'=>$clean_forum_id,'thread'=>$clean_thread_id, 'post'=>Security::remove_XSS($_GET['post']) )); - echo ""; - //verified the post minor - $my_post=get_posts($_GET['thread']); - $id_posts=array(); + display_visible_invisible_icon( + 'post', + $rows[$display_post_id]['post_id'], + $rows[$display_post_id]['visible'], + array( + 'forum' => $forumId, + 'thread' => $threadId, + 'post' => Security::remove_XSS($_GET['post']) )); + // Verified the post minor + $my_post = get_posts($_GET['thread']); + $id_posts = array(); if (!empty($my_post) && is_array($my_post)) { foreach ($my_post as $post_value) { - $id_posts[]=$post_value['post_id']; + $id_posts[] = $post_value['post_id']; } - sort($id_posts,SORT_NUMERIC); + sort($id_posts, SORT_NUMERIC); reset($id_posts); - //the post minor - $post_minor=(int)$id_posts[0]; - $post_id = isset($_GET['post'])?(int)$_GET['post']:0; - if (!isset($_GET['id']) && $post_id>$post_minor) { - echo "".Display::return_icon('move.png',get_lang('MovePost'), array(), ICON_SIZE_SMALL).""; + // The post minor + $post_minor = (int) $id_posts[0]; + $post_id = isset($_GET['post']) ? (int) $_GET['post'] : 0; + if (!isset($_GET['id']) && $post_id > $post_minor) { + echo "" . + Display::return_icon( + 'move.png', + get_lang('MovePost'), + array(), + ICON_SIZE_SMALL + ) . ""; } } } @@ -237,53 +315,100 @@ $user_status = api_get_status_of_user_in_course( $rows[$display_post_id]['user_id'], api_get_course_id() ); -if (api_is_allowed_to_edit(null,true)) { +if (api_is_allowed_to_edit(null, true)) { if ($post_id > $post_minor) { - $current_qualify_thread=show_qualify('1', $rows[$display_post_id]['user_id'],$_GET['thread']); - + $current_qualify_thread = show_qualify( + '1', + $rows[$display_post_id]['user_id'], + $_GET['thread'] + ); if ($locked == false) { - echo "".Display::return_icon('new_test_small.gif',get_lang('Qualify')).""; + echo "" . Display::return_icon( + 'new_test_small.gif', + get_lang('Qualify') + ) . ""; } } } -if (($current_forum_category && $current_forum_category['locked']==0) AND $current_forum['locked']==0 AND $current_thread['locked']==0 OR api_is_allowed_to_edit(false,true)) { - if ($_user['user_id'] OR ($current_forum['allow_anonymous']==1 AND !$_user['user_id'])) { - if (!api_is_anonymous() && api_is_allowed_to_session_edit(false,true)) { - echo ''.Display :: return_icon('message_reply_forum.png', get_lang('ReplyToMessage')).""; - echo ''.Display :: return_icon('quote.gif', get_lang('QuoteMessage')).""; +if ( + ( + $current_forum_category && + $current_forum_category['locked'] == 0 + ) AND $current_forum['locked'] == 0 AND + $current_thread['locked'] == 0 OR + api_is_allowed_to_edit(false,true) +) { + if ( + $_user['user_id'] OR ( + $current_forum['allow_anonymous'] == 1 AND + !$_user['user_id'] + ) + ) { + if ( + !api_is_anonymous() && + api_is_allowed_to_session_edit(false, true) + ) { + echo '' . + Display::return_icon( + 'message_reply_forum.png', + get_lang('ReplyToMessage') + ) . ""; + echo '' . + Display::return_icon( + 'quote.gif', + get_lang('QuoteMessage') + ) . ""; } } } else { - if ($current_forum_category && $current_forum_category['locked']==1) { - echo get_lang('ForumcategoryLocked').' '; + if ($current_forum_category && $current_forum_category['locked'] == 1) { + echo get_lang('ForumcategoryLocked') . ' '; } - if ($current_forum['locked']==1) { - echo get_lang('ForumLocked').' '; + if ($current_forum['locked'] == 1) { + echo get_lang('ForumLocked') . ' '; } - if ($current_thread['locked']==1) { - echo get_lang('ThreadLocked').' '; + if ($current_thread['locked'] == 1) { + echo get_lang('ThreadLocked') . ' '; } } echo " | ";
-// note: this can be removed here because it will be displayed in the tree
-if (isset($whatsnew_post_info[$current_forum['forum_id']][$current_thread['thread_id']][$rows[$display_post_id]['post_id']]) AND
- !empty($whatsnew_post_info[$current_forum['forum_id']][$current_thread['thread_id']][$rows[$display_post_id]['post_id']]) AND
+// Note: this can be removed here because it will be displayed in the tree
+if (
+ isset($whatsnew_post_info[$forumId][$threadId][$rows[$display_post_id]['post_id']]) AND
+ !empty($whatsnew_post_info[$forumId][$threadId][$rows[$display_post_id]['post_id']]) AND
!empty($whatsnew_post_info[$_GET['forum']][$rows[$display_post_id]['thread_id']])
) {
- $post_image=Display::return_icon('forumpostnew.gif');
+ $post_image = Display::return_icon('forumpostnew.gif');
} else {
- $post_image=Display::return_icon('forumpost.gif');
+ $post_image = Display::return_icon('forumpost.gif');
}
-if ($rows[$display_post_id]['post_notification']=='1' AND $rows[$display_post_id]['poster_id']==$_user['user_id']) {
- $post_image.=Display::return_icon('forumnotification.gif',get_lang('YouWillBeNotified'));
+if (
+ $rows[$display_post_id]['post_notification'] == '1' AND
+ $rows[$display_post_id]['poster_id'] == $_user['user_id']
+) {
+ $post_image .= Display::return_icon('forumnotification.gif',get_lang('YouWillBeNotified'));
}
// The post title
-echo "".prepare4display($rows[$display_post_id]['post_title'])." | "; +echo "" . + prepare4display($rows[$display_post_id]['post_title']) . " | "; echo "
| ';
$realname = $attachment['path'];
$user_filename = $attachment['filename'];
- echo Display::return_icon('attachment.gif',get_lang('Attachment'));
+ echo Display::return_icon('attachment.gif', get_lang('Attachment'));
echo ' '.$user_filename.' ';
- echo ''.Security::remove_XSS($attachment['comment'], STUDENT).'';
- if (($current_forum['allow_edit']==1 AND $rows[$display_post_id]['user_id']==$_user['user_id']) or (api_is_allowed_to_edit(false,true) && !(api_is_course_coach() && $current_forum['session_id']!=$_SESSION['id_session']))) {
- echo ' '.Display::return_icon('delete.gif',get_lang('Delete')).' '; + echo ' "> ' . $user_filename . ' '; + echo '' . + Security::remove_XSS($attachment['comment'], STUDENT) . ''; + if ( + ( + $current_forum['allow_edit'] == 1 AND + $rows[$display_post_id]['user_id'] == $_user['user_id'] + ) OR ( + api_is_allowed_to_edit(false, true) && !( + api_is_course_coach() && + $current_forum['session_id'] != $_SESSION['id_session'] + ) + ) + ) { + echo ' ' . Display::return_icon( + 'delete.gif', + get_lang('Delete') + ).' '; } echo ' |