PostNuke

Flexible Content Management System

News

Happy Holidays - Here's to Next Year!

We'd like to think that all these changes have been for the better, and that PostNuke has moved forward. Some of the more fundamental changes, the new PostNuke Software Foundation and the Steering Committee, stand PostNuke in good stead for rapid future development and evolution. A number of important projects will be completed at some point in the New Year, and we'd like to focus on two specific projects - the .8 release and the new PostNuke website.

The first major advancement next year will be a .8 'adam_baum' MS (milestone) release, some time in Q1. Although this release won't be feature complete, or even considered completely stable, it provides an opportunity for third party developers to examine the exciting new technology to be made available for .8, and signifies a moment when the .8 codebase is mature enough to run in a developmental environment. We'd expect this to be the first in a series of milestones and release candidates before we near a full, stable release of .8, but everyone agrees this is an important step forward.

Secondly, we aim to have a fully redesigned www.postnuke.com website published. For some time now, the current muti-site structure has been confusing to newer users and prevented us making available the right information to both new and established members of the community. This project is coming along very well, and while we don't have an estimated finish date yet, we will make available more information as the time draws nearer.

Finally, we'd all like to thank you for your continued support, and we hope you are looking as forward to the New Year as everyone in the PostNuke team.

Merry Christmas and a Happy New Year from the PostNuke Team



AutoTheme Stand-alone version

So, you are a PHP person and put together some PHP sites for you or your customers and don't use a CMS such as PostNuke, you just code some pages to do what you need. AutoTheme runs by itself, yet allows you to "include" it and use all of the AutoTheme themes available!

Also, it is easily used as an HTML Theme System for other PHP applications that you may have acquired/downloaded. Just add some include statements to the header and footer files and you're using AutoTheme and the thousnads of themes that have been designed for AutoTheme.

I can release it at this moment, but am soliciting feedback to see who would want it and what the applications would be. Post a comment and let me know!

Thanks!
-Shawn

Another step towards PostNuke 0.8

The first step is to port both modules to pnRender and make them pnAPI complaint.
We're also do a complete rework of the old code.

The second step is to change of database structure in order to allow unlimited subcategories and to reduce the number of the tables.

The third step is to add an upload function for the Downloads module and to replace some old functions with hooks ( EZComments, Ratings-Hook, ...).

For additional information about the modules visit the noc project sites:

Downloads: http://noc.postnuke.com/projects/downloads/
Web_Links: http://noc.postnuke.com/projects/weblinks/

German PostNuke Foundation Launches New Support Site

The main idea was to have a new, clear layout with more functions for our community members. Larsneo, who was responsible for the general layout, chose Yet another Multicolumn Layout as a development basis and formed the final Xanthia theme out of it as you see it now. One nice feature of the new theme is our mascot - the until now nameless business-bear.

In the following we used advProfile (example), pnGroups (example), the unreleased pnMessages, Pagesetter (example) and the recently released Avatar.

It turned out, that it is no magic to build a nice community site using templated modules. We all experienced the power of Xanthia/pnRender in the making of this site.

We hope the German community will enjoy the new features.



PostNuke Organisational Structure

Task Forces

Task forces may be formed as necessary for individual tasks. An example of this are is PostNuke site redesign task force. These are more dynamic team elements, led by a specific member of the PostNuke team (not necessarily a team leader named above). Task forces are more temporary, and could include members of the community who are not PostNuke team members but offer a specific skill set needed for the task in hand. Leaders of task forces should also report to the Steering Committee monthly.

Reporting Structure

Each team and task force leader should report to the PostNuke Steering Committee approximately once per month outlining progress (if any has been made). 'Reporting' is meant in a loose sense, and can be a quick informal chat or an email. This information is then combined with information on the activities of the Steering Committee and sent to the postnuke-teams list for internal review. When internal discussions on the information presented have taken place (this could be setting goals, making suggestions, improving plans), a community announcement should be made.

This is not set in stone. Everyone is a volunteer and timescales are flexible as a result. It is also entirely acceptable to report 'nothing has been done', providing the project can be seen to progress at regular intervals. Deadlines and completion dates will not be set unless absolutely necessary, such as when one project is dependent upon the actions of another. In general, flexibility is the key.

Team Members

Team leaders in bold.

All teams come under the Steering Committee excepting development, which at this time has autonomy for the purposes of keeping the development of PostNuke software objective.

PostNuke Steering Committee

