It's been a while since the last update and given "other" boards are heading towards new versions (with many of 2.2's features "suddenly" added it seems ) I guess it's time for a progress update ... this is long so please bear with me ... if you can try and read it through completely before commenting or asking questions
Where are we at?
We are currently heading towards M-2
What is done or being done?
Lots of core changes. Some major improvements or updates include:
A new finer grained system based on ALLOW, DENY and INHERIT defined on a forum, moderator, super moderator, administrator, user and usergroup basis. It may sound complicated but hopefully won't be! An example ...
In phpBB 2.0.x you could not prevent access by a user to a specific forum without making that forum private and then assigning all users and/or groups allowed access. In phpBB 2.2 you can simply DENY that one user access to the forum, case solved. Alternatively you could create a usergroup containing those users you don't want to have access and set that group to DENY (for whatever options you wish, e.g. List, Read, Post, etc.)
The INHERIT setting allows you to ignore options for users/usergroups if you wish, the permission is then taken from settings applied to other groups/users (if applicable). An example, you set the usergroup REGISTERED USERS (one of several new default groups, in this case containing all active registered users) to INHERIT their ability to post HTML in a forum. By default all users will now be DENIED (DENY is the default for all permissions ... helping to prevent accidents!) the ability to post HTML. However, you could then set individual users or other usergroups to ALLOW for this option. The ALLOW value would be INHERIT'ed and these users could post HTML.
To speed setting options we have introduced the ability to cascade settings for a forum to all its children. So, taking this board as an example we could alter the permissions of the phpBB2 "category" and have all the forums within it inherit those same settings. Additionally we have introduced "presets". These allow you to store common settings and recall them whenever you need. So if you have several different subforums spread amongst different parents but which require the same permissions ... you could set the options once, save them as a preset and then just recall them for the other forums.
Yet another system for speeding up the sometimes lengthy act of setting permissions are "dependencies". These will allow you to link the setting of admin or moderator options to forum options. For example, you grant a user the ability to Moderate (Edit) posts in a forum. You could define a dependency linking the ALLOW of "Moderate : Edit posts" to any forum option. This way you need not worry about having to set forum and moderator settings ... you'll just need to set moderator permissions and the forum permissions will be taken care of automatically.
The introduction of administrator permissions now gives you the ability to allow users or groups control of specific administrator functions. For example, you may want a group to be able to define bans but nothing else ... no problem, easy as pie The same applies to moderator functions. The return of "proper" Super Moderators now allows you to give users or usergroups the ability to moderate all forums. There is no need to change or add anything when you create a new forum ... Super Moderators will be able to moderate this too.
A number of "hard-coded" or user specific "permissions" have now been moved into the permission system itself. These include such things as being able to read or send private messages, change their password, email address, avatar or username, etc. Another setting will decide if users can change their default usergroup (see later). These settings can be applied individually to users or to usergroups as a whole.
You can now define load (if applicable to your OS) limits and per minute session limits. These should help reduce issues where otherwise quiet or middling boards suddenly get deluged ... causing hosting providers to get upset
To better cope with the "IP validation" issues the ability for the admin to define the minimal level of such validation is included. You can now decide yourself if you require your users IP's to match from one page submit to the next and by "how much", e.g. match fully, match only the first three octects, first two or none at all. The system copes with IPv6 transparently. To help compensate (slightly ...) for the loss of full IP validation, or indeed to further strengthen such matching we have introduced the option of validating browsers.
A "Garbage Collection" model has been introduced. This does away with the constant updating of user information and destroying of sessions. Instead these tasks are carried out infrequently. Hopefully this will reduce the load on busier boards ... distributing the task between a few users after a definable time period. This has yet to be tested under load and may be reverted to the traditional (phpBB2) method if found to be unworkable.
Banning has been improved with the re-introduction of timed bans. You can now (again ...) set user, email or IP bans which last either a set time period or until a given date. So gone are the problems of forgetting that 72 hour ban of a user Additionally you can add a reason for that ban. That reason will be displayed in the list of banned users and in the administration log ... doing away with those problems of "Why did I ban that again?"
To further improve the banning system you now define "excluded" users, IP's or emails. This allows you, for example, to ban all hotmail addresses but exclude certain specific addresses. Another example may be banning an entire subnet of IP addresses but giving one or more addresses access. This should allow for extremely fine control of who can visit your board.
It's our intention to move as much HTML generation to the templates as practical ... this will make a few people happy It will make the templates "look" more complex but the syntax is very simple and we believe will allow far more creativety for style designers.
These changes are made possible by the introduction of conditional statements, IF ... ELSEIF ... ELSE ... ENDIF and block level ELSE. Gone is the phpBB 2.0.x method of defining row colours within the source code for example. The decision of what colour a row in viewtopic (or any similar page) is now made within the template by a simple IF statement. This should allow, for "clever" designers the ability to define multiple row colours if they desire
The existing limited method for setting colours and classes has been removed in favour of CSS support. We realise that this may go down badly with some users and we welcome feedback on how it could be simplified (please comment based on having actually looked at phpBB 2.2 though ... not just random thoughts ). The benefits are complete and total freedom of how you define the look of your board ... as opposed to the limited number of ways you could set key elements in 2.2
Additionally imagesets have been seperated from templates. This will allow you to quickly switch imagesets (buttons, icons, etc.) without having to install a completely new template.
The whole styling system is still somewhat under development and will evolve further.
Unlimited subforums are now present and you can nest these forums as deeply as you like.
The current system of categories and forums is gone in favour of postable and non-postable forums. Non-postable forums behave like old categories. You can however define a forum as postable and have subforums within that forum itself. See the test board @ http://area51.phpbb.com/phpBB22/ for examples of subforum useage.
- Viewforum and viewtopic
While the basic approach to these remains the same (no threading, sorry, we don't current have any plans for this at all) a number of improvements have been made.
The introduction of topic and post icons is complete, they can of course be disabled completely if required (in which case the template can be designed so as to not output the cells that would normally contain such icons).
A switch is now made available to the template designer to allow them to seperate off annoucements from other posts. This should help improve visibility of announcements, reducing the age old "I didn't see it!" problem See http://area51.phpbb.com/phpBB22/ which makes use of this.
Global announcements have been introduced. These, as the name implies show in ALL forums and on every page of viewforum in ALL forums. The intention is to also show these in the User Control Panel ... further reducing the ability of users to say "I didn't see it!"
The ability to "watch forums" has been introduced, it behaves similarly to "watch topic" but obviously on a forum basis
The ability to "report" posts has been introduced. The new Moderator Control Panel (see below) will list such reports allowing moderators to act accordingly.
Tentative inclusion of improved read and post tracking now exists. At present we are only really making use of "post tracking". A small black dot appears in the small forum icons in viewforum indicating that you have posted to that topic. However the system also includes read tracking ... this will (assuming it is retained fully) see the database used to store information on what topics/forums you have read. Thus ending a session with posts still unread won't result in those posts being shown as "read" on your next visit. Note that this is tentative and may not make it into 2.2, at least fully.
Printable views of topics has been introduced. Of course a new template is used to display this layout and thus is fully customisable. See http://area51.phpbb.com/phpBB22/ for an example (look below the "New Post" button in viewtopic.
Initial implementation of "Email to friend" is underway. This will allow you to email the topic to a friend, with a message if you desire.
Topic and post moderation has been introduced ... this will be on a per user/usergroup level as required (i.e. you can either moderate all users in a forum or just one or two).
For future use (planned for but not yet completed) posts within viewtopic can be skipped with a simple message. This will be used where a posters karma is below the minimum of the browsing user. Other uses will include ignoring posts from posters on the users ignore (black) list. A potential use (not yet set for definite inclusion in 2.2 final) is for skipping posts made in an encoding different from that of the browsing user. For example, a anglo-russian forum where some posters post in iso-8859-1 but other users post in win1252 (or whatever). The iso-8859-1 user would see "rubbish" characters instead of cyrillic for win1252 posts ... however the option can be given to that user to display the post in the correct character set. This mirrors something Google already does ... whether it stays depends on whether it's "required"
- Moderator Control Panel
The Moderator Control Panel has been overhauled and "massively" extended.
These improvements include an advanced topic merge facility ... unlike other boards where you can only merge entire topics, 2.2 allows you to merge selected posts from one topic into another in one step. Of course the existing topic split remains but with enhancements allow for the setting of topic icons, etc.
The MCP itself is now "tabbed" in the same way as the User Control Panel (see later). It will be a quick one-stop-shop for viewing the list of unapproved (unmoderated) topics, most recent reported posts, the actions of other moderators (via the moderator log), etc. Another new feature (related to moderator action loggin) is topic history viewing ... with this you'll be able to see which moderator did what to a specific topic.
As noted above, all moderator actions are logged, including the user_id, time and IP ... so no more problems with "bad" moderators
Further additions to the MCP are ongoing
Posting has been updated and further additions are planned. These include the ability to set topic/post icons (as noted above). A general cleanup of the posting page has been carried out. A lot of code changes have been introduced to reduce the complexity of the code itself and unify the approach to how data is treated and stored. Further work in this area will be carried out.
The first steps towards the introduction of per post attachements has been completed. As you may know, Acyd Burn joined development of 2.2 and is sharing his experience in this area. So you will see a fully integrated and updated attachment and associated administration system in 2.2 ... which I believe is well in excess of any comparable system on other boards
Many additional features are on our list, most suggested by you our loyal users ... I won't give them away ... I know "others" are reading this
A new plug-in based architecture has been introduced. This allows for authenticating users via the built-in database, LDAP, Apache or any other method (only those three are supported at present). You could use this system for example to introduce the recently annouced "global authentication" mechanism for cross-application data sharing. Alternatively a simple SOAP module could be defined for directly sharing data. The potential is quite significant.
As part of this new centralised functions and methods have been introduced to authenticate users and display the login box.
- User Control Panel
The UCP is still somewhat in its infancy but the basics are in place. The new system does away with the old "single page" profile solution and instead introduces multiple pages or tabs. These will cover such things as watched forums/topics, black and white (zebra) lists, private messaging, profile settings (including admin definable profile fields), board preferences, avatar selection, signature setting (and previewing), etc.
A key new system now in place is visual confirmation of registrations. You may have seen such a system on other applications on the web. The user is required to copy alphanumeric characters displayed in an image before the user will be registered. This helps reduce the possibility of mass registration bots "attacking" your forums. You may like to note that unlike "other" boards the system we've deployed is noticeably superior. Instead of displaying seperate images, each image being a letter in a fixed position ... we generate a single image with letters in variable positions. In addition we randomise the pixels of the image making it difficult to simply grab the image, determine which characters it contains and submit the form. The system does require zlib to be available but this seems quite common for PHP installs (if you don't have zlib available ask your hosting provider to install it NOW!).
- User searching
A common problem noted by users with phpBB 2.0.x was the lack of "real" user search capabilities (both in the admin panel and for such things as private messaging). In 2.2 we've addressed this extensively. You can now search for users on multiple criteria including, username, email, registration date (before, on or after), last active time (before, on or after), postin IP, number of posts, etc. etc. Several forms in the ACP now allow you to mark and automatically add several users in one go via this form.
- Admin Control Panel
Much has been written about this already so I don't see much reason in reiterating it. The ACP has undergone an overhaul with the addition of numerous new options, the splitting and recategorising of existing options, etc. A fairly full view of the ACP and available modules can be seen in SHS`'s 2.2 gallery (see sticky post in this forum).
16 April Update
Work continues apace on 2.2 Since the above update a number of features have been completed or started. The following is a brief overview of those changes:
Initial attachment functionality is now operational in posting, viewforum and viewtopic. The basic capabilities are (as you'd expect!) similar to Acyd Burn's seperate Mod.
Besides the inclusion of attachments a number of new features have been added to posting. These include such things as "Lock from posting" enabling Moderators and Admins to reply to a topic and simultaneously lock it. Additionally a new feature "Lock post from editing" has been added. This enables Moderators/Admins to prevent users from subsequently 're-editing' a post ... preventing those "I didn't write that!" problems
- MCP - Moderator Control Panel
M-2 work is effectively complete on the MCP with the incorporation of a large number of new capabilities. You can now approve posts, monitor reported posts, copy topics, alter forum details (if you have permission) and view moderator logs. A neat new feature related to logging enables you to browse the logged history of a specific topic.
The introduction of dependencies was abandoned ... no simple way of implementing a suitable GUI could be developed. Instead a perhaps more useful(?) method has been introduced whereby you can quickly set the whole range of permission types for selected users or usergroups from within the Admin, Super Moderator or Moderator permissions forms. No need to switch between forms, just alter the view and set the options and it's all done in one go.
- Load and CPU saving
An often requested feature was the ability to shut down various "superfluous" or intensive operations. This has now been implemented and where necessary will be extended in future. You can now shut down search completely, disable the index/forum/topic and posting online user list generation, alter the viewonline time (from the current fixed five minutes), disable fulltext search indexing and more.