User thread title editing
A new permission has been added to control whether users can edit the titles of their own threads. This is automatically tied into the post editing length permission.
This also includes editing the prefix as well.
Style property cache size reduced
If you have a number of styles installed, you may have had to fight with MySQL max_allowed_packet due to the style property cache size. The cache will now only store changes from the default value, reducing the size of the cache per style.
Template compilation speed improvements
Don't expect this to be a huge change, but template compilation output will be reusable by child styles whenever possible.
With this change, you'll probably see the template compilation process slow down more by the number of languages than the number of styles you have. Remove any languages that aren't being actively used.
Code event speed improvements
This suggestion comes courtesy of digitalpoint. Many code events now offer a "key". When creating a listener, you can optionally specify the key to listen to. If you specify a key, your listener will only be called when the key matches.
For example, when firing load_class_model, the key is the class name to be loaded. If you're only extending one model, you can enter the class name and we will only call your listener code when the model is being loaded.
This can significantly reduce the number of listener calls per page, leading to add-on execution speed improvements.
Parsed BB code cache
The parse tree of messages is now cached for a configurable length of time. Note that this is the parse tree, not the compiled output. The final compiled output is still handled at run time. This gives significant performance improvements, but does not limit the dynamic nature of BB code output (by style, language, or user viewing).
This cache can easily be used by any content types.
Trophy and promotion cron speed improvements
Trophy and promotions are now automatically applied on session creation. While the cron still runs, it only runs for users that have been active very recently.
This significantly reduces the overhead of wasted trophy and promotion cron runs while simultaneously ensuring that users receive their trophies and promotions more efficiently (if they haven't been active for a while or if a new trophy/promotion is added).
New general-purpose system for long running processes
1.2 adds a new "deferred" system for running any code that can be broken up into pieces and may take a long time (multiple seconds or more) to run. Deferred tasks can be triggered automatically by the code as necessary and they will either be run automatically in the background (by page views) or by displaying the current running state to the administrator (in the case of some cache rebuilds). This effectively unifies the cache rebuild systems with cron and other potentially long running processes (such as the bulk user change system discussed in the past).
Mail queue system
Using the "deferred" system above, a mail queue system has been implemented for email that does not have to be sent immediately, such as thread watch emails. Other emails (such as registration confirmation or lost password) emails can still bypass the system.
This creates performance improvements, particularly for heavily watched threads or when using a slow, external mail server.
RSS content snippets
RSS feeds for forums now contain content snippets (if permissions allow). The snippet length is configurable.
When creating a moderator, you can choose to make them a hidden staff member. This will prevent them from being seen or treated as staff by other users. For example, they will not show up in the online staff list.
Conversely, users who are not moderators can be made staff and will appear as such in the user interface (such as in the online staff list).
User search improvements
The search criteria for users in the admin CP is significantly expanded. You can now search by:
- Has no secondary groups
- NOT in a secondary group
- Registration between 2 dates
- Last visit between 2 dates
- Message count between 2 values
- Trophy points between 2 values
- By all custom fields
There are still various features, small and large, to talk about for 1.2, but we'll save them for later.