[Wiki] created: Project/Agora

Wiki Guest <[email protected]>
Newsgroups gmane.comp.horde.cvs
Message-ID <[email protected]>
guest [94.139.23.80]  Mon, 16 Aug 2010 17:50:23 -0400

Created page: http://wiki.horde.org/Project/Agora

[[toc]]

+ Agora
Agora is Horde's forum module, providing comments on user submitted  
content in e.g. ((Project/Ansel|Ansel)) or ((Project/Jonah|Jonah)).


++ Bugs

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

++ People
* Stephan (webmaster <ät> dasourcerer <döt> net)
* Almost certainly others

++ Features
* Structure
> Introduce categories for boards as an additional means organization.  
> For larger installations, boards alone might be insufficient.
<code>
  Categories
   + Boards
      + Threads
         + Thread pages
         + Posts
            + Attached files
</code>

* Pretty URLs
> Apart from being just "pretty", URLs should express is-a, has-a or  
> subset relations. Examples:
<code>
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           ----------´---´
</code>

> In order to create a named URL part, the following operations should  
> be performed:
> * Strip trailing or leading whitespaces
> * Transform all letters into lower case
> * Translate all letters not within a-z into their phonetic  
> equivalents. Examples:
||~ Original Letter || ä  || ß  || ø  || ð  ||
||~ Equivalent      || ae || ss || oe || th ||
> * Turn everything except a-z and 0-9 into a dash ("-")
> * Merge multiple dashes into one
> * In case of a collision: Append a dash followed by the number of  
> colliding strings + 1 (should result into "foobar", "foobar-2",  
> "foobar-3", etc.)

* Statistics
> People ''*love*'' statistics. Providing them also seems to encourage  
> user participation. In particular, provide a publicly available  
> stats page featuring:
> * Top ''n'' most active users (by post count)
> * Top ''n'' most popular boards (by post count ''or'' by views)
> * Top ''n'' most popular threads (by post count ''or'' by views)
> * Last ''n'' threads (possibly drop this in favour of /recent)
> * Generic stats like:
>> * 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.

* Syndication
> Provide RSS and Atom feeds (c.f. ((Project/FeedEverything))). In particular:
> * Feed solely for threads (e.g. newly created threads will be  
> announced in here, showing the content of the very first post in the  
> feed entry.)
> * Full content feed (All new posts go in here)
> * Both again for specific boards (this is excellent for larger  
> installations with high traffic)

* Moderation
> 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.

* Linkback
> Enable threads to accept ping- and trackbacks. In addition, catch refbacks.

* Plugin Infrastructure
> 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 [http://www.habariproject.org Habari Project] has  
> got a system that might be a good start for this.

+++ BBCode
An advanced BBCode parser has been proposed a  
[http://bugs.horde.org/ticket/7285 long time ago]. Since then, a  
better one has been in the making. Features include:
* Inspect links regarding availability. Examples:
<code>
www.example.com
</code>
> or
<code>
[url]http://www.example.com[/url]
</code>
> would be rendered as
<code>
<a href="http://www.example.com" title="Example Site" type="text/html"  
target="_blank">http://www.example.com</a>
</code>
> Unreachable links would be marked with ''rel="nofollow"'', so there  
> won't be an impact on search engine rating:
<code>
<a href="http://www.example.com" rel="nofollow"  
target="_blank">http://www.example.com</a>
</code>
> Additionally, CSS selectors could be used to give users an immediate  
> feedback on broken links.

* Inspect embedded images
> Check if:
> * an [img] tag is pointing to a reachable destination
> * if the destination is actually an image (the rise of  
> one-click-image-hosters seems to entice users to c&p the URLs of  
> result pages rather than the URLs of the actual images)
> * Eventually, retrieve the image dimensions.
> As an example
<code>
[img]http://www.example.com/example.png[/img]
</code>
> would be rendered as
<code>
<img src="http://www.example.com/example.png"  
alt="http://www.example.com/example.png" title="example.png (65536  
bytes)" width="640" height="480" />
</code>

* Enhanced quotes
> 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  
> [http://microformats.org/wiki/cite-rel cite-rel microformat] in the  
> rendered output. Example:
<code>
[quote=http://www.horde.org]
Welcome to the home of the Horde Project.
[/quote]
</code>
> Will be rendered as:
<code>
<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>
</code>
> Using a post id will in addition show the username of the original poster

+++ Features touching other modules
* ((Project/Ansel|Ansel)) could be utilized to provide (more or less)  
one-click-hosting out of Agora, offering a convenient method to  
publish images within posts.
* ((Project/Scry|Scry)). Create polls via API calls and tie them into  
Agora in an 1:1 relation (meaning there will be at most one poll per  
thread)
* ((Project/Trean|Trean)). Keeping track of larger forums is hard.  
Allow users to bookmark threads via Trean. Preserve Agora's logical  
structure (categories, boards) when displaying them. Bonus: Provide an  
Atom/RSS feed for bookmarked threads only.
* ((Project/Folks|Folks)). Link usernames to profiles in Folks accordingly.
* Possibly provide comments functionality for ((Project/Whups|Whups))  
and ((Project/Wicked|Wicked))

++ Code
* H3: http://cvs.horde.org/agora
* H4: http://git.horde.org/browse/agora/browsedir.php?f=agora%2F&onb=master

++ Resources
* [http://dev.horde.org/api/agora/ API Documentation]


----
Back to the ((Projects|Project List))


-- 
To unsubscribe, mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.