Skip to content

Commit 50e5cfc

Browse files
authored
Merge pull request #576 from topcoder-platform/issues-548
Issues-548: Show the public forums topics in the left nav
2 parents 26e4185 + 25668f6 commit 50e5cfc

File tree

5 files changed

+53
-18
lines changed

5 files changed

+53
-18
lines changed

vanilla/applications/vanilla/controllers/class.categoriescontroller.php

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,12 @@ public function index($categoryIdentifier = '', $page = '0') {
422422
$this->addModule('NewDiscussionModule');
423423
}
424424
$this->addModule('DiscussionFilterModule');
425-
// $this->addModule('CategoriesModule');
425+
// FIX: https://github.com/topcoder-platform/forums/issues/548
426+
// Show only for 'Public forums'
427+
$isGroupCategory = val('GroupID',$category, false);
428+
if(gdn::session()->isValid() && !$isGroupCategory) {
429+
$this->addModule('CategoriesModule');
430+
}
426431
$this->addModule('BookmarkedModule');
427432
$this->addModule('TagModule');
428433

@@ -653,7 +658,13 @@ public function all($Category = '', $displayAs = '') {
653658
}
654659
$this->addModule('DiscussionFilterModule');
655660
$this->addModule('BookmarkedModule');
656-
// $this->addModule('CategoriesModule');
661+
// FIX: https://github.com/topcoder-platform/forums/issues/548
662+
// Show only for 'Public forums'
663+
$isGroupCategory = val('GroupID',$this->data('Category'));
664+
if(gdn::session()->isValid() && $this->data('Category') && !$isGroupCategory) {
665+
$this->addModule('CategoriesModule');
666+
}
667+
657668
$this->addModule($CategoryFollowToggleModule);
658669
$this->addModule('TagModule');
659670

@@ -745,7 +756,12 @@ public function discussions($Category = '') {
745756
// Add modules
746757
$this->addModule('NewDiscussionModule');
747758
$this->addModule('DiscussionFilterModule');
748-
// $this->addModule('CategoriesModule');
759+
// FIX: https://github.com/topcoder-platform/forums/issues/548
760+
// Show only for 'Public forums'
761+
$isGroupCategory = val('GroupID',$Category, false);
762+
if(gdn::session()->isValid() && $Category && !$isGroupCategory) {
763+
$this->addModule('CategoriesModule');
764+
}
749765
$this->addModule('BookmarkedModule');
750766
$this->addModule($CategoryFollowToggleModule);
751767

vanilla/applications/vanilla/controllers/class.discussioncontroller.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,14 @@ public function index($DiscussionID = '', $DiscussionStub = '', $Page = '') {
297297
// Add modules
298298
$this->addModule('DiscussionFilterModule');
299299
$this->addModule('NewDiscussionModule');
300-
// $this->addModule('CategoriesModule');
300+
301+
// FIX: https://github.com/topcoder-platform/forums/issues/548
302+
// Show only for 'Public forums'
303+
$isGroupDiscussion = val('GroupID',$Category, false);
304+
if(gdn::session()->isValid() && !$isGroupDiscussion) {
305+
$this->addModule('CategoriesModule');
306+
}
307+
301308
$this->addModule('BookmarkedModule');
302309

303310
$this->CanEditComments = Gdn::session()->checkPermission('Vanilla.Comments.Edit', true, 'Category', 'any') && c('Vanilla.AdminCheckboxes.Use');

vanilla/applications/vanilla/controllers/class.postcontroller.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,12 @@ public function discussion($categoryUrlCode = '', $announce = '') {
158158

159159
$categoryData = $this->ShowCategorySelector ? CategoryModel::categories() : false;
160160

161+
$isGroupCategory = val('GroupID',$category, false);
162+
if($category && !$isGroupCategory) {
163+
$this->addModule('CategoriesModule');
164+
}
165+
166+
161167
// Check permission
162168
if (isset($this->Discussion)) {
163169
$this->setData('ShowPreviewButton', $this->Discussion->Format != 'Rich');
@@ -496,6 +502,7 @@ public function editDiscussion($discussionID = '', $draftID = '') {
496502
* @param int $DiscussionID Unique ID to add the comment to. If blank, this method will throw an error.
497503
*/
498504
public function comment($DiscussionID = '') {
505+
499506
// Get $DiscussionID from RequestArgs if valid
500507
if ($DiscussionID == '' && count($this->RequestArgs)) {
501508
if (is_numeric($this->RequestArgs[0])) {
@@ -1030,7 +1037,6 @@ public function initialize() {
10301037
// Add modules
10311038
$this->addModule('NewDiscussionModule');
10321039
$this->addModule('DiscussionFilterModule');
1033-
// $this->addModule('CategoriesModule');
10341040
$this->addModule('BookmarkedModule');
10351041

10361042
parent::initialize();

vanilla/applications/vanilla/modules/class.categoriesmodule.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,12 @@ protected function getData() {
7171
* @return array
7272
*/
7373
private function filterCategories($categories) {
74-
//Don't show `Challenges Forums` in the menu
75-
$groupModel = new GroupModel();
76-
$challengesForumsCategory = $groupModel->getChallengesForums();
77-
$challengesForumsCategoryID = val('CategoryID',$challengesForumsCategory);
78-
74+
$hiddenCategories = ['challenges-forums', 'groups'];
7975
foreach ($categories as &$category) {
8076
$categoryID = $category['CategoryID'];
81-
$category['isDisplayed'] = $challengesForumsCategoryID != $categoryID;
77+
$categoryUrlCode = $category['UrlCode'];
78+
$isHidden = in_array($categoryUrlCode, $hiddenCategories);
79+
$category['isDisplayed'] = !$isHidden;
8280
}
8381

8482
return array_filter($categories, function($e) {

vanilla/applications/vanilla/views/modules/categories.php

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
}
99
?>
1010
<div class="Box BoxCategories">
11-
<?php echo panelHeading(t('Categories')); ?>
11+
<?php echo panelHeading(t('Public Forums Topics')); ?>
1212
<ul class="PanelInfo PanelCategories">
1313
<?php
14-
echo '<li'.($OnCategories ? ' class="Active"' : '').'>'.
15-
anchor(t('All Categories'), '/categories', 'ItemLink')
16-
.'</li>';
14+
// echo '<li'.($OnCategories ? ' class="Active"' : '').'>'.
15+
// anchor(t('All Categories'), '/categories', 'ItemLink')
16+
// .'</li>';
1717

1818
$MaxDepth = c('Vanilla.Categories.MaxDisplayDepth');
1919

@@ -24,13 +24,21 @@
2424
$attributes = false;
2525

2626
if ($Category->DisplayAs === 'Heading') {
27-
2827
$CssClass = 'Heading '.$Category->CssClass;
2928
$attributes = ['aria-level' => $Category->Depth + 2];
3029
} else {
31-
$CssClass = 'Depth'.$Category->Depth.($CategoryID == $Category->CategoryID ? ' Active' : '').' '.$Category->CssClass;
32-
}
30+
//$isActive = $CategoryID == $Category->CategoryID;
31+
$ancestors = CategoryModel::getAncestors($CategoryID);
32+
$isActive = false;
33+
foreach ($ancestors as $id => $ancestor) {
34+
if($id == $Category->CategoryID) {
35+
$isActive = true;
36+
break;
37+
}
38+
}
3339

40+
$CssClass = 'Depth'.$Category->Depth.($isActive ? ' Active' : '').' '.$Category->CssClass;
41+
}
3442

3543
if (is_array($attributes)) {
3644
$attributes = attribute($attributes);

0 commit comments

Comments
 (0)