-
Postnuke .8 RC2
(News)
-
compared to RC1 a lot of bug fixes, a rewritten and simplified categories module and an improved upgrade for users of Postnuke .764.
Downloads
There are 3 packages available:
The core pack contains only the bare system and no content modules. It's supposed to serve as the basis for a new site. So you only have to upload all the modules you personally need.
.zip
.tar.gz
The value addons contain all the content modules from .7x in their latest version fit for .8. So if you need Quotes or FAQ for your site, this is the place to find them.
.zip
.tar.gz
The upgrade pack contains everything you need to update an existing .764 site. It is the core pack and the value addons in one package. Please note: DO NOT UPGRADE YOUR LIVE SITE.
This is still not a final release and is not supposed to be used in live enviroments. If you intend to upgrade your site with the final version you should test the upgrade with the RC2 and a
local copy of your .764 site.
.zip
.tar.gz
Please test!. The more you test now with the RC2 and the more bugs you report, the less trouble you will have with the final version.
Checksums
MD5 Checksums
6cf82ee1883136c4c0bf69e13f1d91ba PostNuke-0.800-RC2-FULL.tar.gz
dd7f4b50e4ddfdbd3d96b017287f1a7c PostNuke-0.800-RC2-FULL.zip
6ebf2a51234a6401b7c96c89781d7165 PostNuke-0.800-RC2-CORE.tar.gz
14e65ef97d88470e0080c8e9538c9147 PostNuke-0.800-RC2-CORE.zip
89a6d51fa3f10286b09c29ea312ff7c9 PostNuke-0.800-RC2-ValueAddons.tar.gz
e06a81aec7e50292dfd63fd40a7c88b9 PostNuke-0.800-RC2-ValueAddons.zip
SHA1 Checksums
dd75378f3fa87df7b4b827e74adc0e162c29e861 PostNuke-0.800-RC2-FULL.tar.gz
2de3a2132265b920ab5333f6d2ec692e1c3061e1 PostNuke-0.800-RC2-FULL.zip
90ee7897b7abf29a4a136029823cb8a337a4076f PostNuke-0.800-RC2-CORE.tar.gz
376ae9f296c2533965d95972ddf05937a9cae4b4 PostNuke-0.800-RC2-CORE.zip
de878d7472ae9d2fc54bcf7322cbd5e8df015e32 PostNuke-0.800-RC2-ValueAddons.tar.gz
78ba886356e44da4798abf9577ab45b68756c741 PostNuke-0.800-RC2-ValueAddons.zip
Notice
The upgrade will only work for .764 sites. If your site is based on an older version this is the time to start your upgrade. If you have any questions about the update, visit the forums.
There will be no major changes from RC2 to the final release. The RC is bug fix only. If you intend to write modules, themes
Generated on December 12, 2007.
-
That Scary Categories Module in Postnuke .8
(News)
-
categories - there were hacks that added subcategories to it. And there were hacks that added subsection to the sections module aso.
Every module had to have it's own categories. But implementing a system of unlimited subcategories is not a too easy task - that is why many modules didn't have subcategories. I always depended on the coding skill of the module developer.
The .8 categories module will solve this problem. It is most of all an internal categories system - the administration you see is only the interface. But do you want to first add a new category there and then add your article in the news administration? That is certainly not what you call usability.
The categories are supposed to be used by the module developers via the API - they can use it any way they want but they only have to throw the name of the new category into the db and won't have to care about the way it's stored there.
AFAIK the Quotes module is the only module that already uses the Category API. But Robert Gasch - the maintainer of the categories system - will write some documentation for module developers soon. There will also be some snippets includes that you can make fit for your modules.
How should the handling of the categories look like in your opinion? We need you "end user input" on that, so that Robert perhaps
Generated on September 17, 2007.
-
Module Developers: Moving towards .8
(News)
-
Value_Addons is an example for all major new techniques being used. Most of all the use of the categories can be studied there.
And there are also the first 3rd party developers who started to work with .8 code:
Multihook - The SVN version of Frank Schummertz's Multihook will be 5.0 and is already .8 only. (NOC: Multihook)
pnUpper - Axel Guckelsberger made the upload hook-module far more flexible now and he completely rewrote it for .8 (NOC: pnUpper)
Publish! - Is one of the first modules solely written for .8. There is no release yet, but the SVN version basically works with MS3. Patrick Cornelissen plans to integrate a revision system before the first release. (NOC: Publish!)
If you are also already programming for .8 I would love to read something about it in the comments here or in your own articles.
Generated on March 3, 2007.
-
Development Update, February 2007-02
(News)
-
release, and some is part of the current nightly build from SVN. The items that are part of the MS3 package are indicated with a (*).
Installer and upgrade path
The installer for .8 now also checks for a web-user writable pnTemp directory. Before, only it's subdirectories had to be writable. However, more and more modules need a (temporary) writable directory of their own (for example cache directories for image creation or rss feeds). With a writable pnTemp, these modules are now easily allowed to create that directory themselves if it does not exist. (*)
The upgrade path from the historic .7 family has been updated: Some code has been added to migrate blocks placements into the new block_placements table. (*)
Furthermore, old style (legacy) blocks can now be stored in the /config/blocks directory. The specific files do need to be copied manually from the old /includes/blocks directory to it's new location. (*)
Core (API) and environment variables
In the core pnAPI, get_magic_quotes_runtime() was called lots of times for different purposes. With an internal caching method, the result is stored in the global PNRuntime array. Big advantage is that the site's speed has been significantly improved. (*)
Robert has added an enhancement to allow the pnSessionGet/Set/DelVar functions to accept an (optional) path argument (arguments 'autocreate' and 'overwriteExistingVar'). This will allow for easy setting of complex array structures. The change only adds extra arguments to the existing functions and are backwards compatible. At this moment, no direct usage has been committed yet.
PostNuke Object library
At this stage of development, a lot of changes are (and have been) made to the object library. Most of them are 'simple' bug fixes, but some changes are worth mentioning here (additional functionality or changed methods).
In the DBUtil class, there now exists a new method to increment a field with the function incrementObjectFieldByID. This can be used by module authors for updating read counts of content items for example. (*)
Additionally, the function selectScalar has been added (which takes a SQL quesry as argument). This is mostly useful for places where you want to do a "select count(*)" or similar scalar selection.
The utf8 conversion functions (convertFromUTF8 and convertToUTF8) have moved from AjaxUtil to DataUtil when solving a bug to keep the users input in Ajax driven fields as they are intended.
While solving a Google AdSense script bug, where the script tags were automatically cleaned by the safeHTL output filter, a new feature has been added to FormUtil: Before cleaning posted input on an already installed site, the FormUtil now checks if the current user has overall admin permissions. This allows site admins to input potentially harmful tags (javascript for example), but it's their site after all!
Jörn has improved CSS style handling in pnForm plugins, as he has changed some pnForm classes to be derived from pnFormStyledPlugin, which in itself is derived from the original pnFormPlugin.
Because it's better to read the languages directory first for available languages and compare that result against the full list of languages in stead of the other way around, the LanguageUtil has a new function getInstalledLanguages. This now significantly reduces the number of directory checks.
To ensure that most commonly used plugins are found as early as possible, the order in the pnRender class, where the system is searching for plugins, has been modified. The current correct order for the 0.8 distribution is:
system/pnRender/plugins
system/Theme/plugins
config/plugins
current theme-directory/templates/modules/$module/plugins
current theme-directory/plugins
current module-directory/pntemplates/plugins
Furthermore, two new variables can be added to the rendered output page using the PageUtil class. First is 'description', which is default set to the current site slogan. Second is 'footer', with the ability to add custom content just prior to the closing body tag. The latter function is applied as an outputfilter.
Finally, an additional parameter 'display' is added to the pager plugin, which can be set to either 'page' or 'offset'. This is (why am I explaning, isn't this rather self-explanatory?) to allow paging by pages, rather than offsets. It also mirrors the 'show' parameter that exists in many templates (based on the example module) but was never actually implemented.
Last but not least, the Theme class has now added support for a filters section in a page configuration file. This allows for loading of, in the first instance, custom output filters. Note there is no user interface to the functionality the moment.And, why not, the Atom theme has been updated to Atom 1.0
Module modifications
The following modules have been updated for improved .8 compatibility, or just to make administering those modules easier.
The User module now has the long awaited alpha pager for browsing users. (*)
All occurences of the block rendering APIs (read by the Blocks module) have changed from the old style call "return themesideblock" to "return pnBlockThemeBlock". (*)
To the Settings module there has been added a configurable separator for permalinks (*)Furthermore, a switch to globally disable JS Quicktags (which adds a set of buttons for common html tags to enabled textareas) is now part of the Settings module. (*)
Both the Ratings and the Multisites module are modified to meet the new standards of coding and templating. Work still needs to be done to both modules, so testing functionality for these modules may not be that worthwhile as yet. (*)
The Theme module takes over from the Xanthia module in an upgrade. This doesn't mean that it is not Xanthia anymore: it still is actually the Xanthia 3.0 engine (*).
To the Recommend_Us module a display hook has been added. This will add a list of social bookmark links, like the Diggers plugin also does.
Language files overhaul
The language defines in some modules have been reviewed and adjusted to the naming conventions of .8 (see also Dev Update 2006-06). This means that module-specific language defines start with a module-name specific prefix. Additionally, some new general language strings (using the pnML function) have been added to the core language file. The major effect this will have is to subtantially reduce the number of strings that need translating.These changes are applied to the following system modules: Admin, Admin_Messages, AuthPN, Blocks, Mailer, legal, Settings and SysInfo. ValueAddons modules will follow later.
PostgreSQL DBMS testers wanted
The .8 DBUtil class, as mentioned many times before, makes it possible to run PostNuke on different DBMS platforms, like PostgreSQL,
Generated on February 20, 2007.
-
Development Update, November 2006-05
(News)
-
New teamlist member: Ammodump
Ammodump was asked to join the team. As quoted from his introduction in the team: "I enjoy being a community member, and that often my comments hold weight. Sometimes my comments and advice are misguided, but sometimes it is hard to understand others questions ;-) ". With two main hobbies (PN and beer), Ammodump seems to be born for the support team here at the community website.
Remote code injection problem
As some people already know, there is a remote code injection problem with the language parameter as mentioned in the Feedback Forum. Both the .7 and the .8 versions have been updated to fix this security vulnerability, so everybody is urged to upgrade their PostNuke version to the latest release (see also Release Announcement). Some background information: The FormUtil::getPassedValue() function also accepts an input vector GETPOST now. It allows to ensure that the contents of _COOKIE are not taken into account when you get data (as it would be when you go through _REQUEST). The input domain is limited to _GET and _POST and not through _REQUEST / _COOKIE anymore. This is applied firstly to the newlang and thistheme parameters, and has been (and will be) applied to the rest of the core functions additionally.
Session handling
Some features have been added to the session handling in the core system:
Session id regeneration (random and on login/logout), making it even more difficult to hijack a session. This has been achieved without any extra writes to the database, so the feature has no overheads.
The ability to rename the session variable (always was POSTNUKESID), and changing from session file storage to session db storage has been enhanced.
Auth-id check to the user login screen (and block) - this has introduced a login bug which has been entered into the bug tracker and will be fixed by the release of MS3.
The session regeneration options are available in the (upgraded) Settings module.
Also fixed for both the 0.764 release as well as the 0.8 release are some PHP >= 5.2.0 issues due to session handling (See the forums, credits to fredatwork). It seems to solve the problems with PostNuke installations running on 5.2.0 or higher.
Minimum MySQL and PHP versions
The minimum version for MySQL has been raised to 4.1.x, due to some installer problems that are related to old 3.x databases. See also MySQL's lifetime philosophy at Planet MySQL. Due to security reasons, the recommended minimum php-version is at least 4.3.10.
Installer
Now fixed are some install problems with register_globals ON. In addition, there has been added a check for register_globals at the .76x install process for information only. The installation of PostNuke on these environments is nevertheless still possible. Sync with the .8 installer is to be done.
System and core modules
The internal variables statusmsg and errormsg are now arrays: it is now possible to capture (and display) multiple errors. Therefore, pnGetStatusMsg() is renamed to pnGetStatusMsgs() and LogUtil::getStatusMessagesText().
Float handling returns from Ajax has been discussed within the team. It appears that floats in the Non-US locales did not correctly set the decimal delimiters. Therefore, the locale has been set to en_US to ensure this. A solution for writing floats to the DB is still pending.
Robert has added the encryption / decryption methods, using the mcrypt library function, for use in the API.
In the Theme module, the plugins for showing the sitename, slogan and complete title have been altered to use multilanguage support.
The Settings module has some nice dynamic interface elements added to the Security and General function types, increasing useability in this one.
The magic_quotes_gpc recommendation for .8 has been changed. It should be off in stead of on. According to php security group, this feature is inconsistent in blocking attacks, and can in some cases cause data loss with uploaded files. Besides the revert of magic_quotes_gpc recommendation, the SysInfo module now also checks for allow_url_include (new in PHP 5.2) and the suhosin patch/extension.
Finally, all variables retrieved through FormUtil::getPassedValue() are now cached
ValueAddons modules
The Pages module now displays the category that each page belongs to in the overview.
The Error module (or Error handler, where error pages within PostNuke are handled) has been undergoing some changes. System errors, forbidden / not-found errors and specific API errors have their own templates and level of error reporting. A no-auth error will result in a more suitable 403 response rather than a 200-response with a status message. As a result, a lot of code has been altered to correctly use the new Log- and Error message handling.
The Wiki module has been renamed to more suitable 'Wiki_Code', as this module is a transform hook to enable Wiki formatting in content items.
The ExampleObj module has been reviewed, revised and updated by Robert. It should serve as a good example for any module writers
Generated on November 20, 2006.
-
PostNuke 0.800 Milestone 2 Released
(News)
-
Those wanting to use categories in their modules can build off the quotes module.
The quotes module supports multi-categorisation, one of the major changes from MS1,
and use of the categories system has also been implemented in other core modules.
We encourage third party developers to use this system for its ease of use and
centralised approach, which is important to both developers and site administrators
alike.
PostNuke 0.8 MS2 should also be the fastest PostNuke release yet. A further query
has been removed from the sessions code, reducing page load times, and this coupled
with the new theme engine and further enhancements across the core should result in
favourable page load times compared with .762.
A great deal of progress and a number of important changes have been made since the
release of MS1 earlier this year, so your testing is appreciated, but MS2 is still
not suitable for a production environment.
As ever, please report bugs to the
Bug Tracker.
Generated on September 29, 2006.
-
Development Update, September 2006-03
(News)
-
From the team
Mark West has been moving house recently. Since Mark usually takes holidays just after each new release, some of the devs thought this was just a new kind of "holiday" he was taking before new releases. This is now confirmed :) but this type of holidays comes with far more debt than the other type and isn't anywhere near as much fun. However, the joy of a new home came with consequences: no proper internet connection at home... But, Mark is not the only one moving. Also Wendell, Frank and Vanessa have moved or will move in 2006.
Another milestone has been reached: On September 7, 2006 (10:25:52), Mark committed revision 20000 to the repository. A celebration and big party still needs to be organised.
PostNuke.eu
For about a month, the domain name postnuke.eu is in hands of the German PostNuke foundation. This domain and the accompanied website aims to be an informative portal with information in several languages, and links to the various communities. This a call for translations and links, you can send them to pnteam (at) pn-cms (dot) de.
Status on release(s)
Read this article now, as this one is probably moving a bit downwards on the portal page quite soon. MS2 is scheduled for release by the end of the week, and if this is announced, nobody will be interested anymore in this article... So read on now, while you can! :)
Date Format change
Discussed in the team, and committed to the repository, is a better structured way of date formatting and display. First, the date formatting in the DateUtil class was changed. Default formatting is the same as before, but it is now generated using strftime() instead of date(). Furthermore, the behaviour of the smarty modifier has been changed: Instead of defaulting to Y-M-D format, it now defaults to the language constant _DATEBRIEF which is like "Sep 29, 2006" in english. Finally, both smarty plugins "pndate_format" (modifier) and "dateformat" (function) are now using DateUtil::formatDatetime. This makes both plugins consistent.
Module authors are encouraged to use the DateUtil functions in their modules, and the smarty plugins in their templates.
Categories, plugins and core system changes
On the categories system, the mainCat parameter has been renamed to a more common rootCat parameter. To summarize all the commits last weeks by Robert Gash and some team members, the categories integration code has been finalized for testing and the Quotes module serves as the categories example (and has been configured to allow multi-categorization). One item can belong to more than 1 category.
The footer meassage (see
Generated on September 28, 2006.
-
PostNuke .8 MS2 Release Estimate
(News)
-
the news module include an Ajax editing interface, but I will leave it to our new team member Arjen to go into more detail here.
So, to the title of the article. We estimate that 0.800 MS2 will be released sometime during the week beginning 4th September. At this point, the core database structure will be finalized and we can begin to finish work on cross database compatibility. That, and the completion of all modules, will be the aim of 0.800 MS3, with the first RC soon after.
Please feel free to test MS2 in development environments once it is released, but we must stress again that 0.800 code should
Generated on August 22, 2006.
-
The Road to .8 - Where are we, and where are we going?
(News)
-
The modules included in .760 which are templated, and taken direct from the .8 CVS are as follows:
Admin
Admin Messages
Autolinks
AvantGo
Blocks
Censor
Credits
Ephemerids
Groups
Header_Footer
Legal
Mailer
Members List
Messages
Modules
Permissions
pn_bbcode
pn_bbsmile
pnRender
Quotes
Ratings
RSS
Sniffer
Typetool
Xanthia
This represents a significant percentage of the .8 code, but there is still more to do. The aim of this article is to try and outline some of what remains to be done before we can consider a release of .8.
Six Main Projects for PostNuke Development
We have identified six main sub projects vital for a release of .8. These projects cover wide areas, and each are at different stages of completion. The six projects, in no particular order, are:
Integration of Open Star object library and Database Utility
Integration of Open Star category management
Installer
Xanthia
User management
Finishing of content modules
This article also includes a little information on some of the other new code to be introduced with .8 this is at the end, where we look at EZComments and the Error Handler.
Integration of Open Star Object Library and Database Utility
The new Database layer reuses the existing pntables information to provide an
object representation of database rows. The advantage of this approach is that
it allows you to basically remove manually coded SQL statements and replace
with what's typically a 1-line statement. Some sample invocations of such code
are shown below:
[code]
$myObj =& DBUtil::selectObjectByID (, $id);
$myObj =& DBUtil::selectObject (, $where);
$myObjArray =& DBUtil::selectObjectArray (, $where, $sort);
DBUtil::insertObject ($myObj, );
DBUtil::updateObject ($myObj, );
[/code]
These functions all return an associative PHP array, or in the case of array
functions, an array of arrays. The fields in this array are cleaned up in
the sense that any field prefixes have been removed. This DB API also
gives you the ability to have generate associative (object) arrays, expanded
arrays with other table fields joined in (which means that you can save SQL
lookup calls) as well as store/retrieve dynamic attributes without altering
the underlying table structure. Together this provides a highly flexible API
which can take care of all storage & retrieval operations.
On top of the DB layer sits the Object Layer. Objects provide a component model
which features transparent persistence facilities. Objects/Classees are loaded
though the Loader API though
[code]
Loader::loadClassFromModule (, 'foo') //
Generated on November 3, 2005.
-
PostNuke 0.760 released
(News)
-
Summary of Main Changes
Further cleaning of HTML
pn-normal custom class removed in favor of styling of block level element using CSS
pn-pagetitle class replaced by use of h1 tag
pn-title class replaced by use of h2 tag
all fake lists created using middot's replaced with proper lists
Simplication of non API compliant links
op=modload & file=index are the defaults so these are removed from all links
New printer (Xanthia) theme - enables printable view of any page
A printable view of any page is available using the printer theme. Append the url theme=Printer to the url or build a 'print me' button into your theme.
Removal of NS- prefix on all modules
All modules that contained the NS- prefix in the directory name have had this removed. This prefix is a result of our origins in php-nuke.
Baseline security analyzer
This new feature adds a check for some of the more basic configuration settings that can enhance the security of a PostNuke installation.
New features in core
Modules can now be referenced using an 'alias' via the module display name setting.
Default start function type, function name & parameters to the function can be defined. Note: API compliant modules only.
Standard database connection error moved to a 'template' in includes/templates.
Ability to turn the site off for maintainence (access to provided via permissions setting).
Smarty updated to v2.6.10.
ADODB updated to v4.6.5.
Modules
Admin_Messages, Modules, Blocks, Permissions, Groups, legal, Censor, Messages, Ephemerids, Quotes, Autolinks, AvantGo, Credits, Members_List, Ratings & Admin have been updated for full API compliance and templated output.
New modules
Sniffer; Detects browser and browser capabilities using phpSniff (by Roger Raymond).
RSS; Replaces dated feed handling with an xml based parser (magpie rss).
Bug fixes
Xanthia - many fixes since original release.
Mailer (added support for additional headers, bcc's & cc's), fixed sending to multiple addresses.
New features in modules (in addition to API compliance and templated output)
Modules module
filter by letter, state
graphical indicatator of state
detection of change of type, admin & user capability
ability to recover from missing files state
Blocks
graphical indicatator of state
ability to define each block as collaspable (credit to Mark Heldstab)
ability to define each blocks' default collapseable state (credit to Mark Heldstab)
Others
Groups - ability to add multiple users to a group in one go
legal - added template accessibility report (thanks to http://diveintoaccessibility.org)
Censor - added transfrom hook for censor module (supercedes pnVarCensor API - maintained for backwards compatability)
Admin - added ability to split modules into categories, the categories view are skinable via a single stylesheet
Credits - support for multiple module contacts via comma seperated values in pnversion.php
Generated on August 22, 2005.