@baris said in Upgrade - nodebb-plugin-topic-ratings:
You could filter the topics in a hook like filter:topics.filterSortedTids and only return ones that have more than a certain rating.
GPT recommend me to do this 😹
In plugin.json add new hook "hooks": [ { "hook": "filter:category.topics.prepare", "method": "sortTopicsByRating" } ] In library.js add new methid sortTopicsByRating plugin.sortTopicsByRating = function (data, callback) { if (data.req.query.sort === 'rating') { data.req.query.sort = '-rating'; } callback(null, data); }; In templates/categories.tpl add this code for sorted <li data-sort="rating"><a href="#">[[global:topics_sorted_by_rating]]</a></li> In public/js/topic-ratings.js add this javascript $(window).on('action:ajaxify.end', function () { var $sortDropdown = $('.category-header .dropdown-menu'); if ($sortDropdown.length) { var $ratingSortItem = $('<li data-sort="rating"><a href="#">[[global:topics_sorted_by_rating]]</a></li>'); $sortDropdown.append($ratingSortItem); $ratingSortItem.on('click', function () { var url = window.location.href; url = url.replace(/(\?|&)sort=\w+/, ''); url += (url.indexOf('?') >= 0 ? '&' : '?') + 'sort=rating'; ajaxify.go(url); }); } });Bot say after this I can sorted a topics via url ?sort=rating
I'm not tested this code, but it looks not bad...