I don't really know, if this will help you, but:
Bildschirmfoto 2021-04-19 um 15.13.41.png
If you change e.g sorting inside recent-Page from All Topics to New Topics the page refreshes and the URL turns from
https://nodebb.development.fail/recent
to
https://nodebb.development.fail/recent?filter=new
Once the page reloads, your hook filter:topics.get should be fired again. But in this case, with the filtering changed via dropdown. You have the get parameter ?filter=new to work with serverside.
Maybe this is an option for you. You can use your template in combination with javascript to trigger an .change() or .click() -Event on your custom dropdown menu.
Here is a little snippet.
$(window).on('action:ajaxify.end', function(data) { let currentUrl = $(location).attr('href'); $('div#content').prepend('<a href="#" id="reloadTrigger">This is a example</a>'); $('a#reloadTrigger').click(function(){ window.location.href = currentUrl + "?filter=true"; }) });This prepends a a-Element before content-Div:
Bildschirmfoto 2021-04-19 um 15.27.38.png
Once you click on This is a example the url turns from
https://nodebb.development.fail/ to https://nodebb.development.fail/?filter=true
And your hook filter:topics.get should be fired again. Now you could work with the GET-Parameter filter=true.
Hope this helps and inspired you. 🙂
Cheers