*Previous topic here
phpBB2.1/2.2 Developmental Roadmap:
- Implementation of new permission system + admin
- Implementation of new styles format + admin
- SQL query review and re-design + database review
- Implementation of subforums
- Session updates
- DB layer updates
- Examination of existing file layout
- Addition of some conditional operators to templates
- Addition of external include of other .tpl's to templates
- Language file variable defn changes
- Basic implementation of new message parser
- Boardwide changes to variable definitions
- Preliminary implementation of User Control Panel (UCP) [ registration, profile, preferences ]
- Extension of permissions system to User functions (to be confirmed)
- Implementation of new BBCode parser + admin
- Intial Moderator Control Panel (MCP) updates [ moderator queue, front-end ]
- Completion of fulltext parser updates
- Further SQL updates for topics, announcements
- Group management updates [ assign colours, avatars, ranks, multiple moderators, etc. ]
- Further UCP work [ watched topics/forums, avatars, buddy/ignore/address lists ]
- Admin defineable profile fields ( to be confirmed )
- Further MCP work [ merge topics, posts, permissions ]
- Initial overhaul of user management [ UCP like style, quick view permissions ]
- Attachments [ intention to implement functionality of Ashe's mod ] ( may move to M-2? )
- Events ( to be confirmed )
- Overhaul of Private Messaging [ forwarding, multiple recipients, archive to email, user defined folders ( to be confirmed ) ]
psoTFX wrote: I'll attempt to give a brief overview of where, how and why some things have changed in 2.2 from 2.0 ... please don't ask for specific info in this topic (it'll just clog up with "random" questions) ... please ask such info in a different topic. Thanks
* Styles, themes, template and images
In phpBB 2.2 styles will comprise a combination of a; template, css (either embedded or as a stylesheet) and imageset. This should allow fairly quick and simple modification of the look and feel of a board. For example, rather than having to install and entirely new version of a style just to change the buttons you can simply alter the imageset attributed to a style. The same applies to CSS, although of course the tags required for a stylesheet may change from template set to template set.
One of the major criticisms of phpBB 2.0 was the relatively high load it could place on servers, particularly compared to the later release of InvisionBoard or even vB. In the majority of cases this extra load came from our "dynamic" approach to practically everything; templates, bbcode, word censors, smilies, highlighting, etc. etc.
In 2.0 templates were compiled each and every pageview ... while Nathan did an excellent job on the engine the impact of this could be significant. I, along with Nathan and Crimsonbane put together a compiling template system for 2.0. This compiled the templates (into PHP) just once (following any changes in the original HTML templates) and saved them to disk (or database). Subsequent accesses by the user then resulted in the need to just "run" this compiled output ... this could and did lead to noticeable improvements in load.
In 2.2 compilation is the default, indeed at present it cannot be disabled. At the current time the compiled templates are output to flat files stored within a world writeable directory. This shouldn't be a major issue for the vast majority of users. We may look at storing the data in the DB but certain new features complicate this a little.
Beyond compiled templates we've introduced basic logic to the templating engine. This is derived heavily from Smarty's system. These methods allow for the following:
<!-- IF <var> <logic> <comparator> -->
<!-- ELSEIF <var> <logic> <comparator> -->
<!-- ELSE -->
<!-- ENDIF -->
<!-- BEGIN <block> -->
<!-- BEGINELSE -->
<!-- END -->
<!-- INCLUDE <template file> -->
<!-- INCLUDEPHP <php file> -->
<!-- PHP -->
<!-- ENDPHP -->
The looping functions can use any defined variables (including block level variables). These allow for far greater control of output from within the templates ... while continuing to abstract code from markup. For example the decision as to which colour (or class) to use for alternating rows in viewtopic is now decided by an IF statement (rather than output directly by phpBB2 core code) ... giving more freedom to the designer (without requiring them to learn anything other than simple logic). For more details of the available logic in IF please see the Smarty documentation.
We also allow embeded PHP, HOWEVER, we heavily recommend this not be used for general styling ... indeed we will not be listing styles that use PHP or INCLUDEPHP tags on the phpbb.com site. These tags are really "intended" for quick introduction of "banners" and similar items.
Templates can now be edited online ... PLEASE NOTE that you won't actually be editing the raw HTML templates! Instead you're editing the compiled versions (else we would need to make the basic templates world writeable too ... and to me that's too much of a potential unecessary risk). You can download (to your local machine) any modifications though for archival purposes (so you won't lose the changes should the templates be recompiled following a move, etc.).
phpBB 2.2 differs from 2.0 in that the old (limited) theming system has been removed. The entire system is now (by default) driven by CSS (although there is nothing stopping a template designer using now deprecated HTML styling such as <font color> etc.). The CSS can be entered (and edited) directly via the admin control panel and/or an external style sheet can be specified.
* sessions and users
Sessions have been moved from a procedural implementation to an object form. While we don't intend to turn phpBB into a fully OOP implementation we feel that some functions are best written as reuseable objects (till 4.3 PHP was not written as an OOP language and won't necessarily perform better using such an implementation). In addition a user object exists encapsulating various "common" user methods such as configuration, formating dates and images, etc.
The new session code has been further improved and added to. New feaures include admin defineable load limiting (for OS's making such data available), admin definable session limiting (total sessions in a one minute period ... we may extend this to also limit per IP sessions) and improved ban control.
Additionally we've implemented a system of "garbage collection". Instead of updating user information and deleting old sessions every time session update is called we now carry out these tasks intermitently. What this means is that every "session length" the GC routine is called and a number of extra queries are run ... the number of simultaneous queries is limited so no one user should see their page take x minutes to appear because several dozen queries are being executed Why do this? Well, we're hoping it will be "better" to carry out these tasks infrequently (but in a limited way) than every user request.
The major function that phpBB 2.0 had compared to other boards was it's multi usergroup system. Instead of limiting a user to a single usergroup phpBB2 allowed users to belong to multiple groups. This allowed, for example admins to run RPG type boards where users could belong to one or more "clans", or for different combinations of users to be granted access to different forums.
phpBB 2.2 builds upon, extends and hopefully simplifies this. A recurring issue with 2.0 was the complexity of the permission system. 2.2 does away with the old system and returns to; forum, moderator, super moderator and administrator permissions. The admin can assign a range of permissions to users and groups simply by going to the appropriate form in the admin control panel ... rather than having to define a forum as "PRIVATE" and then assign users/groups as per 2.0.
With the introduction of subforums in 2.2 we've also implemented a system of inheritance. Now when you alter a user/s (or group/s) permissions for a forum contain subforum ("children") you can specify which (if any) subforums should inherit the permissions ... this should be very useful for assigning basic rights (reducing the need to specify permissions for each and every forum).
In addition it is now possible to give users limited access to specific areas of the admin (and moderator) control panels. For example, you may wish to give some users the ability to ban other users ... easily done in 2.2. You may allow some users to manage (edit) exisiting users profiles, again easily done.
To prevent situations where you (as the board "founder") could be banned or even deleted by another adminitrator we've introduced the "founder" admin system in 2.2. This prevents you being banned, deleted, pruned or altered in any way ... it's not a substitute for selecting your admins with care but should reduce problems none the less.
* New features
So far a number of new features and updates have been implemented:
- Subforums, unlimited subforums have been introduced. You can nest these as far as you like. Each can be made postable or non-postable (which effectively equates to an old category) and assigned styles (hopefully!) and different permissions.
- Topic icons, a topic can now be assigned a unique icon ... we intend to make this admin controllable on a per forum basis.
- Non-parsing of URLs in posts, you can now specify whether to automatically parse URLS in posts. In addition a new message parser reduces the size of all output URLS to prevent rendering issues, e.g. w3w.something.somewhere.here.com/hello/image.jpg may become w3w.something.som...image.jpg
- Altered method of poll entry, while the system in 2.0 allowed simple entry and control of poll options it required submission every time an option was added. This was a rather unecessarily "intensive" operation in our view. So in 2.2 a simple textarea box is being used, one line = one option. Hopefully we'll also allow basic BBCode, images, etc. to be parsed in each option
- Updated and extended admin panel. One of the complaints levelled at 2.0 was a limited admin panel. In actual fact these limitations were somewhat "made up" in that 2.0 either had the option or simply didn't require it. However, in 2.2 the ACP has been greatly extended with numerous new options and functions. These include;
+ a user pruning system,
+ updated backup/restore (inc. backup/restore from local, server based file),
+ disable COPPA,
+ disable user registration completely,
+ limited editing time,
+ fulltext word size limiting (both min and max word size),
+ maximum chars per post
+ maximum number of smilies per post,
+ timed bans,
+ admin and moderator action logging,
+ new server, board and related controls (e.g. session limiting, load limiting, disable email boardwide, disable board message, IP validation extent, etc. etc,
+ authentication plugins (allowing username/password authorisation via the phpBB DB user table, LDAP, Apache realm or anything else you care to supply a module for), etc.
+ and more (plus others to come)
This is a basic overview of what's been done so far. Some things to come include (hopefully, there are no guarantees they will all appear!):
* "Events", allowing the admin to define situations applicable to users and usergroups, e.g. "Usergroup X inherits Rank Y after Z days", "User A gains B forum permissions after C posts"
* Admin definable BBCode, a limited number of tags will be completely definable by the admin (you'll need knowledge of regular expressions to make use of this!)
* Attachments, hopefully retaining basic compatibility with Acyd Burn's excellent Mod (i.e. per post attachments, editing of existing attachments, admin control panel module, etc.)
* Improved Private Messaging system, user definable folders, forwarding, send to multiple recipients, "archive" via email
* Admin definable profile fields
* Improved usergroup facilities, assign ranks, avatars, colours to all members of usergroup, prevent/allow user to select which usergroup settings apply to them (for users in multiple groups)
* Improved Moderator Control Panel, new features such as merge, find duplicates, whois info, forum permission control, notes, moderation queue
etc. etc. etc.
chAos's Gallery: http://www.kaosfusion.com/gallery/phpbb22_m2/
chAos's Current Total: 119 images
SHS`'s M1 Gallery: http://lambcutlet.org/gallery/phpBB22_M1_screenshots/
SHS`'s M2-pre Gallery: http://lambcutlet.org/gallery/phpBB22_M ... reenshots/
Items of note:
Your own replied to topics get marked with italics. - no longer the case
Printer Friendly view
Page generation information on page footer (Debug mode ON)
Explain, part 1 (Debug mode ON)
Explain, part 2. Plus total times (Debug mode ON)
Adding/editing forum auth presets, these are per user with "administrative" privledges.
Then "ban exemptions", which suddenly appeared after some general chatting in IRC, and seems to be a Rather Fine Idea™.
How does this work??
Well, say you ban *@*.aol.com, but you have trusted users that you want to be exempt.... then all you do is add them to the exempt list.
Updated 31st Jan 2003
Updated 2nd Mar 2003