Improved top page settings

(Philip Battin) #1

We’ve had a hard time configuring the ‘Top’ view of our discourse site due to this setting:

Basically, it defines how many topics are displayed under /top - which works fine if your default top timeframe is a year or month. But if you, like us, want to display top posts this week - it is very difficult to actually tweak this number.

The problem
If there are not 15 topics created within the last week - the top view will automatically switch from top topics this week to top topics this month to populate the /top list with 15 items. This is problematic for us, since we want the top page to be our landing page, and we don’t want users to suddenly land on a monthly view - especially not if there are 14 great topics created this week.

In addition, it only shows 15 topics in that view - no less - no more. It is impossible for us to tell if we will have 10 topics one week or 15 another.

Proposed solution
Please change the above setting and break it out into these two settings

This will enable admins to specify and min. number of topics for the selected top timeframe, but also be able to define if the list should be limited to a max number of topics or simply contain all the topics created in the specified timeframe.

Wanted: Hot sorting criteria for front-page
(Jeff Atwood) #2

We don’t want a default here as we want it to work even if the admin walks away for three years. That is, it should pick the right interval on behalf of the user.

As an override it is probably ok, but removing default correct behavior is a non starter.

(Philip Battin) #3

What do you mean? Not sure i understand this correctly.

I am not suggesting any default settings - basically just add granularity to the existing settings.
E.g. on our site we want to have top/weekly as the landing page - however we don’t know how many topics we will have per week.

So basically we want to change the settings from
"Show X number of top posts from selected time period, ONLY if a minimum of X number of posts were created in time period"

to something more flexible, ala.
“Show top posts from selected time period, ONLY if a minimum of X number of posts were created in time period”

(Philip Battin) #4

Hope my explanation makes sense. It is really difficult to explain in a post!
Long story short - you have a setting that controls two things:
1: How many topics that have to be in the selected timeframe (if not, it changes the timeframe)
2: How many topics it displays on the top topics view

In our case, we would like to display as many as possible top posts from the week, but also avoid the system to change the view to top posts of the month if there are fewer than, say, 5 topics. However, with the current settings, if we set “Topics per period in top page” to 5 - it will only display 5 topics, which looks silly! If we set a higher number like 15 it might work for some weeks, but other weeks the system will then change the top timeframe to a month to find exactly 15 topics to populate the list.

Why you’ve made the settings for the top page like this is a mystery to me, because it only really works for sites that have ‘Year’ as the default timeframe for the top page - like you have here on meta.

(Jeff Atwood) #5

Why not just add a setting “don’t expand to a broader top interval if there are not enough topics in the current top interval”?

(Philip Battin) #6

That would also be an excellent solution.
However, i like the option to set a min. threshold of topics - in case for some reason there are now topics created one week. I just didn’t like the min and displayed number of topics have to be the same

(Shri) #7

What might work for me in my specific use case would be something like this.

Interval: 1 day, 1 week, 1 whatever
Number of Posts: X
New - Number of Intervals: Y

With this, I can see the display being as follows:

This Interval: X or <X posts
Last Interval: X or <X posts

Y Interval: X or <X posts.

(I’m trying to create a location specific news community, so it is important to show what is top / new today, even if it does not match the threshold)