-
pnMeeting 2007: Frank Schummertz ports a module to .8 style
(News)
-
presented the way the result of the SELECT gets filtered through the permissions which is also done in a few standard lines of code.
Of course Formicula 2.0 makes use of pnForms. This reduces for example the edit function for the contacts to 3 lines of code plus the few lines that build the form and automatically validate the inputs. The programmer doesn't have to handle all kinds of wrong inputs - that is all done by the the forms API. The module will only receive validated values.
In a general overview Frank picked out single lines of code from Formicula and pointed out the differences to .7 - Among others were the use of the LogUtil with takes care of occurring errors and the fact that the pnRender object now has a parameter for disabling the caching.
Frank emphasized the fact that the correct use of all .8 APIs reduce the size of a module by 30-50%
Generated on September 8, 2007.
-
What's going on?
(News)
-
kinds of modules and so on. We couldn't do that without you. So a special kudo from the development team to everybody who's testing.
2. We are all looking forward to the International Postnuke Developer Meeting in Osnabrück, Germany in September. You are still invited and we will be happy to get to know you. The focus of this year's meeting will the the .8 technologies. We have to spread the knowledge about all the great libraries inside .8 to the community. Thus we will have several presentations and workshops dealing with that. You can still register http://support.pn-cms.de/index.php?module=formicula&form=6 and book a room: http://www.kulmbacher-hof.de
3. There are currently some reorganizations going on within the teams and Postnuke Foundation is working on a nice little surprise - we will have seperate announcements about this within the next weeks.
4. We need your help to build a good documentation. Please look into the wiki and see if you can't improve it: Pick out one of the .8 modules and describe how it works. Look through the articles and improve the descriptions. Remove typos. Find paragraphs that are not clearly enough written and make them clearer.
We could also use some good best practices - if you think you found a clever way to combine this and that module or you have some other special solution - write an article. People will love it.
There is so much you can do. And it's not too complicated. Postnuke lives through it's community. And you are part of that community, no matter how small your input is. Small pieces accumulate to a bigger picture.
Generated on August 25, 2007.
-
Last Call: pnMeeting 2007
(News)
-
years meeting will not only be in a different location in a different city it will also be slightly different in its organization:
The first day will feature some prepared presentations about several topics.
The second day will be more like an unconference. We are going to collect ideas for presentations and then find the right person to give an introduction then we discuss the topic with all participants. We have all the experts there and we are all experts for something so we can all add our know-how to every workshop.
If you want to attend the meeting we can help you find a hotel and your way to the location. Please register so that we can better estimate the number of attendants. More information can be found at the pnMeeting Wiki.
Links
Registration
pnMeeting Wiki
Generated on August 18, 2007.
-
Announcement: pnMeeting 4.0
(News)
-
([url=http://www.virtuos.uni-osnabrueck.de/]Zentrum für Informationsmanagement und virtuelle Lehre[/url], Center for information management and virtual training).
The planning for this event has just started so we do not have any information yet about accommodation and travelling, but nevertheless we need to know, who wants to join us. You can register [url=http://support.pn-cms.de/index.php?module=formicula&form=6]here (English)[/url] or [url=http://support.pn-cms.de/index.php?module=formicula&form=5]here (German)[/url]. This will help us in preparing the meeting. If you come from abroad you might want to consider the airport of Muenster-Osnabrueck (FMO) as your destination.
All relevant information will be posted in the [url=http://support.pn-cms.de/modules/dokuwiki/doku.php?id=pnmeeting]Wiki[/url] (german only) at the german support site.
As usual we start the meeting on Friday, 7th, with a (internal) pnTeam-barbecue while the official programm starts on Saturday and ends on Sunday. Any requests for discussions or lectures can be noted in the wiki.
If you have any questions, please contact us at pnteam AT pn-cms DOT de.
We hope to see you in Osnabrueck!
Generated on April 2, 2007.
-
Development Update, December 2006-06
(News)
-
MileStone 3
The Dev Team is proud to conclude that MileStone 3 is quite near for release (check the .8 Development Cycle for details). With an enormous amount of commits from Robert, Oracle, PostGreSQL and MsSQL support are close (but not quite complete). The entire distribution should be tested for support to ensure the functionality. For this testing, there is an additional Theme plugin added for better / additional sql debug tracing output / options (function.sqldebug.php).
Patrick started finalizing the Search module, which involves every module that provides searchable data to have a pnsearchapi.php file and two templates, module_search_options.htm and module_search_results.htm. For better functionality, each searchplugin is given its own "namespace" via the array functionality of html forms. When each module is compliant to this standard, much gain can be achieved because (for example) inactive modules will not be called for a search query. Also, modules do not need to check for formdata themselves. See also Module Programming Part 4.
Drak has worked on an upgrader for 0.76x. This incomplete first version of upgrade76.php prepares the core so the usual upgrade script process can run.
Categories
The Topics module has been discussed within the theme. As most of you already know, the Categories module is much more powerfull for assigning categories (or topics) to various content on a PN site. The Topics module is an old style module, however lots of modules still rely on the presence of the module (or at least its tables), allthough the modules write directly to the code.
The Dev Team is currently looking for a way to import current Topics into the Categories so that, with an upgrade, on does not have to add these manually. It is up to module developers to support the new categories module, and not rely on the deprecated Topics module anymore. The import process of the Topics module will belong to the Categories module init.
We would like to urge all our test users (not necessarily has to be a developer) to take a look at categories, play around with it, test it, use it and come up with a list of bugs and suggestions for improvements. For feedback, one could use the 0.8-MS2 Feedback and (as always) bugs can be reported to the bug tracker.
System
Discussed in the team is the addition of config.php.dist files. In short, PostNuke is supplied with a dist file which will be read and modified by the installer, and then saved as config.php. The advantage is that config files can not be overwritten anymore when one upgrades it's PostNuke version. The disadvantage is that the webserver user (for example apache) will be the owner of the file. No decision about this issue has been taken yet, so for this time the historic way of config files is still active.
Jörg has worked on a basic check for module directory consistancy. This means, if there are duplicate module names (like system/foo and modules/foo, or even modules/FOO and modules/foo), the administrator will be noticed about this issue.
Another change is that module vars are now all serialized in the database and there is no longer any need for module developers to serialize or unserialize data before making the database calls.
The modules and system directories, and their purposes, were discussed. The system directory should only contain modules that are not allowed to be removed (the system wouldn't work without them), and the modules directory should include ValueAddons and 3rd party modules that are not a vital part to the core of the PostNuke framework. When you upgrade a module, it is left in an unactivated state, which isn't desirable to system modules. Therefore, System modules are now allowed to transition directly to active state after an upgrade.
The Error Logging functionality has been extended. If a pnRender template does not exist this will also be logged, which could be quite usefull for module developers.
The LogUtil::registerPermissionError() and LogUtil::registerAuthidError() methods are added. These method calls registerError and then logs the failed permission check and failed AuthID check respectively, so that they can be analyzed later. DB errors are now logged by DBUtil and Log Events can now be viewed in the Security Center.
Added by Frank is the option in the Users module to deactivate a user account untill the user re-accepts the terms of use. If he is logged in when deactivating the account he will be logged out during the next page load.
The returned header for a non existing user page now returns 404 in stead of 200, and the age check has been simplified and harder to get around.
Frank also enabled the addition of a generic object attribution (a very nice feature of the ObjectUtil) for the users table. Using this, one can add any datafield to the users table (as long as it is a string with max. 255 characters ;-) )
E.g. it is possible for pnForum now to store user related data this way, which makes its own user table obsolete. If you, as a module developer, need a new datafield, just add it and it is there.
Example: You have an attribute 'someattribute' with 'somevalue'. The array returned by pnUserGetVars() now contains an item '__ATTRIBUTES__' which is an associative array itself with key 'someattribute' and value 'somevalue'.
More information and code snippets can be found in the Wiki after the coding has completed.
Finally, the functions includeOnce and requireOnce were added to the Loader class, which speeds up require_once and include_once by a factor of up to 9 times.
New and updated pnRender Plugins
All pnRender plugins in the core will be renamed to lower case. The parameters used should also be lowercase. The Dev Team would recommend all module developers to do the same.
The following plugins were added or modified:
add_additional_header plugin is replaced with the pnpageaddvar plugin.
moduleadminlinks plugin is modified to add capability of separate title attribute, and allow links to be 'disabled'
pndebugenvironment and pndebug plugins are extended with more info and multilingual support
makelinks outputfilter (theme) plugin is a replacement for pn_bbclick, to create clickable links from urls
Finally, Jörn is planning to use the ExampleDB module as an example for the use of the pnForm plugins also.
ValueAddons
Some deletions have been applied to the ValueAddons directory, as follows:
TypeTool: This editor hasn't been updated since ages, the corresponding sourceforge project seems to be inactive for a while, and the html code created by typetool is not following current standards.
Replaced by Xinha (download)
Autolinks and Censor
Replaced by MultiHook (Minimum version needed is MultiHook 5.0 alpha)
Downloads: Maintained by cmods-dev.de
Weblinks: Maintained by cmods-dev.de
Messages
Replaced by pnMessages (download)
Polls
Replaced by AdvancedPolls (download)
Translations / Language defines
Another 'standard' that the Dev Team would like to recommend to module developers is the use of a naming scheme for translations, as it would help a lot to create more multilingual modules.
Each module should use module specific prefixes in their constant defines, e.g. _FOR_SOMETHINGISMISSING for Formicula or _PNMSG_INBOXFULL for pnMessages. This makes it easier for pnDefinemachine and can lead to more consistent translations.
This also enables us to implement an updated pnml plugin/function that offers the same kind of possibilities that the MultiHook has. All translated defines (or missing defines) get a little button that allows the admin to work on the translaton online while surfing his site. Changes will be stored directly in the pnDefinemachine tables to create the language files later on. Here the prefix enables us to attach the translation to the correct module.
Of course looking up translations in the database is a performance hog, but this should be used during development or if someone is not satisfied with an existing translation.
The current SVN packages can be more and more used as a basis for the .8 language packs: dutch and german translations have already been updated for use with .8, and can either be checked out through SVN or be downloaded as an alpha package.
.8 Stabilization: We need you!
To finalize and stabilize the last MileStone release (and to offer a first release candidate as soon as possible), we need you (the community) to test the current codebase. Install and uninstall all available modules, create users, play with hooks, create and use themes, develop modules, and so on.
Please download the latest Snapshot and install it on your test system (either a webserver, or your local Xampp installation). Wether you have IIS, Apache, MySQL, PostGreSQL or MSSql, it is interesting for all of us. Please also use the ValueAddons package and do the same. You may notice that no real new features are added to them, but this will come when the core is functional and as bug free as possible. If at all you find unreported bugs or errors, please report them in the bug tracker.
As already said: The Core Dev Team is at first interested in a working bug-free core framework and a functional upgrade path from historic distriutions. After that, new features can be added to several ValueAddons and other content modules. One could also use the current Theme module to generate Xanthia 3.0 themes. A useful help for this can be found on Drak's Theme Generator. Module Developers can find a Module Generator on the OpenStar site.
BTW, the .8 Developer Docs in the Wiki may already be very usefull, allthough the provided information is not as complete as one would wish for. Users may find lots of usefull information in the .8 User Docs.
Reminder: Please do not use .8 on any live production site! With MileStone releases or Release candidates, there is no guarantee whatsoever that the quality and security of your site and the product is assured!
Also (as read from the German Community Site) there are a few modules released in alpha status for users to test in a .8 environment:
Formicula 2.0 alpha: Download (Bug reports)
pnUpper 1.0 alpha: Download (Bug reports)
pnTopList 1.0 beta: Download (Bug reports)
Generated on December 18, 2006.
-
Development Update, September 2006-02
(News)
-
Design Team
In the past we've discussed the option of having an official 'design team' to work on the core templates and themes. The aim for this team is to enhance usability and aesthetics of the core PostNuke distribution, add further template improvements, write a dedicated admin theme and maybe write an official styleguide for module developers. This idea has been brought up again and the search for members for this team has been started.
Changing the Module names
A mechanism has been added to allow module developers to rename their modules while retaining the existing module id. Before, the modules db had to be handled manually and documentation covering how to rename the module had to be written. Or users had to backup data and then remove the old module and add the new one. In short: "Who wants to do this?"
So you can now add your old modulename to an oldnames-array in pnversion.php and the modules module will detect the relationship between the two modulenames, updating the database accordingly.
The rationale for looking at this now is that there exist a few modules that have misleading or confusing names. Also, the development team would like to encourage module developers to drop the pn prefix for modules. An exception for this are the modules that also exist as a stand alones, like pnWikka, pnMantis, PNphpBB2, ...
For renaming of tables, the a module author can raise the version number and write the appropriate "copy code" for his tables.
Icon sets
The aim of the pnicon plugin is to have multiple icon sets in the future without worrying about image filenames like when using the pnimg plugin. The pnicon loads the icon set config.php file, and selects the filename of the image by a 'type' parameter passed to the plugin.
Comment Spam
In the last couple of weeks, many posts have appeared on the community forums about spammers that login and post comments with their credentials obtained from the user registration mail. To prevent this, a check has been added for the useragent during registration at the User and NewUser module, which is an additional protection against spam-accounts by PERL agents like lwp and libwww. Of course, this is not a guarantee that these kind of registrations do not happen ever again, but it should at least help to prevent it.
Also (but still in test phase), optionally a question can be added to the registration process (comparable with the anti-spam option in formicula 1.0). This Q/A combination is freely configurable in the user administration.
For more information, discussion and Proof of Concept, please visit the forum.
System updates
The Profile module has now enhanced client-side (using prototype-driven validate.js) and server-side (to show messages on the same page) input validation.
The Extended Menu Block supports sorting via drag&drop (using scritaculous) and a utility link is also present in the menu to automatically add the current URL to the extended menu block. This is of course restricted to administrators only. It is also planned to make tree menus using this block.
The categorisation within the Admin area has been changed to a more logical sense. There now exist 7 categories:
'System': Admin Panel, Mailer, Modules, Settings
'Layout': Blocks, Themes, pnRender
'Users': Permissions, Groups, Users, Profile
'Content': Admin_Messages, Categories, legal, Search, blank
'3rd-party': Empty categorie for newly installed modules
'Security': SecurityCenter, SysInfo
'Hooks': Censor
ValueAddons updates
The Sections module has been renamed to the (more suitable and logical) Pages module. Intuitively, this module does what one might guess: serve static information on different pages.
The Top-List module is currently hardcoded to working with just the core modules, and planned is to move it to some sort of plugin architecture (using special plugin API files and call specific functions in them). This is in progress.
Miscellanious updates
We now have a html installation guide with a CSS based on http://community.postnuke.com, and an html upgrade guide is separated
Generated on September 4, 2006.
-
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.
-
Invitation: International Postnuke Meeting in Stuttgart 2006
(News)
-
planning and a great chance to get to know each other. More detailed information is available in our Wiki and you can register here.
All previously registered folks should check the [url=http://support.pn-cms.de/modules/dokuwiki/pnmeeting3_0/index_eng#participants]participants list[/url] to make sure that they are already listed.
See you in Stuttgart!
Steffen Voss
Vice-President Postnuke e.V.
www.pn-cms.d
Generated on July 14, 2006.
-
pnMeeting 3.0 Planned for 12th/13th August 2006 in Stuttgart, Germany
(News)
-
also a call for papers to anyone who wants to participate. Submissions are welcome, please send them to pnteam AT pn-cms DOT de.
For more information we have a pnMeeting forum available, the recent status can be seen in our wiki and you can register here
Generated on May 10, 2006.
-
Introducing Your PostNuke Steering Committee
(News)
-
The six members of the PostNuke Steering Committee are:
Simon Birtwistle [HammerHead]
Simon has been working with PostNuke for over three years now. Originally using PostNuke for a simple, personal website running on the .722 release Simon now runs a number of PostNuke websites for different organizations including the Scout Association. His personal website itbegins.co.uk, although out of date, houses developments such as pnStatus and also copies of documentation written for the project. In real life, Simon is a student, fortunately leaving ample time for his volunteer work with PostNuke, mainly centering on the pnForums and documentation, most prominently in the pnGuide. Simon has been a team member since the summer of 2003.
Frank Schummertz [landseer]
Frank started with PostNuke more than 2.5 years ago when working on pnCommerce. In the meantime his portfolio also contains Formicula, MultiHook, pnMenu and last but not least pnForum and the pn_bbclick / pn_bbcode / pn_bbsmile / pn_highlight hooks in their latest incarnation. Frank has been part of the Development team since 2004.
Franz Skaaning [franz.skaaning]
Franz originally started working with PostNuke around the time of the .722 release. Since then, he has started a number of PostNuke related developments, these include modules such as xFPDF and xRSS and his themes, releasing a total of 13. His presonal site, lexebus.net has over 100 visitors a day looking for support and downloads. Franz joined the PostNuke team a year ago to help out with communication, but outside of his volunteer work provides both PostNuke related and other services.
Franky Chestnut [chestnut]
Franky Chestnut has been using PostNuke since the 0.6x series but got more involved in the 0.7x series. Along with pnConcept.com, his personal blog and development site, he is also the administrator of the official French website: PostNuke-France.org. In real life, Frank is working as a developer for a family-owned business creating software solutions for music publishers. He has been part of the Core Development Team since July 2004.
Anecdote : Although not even his real name, Franky added the "y" to the Frank because there was already too many Franks when he got hooked on PostNuke.
Robert Gasch [rgasch]
Robert has a Computer Science background and has been working on large-scale systems for more than 10 years. He considers himself a pragmatic open-source believer for both practical as well as philosophical reasons who brings with him tangible experience using 10+ programming languages on various platforms in a variety of settings.
Professionally, he has filled diverse roles ranging from being a Unix software engineer for a major RDBMS vendor to an ERP technical & performance specialist for a major ERP vendor to being lead-consultant on multi-million Dollars/Euros eBusiness enterprise implementations utilizing technologies such as Java and WebLogic/WebSphere. Robert has been working with PostNuke for almost 3 years and is the driving force behind the http://www.open-star.org development effort.
Joerg Napp [jn]
Jörg started with PostNuke 3 years ago when looking for a nice Content Management System. In the meantime he developed EZComments,the Title Hack and some other Hacks. He also adopted the Static_Docs module.
The PostNuke Steering Committee has initially identified 3 areas on which we will be focusing our attention.
PostNuke Site Redesign
The work on the new site is being pushed forward and has been given priority. We aim to finish this project as soon as possible, improving the usability and value of the website to both new and experienced users.
Communications
We will aim to post periodic updates on the project's progress to keep you more informed of the work behind the scenes, which is not always easily seen. Additionally, you can now contact the Steering Committee through the contact form on each PostNuke subsite to raise any specific queries you may have, though the forums should still be used where possible.
Development
Shortly an update on development towards .8 will be published giving an overview of the development progress so far and what
Generated on October 6, 2005.