Skip to content

Commit 753a1b1

Browse files
authored
Merge pull request #552 from topcoder-platform/issues-519_2
Issues-487: Home page redesign (frixed breadcrumbs and scrolling)
2 parents c375fad + bd71729 commit 753a1b1

File tree

3 files changed

+59
-12
lines changed

3 files changed

+59
-12
lines changed

vanilla/applications/vanilla/controllers/class.vanillacontroller.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ protected function checkPageRange(int $offset, int $totalCount) {
7575
protected function buildBreadcrumbs($CategoryID) {
7676
$Category = CategoryModel::categories($CategoryID);
7777
$ancestors = CategoryModel::getAncestors($CategoryID);
78+
$parentCategoryID = val('ParentCategoryID', $Category);
7879
if(val('GroupID', $Category) > 0) {
7980
$temp = [];
8081
foreach ($ancestors as $id => $ancestor) {
@@ -102,6 +103,14 @@ protected function buildBreadcrumbs($CategoryID) {
102103
}
103104
}
104105

106+
// FIX https://github.com/topcoder-platform/forums/issues/487
107+
// Go to a parent category at a home page
108+
foreach ($ancestors as $id => $ancestor) {
109+
if ($ancestor['ParentCategoryID'] == -1) {
110+
$ancestors[$id]['Url'] = url('/categories/#Category_'.$parentCategoryID, true);
111+
}
112+
}
113+
105114
return $ancestors;
106115
}
107116
}
Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,45 @@
1-
jQuery(document).ready(function($) {
2-
$(".CategoryAccordion").accordion({ header: ".CategoryAccordionHeader",
3-
animate:false,
4-
collapsible: true,
5-
active: 0, heightStyle: "content" ,
6-
icons: { "header": "icon icon-chevron-down", "activeHeader": "icon icon-chevron-up" }});
7-
8-
});
1+
jQuery(document).ready(function ($) {
2+
// $(".CategoryAccordion").accordion({ header: ".CategoryAccordionHeader",
3+
// animate:false,
4+
// collapsible: true,
5+
// active: 0, heightStyle: "content" ,
6+
// icons: { "header": "icon icon-chevron-down", "activeHeader": "icon icon-chevron-up" }});
7+
8+
var headers = $('.CategoryAccordion .accordion-header')
9+
10+
// add the accordion functionality
11+
headers.click(function () {
12+
var panel = $(this).next()
13+
var isOpen = panel.is(':visible')
14+
if (isOpen) {
15+
$(panel).parent().find('.ui-accordion-header-icon').removeClass('icon-chevron-up').addClass('icon-chevron-down')
16+
$(panel).parent().find('.CategoryAccordionHeader').removeClass('ui-state-active')
17+
} else {
18+
$(panel).parent().find('.ui-accordion-header-icon').addClass('icon-chevron-up').removeClass('icon-chevron-down')
19+
$(panel).parent().find('.CategoryAccordionHeader').addClass('ui-state-active')
20+
}
21+
22+
//panel[isOpen? 'slideUp': 'slideDown']()
23+
panel[isOpen ? 'hide' : 'show']().trigger(isOpen ? 'hide' : 'show')
24+
25+
return false
26+
})
27+
28+
// hook up the expand/collapse
29+
var hash = window.location.hash.substr(1)
30+
if (hash) {
31+
// Collapse other categories
32+
$('.CategoryAccordionHeader').removeClass('ui-state-active')
33+
$('.CategoryAccordionHeader').find('.ui-accordion-header-icon').removeClass('icon-chevron-up').addClass('icon-chevron-down')
34+
$('.ui-accordion-content').hide()
35+
36+
$('#' + hash).find('.CategoryAccordionHeader').addClass('ui-state-active')
37+
$('#' + hash).find('.ui-accordion-header-icon').removeClass('icon-chevron-down').addClass('icon-chevron-up');
38+
$('#' + hash).find('.ui-accordion-content').show()
39+
} else {
40+
// Expand all categories
41+
$('.CategoryAccordionHeader').addClass('ui-state-active')
42+
$('.CategoryAccordionHeader').find('.ui-accordion-header-icon').removeClass('icon-chevron-down').addClass('icon-chevron-up');
43+
$('.ui-accordion-content').show()
44+
}
45+
})

vanilla/applications/vanilla/views/categories/helper_functions.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ function writeCategoryAccordion($categories, $depth = 1) {
378378

379379
?>
380380
<div class="DataListWrap DataAccordionWrap">
381-
<div id="CategoryAccordion" class="CategoryAccordion">
381+
<div id="CategoryAccordion" class="CategoryAccordion ui-accordion ui-widget ui-helper-reset">
382382
<?php
383383
foreach ($categories as $category) {
384384
writeAccordionItem($category, $depth);
@@ -408,11 +408,12 @@ function writeAccordionItem($category, $depth) {
408408
$categoryID = val('CategoryID', $category);
409409
$cssClass = cssClass($category, true);
410410
?>
411-
<div id="Category_<?php echo $categoryID; ?>" class="CategoryAccordionItem">
412-
<div class="<?php echo $cssClass; ?> CategoryAccordionHeader">
411+
<div id="Category_<?php echo $categoryID; ?>" class="CategoryAccordionItem ">
412+
<div class="<?php echo $cssClass; ?> CategoryAccordionHeader accordion-header ui-accordion-header ui-helper-reset ui-state-default ui-accordion-icons ui-corner-all">
413413
<a class="toggle" href="javascript:void(0);"><?php echo Gdn_Format::text(val('Name', $category)); ?></a>
414+
<span class="ui-accordion-header-icon ui-icon icon icon-chevron-up"></span>
414415
</div>
415-
<ul id="Category_<?php echo $categoryID; ?>_child" class="DataList CategoryList CategoryAccordionCollapse">
416+
<ul id="Category_<?php echo $categoryID; ?>_child" class="DataList CategoryList ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom">
416417
<?php
417418
foreach ($children as $child) {
418419
writeListItem($child, $depth + 1);

0 commit comments

Comments
 (0)