My site is based off of user-submitted reviews of businesses. Instead of just an overall rating as provided by fivestar, I want users to rate different aspects & services provided by the business. For example, I'd want them to rate "staff" on a scale of "very unhelpful" to "very helpful," and "quality of clothing" on a scale of 1-10. I'd ideally also want a form field where the user could enter, for instance, how much they spent at the store.

What would be the best way to create a review form for users to fill out, and then to subsequently display the average ratings/amounts of each individual aspect on the business node?

Additionally, I'd need to add up all of these average ratings in order to create an overall "grade" of the business (i.e. if there are two aspects to be reviewed, each worth 10 points, and one has an average of 5 while the other has an average 6, then the business would get an overall grade of 11/20). Hopefully this would be possible with whatever system is suggested. Preferably, I'd like to use Display Suite to display the gathered averages and overall grade since I already have a template for my pages created in it.

  • 1
    You should not ask the same question twice on this site. Even if your question changes substantially, if you haven't received any answers yet you should just edit the first question directly. When you edit a question, it goes to the top of the questions list just like if you had asked a new question. If you don't do this, you run the risk of having your question closed as a duplicate. May 3, 2012 at 0:46
  • Yes, I see that now that the other topic was closed as a duplicate. Haha. Good to know for the future.
    – Mrweiner
    May 3, 2012 at 4:27

1 Answer 1


In Drupal 7, you can create a review as a custom content type. Staff could be rated as "very unhelpful" to "very helpful" using a field of type list (integer). Quality of clothing could also be done with a list (integer). For the time customers spent at the store, the field type to use depends on what you will do with the data later.

You could then create custom displays for this content type using Views. Views integrates with Display Suite as well so you could use that if you liked, though I'm not sure it's the best solution.

As for the averages, you'll need to know some PHP, but you can use the Computed Field module. Even if you are not very familiar with PHP, there are many examples on that module's documentation page.

If you're new to Drupal and all of this is very confusing, I highly recommend the book Using Drupal published by O'Reilly. The second edition just came out recently and covers Drupal 7; it contains an explanation of how to use fields/content types and views (chapter two) as well as how to build a job posting site (chapter three) and product review site (chapter five), two examples that would probably be highly informative for you.

Good luck!

  • Thanks for the response. I'm new to Drupal, but I'm starting to understand how it works, so it's not too confusing. :) So I understand that I can create the review form as a content type, but what would be the best way to associate it with the venue page? Would I have to crate a new review node page every time there is a new business added to the site, so that the submitted reviews relate directly to their associated business? As far as time/money spent at the store, if I wanted to display the average of that as well, would I just use a text field in conjunction with Computed Field?
    – Mrweiner
    May 3, 2012 at 4:42
  • The basic principle on Drupal Answers is one post- one question. If you have additional questions that are not direct follow-ups to your original question, please ask them as separate questions. That said, you can associate the reviews to businesses using the Entity Reference module. For time/money, you will need an int to display an average. You'll also want to think about units (minutes, hours, etc.) to make sure users understand what they are inputting. May 3, 2012 at 4:49
  • I'm sorry, in my mind it was implied in my original question and I was clarifying. I'll try to be more careful in the future with relation to posts and question. I seem to be unintentionally stepping on a lot of toes. Thanks a lot for all of your help.
    – Mrweiner
    May 3, 2012 at 18:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.