diff --git a/main/forum/forumfunction.inc.php b/main/forum/forumfunction.inc.php index a0e1d23646..6e68b54aa6 100755 --- a/main/forum/forumfunction.inc.php +++ b/main/forum/forumfunction.inc.php @@ -1470,9 +1470,9 @@ function get_forums( ) { $course_info = api_get_course_info($course_code); - $table_forums = Database :: get_course_table(TABLE_FORUM); - $table_threads = Database :: get_course_table(TABLE_FORUM_THREAD); - $table_item_property = Database :: get_course_table(TABLE_ITEM_PROPERTY); + $table_forums = Database::get_course_table(TABLE_FORUM); + $table_threads = Database::get_course_table(TABLE_FORUM_THREAD); + $table_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY); // Condition for the session $session_id = intval($sessionId) ?: api_get_session_id(); @@ -1528,7 +1528,6 @@ function get_forums( item_properties.c_id = $course_id GROUP BY threads.forum_id"; - // Course Admin if (api_is_allowed_to_edit()) { // Select all the forum information of all forums (that are not deleted). diff --git a/main/lp/learnpath.class.php b/main/lp/learnpath.class.php index 3afa508deb..284ccb3ca0 100755 --- a/main/lp/learnpath.class.php +++ b/main/lp/learnpath.class.php @@ -6533,7 +6533,16 @@ class learnpath $dir = $_SESSION['oLP']->display_item_form('dir', get_lang('EnterDataNewChapter'), 'add_item'); echo Display::tabs( $headers, - array($documents, $exercises, $links, $works, $forums, $dir, $finish), 'resource_tab' + array( + $documents, + $exercises, + $links, + $works, + $forums, + $dir, + $finish, + ), + 'resource_tab' ); return true; @@ -9087,11 +9096,39 @@ class learnpath require_once '../forum/forumfunction.inc.php'; require_once '../forum/forumconfig.inc.php'; - $a_forums = get_forums(); + $forumCategories = get_forum_categories(); + $forumsInNoCategory = get_forums_in_category(0); + if (!empty($forumsInNoCategory)) { + $forumCategories = array_merge( + $forumCategories, + array( + array( + 'cat_id' => 0, + 'session_id' => 0, + 'visibility' => 1, + 'cat_comment' => null, + ), + ) + ); + } + + $forumList = get_forums(); + $a_forums = []; + foreach ($forumCategories as $forumCategory) { + // The forums in this category. + $forumsInCategory = get_forums_in_category($forumCategory['cat_id']); + if (!empty($forumsInCategory)) { + foreach ($forumList as $forum) { + if (isset($forum['forum_category']) && $forum['forum_category'] == $forumCategory['cat_id']) { + $a_forums[] = $forum; + } + } + } + } $return = '