A tribune is a type of chatroom. It does not require any external service like IRC or plugins like Java or Flash-based chats, and also works without Javascript (although Javascript greatly enhances the experience).

The module has a notion of threads based on timestamps: typically, a user clicks on the timestamp at the left of the message they want to answer before typing their message. When the message is displayed, hovering the mouse over timestamps highlights the corresponding references and answers, even for old messages that are not displayed anymore.

Main features

  • Does not require any external service
  • No special setup necessary
  • Can create as many chatrooms as necessary
  • Fine access permissions, easy banning of users
  • Searchable chat history
  • Tribunes can be displayed as blocks

Additional features

  • Anonymous users can choose a nickname (enable the tribune_nickname module)
  • Display country flags next to messages (needs either the GeoIP PHP PECL extension or the GeoIP API module)
  • Can display smileys (with the Smiley module - enable the tribune_smiley module)
  • Can display images from Totoz.eu (enable the tribune_totoz module)
  • Upload files from a tribune for easy sharing (enable the tribune_fileattach module)
  • Take advantage of the Node.js integration module for more scalability and responsiveness
  • Currently unavailable: alternatively, the tribune_pyrolyse module allows you to use an external service, Pyroly.se, if you don't want to or cannot setup your own Node.js server but still want to benefit from push notifications.
  • Integrate remote tribunes on your own site (enable the tribune_remote module)
  • Spellcheck messages (needs the Enchant PHP extension)

Quick setup

  1. Enable the tribune and tribune_local modules
  2. Create a new Tribune node
  3. Choose the "Local" tribune type
  4. Change the default settings if you like
  5. After saving the node, you can visit its "Access" tab to choose who can and can't use the tribune. By default, everyone can use it.
  6. You're done!

Node.js integration

The Node.js integration module can help reduce load and chat latency, if you can run Node.js on your server. Be sure to read the module's documentation and make sure it works before enabling the tribune_nodejs module.

Pyroly.se is an external service that you can use if you don't want to host a Nodejs server yourself, it provides the exact same features for your tribune.

Release status

D6 branch
6.x-1.x works fine, but lacks features compared to 7.x-3.x, most notably support for multiple tribunes and Node.js. A few of its features are broken as Google has now closed some of their APIs.
D7 branch
7.x-3.x is a complete rewrite. It is usable and mostly stable, it just needs some more testing before calling it it stable.

General usage

The way to answer previous messages is to click on their timestamp, which adds it to the message field, and write the answer after that.
When this answer is displayed after it is posted, moving the mouse over the timestamps in it highlights the referred post as well as the other answers.
This makes following discussions easier than usual chatrooms or IRC, try it on the demonstration site to see by yourself how it works.


If Tribune doesn't meet your needs, other chat modules providing the same basic functionality exist, like Chatblock, Chatroom and others.

Project Information