Simon Birtwistle
Frank Schummertz
Robert Gasch
Franz Skaaning
Frank Chestnut
Jörg Napp

Development Team

Mark West
Andreas Krapohl
Robert Gasch
Frank Schummertz
Frank Chestnut
Simon Birtwistle
Jörg Napp
Jørn Wildt
Drak

Support

Simon Birtwistle
Mike Halbrook

Documentation

Jörg Napp
Simon Birtwistle
David Nelson
Organisational Chart

Technical Administration

Drak

PostNuke Site Administration

Drak
Simon Birtwistle
Mark West
Andreas Krapohl
Frank Chesnut
Frank Schummertz
Franz Skaaning
Robert Gasch
Jörg Napp
Vanessa Haakenson

PostNuke Pro Site Administration

Simon Birtwistle
Andreas Krapohl
Mike Halbrook
Vanessa Haakenson
Drak
(Project leader yet to be appointed)

Server Administration + Remote Restart

Drak
Mark West
Andreas Krapohl
HostNuke Staff

Languages and Localization

David Nelson
Assorted Language Pack Maintainers

Communications and Marketing

Franz Skaaning
Simon Birtwistle

Design

Team yet to be appointed.

Security

Andreas Krapohl

Quality Assurance

Patrick Cornelissen
Sebastian Schurmann

Pixels for Sale at PostNuke dot com!

What are pixel ads?
In case you haven't heard about the newest fad in online advertising, a pixel ad allows you to purchase a space for an image, paying 'by-the-pixel', a link, and the alt. text tied to the image - unlike other banner or pay-per-click (PPC) advertising there is only a one time cost associated with a given duration that your pixel ad is visble. PostNuke guarantees visibility of purchased pixels for a duration of 2 years.

Why buy?
Buying pixels at PostNuke.com is a smart business move because it's inexpensive, you get results and you can demonstrate your support for the project. For a minimal one-time investment, a $100 square works out to 14 cents a day, which drives traffic to your site for the next 2 years. A prominent link to the Pixels.PostNuke.com page from the PostNuke.com home page will assure a constant stream of traffic and exposure of the pixels.postnuke.com page. As we grow your link will directly benefit – the more popular we get, the more traffic you'll get -- and you will directly benefit, without having to pay anything extra, from all the additional clicks.

Does it work?
The PostNuke pixel ads page will be promoted and linked directly from the PostNuke.com homepage so supporters can be assured of traffic, and it will be a great resource for anyone looking to work with companies who actively support the PostNuke project.

Visit the site to view or buy pixels today!
http://pixels.postnuke.com

About PostNuke.com & PostNuke Software Foundation (PNSF)
Launched in July 2001, the PostNuke project is an open source content management system distributed freely under the open source general public license (GPL) with hundreds of thousands of sites using the software around the world. In June 2004 the PostNuke Software Foundation was established to provide the legal structure & identity in the form of a non-profit foundation to ensure the project continues to grow and develop beyond the individuals contributing. The founding members of the PNSF organization are Harry Zink (Fizbin Consultants, LLC), Mark West (Lead Developer), German PostNuke Foundation (currently represented by Andreas Krapohl), Drak (HostNuke), and Vanessa Haakenson (Distance-Educator.com).


Packaging PostNuke - An Overview of Distribution Methods

This brings many advantages, in PostNuke .8 you will know what you need to run your site, and what you can throw away. Additionally, you won't have to remove all the modules you don't want to use prior to installing PostNuke, as the main distribution will come empty, ready for you to expand. There will also be a greater sense of structure to the PostNuke distribution.

Having said that, there will also be disadvantages. The main PostNuke distribution will have nothing other than the basic framework to run a site. You won't have any of the old content modules, hook modules, or anything to allow you to simply download and use PostNuke. This is where the targeted distributions come in. On PostNuke.com, we will be distributing a set of targeted distributions aimed at different audiences. These targeted distributions won't necessarily contain just core modules, third party modules can also be included. How third party modules could be included and what quality control measures would be implemented is still under debate, as having code not directly maintained by the Core Development team in the official distributions brings its own problems.

So what sort of distributions could we see? Well, there's plenty of scope for distributions of all kinds. For example, some categories could be:

  • Content Management Solution
  • Business Portal
  • Community Site
  • Blogging Tools
  • Gaming
  • Demo Distribution
This list can be extended as necessary.

