, Ghent University * @Copyright Ghent University * @Copyright Patrick Cool * * @package chamilo.forum */ use ChamiloSession as Session; // Including the global initialization file. require_once '../inc/global.inc.php'; $current_course_tool = TOOL_FORUM; // Notification for unauthorized people. api_protect_course_script(true); // The section (tabs). $this_section = SECTION_COURSES; $nameTools = get_lang('ToolForum'); // Are we in a lp ? $origin = ''; $origin_string = ''; if (isset($_GET['origin'])) { $origin = Security::remove_XSS($_GET['origin']); $origin_string = '&origin='.$origin; } /* Including necessary files */ require 'forumconfig.inc.php'; require_once 'forumfunction.inc.php'; $userid = api_get_user_id(); /* MAIN DISPLAY SECTION */ $groupId = api_get_group_id(); $my_forum = isset($_GET['forum']) ? $_GET['forum'] : ''; // Note: This has to be validated that it is an existing forum. $current_forum = get_forum_information($my_forum); if (empty($current_forum)) { api_not_allowed(); } $current_forum_category = get_forumcategory_information($current_forum['forum_category']); $is_group_tutor = false; if (!empty($groupId)) { //Group info & group category info $group_properties = GroupManager::get_group_properties($groupId); //User has access in the group? $user_has_access_in_group = GroupManager::user_has_access($userid, $groupId, GroupManager::GROUP_TOOL_FORUM); $is_group_tutor = GroupManager::is_tutor_of_group(api_get_user_id(), $groupId); //Course if ( !api_is_allowed_to_edit(false, true) AND //is a student (($current_forum_category && $current_forum_category['visibility'] == 0) OR $current_forum['visibility'] == 0 OR !$user_has_access_in_group) ) { api_not_allowed(true); } } else { //Course if ( !api_is_allowed_to_edit(false, true) AND //is a student ( ($current_forum_category && $current_forum_category['visibility'] == 0) OR $current_forum['visibility'] == 0 ) //forum category or forum visibility is false ) { api_not_allowed(); } } /* Header and Breadcrumbs */ $my_search = isset($_GET['search']) ? $_GET['search'] : ''; $my_action = isset($_GET['action']) ? $_GET['action'] : ''; $gradebook = null; if (isset($_SESSION['gradebook'])){ $gradebook = $_SESSION['gradebook']; } if (!empty($gradebook) && $gradebook == 'view') { $interbreadcrumb[] = array ( 'url' => '../gradebook/'.$_SESSION['gradebook_dest'], 'name' => get_lang('ToolGradebook') ); } if (!empty($_GET['gidReq'])) { $toolgroup = Database::escape_string($_GET['gidReq']); Session::write('toolgroup',$toolgroup); } $forumUrl = api_get_path(WEB_CODE_PATH).'forum/'; if ($origin == 'group') { $interbreadcrumb[] = array( 'url' => api_get_path(WEB_CODE_PATH) . 'group/group.php', 'name' => get_lang('Groups') ); $interbreadcrumb[] = array( 'url' => api_get_path(WEB_CODE_PATH) . 'group/group_space.php?' . api_get_cidreq(), 'name' => get_lang('GroupSpace') . ' ' . $group_properties['name'] ); $interbreadcrumb[] = array( 'url' => '#', 'name' => get_lang('Forum') . ' ' . Security::remove_XSS($current_forum['forum_title']) ); } else { $interbreadcrumb[] = array( 'url' => $forumUrl . 'index.php?search=' . Security::remove_XSS($my_search), 'name' => get_lang('ForumCategories') ); $interbreadcrumb[] = array( 'url' => $forumUrl . 'viewforumcategory.php?forumcategory=' . $current_forum_category['cat_id'] . '&search=' . Security::remove_XSS(urlencode($my_search)), 'name' => prepare4display($current_forum_category['cat_title']) ); $interbreadcrumb[] = array( 'url' => '#', 'name' => Security::remove_XSS($current_forum['forum_title']) ); } if ($origin == 'learnpath') { Display::display_reduced_header(); } else { // The last element of the breadcrumb navigation is already set in interbreadcrumb, so give empty string. Display::display_header(''); } /* Actions */ // Change visibility of a forum or a forum category. if ( ($my_action == 'invisible' OR $my_action == 'visible') AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false, true) && api_is_allowed_to_session_edit(false, true) ) { $message = change_visibility($_GET['content'], $_GET['id'], $_GET['action']); } // Locking and unlocking. if ( ($my_action == 'lock' OR $my_action == 'unlock') AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false, true) && api_is_allowed_to_session_edit(false, true) ) { $message = change_lock_status($_GET['content'], $_GET['id'], $my_action); } // Deleting. if ( $my_action == 'delete' AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false, true) && api_is_allowed_to_session_edit(false, true) ) { $locked = api_resource_is_locked_by_gradebook($_GET['id'], LINK_FORUM_THREAD); if ($locked == false) { $message = deleteForumCategoryThread($_GET['content'], $_GET['id']); // Delete link $link_info = GradebookUtils::is_resource_in_course_gradebook( api_get_course_id(), 5, intval($_GET['id']), api_get_session_id() ); $link_id = $link_info['id']; if ($link_info !== false) { GradebookUtils::remove_resource_from_course_gradebook($link_id); } } } // Moving. if ($my_action == 'move' && isset($_GET['thread']) && api_is_allowed_to_edit(false, true ) && api_is_allowed_to_session_edit(false, true) ) { $message = move_thread_form(); } // Notification. if ( $my_action == 'notify' && isset($_GET['content']) && isset($_GET['id']) && api_is_allowed_to_session_edit(false, true) ) { $return_message = set_notification($_GET['content'], $_GET['id']); Display::display_confirmation_message($return_message, false); } // Student list if ( $my_action == 'liststd' && isset($_GET['content']) && isset($_GET['id']) && (api_is_allowed_to_edit(null, true) || $is_group_tutor) ) { $active = null; $listType = isset($_GET['list']) ? $_GET['list'] : null; switch ($listType) { case 'qualify': $student_list = get_thread_users_qualify($_GET['id']); $nrorow3 = -2; $active = 2; break; case 'notqualify': $student_list = get_thread_users_not_qualify($_GET['id']); $nrorow3 = -2; $active = 3; break; default: $student_list = get_thread_users_details($_GET['id']); $nrorow3 = Database::num_rows($student_list); $active = 1; break; } $table_list = Display::page_subheader(get_lang('ThreadUsersList') . ': ' . get_name_thread_by_id($_GET['id'])); if ($nrorow3 > 0 || $nrorow3 == -2) { $url = 'cidReq=' . Security::remove_XSS($_GET['cidReq']) . '&forum=' . Security::remove_XSS($my_forum) . '&action=' . Security::remove_XSS($_GET['action']) . '&content=' . Security::remove_XSS($_GET['content'], STUDENT) . '&id=' . intval($_GET['id']); $tabs = array( array( 'content' => get_lang('AllStudents'), 'url' => $forumUrl . 'viewforum.php?' . $url . '&origin=' . $origin . '&list=all' ), array( 'content' => get_lang('StudentsQualified'), 'url' => $forumUrl . 'viewforum.php?' . $url . '&origin=' . $origin . '&list=qualify' ), array( 'content' => get_lang('StudentsNotQualified'), 'url' => $forumUrl . 'viewforum.php?' . $url . '&origin=' . $origin . '&list=notqualify' ), ); $table_list .= Display::tabsOnlyLink($tabs, $active); $icon_qualify = 'blog_new.gif'; $table_list .= '
' . get_lang('NamesAndLastNames') . ' | '; if ($listType == 'qualify') { $table_list .= '' . get_lang('Qualification') . ' | '; } if (api_is_allowed_to_edit(null, true)) { $table_list .= '' . get_lang('Qualify') . ' | '; } $table_list .= '
---|---|---|
'; $table_list .= UserManager::getUserProfileLink($userInfo); $table_list .= ' | '; if ($listType == 'qualify') { $table_list .= '' . $row_student_list['qualify'] . '/' . $max_qualify . ' | '; } if (api_is_allowed_to_edit(null, true)) { $current_qualify_thread = showQualify( '1', $row_student_list['id'], $_GET['id'] ); $table_list .= '' . Display::return_icon($icon_qualify, get_lang('Qualify')) . ' |
' . get_lang('ThereIsNotQualifiedLearners') . ' | ||
' . get_lang('ThereIsNotUnqualifiedLearners') . ' |
'. get_lang('By') .' ' .$authorName.'
'; $html .= '' . api_convert_and_format_date($row['insert_date']) . '
'; $html .= '