Flexible Content Management System


Development Update, January 2007-01

Contributed by on Jan 21, 2007 - 10:25 PM

First of all, a happy new year to all users of PostNuke on behalf of the complete PostNuke team: Coredevs, Steering committee and other Board members. Let's all hope this year will be productive and succesfull for all of us. And of course: a finished .8 version of PostNuke is something we are all waiting for.

MileStone 3 is waiting around the corner: A feature freeze so far has speed up the progress and only a few bugs are blocking a release. The next development update will probably be submitted after the MS3 release.

OK, here goes!

API functionality

Introduced is a pnShutDown function to gracefully terminate the application framework. This now replaces all use of exit or die and also fixes some oddities caused by PHP's shutdown process.

Mark has replaced all old themesideblock function calls with newer API call pnBlockThemeBlock. Furthermore, he has added a raw text option to the PageUtil::registerVar (former pnPageRegisterVar) system.

The AjaxUtil is now using internal json_encode() if PHP >=5.2.0.

Object Library and classes

For the SessionUtil / RandomUtil, Drak has put his hands on improving the randomness in the generation of the AuthKey and passwords. This is done by extending the possibly characters used, and the length of the key (length also now being random).

Also, the AuthKey generation makes now use of the (updated) RandomUtil class. A big advantage is that the random data generation is done in one place, so a change will affect the complete system. This is actually with the complete Object Library: changes can be made in one place with the benefit that all calls are updated.

The DBUtil has now a renameTable method and a renameColumn method for easy manipulation of table properties without having to worry about SQL code. The latter (renameColumn) is a quite new function, so there may be some adoDB bugs.

Finally, pnPage.php is converted to the PageUtil class. This means that any 3rd party module developers should update their modules to make use of the new class. A call to (for example) pnPageSetVar('title', $title_var) must be updated to PageUtil::setVar('title', $title_var). The pnPage.php does not remain for backward compatibility. Examples for the needed changes can be found in SVN submission 21099. The Wiki documentation for Page variables still needs updating however.

pnForms: functionality and documentation

Jørn has been updating the pnForms toolkit extensively. Most important is hat the documentation in the files is more complete, and the Wiki documentation page has been updated. A summary:

  • Added authkey checking to pnForms.

  • Added min/max validation for integers.

  • Changed "classHtml" to "cssClass" in "pnForm" plugin for consistency with the other classes.

  • Added a language selector "pnFormLanguageSelector".

  • and much more...

All plugins now render unknown parameters "as is", so you can add "onclick" and such like that the system doesn't know of.

System modules: Categories, Search and Blocks

In the Categories system, there has been added support for a 'field' parameter.

The search module is as good as finished, and also displays a sum of all search hits too. An additional parameter is added to allow for searches that aren't going to be performed on a DB. Finally, it is now possible to search in RSS feeds.

The Blocks module has been updated, and now has a user friendly functionality for drag-drop between block positions and placements in one screen. This is done with Ajax technology (thanks Frank for simplifying and enhancing this), so javascript should be enabled to use this (non-js fallback available). Furthermore a XML/XSL block has been added (a generic xml/xslt block and modifier).

ValueAddons modules

Faq: implemented custom short url handler and permalink structure

News: implemented cache handling

Feeds (was RSS): implemented categorisation in admin panel, added short url handler, added title field.

Also, the RSS module is renamed to Feeds to better reflect it's purpose and to prevent clash with rss theme when using directory based URL's.

TinyMCE: Upgraded tinymce to v2.0.9

Reviews, Referers, Stats: Converted to API and pnRender compliant module, updated table management code.

pnRender Plugins

Mark has added an output filter in order to auto-magically title the administration pages, which makes navigation a bit easier.
Also, Axel added a new optional parameter to the pager plugin for link anchors (e.g. #comments). For example, these Development Updates rquire me to manually add the anchors to an (non existing) url.