From 168419cf2429bf20be39056bb6acf4a7b3c307fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 26 Mar 2024 09:57:34 -0400 Subject: [PATCH] feat: add hook to modify sorting options/fields --- src/topics/sorted.js | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/topics/sorted.js b/src/topics/sorted.js index d244eefe61..23f55b63cb 100644 --- a/src/topics/sorted.js +++ b/src/topics/sorted.js @@ -159,18 +159,24 @@ module.exports = function (Topics) { return tids; } - const topicData = await Topics.getTopicsFields(tids, [ - 'tid', 'timestamp', 'lastposttime', 'upvotes', 'downvotes', 'postcount', 'pinned', - ]); - const sortMap = { - recent: sortRecent, - old: sortOld, - create: sortCreate, - posts: sortPopular, - votes: sortVotes, - views: sortViews, - }; - const sortFn = sortMap[params.sort] || sortRecent; + const { sortMap, fields } = await plugins.hooks.fire('filter:topics.sortOptions', { + params, + fields: [ + 'tid', 'timestamp', 'lastposttime', 'upvotes', 'downvotes', 'postcount', 'pinned', + ], + sortMap: { + recent: sortRecent, + old: sortOld, + create: sortCreate, + posts: sortPopular, + votes: sortVotes, + views: sortViews, + }, + }); + console.log(params.sort); + const topicData = await Topics.getTopicsFields(tids, fields); + const sortFn = sortMap.hasOwnProperty(params.sort) && sortMap[params.sort] ? + sortMap[params.sort] : sortRecent; if (params.floatPinned) { floatPinned(topicData, sortFn);