-
What's going on?
(News)
-
know the Core team released RC2 of Postnuke .8 - the Steering Committee's report we are just working on will deal with the details.
2. Jørn Wildt released a first version of his "Content" module:
"Finaly I have finished the first version of my new Content module. With this little goodie you get HTML editing, YouTube video, Google maps and more features out of the box. This module was inspired by Typo3 and the never-finished PostNuke module Publish!" -- elfisk.dk
Content is a module that you can use to create static pages. It supports several predefined layouts (1 column, 2colums + header aso) and you can also add your own templates. In the editor you then can drag and drop content items like texts, images, youTube videos or Google Maps around and place them anywhere you like within the layout.
3. Together with "Content 1.0.0" a new version of Jørn's Mediashare gallery is available. Yet it still needs an installed Topics module to run under .8.
4. pnForum 2.7(.1) is finally released. A test version served the German Postnuke community for months and now he fixed the last bugs and made a public release.
5. Sven Schomaker is about to release Scribite 2.0 - It includes openWYSIWYG v1.4.6c as new editor and new versions of Xinha (v0.94), TinyMCE (v2.1.2), FCKeditor (v2.4.3), a lot of new module plugins and languages.
6. Axel Guckelsberger finished his diploma thesis that discussed the use of model-driven software development (MDSD) for Postnuke and resulted in his "ModuleStudio". Although ModuleStudio is far from complete it is way ahead in terms of modern software development. And if it turns out right MDSD is one of the next big things after object orientation (OO).
7. User ftree started work on a new gallery (pnAlbum) some months back and now published an article about his work. In preparation of the gallery he programmed some basic functions which turned out to be suitable for everyone who wants to program a module. If you want to you can take a look at his work.
8. There's a new pnCommerce team in formation: Rüdiger Hahn, Jim Hatfield, Chris Candreva, Bernd Plagge and some others are long time pnCommerce users and all maintained their own fork of the module. Now they are trying to put all their code together and a new version out for public use.
9. Marco Kundert is still working on his .8 follow-up for Pagesetter called Pagemaster. His first release will be 100% compatible to the latest version of Pagesetter so that you can simply import all you Pagesetter content into Pagemaster. Pagesetter introduced many ideas into Postnuke that have now become part of the core: Postnuke .8 has Workflows system and the idea of Pagesetter's form framework (Guppy) can now be found as Forms API in .8 and the WYSIWYG-Editor is now in Scribite generally available - Pagemaster uses all these features and thus can be much leaner.
10. Robert Gasch is working on a commercial shop module. He allowed me to take a look at it and it looks really great. Robert made his living for the last few years by setting up shop solutions for customers and now uses this experience for his new module.
11. Mateo Tibaquirá released a first version of his port of the standalone Relay AJAX directory management application. Includes drag-n-drop files and folders, a dynamic loading file structure, thumbnail views, multiple users & accounts, batch uploads, shopping-cart/batch downloads.
I am sure I forgot some people and I know there's a lot more going on in Postnuke land. But I'd like to leave some news for further articles.
If you are working on a news-worthy Postnuke project please contact me via personal message
Generated on December 22, 2007.
-
Jørn Wildt Proposes New Content Module
(News)
-
For the discussion see: http://community.postnuke.com/module-Forum-viewtopic-topic-53152-start-0.htm
Here is what Jørn has in mind:
[quote=Jørn Wildt]Dear PostNuke community
One of the things that always comes up when comparing PostNuke to other Content Management Systems is its lack of real content management. All we have is some old News, Pages and FAQ (and some more) management modules - nothing really fancy. You can add fancy modules like PagEd, Pagesetter, pnWiki and others but somehow they all lack, well, something - something which I find rather difficult to pinpoint. They are either too complex, too simple, impossible to extend and do not integrate well with each other.
I have been doing some thinking about this issue and would like to present some ideas for a new Content system in PostNuke. A framework that newbies can work with right out of the box, an extensible framework, and a framework with well integrated components that are aware of each other. My ideas are by no means rocket science and most, if not all, have been implemented else where - just not in PostNuke.
If you ask me then PostNuke is going to dwindle away unless something serious is done to add a good content framework. Here is my suggestion.
[b]Content Types[/b]
The core component is the "Content Type". For those of you that knows Pagesetter this is exactly the same as Pagesetter's Publication Type. This will be a separate module that takes care of defining content types, editing and displaying content items - but without user navigation! Think of an Article, with it's title, lead-in text, main text and image, as a content item of the type "Article". The type specifies the fields that are available for a single instance of the type - a single content item - a single Article.
Content Types are management by the site administrator (but can also be created by other modules). The admin can choose from an extensible (through plugins) list of field types. Here are some examples (mostly copied from Pagesetter):
- String (one line text), Text (non-HTML), HTML (using Scribite!)
- Number, checkbox, date
- Media files (using Mediashare)
- File uploads
- URL, email
- Computer code (text displayed with line numbers in mono spaced font)
- Category (using PN .8 categories), both single and multiple select.
Now you can create an article as a title (string), lead-in (text), main text (html) - and many other types of content. But there is still no navigation - neither on the admin side nor the user side. All you have is a Content module that allows you to create content types, content items and then display these - assuming you now the URLs. Navigation is delegated to other modules - more on that later on.
The core framework does also handle input form generation: it will auto-generate input forms (using pnForms in PN .8). These can then be copied to another location and re-designed using the standard Smarty templating system.
The core content module handles a few other things: for instance revision history (who changed what and when).
[b]Content Management[/b]
So far there's nothing new compared to Pagesetter. So lets take a look at the admin side of navigation - how to store and locate your content items. I suggest that all content items are stored in a folder structure identically to your standard disk drive. On the harddisk you manage folders and store files in them. In the CMS you also manage folders - but now you store content items in them - indifferently of the content type.
The first challenge is how to handle user contributed content since normal users don't have access to the administrative folder system. Now remember that the core Content system allows anyone (with the right permissions) to add content, but where should it be stored? I suggest a standard "incoming" folder is created for this purpose (much like your mail system). The editors can then keep an eye on this folder and move new content to the right folders.
Actually there should be one "incoming" folder for each content type and it should be possible to specify which it is. In addition to this the system should have a flexible workflow system a'la Pagesetter (now already in the .8 core). So that different editors and authors and admins can be notified when new submissions arrive.
[b]Content Structure[/b]
But there's still not much difference from Pagesetter. So what's the point? Well, enter CoType - this little module, which I'm rather proud of, has some nice layout features that I would like to copy. First of all you have Boxes - elements that can be floated left/right/top/bottom relative to the current content. In CoType you have boxes for media items, program examples, and general text. I would like to extend this so that you can put any content item inside a box. So you can display and Article and put one or more Media type items in boxes as illustrations.
Another thing to copy from CoType is the use of nested content - sections in sections. This concept should be extended, just like the boxes, with the ability nest any content item inside another item. The only problem here is how nested content should be displayed? In CoType you always have sections in sections (in a document) - and there's a well defined standard way to display this. But what happens if you sudden nest a Music album inside a FAQ inside a Media item ... and then box it? Well, that will have to be solved as we go.
I suggest the Content Type configuration lets the admin specify which types of content you can nest inside another.
The system could also enable boxing of other modules contents - assuming some kind of API/interface the external modules have to implement (just like PostNuke's search API).
[b]Content Layout[/b]
The proposed layout scheme is so far rather fixed - something like this:
- Top content item title is displayed inside ... tags.
- Nested content title is displayed in ... (and so on for further nesting).
- All nested content is displayed on one page.
- A small table-of-content is displayed at the top (linking to sub-content anchors).
- Each (nested) content item is displayed with a standard auto-generated template.
- Boxes floated to the left/right are displayed in 50% width (like CoType)
- Top/bottom boxes are displayed in 100% width (like CoType)
This will allow newbies to quick and easy created new content without having to also design their own templates. Assuming of course that the system comes with a suitable default set of content items.
Experienced users can edit and change the auto-generated templates. But these will be recreated everytime the administrator changes the Content Type configuration. So experienced users must copy the templates to another location and then edit them to fit their own needs.
[b]Navigation[/b]
So far I have ignored the concept of navigation between different content items completely. This is because it can be done in so many different ways - and this is mostly where the different types of PostNuke modules distinguish themselves. A media gallery has a completely different navigation paradigme than a News list, a Wiki and a Weblink collection.
So I propose to delegate navigation to other modules. This has already been done with success with a calendar (pgcalendar) and a news archive (pgarchive) for Pagesetter. These two modules takes a specific Content Type and displays it's items a calendar view and a monthly listing view. This combination is extremely strong - you can add all the fields you want on a Calendar item - and still display it using the standard calendar view. Throw in the nested content and the boxing ability and you get an extremely flexible and yet simple Content Management System.
[b]List Navigation[/b]
The basic navigation is simple a pageable list of items ordered by some criteria. You create different lists and then refer these in the URL. For each list you configure which content type(s) to include, the default sorting order, the display template to use for each item - probably more. Including more than one content type gives some problem with respect to sorting.
This implements the typical News list on the frontpage.
[b]Catalog Navigation (collections)[/b]
This is the typical Weblink and File Up/Download navigation through a collection. The hierarchy is mirrored directly from the content folders.
[b]Calendar Navigation[/b]
Displays content items by date in a calendar (see for instance [url=http://www.fgc.dk/index.php?module=pgcalendar&tid=40]http://www.fgc.dk/index.php?module=pgcalendar&tid=40[/url]). You need to specify which date fields to use as start/end date of the entries.
[b]Archive Navigation[/b]
Displays content in lists organized by month (see for instance [url=http://www.fjeldgruppen.dk/arkiv.html]http://www.fjeldgruppen.dk/arkiv.html[/url]).
[b]Menu Navigation[/b]
On thing that frustrates me with PostNuke is the horrible way you edit menus through the Block interface. No - lets allocate a complete module for menu editing and then just select which menu to display in which box (I believe Content Express does this). With the integrated content framework you can now let the editor select content items from dropdown lists or similar - and avoid having to copy/paste raw URLs into the menu editor (this has always been a intellectual bottleneck for the people I have created websites for).
I would also like to see editing of the menu directly in the front-end. The editor should always have an "add current page to menu" icon in the menu. He should also be able to drag and drop menu items without having to jump to the admin interface.
[b]Frontpage Setup[/b]
This is just another idea of what you can do - not necessarily something to actually implement. But the frontpage need not necessarily be a list of latest items as on most portal websites. It might also be a fixed setup based on a grid where you can assign different content items to different locations. For instance Articles to the left, Banners to the right, and a few images at the bottom.
[b]Where to go now?[/b]
Now who's going to implement all this? Good question considering the speed of the core development. I would love to be on the team (and will be) but my time is restricted (especially now that I got my first kid) so I work rather slowly.
Any volunteers?
There's also the question of organizing the code - we cannot have much more than one or maybe two developers on the core Content module. But as soon as that is ready we can take more people in - one for each kind of navigational scheme. Other people can then work on the default content types.
We also need to consider how a system like this fits into the PostNuke distribution. Does it have it's own release cycle? Is it integrated with the core?
Enjoy 8-)
/Jørn[/quote]
Generated on September 4, 2007.
-
Development Update, March 2007
(News)
-
Dot 8 evolving: language files progression and legacy functionality
Thanks to the testing of the community users (yes, YOU!), some legacy functions (residing in /includes/legacy/ have been updated by Simon to solve some bugs. This is another proof that we do need everyone to test the releases and help not only yourself to make this release a success! The following files have also been marked 'deprecated', with an accompanying comment in the DocBlock: admin.php, backend.php, banners.php, error.php, modules.php, print.php and user.php. These files shall be removed in the next (post-dot8) major release.
The overhaul of language files has also applied to the Groups, Theme, Users and Profile modules. These modules now have better multilingual options and (by using the pnML function), making it a lot easier to translate the package and showing better logic in grammar for localisations. Furthermore, lots of open bugs have been solved and the templates have been revised also. For example, the emails sent by the Users module can now be adjusted by just editing a template!
David Nelson has offered to completely review the language files for dot8, and we all have to thank Olaf Fichtner for helping revamp the current language constants. The PostNuke Languages Project is actively following the development!
Important change in the language strings is the use of the _CREATEDBY / _CREATEDON and the _UPDATEDBY / _UPDATEDON constants. For better support in other languages, these are replaced by the following:
'_CREATEDBY', 'Created by %username%'
'_CREATEDON', 'Created on %date%'
'_CREATEDBYON', 'Created by %username% on %date%'
'_UPDATEDBY', 'Last updated by %username%'
'_UPDATEDON', 'Updated on %date%'
'_UPDATEDBYON', 'Last updated by %username% on %date%'
and can now be accessed through the normal pnml plugin in the templates.
System modules: pnForm and PageLock
Jørn has moved the pnForm framework to it's own module location within the system directory. Major reason for this is to properly save some pnForm specific javascript and style files. Usage of the module should be quite the same. In addition, some new context menu plugins have been added. These plugins create a popup menu to be used as a right-click context menu. More information can be found in the added files in the pnForm plugin directory, and at the pnForm Wiki Pages.
Also introduced by Jørn is a new system module. The PageLock module is a module that helps enforcing single user access to a specific page, by blocking access to other users when one has it open.
Example: User A opens article X for editing. This is registered on the server. User B tries to open article X for editing too. But as soon as the article editing window is opened, it is overlayed with a transparent dark film and a box in the middle tells the user "Sorry this page has been locked by user A - please wait or come back later".
Functionality: The lock is maintained by an Ajax plugin that keeps pinging the server as long as user A keeps the editing page open. When user A closes the window then the pinging stops and the lock times out. If user B chooses to wait then his page keeps pinging the server for the release of the lock (also Ajax) - and when that happens he gains access to the page. The module can be used on all pages that edites a single item - articles, user data, news items, book pages, permissions settings - you name it.
To use this system, a module author has to use API calls in their own code for adding or releasing a block: pnModAPIFunc('PageLock', 'user', 'pageLock', ...) and pnModAPIFunc('PageLock', 'user', 'releaseLock', ...). To see al this in action, grab the latest nightly snapshot and play around with the HowtoPnForm module: edit a recipe in one browser, and try to edit the same in another browser.
ValueAddons modules: Members_List and EZComments
The Members_List module has been revised by Mark West, with some added configuration options. It is now possible to set the number of (allowed) registered users, and some new blocks (featured user last seen and last x users) have been added. Check out the latest nightly build to see the functionality and options.
Mark has now finished the integration of categories into the user side of the Reviews, Pages, FAQ and News modules. This way, migration of .7x categories into the new Categories module is now supported and can be tested by our users who want to upgrade their .7 site to .8.
Finally, there have been added configuration options for categorization and category titles in the permalinks with these modules.
One hot issue at the moment is the increasing amount of spam that is on lots of websites at this moment. More and more features are to be found on the internet to prevent spam showing on your site. Akismet / Bad Behaviour are one of these. As some already know, Akismet has been applied in EZCommnents for a while. For testing purposes, Mark has implemented a bad behaviour (http://www.bad-behavior.ioerror.us/) function also for testing purposes (as Steffen has found that this could also be a good application). It does need some code hacking to pnApi.php at this moment, so only advanmced users willing to help integreating this feature are invited to test this and report any iussues to the EZComments tracker at the EZComments NOC project page.
Core and API: ThemeUtil and Categories
The pnTheme system has now been converted to the ThemeUtil class. With this conversion, all occurences in the core were updated too. Both the old and the new file are loaded in pnInit for backwards compatibility, but the old file (onTheme) and its functions are now marked as 'deprecated' and will be removed in the next major release.
Also added to the new ThemeUtil is a getModuleStylesheet method which contains the logic from the modulestylesheet plugin. You can do PageUtil::addVar('stylesheet', ThemeUtil::getModuleStylesheet('modulename')) to include the value of pnModGetVar('modulename', 'modulestylesheet') or style.css (in this order) or PageUtil::addVar('stylesheet', ThemeUtil::getModuleStylesheet('modulename', 'special.css)) to include the special.css file in your rendered page.
While unnecessary for correct functioning of the website, one is now allowed to turn off session regeneration completely. This is added because it may be helpful with a couple of undecided bugs in the tracker at the moment.
Module Development: information for 3rd party Devs!
Axel introduced a very nice application called EasyDist. This allows you to create your own PostNuke package easily. You can find it at modulestudio.de. It is still in a very early stage, but you should get the idea. This is all still in development fase and is just for testing purposes at this moment.
A preliminary for the (automatic) creation of packages using EasyDist is that module authors package their modules in a standard way. Right now, there are different file structures in the ZIPs or TGZs the authors distribute. We came to the conclusion that the preferred file structure inside the archive should be - modules - MyModule - pnuser.php etc so that an unpacked archive could be copied inside the pnroot. More information is in t
Generated on March 21, 2007.
-
Flexible Frontpages with Pagesetter
(News)
-
positions on top of a page where we can freely place selected articles. The rest of the page should be just a chronological list.
Pagesetter 6.3 comes with 2 publication types preinstalled. One of which is the PN-News publication type, that we will use for our little project. You should begin by adding about a dozen testing articles to the database. lipsum.com might help to find the right words ;-)
We need another publication type that we use to position the articles. So we start creating one and call it "frontpage". It should have for data fields called "article1", "article2", "article3", "article4". All of them should be of the type "Publication" - click on the ..-button next to the type flied and select PN-News as reference. Finish the creation process by generating the full-template.
Create a new publication of the "Frontpage" type. Select a different article for every of the 4 fields and submit (and approve) it.
Go to the site setting and set pagesetter as frontpage module. Start Function Type is "user", Start Function is "viewpub" and the arguments shoud be tid=3,pid=1 - This must be adjusted if the ID of the frontpage publication type is not 3.
Go to your frontpage (index.php) it should now display the headlines of the 4 selected articles.
You can now edit the frontpage-full.htm to fit your needs - you can use all the elements that you have in a normal Pagesetter template. You can show not only the headline but also the teaser, the image or even the full article. And you can use custom HTML to position the articles next to each other.
If you now want to display the rest of your articles chronologically underneath our little frontpage you can do this with an inline list. We need another template for this: PN-News-inlineList.html - This template can be editited like the PN-News-list.html template with all the same options.
When you have a basic layout for the inline list we have to include the call for the list inside the frontpage template, which is one API call:
[code][/code]
This will display the latest 7 articles - you can adjust that figure to your needs.
But stop! There are articles in the frontpage-selection that are also in the chronological list. To avoid this effect we have to include a filter that looks for double PIDs. Create filter and place the call before the inline list call:
[code][/code]And you have to include the filter into the list call:
[code][/code]
Finished! You can now always edit the frontpage publication to your needs and select the 4 most interesting articles for your readers. Of course you can add more articles to this system aso. This article is only meant to inspire your own ideas.
More cool stuff for Pagesetter can be found at pagesetter.net
Generated on March 1, 2007.
-
Development Update, August 2006-01
(News)
-
New Core Development Team members
The development team is proud to announce that Axel Guckelsberger (guite) and Mark Trimble (trimble) have been added
to the core devs team.
SecurityCenter enhancements
All security related settings and advice for a secure PostNuke installation (like the enhanced AntiCracker) will
reside in the PostNuke SecurityCenter. Furthermore, new enhancements have been made to the 0.8 codebase to prevent
(potential) csrf forgeries (which is one of the top 10 security issues within the
OWASP list).
Footer message from DB to templates
The (legacy) footer message, currently sitting happy in the Settings module, has been kindly asked to move from the
database into the theme templates. Fortunately for us all, it did! Lay-out controls should per definition not be part of
core settings, but handled through blocks and templates. Lots of themes already have custom footer messages (credits for
example) coded in the templates, and designers or site maintainers who really want the footer message to be set from the
database (so that it can be changed without touching the filesystem) can use Xanthia's blockzones as a powerfull and
clean solution.
Ajax Support Package for 0.76x codebase
While .8 comes with Ajax support out of the box, every module developer has to maintain his own copies for the .76x
codebase. There are more and more modules requiring Ajax and/or the Ajax effect libraries, for example Formicula
(beginning with 1.0), MultiHook (beginning with 2.0), pnForum (beginning with 2.7) and pnMessages (beginning with 1.0).
An AjaxSupportPackage is released at pnForum project file list for module developers to use. Carefully read the shipped readme file!
Ajax in News module
In the 0.8 News module, Ajax technology has made it very easy to allow inline editing of articles, so there is no need
to load the full 'edit' page anymore. Furthermore, the textarea is showing the maximum number of bytes to be used, and
(while typing) the number of bytes used so far.
Hooks in sequence
If a module has more than one hook to offer, at this moment there is no control over which hook to call first. From
release 0.8, it is possible to assign hooks in a defined sequence. This is relevant for especially the transform hooks,
for example MultiHook or bb_code, to allow for ordering of hooks execution.
User activity and activation check
Planned for 0.8+ is a user activity check after a new user has registered. At this moment, sometimes
users register and never come back to the website. This new check is to see if the users have 'activated' their account,
and if not within som xx hours, the user is deleted from the userbase.
Generated on August 23, 2006.
-
News from the Core
(News)
-
said at the PostNuke Meeting in Stuttgart: PostNuke 0.8 is closer than ever and much has been done since the last Meeting in 2005.
Only the release of PostNuke 0.8 Milestone 1 was visible to the community - what you didn't see:
In one year the core team's mailing list counted 3500 mails
In the same time 5400 commits were made to the CVS and SVN - remember 1 commit is not always only 1 file!
If you followed the commits during the last few weeks you might have seen that the changes have become less and less essential. There are many changes that only affect templates and non-core modules.
Andreas Krapohl (larsneo) has enhanced the System Info module, originally committed to SVN by Simon some months ago. You can find out what changes Andreas made in the developers blog: Extended SysInfo in .8
The new categories module has been finished and it has become pretty cool: Every module can now have recursive categories without having to code a module specific solution.
The successor to Xanthia is virtually complete. It will be called "Themes" and Mark West has nearly 40 open source templates converted to the new system that have allowed him to test out theme implementation. The only thing remaining is to work out how to handle the legacy opentable and closetable functions. Creation of a basic theme from the admin panel is now possible (with correct file system permissions) and there are a few pre-done layouts available.
Postnuke 0.8 will be able to run on not only MySQL but also Postgres and Oracle as Frank Schummertz is currently checking out the Oracle compatibility. And Mark West is currently reviewing the feature requests looking to cover any feature requests that impact on the system db tables.
So you see, it's all cleaning up for .8 Milestone
Generated on August 17, 2006.
-
0.8.0.0 Milestone 1 Release
(News)
-
Download
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)
Checksums
ZIP
MD5: cef2b3187327963d15d723a93c47b982
SHA-1: bc0847001c90a7821463750e23c646580574460f
TAR.GZ
MD5: 3988d58e71fdf091b04b46793a06566c
SHA-1: 3af10fdbf986a50c50f0fd66d35a353a76fad54b
Third party module support in .8-MS1
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
Generated on April 13, 2006.
-
0.8 Development Continuted...
(News)
-
New Blocks Module
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.
PostNuke Ajax Framework
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.
Permissions Module Ajax Enhancements
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.
Use of pn-clearfix Class in Module Templates
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.
Module Dependencies System
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.
New Password Hash Methods
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.
Session Security Enhancements
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.
Site Disable Functionality
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.
In Closing...
At this stage, many of the key features of .8 are nearing completion, and we remain on track for our target Milestone 1 release
Generated on April 5, 2006.
-
PostNuke .762 Released
(News)
-
Addition of SafeHTML Class
To better protect PostNuke websites against the risk of Cross Site Scripting (XSS) attacks, the SafeHTML class has been included in this version. This class offers greater protection against many forms of XSS, over and above that provided in previous versions.
Languages module
The Languages module is obsolete and has been removed from the distribution. The pndefinemachine module does the same work better.
Due to security problems you are also encouraged to remove this from the server after the update!
The options that have been provided by the Languages module are now part of the Settings module.
Downloads
As before, both a full and patch download are available. Download the full distribution if you are installing a new site or upgrading from .760 or earlier. Users currently running a .761 site can download the patch release which contains changed files between .761 and .762 only. Upgrading with the patch version is simple, just replace the files, users upgrading with the full distribution should follow the instructions in docs/manual.txt.
Download 0.762 Full Distribution (ZIP)
Download 0.762 Full Distribution (TAR.GZ)
Download 0.762 Patch (ZIP)
Download 0.762 Patch (TAR.GZ)
Support Forums
Security Mailing List
Hashes
MD5
PostNuke-0.762_patch.tar.gz - f4b36bc3ca9123464ec7bde05233dfe7
PostNuke-0.762_patch.zip - c6646f69f91841f0745064048922fde4
PostNuke-0.762.tar.gz - ea25bb933c4a99b30854815215dcdbb6
PostNuke-0.762.zip - 0e20db2ad3230c447747ec68540e8fb1
SHA-1
PostNuke-0.762_patch.tar.gz - 280b8cb4ff595fc556f137b5f7447f63c82b1b23
PostNuke-0.762_patch.zip - faa09a73e0f1dd82c73a9a53d5f69cef15d086fb
PostNuke-0.762.tar.gz - 59d3ba5ce3a91e67924ad6e3a8df643694849739
PostNuke-0.762.zip - 43f400b78adbad66cc0965b0322eeca9230d13bd
Bugs Fixed
#2227,
#2229,
#2233,
#2246,
#2255,
#2259,
#2270,
#2272,
#2321,
#2358,
#2384,
#2441,
#2471,
#2476,
#2503,
#2528,
#2542,
#2544,
#2545,
#2546,
#2547,
#2548,
#2589,
#2602,
#2604,
#2612.
Simon Birtwistle [HammerHead]
PostNuke CMS Development Team
Generated on February 17, 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.