diff --git a/src/controllers/category.js b/src/controllers/category.js index 65eb23fb62..d6c4e5edf6 100644 --- a/src/controllers/category.js +++ b/src/controllers/category.js @@ -122,6 +122,7 @@ async function buildBreadcrumbs(req, categoryData) { { text: categoryData.name, url: nconf.get('relative_path') + '/category/' + categoryData.slug, + cid: categoryData.cid, }, ]; const crumbs = await helpers.buildCategoryBreadcrumbs(categoryData.parentCid); diff --git a/src/controllers/helpers.js b/src/controllers/helpers.js index 4240ecb637..11a677116d 100644 --- a/src/controllers/helpers.js +++ b/src/controllers/helpers.js @@ -159,6 +159,7 @@ helpers.buildCategoryBreadcrumbs = async function (cid) { breadcrumbs.unshift({ text: String(data.name), url: nconf.get('relative_path') + '/category/' + data.slug, + cid: cid, }); } cid = data.parentCid; diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 06957d1fae..6d2656771e 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -156,6 +156,7 @@ async function buildBreadcrumbs(topicData) { { text: topicData.category.name, url: nconf.get('relative_path') + '/category/' + topicData.category.slug, + cid: topicData.category.cid, }, { text: topicData.title, diff --git a/src/middleware/render.js b/src/middleware/render.js index 23579bb70f..a6257d04a8 100644 --- a/src/middleware/render.js +++ b/src/middleware/render.js @@ -127,6 +127,13 @@ module.exports = function (middleware) { parts.push('page-topic-category-' + templateData.category.cid); parts.push('page-topic-category-' + utils.slugify(templateData.category.name)); } + if (templateData.breadcrumbs) { + templateData.breadcrumbs.forEach(function (crumb) { + if (crumb.hasOwnProperty('cid')) { + parts.push('parent-category-' + crumb.cid); + } + }); + } parts.push('page-status-' + res.statusCode); return parts.join(' ');