@@ -72,20 +72,58 @@ protected function checkPageRange(int $offset, int $totalCount) {
72
72
}
73
73
}
74
74
75
+ public function checkChallengeForums ($ CategoryID ) {
76
+ $ Category = CategoryModel::categories ($ CategoryID );
77
+ $ ancestors = CategoryModel::getAncestors ($ CategoryID );
78
+ if (val ('GroupID ' , $ Category ) > 0 ) {
79
+ return true ;
80
+ }
81
+
82
+ foreach ($ ancestors as $ id => $ ancestor ) {
83
+ if ($ ancestor ['UrlCode ' ] == self ::CHALLENGE_FORUMS_URLCODE ) {
84
+ return true ;
85
+ }
86
+ if ($ ancestor ['GroupID ' ] > 0 ) {
87
+ return true ;
88
+ }
89
+ }
90
+
91
+ return false ;
92
+ }
93
+
75
94
protected function buildBreadcrumbs ($ CategoryID ) {
76
95
$ Category = CategoryModel::categories ($ CategoryID );
77
96
$ ancestors = CategoryModel::getAncestors ($ CategoryID );
78
97
$ parentCategoryID = val ('ParentCategoryID ' , $ Category );
79
98
if (val ('GroupID ' , $ Category ) > 0 ) {
99
+ $ challenge = $ this ->data ('Challenge ' );
100
+ $ track = $ challenge ? $ challenge ['Track ' ]: false ;
80
101
$ temp = [];
102
+ $ GroupCategoryID = $ this ->data ('Breadcrumbs.Options.GroupCategoryID ' );
81
103
foreach ($ ancestors as $ id => $ ancestor ) {
82
104
if ($ ancestor ['GroupID ' ] > 0 ) {
83
- $ temp [$ ancestor ['CategoryID ' ]] = $ ancestor ;
105
+ if ($ GroupCategoryID == $ ancestor ['CategoryID ' ]) {// root category for a group
106
+ array_push ($ temp , ['Name ' => $ ancestor ['Name ' ], 'Url ' =>'/group/ ' .$ ancestor ['GroupID ' ]]);
107
+ } else {
108
+ $ temp [$ ancestor ['CategoryID ' ]] = $ ancestor ;
109
+ }
84
110
} else {
85
111
if ($ ancestor ['UrlCode ' ] == self ::CHALLENGE_FORUMS_URLCODE ) {
86
112
array_push ($ temp , ['Name ' => 'Challenge Forums ' , 'Url ' =>'/groups/mine?filter=challenge ' ]);
87
113
}else if ($ ancestor ['UrlCode ' ] == 'groups ' ) {
88
114
array_push ($ temp , ['Name ' => 'Group Forums ' , 'Url ' =>'/groups/mine?filter=regular ' ]);
115
+ } else {
116
+ if ($ track ) {
117
+ switch ($ ancestor ['UrlCode ' ]) {
118
+ case 'development-forums ' :
119
+ case 'data-science-forums ' :
120
+ case 'design-forums ' :
121
+ array_push ($ temp , ['Name ' => $ track , 'Url ' =>'/groups/mine?filter=challenge ' ]);
122
+ break ;
123
+ default :
124
+ $ temp [$ ancestor ['CategoryID ' ]] = $ ancestor ;
125
+ }
126
+ }
89
127
}
90
128
}
91
129
}
0 commit comments