The old multisite subdomain structure was long overdue a replacement. After a long review and design process, we feel that community.postnuke.com addresses many of the established flaws in the old sites. We now have a full extensions database, where modules, blocks, themes and plugins can be listed in an easily searchable format. Each item should now only have one listing, whereas before there were often large numbers of articles to search through.
We've also moved one step closer to improving the documentation available for PostNuke. Any member of community.postnuke.com can now contribute to our documentation, and we would encourage you to do so. Through working together we aim to drastically improve the availablity of documentation for both users and developers.
Our forum support module has switched from PNphpBB to pnForum. This decision was taken for a number of reasons, mainly as the API compliant pnForum offers an easier platform for support through hooks. Common problem phrases in posts can now be autolinked to useful knowledgebase tutorials and wiki pages. Please note that the forum structure has been rearranged as a result of this move, and ensure that you are posting in the correct forum for your problem.
Finally, we think the new site offers improved navigation, content and functionality. We've tested fairly well, but if you do find any bugs in the new setup please post them in the forums.
Simon Birtwistle PostNuke Steering Committee
0.8.0.0-MS1 ZIP
0.8.0.0-MS1 GZIP
CVS Dailies (use these to keep up to date with changes to CVS)
ZIP
MD5: cef2b3187327963d15d723a93c47b982
SHA-1: bc0847001c90a7821463750e23c646580574460f
TAR.GZ
MD5: 3988d58e71fdf091b04b46793a06566c
SHA-1: 3af10fdbf986a50c50f0fd66d35a353a76fad54b
Due to changes in the blocks module table structure for .8, Autotheme will no longer work with this release. Until Autotheme is updated, site administrators can use the Extralite theme in CVS, or any of the new themes with the included theme module.
Additionally, modules from elfisk require the legacy Topics module to be installed to satisfy a dependency introduced in the .7x series of PostNuke. The Topics module is depreciated in favour of the Categories module, however in the interests of keeping .7x modules compatible with .8-MS1 the Topics module can be downloaded seperately.
There are also other problems with non-API compliant modules that access PostNuke tables directly due to the substantial database changes in this release.
The new blocks module designed to work with the recoded Themes engine has been committed to CVS. This new module, while fully working will probably undergo some enhancement before the release of .8 MS1 with use of the new Ajax library a priority. All block management is now fully integrated with the Blocks module, from block position tags to assigning blocks to block positions. Despite these new additions, the block management interface remains fairly simple and intuitive, improving usability over the .7x block control system.
Also newly committed in the past few days is the PostNuke Ajax framework. This framework is already in use within the Permissions module as a demonstration of what can be achieved. PostNuke's Ajax implementation is based around the prototype.js script and script.aculo.us libraries, which as well as providing nice visual effects are fairly easy to implement for the module developer. This framework was made possible in .8 through core changes to the pnInit() function, which can now be passed a parameter determining what parts of the core should be loaded. In the case of an Ajax framework it is important to limit the initialisation process to an absolute minimum of components for performance reasons. Again, with this in mind each module that wishes to use Ajax functionality should use a new Ajax entry point 'pnajax.php' in their modules. This reduces the number and size of files that are loaded with each Ajax call, but does not prevent you from calling other functions in your module should you require them.
Full documentation on how to use the Ajax Framework should be available with the final .8 release, however in the meantime developers are invited to update their CVS copies and look at what has been achieved so far.
For some time now, the Permissions module interface has been far from ideal, especially on sites where you have large numbers of permissions. In this situation, the PostNuke Ajax library can be put to very good use, as demonstrated by the demonstration currently in CVS. It is now possible to order permissions through a 'drag and drop' interface, create new permission rules, and also test any permission you have written through an easy to use interface all without reloading the page. Furthermore, you can filter permissions by group for an easy review of a single group's access rights on your website.
We anticipate that the Ajax libary can have many more uses across the codebase for .8, and over time these will be implemented. PostNuke now has a solid Ajax framework upon which third party developers can begin to develop their own Ajax-based modules for use with .8.
For the new Ajax tableless module administration layouts to work correctly in tableless themes (such as the andreas08 theme in CVS) use has been made of a pn-clearfix class. This has been adapted from positioniseverything. While these changes were prompted by the introduction of Ajax sorting to lists in CVS, the class can be applied in any relevant situation.
With the increasing use of hooks modules across the codebase with the advent of complete API compliance, it was necessary to introduce a dependencies system to PostNuke .8. This system allows modules that support or require particular hooks a way of informing the user of this requirement. In PostNuke .8, the core system will inform site administrators if they are lacking a module which can add functionality to their site. Additionally, the system prevents conflicting modules being installed together. It is up to module authors to set module dependencies in their pnversion.php file, stating a minimum and/or a maximum version required. An example of this is in CVS, in the form of the pnCategories pnversion.php file. When the .8 MS1 release is available, module authors are encouraged to look at this system and use it to their advantage when creating modules in the future.
Through the .8 PostNuke User's module it is now possible to choose the hash method in use on your site. The addition of both SHA-1 and SHA-256 encryption can add security in sensitive environments, and additionally the ability to change hash method can help when integrating PostNuke with other applications. The hash method changes have been implemented in such a way as to ensure you can change hash method at any point, you are not tied to a particular hash method at installation time.
More security options for sessions in PostNuke .8 are now available. You can now choose whether to sign cookies sent by your website, decide how long forms on your website should be valid for (through the authkey timeout) and finally enable IP checks to ensure session IP addresses do not change mid-session, which can occur if multiple people use the same account. PostNuke also now supports the setting of a secure host name for HTTPS, if your site does not support HTTPS through its normal domain name.
When disabling your site in .7x it was important to remember to stay logged in, or you would be locked out of your site with the PostNuke Swiss Army Knife as your only way back in. In .8 this changes, now an admin logon form is available on the site disabled screen to allow you to get back in to a disabled site.
At this stage, many of the key features of .8 are nearing completion, and we remain on track for our target Milestone 1 release window of the third week of April. Third party developers are especially encouraged to use this release to test their code for compatibility with .8, as due to the core changes some modules will need updating. Meanwhile, if you are interested in seeing the latest state of the .8 codebase before the Milestone release you are welcome to download the latest CVS snapshot.
Recently, the new theme module, which acts as a replacement for Xanthia in the .8 series was committed to CVS. This module corrects many of the established flaws in the .7x Xanthia codebase and also provides new enhancements. New in this module is the ability to assign a custom template to any page on your website, the use of .ini configuration files in themes, the removal of block control in favour of a new Blocks module and the ability for theme authors to provide a 'version.php' file in their theme to provide relevant information to site administrators.
Using .ini configuration files in the new Themes module brings two advantages over the current setup of Xanthia. Firstly, theme generation and display are much faster as no database queries are required to build the layout. This should provide a marked performance increase in .8 websites. Additionally, it is much easier for theme authors to export their themes, as in the new Theme module the details previously contained in xaninit.php in PHP code are now automatically generated by the Theme module.
Due to the sweeping changes in this new module, the user interface has been completely redesigned. While we realise this will take some getting used to, the new interface is more intuitive than previous versions and logically follows the layout of the Modules module when displaying the available themes. Additionally, all theme related settings have been moved from the Settings module to the Theme module, and the user theme switcher is now part of the Theme module display.
Themes used under the .7x Xanthia module will need upgrading to use the new .8 Themes module. This is a relatively simple process which is mostly handled by the Themes module itself, as both systems are based on Smarty the template logic is the same and there are few changes to the tags themselves. These by and large stay the same with one notable expection, block tags are replaced with the plugin call <!--[blockposition name="name"]--> where name is the name of the block zone to display.
The recoded Blocks module has yet to be checked into CVS, however we anticipate this within the next week. Until that time, the Theme module in CVS is nearing completion and is fully functional.
Two new themes designed for the new Theme engine have been added to CVS. These are free templates from Open Source Web Design, and serve as an example of what can be achieved with the new module. The new themes are tableless and HTML compliant, which along with the improvements in compliance in the rest of the codebase serve to ensure PostNuke remains one of the few content management systems to take HTML standards seriously. All output in .8 will be XHTML valid.
To this end, the old themes that have been present throughout the .7x series are no longer in CVS. While they can be easily converted to work with the new Themes module, they use table based layouts which do not conform to the standards PostNuke has set for output. A appearence overhaul is well overdue for the PostNuke codebase and so a set of new themes will be available with the .8 release.
The release of .8 will also bring a new statebased XML Workflow engine to PostNuke with simple API implementation. Additional enhancements are planned to include a workflow schedular to process workflows at timed intervals in batches.
Use of the module is simply a case of adding a directory 'pnworkflows' to your module containing a set of workflows with operations, states and actions. The workflow engine also fully supports the PostNuke permissions system. Documentation for the module will be released with the first .8 Milestone.
GuppyForm allows a developer to describe a form content and layout in XML with an event handler bringing automatic validation. This can drastically reduce the time taken to develop user input forms. Can be combined with pnRender templates or used standalone. For those that like OO, and descriptive coding, this is an interesting option in the framework.
Another recent change to CVS are updates to the Users and Profile modules. These now almost fully functional, with huge improvements to the dynamic data system now in CVS. New field types avaiable for user input are date fields, calendar 'select date' fields and combination fields where a number of seperate input types can be combined. The new users module also allows for the use of SHA-1 or MD5 password encryption, you can store the user's last login date in the database and finally the registration process has been improved to include the option to vaidate user's email addresses through an activation link. All these improvements are optional and can be enabled and disabled through the Users module administration interface.
As part of an overview of usability and update to the 'look and feel' of PostNuke many of the module templates have been enhanced. These range from subtle changes to much more obvious improvements in the location of links and reporting of status messages. As previously mentioned all templates validate to XHTML standards and further improvements will be made before the final release of .8.
pnDefineMachine is now the recommended tool to use for translating PostNuke into other languages. This third party module scans the whole codebase for language defines and provides an easy to use administration form for translators to write new language files. A new version of pnDefineMachine was released recently, and to facilitate its future development a number of internal define changes have been made. These should not, however affect translators themselves.
Another addition which does affect translators and site administrators is a global language file which can be edited by users and is safe from being overwritten on an upgrade. PostNuke now contains a 'config' directory where all PostNuke's configuration details are stored. The files config.php and config-old.php have been moved to this directory, and furthermore the directory can contain both global template overrides (in addition to theme-specific overrides in use in .7x) and also global language defines. While it is not currently possible to override core language defines through this change without generating a PHP Notice, you can store your own language defines for use in, for example, themes. Any changes you make here will then remain intact throughout any upgrades you may carry out.
After the Steering Committee Meeting held this Tuesday, a tentative release period for .8 Milestone 1 has been set. We currently aim to release .8 MS1 in the third or fourth weeks of April, however this may change if the codebase requires further work for the release to be of the required quality. A milestone release is an opportunity for third party module developers to test their modules with the upcoming release. It is not intended for a production environment and user support is not available for this release, however support for developers will be provided through the forums. The milestone will not be feature complete, and may not be stable.
The milestone can be taken as an indication that the codebase is beginning to get to a usable stage from which we can work towards a Release Candidate, though no timeline for this is available at this stage. There is no upgrade path from .7x as this stage as the database structure is still in flux