Of course, the targeting doesn't just stop at modules. We'd like to see a new set of themes in the core distribution, and these can also be targeted. In addition to a few core themes, each distribution could have several themes intended for the specific audience of the category of site chosen.

So, as necessary, each different distribution can include forums, content modules, a helpdesk, blogging utilities, the list is endless. And, thanks to this new approach to distributing PostNuke, users should find it easier to start off with PostNuke. Rather than downloading the core distribution now, seeing some content modules with some obvious gaps in functionality, much of what a user could need for a specfic type of site should already be available to them. Furthermore, the demo distribution can include a selection of modules that best give an idea of the huge functionality PostNuke provides, hopefully attracting more and more people to experience the power of a PostNuke website.

None of this is set in stone, but this article should give you a fair idea of what is to come and how the distributions will work in future. If there are any further questions on specific aspects of the PostNuke .8 release, please do raise them, and we will do our best to answer through comments or articles as appropriate.


The Road to .8 - Where are we, and where are we going?

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 (<pntable_key>, $id); $myObj =& DBUtil::selectObject (<pntable_key>, $where); $myObjArray =& DBUtil::selectObjectArray (<pntable_key>, $where, $sort); DBUtil::insertObject ($myObj, <pntable_key>); DBUtil::updateObject ($myObj, <pntable_key>); [/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 (<module>, 'foo') // <-- single object class Loader::loadClassFromModule (<module>, 'foo', true) // <-- array class [/code]

and classes are searched for in <module>/classes and take the following naming convention (for an object called foo):

[code] PNFoo.class.php PNFooArray.class.php [/code]

The object layer is quite flexible; you can use it handle object persistence but it's also capable of abstracting object class usage cases without providing persistence. The object layer is built in such a way that for most typical objects, providing a 5-line constructor is enough to implement the basic DB persistence features needed. The object implementation provides a lot of hooks to further customize the behaviour of (complex) objects. Since objects provide a standard API, handling code (such as pnuser.php) can also be written to use generic object which results in substantial code savings since 1 function can be built to handle (for example) retrieval of *any* object.

Together the database and object layer allow you to implement complex functionality while writing very little code thus greatly facilitating and speeding up module development while resulting in higher code quality since most persistence operations are now handled by a standard library.

Integration of Open Star Category Management

pnCategories is the new central PN category manager. It is based on a path-based model because this can provide some semantic meaning to the programmer. In a nested/set based model you would access your Category through an ID (such as 5231) which has the drawback that 5231 (or any other number) has no semantic meaning whatsoever. This category manager uses a path-based approach since this gives allows you to do

[code] CategoryUtil::getCategoryByPath ('__SYSTEM__/Modules/Topics'); [/code]

which right away tells you "aha, I want the topics catgory". Due to MySql limitations the path field is not indexed (MySql4 can only index up to 255 Characters in a text field), however an alternative repesentation exists internally which is a numeric path field, so that the above path category retrieval can also be implemented as

[code] CategoryUtil::getCategoryByPath ('1/12/32', 'ipath'); [/code]

This field is indexed and if you access something by a (string) Path, the first resolution is done by (string) path and any subsequent gets are done by the (integer) path. There are probably some more refienmens which can be applied to this model, but fundamentally it works and has proven it's usefulness since most of the OpenStar modules use this category manager without any issues.

The category manager also provides 5 extra data fields which means that the category manager can also be used to provide extended categories (think of PostCalendar where each category also has a color code associated to it) without having to write extra code. In short, this category manager has the potential to get rid of a lot of small supporting tables.

Installer

In line with the aim of creating a slim core which can then be expanded on in customised releases, the installer has been recoded to increase the flexibility of the install process. The new installer is now in CVS, and you can test it out by downloading the latest CVS snapshot. The process now includes context driven help links, simplifying the install process for new users.

Xanthia

Xanthia in .8 will be given a major overhaul. The underlying code has been completely rewritten to turn Xanthia into a subclass of pnRender, thereby greatly reducing the size of the Xanthia module, and also giving a performance boost, especially under PHP5. Furthermore, the user interface will also be redesigned, and we are looking at a closer integration of Xanthia's block control and the Blocks module itself. These usability enhancements should help those new to Xanthia build up knowledge of the system quicker, and those already experienced in the use of the module should find that using Xanthia has become 'streamlined', and more intuitive.

User Management

One of the major tasks remaining for .8 is in the area of User management, and the user modules in general. This can be further sub-divided into three sections.

Groups

Some users of the third party modules pnGroups and pncGroups will already be familiar with the functionality enhancements the .8 Groups module could benefit from. We are investigating adding additional features taken from pnGroups and pncGroups as well as the enhancements already seen in the .760 Groups module.

Profiles

Simply put, the Profiles module will display all the profile information for a user, in the way that the Users module does currently in .760. Franky Chestnut's advProfile module, as see at pnConcept is the base for this module. It supports Smarty plugins so that third party developers can take advantage of the profile functionality by adding their own information to the page. For example, a user's latest forum posts could be displayed if the correct plugin was available.

General User Enhancements

There are many feature requests in the NOC Feature Request Tracker that will be implemented into the users system. The key here is flexibility, in .8 we'd like to see the Dynamic Userdata become more usable, and as a result a separate module to handle this functionality has been created. There will also be the ability to search through the userbase for a specific user, and many other enhancements. New features should include:

  • The ability to choose between email and username for login forms
  • Profile fields only accessible to the Administrator
  • Enhanced user searching
  • Clean up ghost users, such as those with broken email accounts
  • User activity log
  • Group membership (or any action) based on hooks and registration
  • Activation email (phpBB like account activation)

Completion of Content Modules

As previously mentioned, many of the .8 content modules still need to be integrated into the categories system. There also remains further development to be done on some modules. This is a less critical area of development, as the content modules will no longer be included in the main distribution with .8, however all modules maintained by the core development team will be templated through pnRender and fully API compliant in the .8 release.

Error Handler

With the new Error Handler module in .8, a developer can now throw an error using the standard PHP function trigger_error() such as:

[code] if(empty($myvar)) { trigger_error('myvar is empty!', E_RROR); } [/code]

In this case the script is stopped immediately and the user will see "myvar is empty!". Normal notices E_NOTICE or warnings E_WARNING will not be shown unless the error handler is configured to do so. Should the user have administration permissions over the module that caused the error the lines of code causing the error will also be shown.

An extension of this might be to log all errors in a database table so that the Admin can check from time to time what went wrong, e.g. missing or duplicate defines that throw a notice, the use of an uninitialized variable or severe errors he has not been informed about by his users. It is also possible to dump all variables that were active when the error occured (which is still under review as ADODB stores passwords in plain text in its object).

We do not use exceptions because they are a feature of PHP 5 and we do not want to raise the minimum requirement for PostNuke from PHP 4.1.2 to PHP 5.x. And exceptions are not as easy to use as the error handler, a lot of code is needed to get them working, mainly in the modules that want to use this feature.

EZComments

EZComments will replace the core Comments module for .8, removing the disparate and non-API compliant comments solution available in previous versions. The advantage of EZComments is that it provides a single solution to add comments functionality to all module supporting display hooks, and the module also includes advanced moderation features not present in the current version of the Comments module. The recently released RC version of EZComments (see the article on http://mods.postnuke.com gives a preview of the features to expect in the upcoming version. Should you wish to take advantage of EZComments functionality before .8, the News module in .750+ supports display hooks, however a patch is available in CVS for .761 to provide better integration with EZComments until .8 is released. You can download the patch here.

Tracking Development

If you are interested in tracking PostNuke's progress towards .8, you can subscribe to the postnuke-cvsnotices mailing list. This send you each change made to the central CVS repository by email, so you can see the changes as they happen. We recommend this primarily for third party module developers. For more general use, the latest snapshots from CVS can be downloaded here. We endeavour to keep the CVS in a working state, however as the PostNuke code is constantly changing things will occasionally not work. If so, please submit an entry to the bug tracker (link below).

Useful Links

Bug Tracker
Feature Requests


CMS/PN article on UnixReview.com

As open source software (OSS) becomes mainstream and is backed by large vendors, OSS content management systems have become a viable option for enterprise-scale deployment. The field of CMS has seen particularly strong growth in OSS solutions, perhaps in direct response to the high prices that commercial CMS have historically demanded. There are also other benefits inherent in the use of most OSS CMS, such as ease of customization, the use of open platforms, unrivalled flexibility, remarkable extensibility, ease of integration, strong community support that leads to rapid problem resolution, and much more. Since OSS CMS have matured to the point where they should be considered side by side with commercial alternatives, they pose a sensible business alternative to commercial solutions."
First Page Previous Page Page 17 / 277 (161 - 170 of 2763 Total) Next Page Last Page