From LifeType Wiki
Fine-grained user permission framework
LifeType 1.2 implements support for a more fine-grained and granular permission level, as opposed to the pre-1.2 system based on site administrators, blog owners and blog users. Now it is for example possible to have users who are only allowed to post and update their own articles, but not to update or delete anybody else's. The same level of granularity can be achieved with administrative tasks.
Additionally, the extensibility of the framework allows plugins and custom code to create, manipulate and use new permissions as required.
Bad-behavior integrated in the core
Spam is one of the biggest concerns nowadays when hosting a blogging service, and the LifeType development team is committed to help users alleviate this pain.
As a result, one of the most effective anti-spam libraries, Bad Behavior, has been integrated into LifeType's core as the first layer of defense against spammers. The advantage of Bad Behavior against LifeType's own plugins and anti-spam mechanisms is that it does not depend on LifeType's framework to work, so it's a much lighter library. Additionally, all checks are performed before any LifeType code has been loaded so it will help save some memory and processor time in those busy community sites.
You do need to add the following to your header.template in order to take advantage of all anti-spam tests.
Global plugin settings framework
One of the most requested feature in the history of the project was the possibility of controlling plugin settings globally, so that only one checkbox would activate a plugin globally for all blogs in the site instead of doing it blog by blog.
Plugins have to be modified to "expose" their configuration settings to the LifeType core, and the changes will be documented accordingly.
The template layer in LifeType 1.2 has been modified so that it is possible to use the so-called "partial" templates, where only part of the required .template files are available in the package/set and all other files are pulled from a different location. The way this feature has been implemented allows for two modes of operation:
- Load user template always first and if a template file is not available in the user template, attempt load it from the default location. This mode allows for partial templates, or to have default template files as a "fallback" plan in case users are missing some files from their template sets.
- Load the default template files always first and the file is not available, then load the user files. This would allow for things like a site-wide .template files that cannot be overridden by custom user templates.
This feature should provide blogging communities with greater flexibility regarding templates and customizations.
Improved serving of resource files
resserver.php was proven to be one of the most resource-consuming (both in terms of memory and CPU time) of LifeType. As of LifeType 1.2, resource files are being served directly by the web server instead of another script. This has greatly improved performace and it will hopefully help increase overall performance and stability in bigger blogging communities.
This feature also brings a new URL format for the links to resource files in the form of , where "X" is the blog id and "file.jpg" is the name of the file. Compatibility with old URLs is achieved via an HTTP 302 redirect from the old URL to the new one. This process happens internally without the need for complex mod_rewrite rules, and it will ensure that no link will be missed by clients.
Searching up until LifeType 1.1 was a resource-consuming process, as the code was not making use of the available FULLTEXT indexes in the database. As of LifeType 1.2, the code is now able to use those indexes in order to speed up searches, acchieving near instant results.
This feature is disabled by default because it doesn't work very well in languages such as Chinese and Japanese (please consult the MySQL documentation for more information) Users of other character sets are encouraged to activate this feature for performance's sake by adding this line to their config/config.properites.php file if it isn't already there:
$config['db_options'] = Array( "enable_mysql_fulltext_search" => true );
Note: The minimum and maximum lengths of words to be indexed are defined by the ft_min_word_len and ft_max_word_len system variables. (defaults is 4 characters for the minimum and system dependent for the max) e.g. three letter word searches will return no results using a full-text search by default.
Support for paged comment pages
Now when viewing permalinks with hundreds or thousands of comments, LifeType will generate a paged display of the comments in the page. This will not only reduce the load on the database but also generate smaller pages that your readers will appreciate.
Support for authenticated comments
LifeType will recognize that the user posting a comment is logged in and will not require users to type their any identification anymore. Comments posted by authenticated users will appear marked as such.
Improved administration and summary interface
The administration interface and the summary page have been modified to use a more flexible layout instead of the fixed layout used up to LifeType 1.1.
Improved data cleanup processes
Purging spam comments or deleted posts used to be a very sensitive process in versions of LifeType prior to 1.2. While the core functionality of the feature has remained the same, the development team has completely reworked the feature so that data integrity is not broken.
In addition to that, purging data is now taken in smaller increments instead of all in one attempt in order to avoid pages timing out due to the script being processed for too long. With the new implementation, the browser window will keep reloading itself automatically until all data has been processsed.
- New type of custom field: drop-down list.
- Feature in the "clean up" section to allow to reset the contents of the tmp/ folder.
- Memcache is now supported as a cache backend, in addition to the current disk-based one. Configuration is controlled via the config/cache.properties.php file and support for memcached needs to be built into PHP.