UGC | Version 4


Get to know the main features of Sophora's UGC add on.


A comment consists of

  • the name of the user,
  • a headline and
  • a text representing the content of the comment.
  • It may optionally have a parentID when it is a response to another comment.
  • Optionally a type like EDITOR or GUEST.

When the comment is stored in the database all HTML tags will be removed and it is checked for spam words. If a spam word is found, it will be marked as spam in the backend. The list of spam list is managed in a document in sophora. Comments will not appear in your delivery before they are approved in the backend.


Comments may be a response to another comment in which case they get a parentID. There may only be one level of responses. You can not awnser to a response, only to a "root comment" (one without a parentID).


  • store a comment with the storeUserComment tag
  • retrieve pages of comments with the getUserComments tag


  • view, edit, delete and approve comments
  • list recent comments (global or per document)
  • spam detection based on a configurable list of spam words
  • answer to user comment or add a comment to a document as an editor

Image Uploads

An image upload is similar to a comment except that it has an image attached. It consists of:

  • the name of the user,
  • a headline,
  • a text and
  • an image file (JPEG, PNG, GIF)

Image uploads are stored in the database but can be imported into Sophora in the backend.


  • store image uploads with the storeImageUpload tag with automatic resize and scan for viruses


  • view, edit, delete comments
  • list recent comments (global or per document)
  • import images to Sophora (see button below)


A rating is a number of points a user attributes to a document. How much points are allowed is not limited by the addon but by the usage of the tags. The evaluation of all ratings just calculates the average number of points attributed to a document.


  • store a rating with the storeUserRating tag
  • retrieve ratings with the getRatingEvaluation node function


  • overview over ratings for all documents

Form Submissions

A form has a configurable set of fields. The fields are determined by the form document in Sophora.


  • store a form submission with the storeForm tag


  • view, filter and sort the submissions
  • export up to 65535 submissions as XLS
  • reset submissions


A quiz has a set of questions. Each question has a set of answers. Each answer has a number of points attached. The addon stores the answers the user has given and calculates the aggregate points for these answers. This allows the addon to even recalculate the sum of points for a user, when the points for a single answer have been changed.

Additionally, a quiz can have a form. This form can be used to provide personal information to a user submission and the results a user achieved.


  • store quizzes with the storeQuiz tag


  • view, filter and sort (e.g. by points) the submissions
  • export up to 65535 submissions as XLS
  • reset submissions
  • recalculate points


A voting is a document that has several voting items. There are two types of voting available. They differ in the interpretation of the results:

  • simple
  • ranking

In a simple voting the user is allowed to vote for a specified number of items. Each vote counts as one point for the voting item.

In a ranking voting the voting items are ranked by the user. For a correct evaluation, the total number of items that can be ranked has to be defined. For the evaluation the backend now takes the item ranked first and gives it the number of possible items to be ranked as points. The item that was ranked second gets one point less as the first and so on.

Similar to a quiz a voting can have a form with personal information of the user.

Use media in votings

A voting on media like images, videos or audio requires an extension of the item nodetype and the templates.

  1. Extend the voting item nodetype in Sophora with media like images, videos or audio.
  2. Appropriately adapt the JSP templates to vote on various media.


  • store votings with the storeVoting tag
  • get voting reports with the node function getReport


  • view, filter (e.g. who voted for whom) and sort the submissions
  • view voting results
  • export up to 65535 submissions as XSL
  • export voting report as XSL
  • reset voting
  • manually start a configurable manipulation check (details about manipulation control)

Full-Text Search in Form Data

Forms, quizzes and votings (with forms) save their data in form data. These can be searched through for personal information of users.

The full-text search in form data can be used to find personal data of a user, who entered these information himself in a form. Furthermore, the IP address and the creation date are also displayed. The search can be found at Administration -> Formular Suche.

If there is a matching result, it will be represented in a table with the columns: URL of the document | Fieldname | Content | IP-Adress | Date. Also it's possible to export the results as XLS.

The initial search for a specific term can take a few minutes. The search result is cached. Displaying the different pages of the result takes less time afterwards.

Restriction on Structure Nodes

It's possible to restrict the search on a structure node path or a UUID. The search then takes place only under this node. If you enter an invalid structure node path or a UUID you will get a notification.


Double-Opt-In means that a user has to confirm his submission via e-mail. This addon supports this feature for forms, quizzes and votings. For votings usage of this feature has the effect that the submission is not evaluated before the user confirmed the e-mail. For quizzes and forms this only has the effect that the submissions are marked differently in the backend.

Last modified on 11/4/20

The content of this page is licensed under the CC BY 4.0 License. Code samples are licensed under the MIT License.