Message boards portlet for Liferay.
Java CSS JavaScript
Clone or download


Tori is a message boards portlet with a nice looking user interface. Features like real-time notifications and in-page navigation make it easy and comfortable to use.

Tori has a back-end implementation for Liferay and also a development implementation on top of JPA.

It supports all modern browsers, including Internet Explorer 8 and newer.

Tori Forum

Tori features

  • Clean looking, interactive message board
  • Fast and fluent in-page navigation pattern
  • Flashy real-time message notifications
  • Uses the same backend and admin with Liferay's default message board
  • Can be used simultaneously with Liferay's message board in a separate URI
  • Page indexing and SEO support
  • Integrated Google Analytics tracking
  • Supported Liferay versions: 6.2 upwards (CE / EE)
  • Permission configuration from Liferay Control Panel
  • Badge provider API for showing custom user badges
  • Stand-alone portlet that includes Vaadin 7.2. built-in


Tori is available in the Liferay Marketplace. To install Tori, follow these instructions.

Tori works fine on the default settings but the Portlet Preferences view allows you to define some additional attributes:

  • Google Analytics Tracker id: Identifies the account and property GA sends the tracking data to.
  • Post body regex replacments: List of regex-replacement pairs which will be applied on every post before they're displayed
  • Replace message boards link data with Tori format: Check to let Tori scan post content render-time for links intended for Liferay message boards portlet and convert them to tori-format for display.
  • Update the page title: Check to let Tori update the title of the page according to the current location.
  • Show threads on dashboard: Check to let Tori show threads/topics added to the root category on the front page.
  • Message displayed in the end of the thread when user is not allowed to reply: Self-explanatory, HTML allowed.

Compiling Tori

In case you want to compile a deployable WAR yourself just check out this git repository and run "mvn install" in the root folder. This will compile a development/test deployment of the project and runs Vaadin TestBench tests against it (requires Firefox to be installed) on a Jetty server. The resulting .war file can be deployed to any servlet container.

To produce a deployable package for Liferay portal run "mvn -P liferay62 install" ('liferay62' profile). The resulting .war file (under /webapp/target) can be deployed on a Liferay 6.2 portal.

Notes on Portlet deployment

  • Tori doesn't currently have a dedicated user interface for managing the user permissions on individual categories, threads or posts. In order to set proper access rights, use the administrative UI provided by the Liferay Control Panel or Message Boards portlet.
  • Tori portlet doesn't use the global Vaadin library of the Liferay installation but comes bundled with a Vaadin jar and a pre-compiled widgetset. This might cause issues if Tori is placed on the same page with other Vaadin portlets.
  • On Liferay deployment Tori redirects URLs intended for the Message Boards portlet (get parameters) to a format used by Tori (fragment parameters). Because of this, Message Boards can't be used on the same page with Tori.
  • Currently Tori only stores new messages in bbcode format. HTML formatted messages (saved by other means such as using the Message Boards portlet in HTML mode) are displayed in the thread and can be edited but the reply-button is intentionally hidden for them.

Modifying the theme

Tori theme is generated from a customisable SASS template during the project build process. To produce a build with appearance different from the default one you can fork the project and modify the SASS variables in /webapp/VAADIN/themes/tori/variables.scss to better suit your needs (or create a new maven build profile just like 'vaadincom' with 'tori-vaadin' theme). To compose a completely different theme you have the full power of SASS for your disposal.

3rd Party Libraries