Table of Contents

  1. Agora
    1. Bugs
    2. People
    3. Features
      1. BBCode
      2. Features touching other modules
    4. Code
    5. Resources

Agora

Agora is Horde's forum module, providing comments on user submitted content in e.g. Ansel or Jonah.

Bugs

List any tickets on http://bugs.horde.org/ that cover this issue or are relevant to it.

People

Features

Introduce categories for boards as an additional means organization. For larger installations, boards alone might be insufficient.
 Categories
  + Boards
     + Threads
        + Thread pages
        + Posts
           + Attached files
Apart from being just "pretty", URLs should express is-a, has-a or subset relations. Examples:
http://example.com/horde/agora/main/testboard/testthread/page/3#post-9365
  Category titled "Main"     --´     |         |          |   |  |
  Board titled "Testboard"   -------´          |          |   |  |
  Thread titled "Testthread" -----------------´           |   |  |
  Show page 3 of the thread  ----------------------------´---´   |
  Jump directly to post #9365 ----------------------------------´

http://example.com/horde/agora/main/testboard/testthread/9365/edit
  Category titled "Main"     --´     |         |          |    |
  Board titled "Testboard"   -------´          |          |    |
  Thread titled "Testthread" -----------------´           |    |
  Post with the id 9365      ----------------------------´     |
  (there is little sense in naming individual posts)           |
  Action: Edit post #9365    ---------------------------------´

http://example.com/horde/agora/recent/page/3
  List threads that got     ----´      |   |
  recent replies                       |   |
  Show page three           ----------´---´
In order to create a named URL part, the following operations should be performed:
||~ Original Letter || ä || ß || ø || ð ||
Equivalent ae ss oe th
* Turn everything except a-z and 0-9 into a dash ("-")
People *love* statistics. Providing them also seems to encourage user participation. In particular, provide a publicly available stats page featuring:
>>* Total number of threads
>>* Total number of posts
>>* Average number of posts per thread (bonus: Use this to determine "hot threads" instead of a fixed value)
>>* Average number of posts per day and per hour (seems to be bogus, but people like it. And it is cheap to generate: Take the first and devide by 24)
* Overview over the number of posts on each of the last n days
Possibly provide all of these via blocks as well.
Provide RSS and Atom feeds (c.f. Project/FeedEverything). In particular:
Currently, there can be only one moderator per board. Add an extra table to allow for an n:n boards-to-moderators relation.
Also: Allow moderators to perform reversive actions in boards not assigned to them, tying them closer to their assigned boards.
Enable threads to accept ping- and trackbacks. In addition, catch refbacks.
Forums are often subjects to heavy modifications in an effort to appease users. A powerful plugin infrastructure might help to keep the installed software maintainable while allowing the desired modifications. The Habari Project has got a system that might be a good start for this.

BBCode

An advanced BBCode parser has been proposed a long time ago. Since then, a better one has been in the making. Features include:

www.example.com

or
[url]http://www.example.com[/url]

would be rendered as
<a href="http://www.example.com" title="Example Site" type="text/html" target="_blank">http://www.example.com</a>

Unreachable links would be marked with rel="nofollow", so there won't be an impact on search engine rating:
<a href="http://www.example.com" rel="nofollow" target="_blank">http://www.example.com</a>

Additionally, CSS selectors could be used to give users an immediate feedback on broken links.
Check if: As an example
[img]http://www.example.com/example.png[/img]

would be rendered as
<img src="http://www.example.com/example.png" alt="http://www.example.com/example.png" title="example.png (65536 bytes)" width="640" height="480" />
The [quote] tag has got an optional parameter that can hold three different kinds of values: A quoted string, the id of a post or an URL. The last two will be using the cite-rel microformat in the rendered output. Example:
[quote=http://www.horde.org]
Welcome to the home of the Horde Project.
[/quote]

Will be rendered as:
<div class="quote">
Quote <cite class="via" id="cite-ef58e3aa-af7f-45ba-a17d-5192ffe883b7"><a href="http://www.horde.org" type="text/html" target="_blank">The Horde Project</a></cite>:
  <blockquote cite="#cite-ef58e3aa-af7f-45ba-a17d-5192ffe883b7">
    Welcome to the home of the Horde Project.
  </blockquote>
</div>

Using a post id will in addition show the username of the original poster

Features touching other modules

Code

Resources


Back to the Project List