Emerald Powerhouse Forums
Written on Sat, 12 Dec 2009 00:19:13 +0000 - Last updated on Sat, 13 Feb 2010 00:11:11 +0000Powerful forum software which introduces new concepts and features. The look and feel is based on OvBB, a defunct vBulletin 2 clone, but it is built from the ground up.
* "leaders" instead of "admins" to convey a more social/communal role rather than a technical one. The role of leader exists at the forum level (traditional admin), board level (including child boards), group level, and at the thread level. A permissions bit can be set to grant thread leadership to the thread's OP. Local leadership grants a user to do admin tasks - that is, to manage, add child boards, promote moderators, or ban - in a selected forum. Leaders are distinct from moderators and displayed separately in the forum index. Entire groups can be made leader or moderator of a board or even another group.
* Advanced CSS styling framework for forum elements. Most forums use CSS classes like "trow" or "windowbg", which describe their presentational role (table row, window background) but not their semantic role (postbit). In Emerald, postbits will be styled with a class "post-bit" with additional classes that denote attributes of who posted it. For example, instead of "windowbg2", a postbit might be marked up as "post-bit postedby-group-1 postedby-group-2 postedby-user-30 original-post". This allows a forum leader to decide, for example, that she might want all leaders' posts to have a green background, or for her own posts to have a 3px yellow dotted border. Styling of usernames can be done in the same way - i.e. a username link in a postbit can be marked up as a "user-link user-30 user-group-primary-1 user-group-2" so individual users' names can be styled.
* Alternative textual formats for every piece of information returned. Due to the way in which the underlying PHP framework is written, instructing Emerald to deliver content in, say, JSON will be as simple as appending ".json" to an existing URL.
* Bot API for allowing certain user accounts to bypass CAPTCHA/spam prevention. This would likely require that the bot use a key created in the Leader CP and given to the bot operator. The bot can read Emerald forum content delivered via JSON, RSS, and XML. Another related but distinct API will be created for allowing plugins to run as server-side "bots" (but bypassing the public API altogether, instead using the internal API).
* One-page form install
* Package manager (this will actually be built into the common 8ZS PHP framework, so it will be available in Orange Glove)
* Quick board hierarchy creation. Instead of creating multiple boards manually, you can simply type a list of boards into a textarea (in name:description format). Emerald will read in this textarea and use indentation levels to determine parent/child relationships.
* The look (not the logic) will be initially based on that of OvBB, which itself was based on vBulletin 2. This will make Emerald look like a vBulletin clone - but Emerald actually doesn't aim to be feature-complete with vB.
* The permissions system of Emerald will be loosely based on that of the now-defunct Scrap Brain BB/Abwayaxboard. Permissions exist at 6 levels:
** group-global
** group-local
** user-global
** user-local
** user-thread
** IP-global
** IP-local
where "local" refers to permissions set on the board-level and "global" refers to the entire forum. Generally, user-level permissions take precedence over group-level permissions while local permissions take precedence over global. The thread-level is a special permissions level that Emerald only applies to individual users and is used to grant limited moderator or leader rights to users on individual threads (known as "threadmin") or to block a user from seeing a thread.
A user may be a member of one or more groups - when calculating the effective group-level permission, "no" (-1) always overrides "yes" (1) while "yes" (1) overrides "maybe" (0). When in a board, board-level permissions are used if possible. Special permissions bits include the "leader bit", which automatically set all other bits on (except for the banned bit); the "moderator bit", which sets a few moderation-related bits on; and the "banned bit", which automatically sets all other bits to no and causes any user who has it to be given a ban message. When defined in the board level, the moderator, banned, and leader bits apply only to that board; otherwise, they apply globally. Additionally, in Emerald Powerhouse, IPs may also be given permission bits (these override all other bits). By default, 127.0.0.1 will have the leader bit (this can be removed). In Emerald, the permission system controls all aspects of access. Emerald uses this permission system, for example, to allow users to ignore boards or even individual threads. When IPs are banned, Emerald actually grants those IPs the banned bit. Permission bits may also be granted on a temporary basis (i.e. automatically removed by the system after a certain time). This is used not only to implement temporary bans but also to appoint temporary moderators and the like.
* Multiple avatars per user (leader-configurable)
* Leader-configurable static pages, for example for displaying forum rules.
* Full OpenID support - not only will Emerald accept OpenID logins, it can also act as an OpenID provider.
* Global sticky/announcement threads
* Edit/lock reasons
* Ability to set the original post to appear on every page of the thread
* Optional "social-networking style profile" component (will not be shipped with default, probably available as a plugin)
* Fully configurable sidebar, top, and bottom items
* Powerful yet simple integration API for bridging Emerald Powerhouse with a CMS or other web application
* Ability to style own user-name
* Private threads
* Possible plugins
** Shop
** File sharing/Gallery
** Embedded IRC client that stays connected between pages
* group-thread permissions level
* multiple polls in a thread
* group-starter permission
* personalized themes