wiki:DiscussionPlugin

Version 47 (modified by Blackhex, 6 years ago) (diff)

Sorry, live example seems like unpaid propagation to me, but thanks for idea :-).

Discussion Forum Plugin

Description

The DiscussionPlugin adds discussion forums to Trac. An arbitrary number of forums can be added, organised to forum groups. Users can create topics in forums and reply to them which together creates discussion threads. Threaded or flat view to topics and its replies is supported. Each forum has a list of moderators who can delete topics, replies, etc. Plugin is administrated directly or via WebAdminPlugin with apropriate rights. Appending new forums and topics either as new replies shows up in timeline. Searching capability in topics and replies is supported too.

Live Example

To get an idea how the forums look, see BlackTrac discussion.

Bugs/Feature Requests

Existing bugs and feature requests for DiscussionPlugin are here.

If you have any issues, create a new ticket but read BugReporting page first, please.

Download

You can download zipped sources here.

Source

You can check out DiscussionPlugin from here using Subversion, or browse the source with Trac.

Dependencies

DiscussionPlugin depends on WebAdminPlugin since many configuration options are avaiable only on apropriate WebAdminPlugin's pages.

Plugin Versions

As many other plugins in this site even this plugin names its branches according to Trac versions. Here is a simple table explaining this convention for DiscussionPlugin:

Plugin Branch Trac Branch Plugin Version
0.9 0.9-stable 0.5
0.10 0.10-stable 0.5
0.11 trunk 0.6

Main diference between 0.5 and 0.6 version is that 0.6 uses Genshi templates and 0.5 ClearSilver ones.

Installation

After installing plugin's egg you can set in trac.ini configuration file following variables:

[discussion]
title = Discussion

If you run Trac in environment which needs to enable plugins explicitly put in trac.ini these lines:

[components]
tracdiscussion.api.DiscussionApi = enabled # For 0.11 branch. API object is component since then.
tracdiscussion.admin.DiscussionWebAdmin = enabled
tracdiscussion.core.DiscussionCore = enabled
tracdiscussion.init.DiscussionInit = enabled
tracdiscussion.search.DiscussionSearch = enabled
tracdiscussion.timeline.DiscussionTimeline = enabled
tracdiscussion.wiki.DiscussionWiki = enabled
tracdiscussion.notification.DiscussionNotifyEmail = enabled

The next step is to upgrade your environment:

# trac-admin <path_to_environment> upgrade

For now sqlite version 3 or PostgreSQL is required as SQL backend for running this plugin.

Permissions

Discussion plugin defines four permissions. With DISCUSSION_VIEW permission you can view all topics and you can post replies to them with DISCUSSION_APPEND permission. DISCUSSION_MODERATE permission gives you rights to delete replies or topics where are you defined as moderator. DISCUSSION_ADMIN permission gives you administrator rights to create, modify or delete forum groups, forums and topics. You can add these permissions by typing following commands from commandline or you can use WebAdminPlugin to do it for you.

# trac-admin <path_to_environment> permission add <user> DISCUSSION_VIEW
# trac-admin <path_to_environment> permission add <user> DISCUSSION_APPEND
# trac-admin <path_to_environment> permission add <user> DISCUSSION_MODERATE
# trac-admin <path_to_environment> permission add <user> DISCUSSION_ADMIN

Macros

There are few wiki macros available:

[forum:<forum_id> <text>]

Displays link to forum with id <id> and text <text>. Second argument is optional.

[topic:<topic_id> <text>]

Displays link to topic with id <id> and text <text>. Second argument is optional.

[message:<message_id> <text>]

Displays link to reply with id <id> and text <text>. Second argument is optional.

[[ViewTopic(<topic_subject>)]]

Displays content of topic with subject <topic_subject>. If no subject given displays content of topic with same subject as name of current wiki page. Currently there is a limitation of post length using this macro because of using GET method of HTML form.

Example

Discuss this on the [forum:trac-dev Trac Development forum]. 
Useful threads are [topic:23 this one] and [topic:96 this one].

Planned Features

  • Better permission system (maybe using 0.11 permissions policies).
  • Email notification.

Notes

  • Branch 0.9 of plugin is considered as deprecated and not developed anymore.

Feedback

Are you using this plugin?
  • Yes, it's usefull. (sgrayban, cboos, okaori, wadeb, s0undt3ch, ttressieres, imme, dh1jc, talameelombu, Tharban, athomas, jtuchscherer, xvirus, osimons, Sincklation, manni, izzy, ericalens, KevinGabbert, mwehr, renzo, marcvs, eskil, rjollos, koolhand, edo, colski, dfleming, lucasrangit, miezuit, lhr870630, hasienda, arnisandy, lucid, AdrianFritz, akliewer99)
  • No, it's useless.
  • No, I don't need it. (dfaerch, harmy, prz)
  • I think it will help

  • You don't have permission to vote. You may need to login.

Change Log

[13709] by rjollos on 2014-02-21 07:28:08
0.9dev: Do a db.commit after each transaction, because having a single db.commit doesn't seem to be effective either due to scoping issues, or because the statement isn't encountered in certain scenarios. Refs #11592.
[13708] by rjollos on 2014-02-21 04:20:18
0.9dev: Keep db object in scope when using a cursor. Refs #11592.

Also fixed an unresolved import and removed logging of SQL because it is implicitly logged (see the [trac] debug_sql configuration item).

[13707] by rjollos on 2014-02-21 02:55:28
0.9dev: Fixed indentation and trimmed whitespace using reindent.py.
[13706] by rjollos on 2014-02-21 00:40:53
0.9dev: Fix for Cannot operate on a closed cursor because db object is out-of-scope when using the cursor to retrieve timeline events. Refs #11592.
[13444] by rjollos on 2013-11-30 21:44:03
Removed unused parameter from request arguments.

Author/Contributors

Author: Blackhex
Contributors: athomas

Attachments (3)

Download all attachments as: .zip