Topic Ratings Plugin

(Angus McLeod) #105

Correct. CategoryCustomFields are not affected by topics being moved.

tbh, I haven’t tested the ratings client logic in the scenario you’re dealing with: moving an existing topic into a ratings category. I’ll take a look at that scenario this weekend. Thanks.

(Hosein Naseri) #107

Can you add aggregated rating schema support to this plugin?

(Angus McLeod) #108

If I understand correctly how works (which I’m still not sure I do, even after a using it a few times), the schema for AggregateRating will only work if it is within the scope of a ‘type’. It seems these scope types support AggregateRating:

As it (seems) to be type dependent, I’m not sure it makes sense to support it directly in this plugin as that would involve choosing a particular type, e.g. Product or Service. Not all users of this plugin will be using it for one particular type.

If someone else knows more about schemas and can confirm or deny this, that would help (@vinothkannans?)

You could still add schema support for AggregateRating within the scope of a particular type, by forking this plugin and adding a new file:


the contents of which would look something like one of the existing markup blocks in the topics/show.html.erb view e.g. the tags markup.

(Vinoth Kannan) #109

We can add AggregateRating by default. In the allowed schema type list it have CreativeWork. In Discourse we are using DiscussionForumPosting as default schema type. It is a part of CreativeWork (CreativeWork > Article > SocialMediaPosting > DiscussionForumPosting). So it is 100% appropriate to use AggregateRating in topic ratings :+1:.

I manually tested this functionality in Google’s testing tool.

(Hosein Naseri) #110

I cant edit post below a rating topic anymore.

(Angus McLeod) #111

Thanks for the report. Bug fixed.

As per @vinothkannans’s advice, I’ve added aggregateRating as part of CreativeWork.

@vinothkannans You probably are already aware that Google’s structured data testing tool is complaining about the DiscussionForumPosting microdata for core Discourse topic views not having images. I’m not sure if that omission means the DiscussionForumPosting microdata blocks will be ignored?

Screenshot at Oct 05 08-25-58

Different schema type for Topics and Posts
(Vinoth Kannan) #112

I think it needs some changes in both on your code and Discourse core. I will create a PR once it changed in core. For now okay :+1:

(Daler) #113

Today I enabled this plugin for the first time on a pretty fresh discourse install and I don’t see the star-rating buttons in a reply box (composer) and I get the following error:

Update: after rebuilding the discourse app, I can no longer reproduce the TypeError... but I still don’t see the star-ratings buttons.

(Angus McLeod) #114

Hey :). The addObject exception is actually unrelated to this plugin. It’s a Discourse exception. I’ve been meaning to report it.

As to the ratings buttons not appearing, I can’t repro it unfortunately. Can you send me some screenshots with the console open?

I tested it locally and on my sandbox here: Ratings - Angus' Sandbox



Topic List:

(Daler) #115

Thanks! and sorry for undeserved attribution of a bug. :slight_smile:
On screenshots you can see no errors in the Console and no stars-buttons in the Composer or the average-rating div.


  1. The plugin works well if the post is created in the rating-enabled category initially. However it doesn’t work for the posts in such directory which have been created/edited before error-less installation of this plugin (i.e. I had some Discourse-related error on the server when initially installed this plugin, but after rebuild there was no error).

  2. Unfortunately the plugin doesn’t appear to be working for the posts initially created in a non-rating category, when those posts have been moved to a rating-enabled category, which is sad :’(

(Angus McLeod) #116

Thanks for figuring that out. It should work for such ‘pre-existing’ topics now.

(Daler) #117

Thank you that was fast! Indeed, now I can rate the pre-existing topics. However I can also place multiple ratings with the same user, which kind of allows for rating-abuse:

(Tumi) #118

Hi , nice plugin

It is possible to create a ranking of this ratings ?

For example i wanna to show the most importand topic from all category or selected in admin menu
For example i want to show on the sidebar Top 10 best rating topic from category X and category Y
It is possiible ?
It would be perfect if the top post will depend on Number of stars + number of votes (quality ratio)

(Angus McLeod) #119

Given enough time, everything breaks, aka entropy … fixed as well :slight_smile:

(Angus McLeod) #120


Yes, it’s possible. In a separate plugin you could add a new topic list that sorts topics based on the average_rating topic custom field.

Here’s an example of how to create a new topic list that is sorted by a custom field:

Well, you’ll need a sidebar first. Then a widget that has a topic list in it. Here’s some I prepared earlier:

So all you need to do is change the topic list in the layouts-topic-list widget to the topic list you created in your new plugin.

  1. Follow the beginners guide to creating a plugin

  2. Add the layouts plugin with the topic list widget

  3. Copy / paste the new topic list code I’ve linked above

  4. Change a few variable names and urls in the topic list widget and the topic list code.

(Anton) #121

For some reason, ratings checkbox is now shown in some composers, and users don’t understand why?

I never configured it or turned on anything like that.

(Anton) #122

I think I caught it: it is shown when EDITING messages. Even if it’s turned off.

(Angus McLeod) #123

Thanks for the report :+1: Fixed.

(Daler) #124

Hey, Santa Angus! Got some room in your busy schedule? :slight_smile:

[feature request] Show the count of reviews along with the avg score · Issue #11 · angusmcleod/discourse-ratings · GitHub

(Angus McLeod) #125

Added :santa: Setting is rating_show_count; default is false.

See further: The 400 blows - Truffaut - Ratings - Angus' Sandbox