-
SEO for postnuke
(News)
-
Customize title
You can customize the general title of your postnuke, by filling in the correspondant fields in the module "settings". The problem is that, you will have only one title for the whole website ... and that's ugly (and bad for SEO).
A solution was offered by Markwest, in order to personnalize this title, on every pages.the title tag plugin
This plugin allow you to format titles like this
Classic titles
HTML for Module Developers - A Discussion :: pnCommunity :: Support at your fingertips
if you want to have shorter titles like this, you can use the other unofficial version in the comments.
Improved titles
HTML for Module Developers
If you're using pnForum, it will give you title like this
PnForum title
Customize meta "descriptions" and "keywords"
You can customize the meta "descriptions" and "Keywords" of you CMS, by filling in the correspondant field in the "settings" module, but with this customisation, you will have only one "description" and "keywords" fields for all the site.
In order to improve this, there are two plugin on the community repository, one for fixing the descriptions and the other one for the keywords tags.
Notes : As the Search engine were spammed by overloaded keywords tags, for most of them , they don't consider this tags anymore.
If you're using pnForum, it will give you this :
PnForum metas
Activate url rewriting
You can activate the url rewriting in Xanthia, go to the Xanthia module, then check the options "use short urls", and copy paste the .htaccess file from the "doc" folder to the root of you CMS.
/!\ Be careful, live search doesn't url with more than two dashes
Notes : an improved version of the current url rewriting is available in postnuke 0.8.
Duplicate content
Don't duplicate links in your portal, two differents links must not point to the same content. Indeed, some search engine don't like to see multiples versions of the same page on a website (that's called "duplicate content")
To avoid this, you can use a robots.txt at the root of the CMS
Robots.txt
User-agent: *
Disallow: admin.php
Disallow: config/*
Disallow: header/*
Disallow: footer/*
Disallow: pntables/*
Disallow: /images/*
Disallow: /includes/*
Disallow: /adlogger/*
Disallow: /themes/*
Disallow: /pnTemp/*
Disallow: /docs/*
Disallow: /javascript/*
Disallow: *.php
Disallow:module-Forum-viewtopic-topic-*-start-0.html
An other tip, "/index.php", "/index.html" and "/" redirect to the same page so you can add this rule in you .htaccess
.htaccess
RewriteRule ^index\.html$ http://postnuke.com [NC,R=301]
RewriteRule ^index\.php$ http://postnuke.com [NC,R=301]
Text formating
In your articles or templates, try to have a structured layout with H1, H2, H3 tags.
Autolink and intern link
The module "autolink" is interesting, because he allows you to create a large amount of intern links with the same source anchor, this will help to increase your rank on the given word
404 error
When you've got an important portal with a large number of pages , it may be possible some of you ranked pages doesn't exist anymore. When search engine bots come to look for this "ghost" pages, you can redirect them to the home of your website, with an "Error 404" header.
.htaccess
ErrorDocument 404 /index.html
Take off unused metas tags
For most of them, search engine bots don't read some meta like "revist-after", so you can take them of your head tags. It will not help you, but you will have a cleaner header.
xxx.html
This article is a translation from this "how to" released on Postnuke-France
Generated on January 31, 2008.
-
PostNuke .8 RC1 Released
(News)
-
PostNuke 0.800 RC1 Core Only Download
Download (ZIP)
MD5: 17d7f2eb16bf4dd886695adefab0e1f5
SHA-1: 624dcb1b29c17150e341878c727ddac83fadeb54
Download (TAR.GZ)
MD5: 9807fe2f3e0ef9f7fa88a3bbb0426815
SHA-1: 354edfc9eff87f77713bc1750cdc77144fcf0bff
PostNuke 0.800 RC1 Full Package Download
Download (ZIP)
MD5: 15718c1d68223bf5fc69b144666741f8
SHA-1: e1901b3d06dce1b82f2dfcde4d2da74e7afb9cf8
Download (TAR.GZ)
MD5: 1d983e5fd18907022fbec598c4ae7111
SHA-1: afb25ef625ce6e1564c40faf1cb29b3c1ea0ee13
PostNuke 0.800 RC1 ValueAddons Download
Download (ZIP)
MD5: 38879b481640289b7b6a605af41638a1
SHA-1: aa10e8f79d038b667aa8638347d3d12a999d8e99
Download (TGZ)
MD5: 4adc34945ae0cf42b3f96408bd21d17c
SHA-1: d4f80e0478bef1721eb29484024a9ed7a1a2e025
Please feel free to use the article below to publicise PostNuke in any web development communities you belong to. It is also published here on community.postnuke.com.
Simon BirtwistleHammerHead
About PostNuke
The PostNuke Application Framework provides a high performance, secure and feature complete framework which both website administrators and web developers can use to great effect in creating unique and attractive websites. PostNuke can be used as a CMS, adapted to blogging, ecommerce or community websites, or for more abstract tasks. It is easily adaptible, extensible and can handle situations in which performance and security are paramount. In this way, PostNuke is a reliable and robust choice for any website administrator.
The most recent version of PostNuke is 0.8 RC1, which represents a feature complete 0.8 version. Once the release candidates have undergone full testing and any remaining bugs are fixed a full release will be made available. This release will be suitable for live websites, however in the meantime RC1 is suitable for testing and development work.
Highlights For Website Administrators
The 0.8 release is more polished and up to date than ever before. With the new libraries for developers, new features should be faster and simpler to develop, reducing deployment costs. PostNuke 0.8 can be adapted to almost any need, from blogs to community websites and new third party modules are being developed all the time, constantly improving what PostNuke has to offer.
Additionally PostNuke 0.8 has a focus on the latest standards: XHTML compliance, Section 508 and Accessibility, and further enahncements have been made to both security, performance and usability.
With all core modules now templated, PostNuke 0.8 is designed to be cached, providing a huge performance boost over dynamically generating every page. Furthermore, with the templating system applied to all core modules designers will find it easier than ever to create a unique look to their websites. Gone are the days of standard 3 column layouts - PostNuke 0.8 includes new themes which are CSS, and not table, based. The new Xanthia theme engine is easier to use and performs better than ever before, while including an upgrade feature making it easy to import Xanthia themes from previous PostNuke versions.
For website administrators, this is the best PostNuke release yet, combining compliance with the latest standards and constantly improving features.
Highlights For Web Developers
The 0.8 release provides an Application Framework to allow rapid development of web solutions using the now stable PostNuke core. This allows third party developers to use the wide range of included API and utility libraries to create their own modules and extend the feature set PostNuke already provides.
Of these libraries, one of the most substantial is DBUtil, providing a cross compatible interface to the database. Selecting, updating and deleting data can all be achieved in one line, and DBUtil, combined with ADOdb will automatically create a cross compatible query for whatever database system is in use. PostNuke .8 has been tested with PostGreSQL, and further databases will be supported in future versions.
Other key features are site wide categories, supported through integration with DBUtil, the PostNuke Forms Framework for HTML forms, and other object based APIs. All of these are new since the 0.7x series and ensure third party development is both quicker and easier, and that compatibility with future versions is maintained.
For web developers, PostNuke will provide an attractive option when searching for a framework upon which complex web solutions
Generated on July 17, 2007.
-
Did you know: Implement your own Admin-Theme
(News)
-
even need a header or and other of this fancy corporate design stuff. I want space for my work. Thus the admin.htm is very short:
[code]
[ Home | Administration | Statistics ]
[/code]
That's it.
Save this as admin.htm to /themes/yourTheme/templates/modules
Add a new Theme Template: Administration/Xanthia/Edit Theme/Theme Template/New Module Template
Name: admin.htm
You have to enter something to the text area. Just one letter is suffcient. It only can't be empty.
Save that.
Add a new Theme Zone: Administration/Xanthia/Edit Theme/Theme Zone/Add New Zone
Name: Admin
Zone Label: *admin
Save that.
Now configure the new zone and choose admin.htm from the drop-down
Activate the new zone.
Done - Your new lean backend layout will always appear when functions are called via admin.php (old-style) or with type=admin within the URL.
We will have a small problem with pagesetter. As it doesn't have a clearly defined backend there's no type=admin in the URL. I always use a small "Pagesetter fix" in my master.htm:
[code]
[ Frontpage | Administration |Statistics ]
normal body
[/code]
I hope this article helps you implement a better backend with much space
Generated on March 15, 2007.
-
Development Update, February 2007-02
(News)
-
release, and some is part of the current nightly build from SVN. The items that are part of the MS3 package are indicated with a (*).
Installer and upgrade path
The installer for .8 now also checks for a web-user writable pnTemp directory. Before, only it's subdirectories had to be writable. However, more and more modules need a (temporary) writable directory of their own (for example cache directories for image creation or rss feeds). With a writable pnTemp, these modules are now easily allowed to create that directory themselves if it does not exist. (*)
The upgrade path from the historic .7 family has been updated: Some code has been added to migrate blocks placements into the new block_placements table. (*)
Furthermore, old style (legacy) blocks can now be stored in the /config/blocks directory. The specific files do need to be copied manually from the old /includes/blocks directory to it's new location. (*)
Core (API) and environment variables
In the core pnAPI, get_magic_quotes_runtime() was called lots of times for different purposes. With an internal caching method, the result is stored in the global PNRuntime array. Big advantage is that the site's speed has been significantly improved. (*)
Robert has added an enhancement to allow the pnSessionGet/Set/DelVar functions to accept an (optional) path argument (arguments 'autocreate' and 'overwriteExistingVar'). This will allow for easy setting of complex array structures. The change only adds extra arguments to the existing functions and are backwards compatible. At this moment, no direct usage has been committed yet.
PostNuke Object library
At this stage of development, a lot of changes are (and have been) made to the object library. Most of them are 'simple' bug fixes, but some changes are worth mentioning here (additional functionality or changed methods).
In the DBUtil class, there now exists a new method to increment a field with the function incrementObjectFieldByID. This can be used by module authors for updating read counts of content items for example. (*)
Additionally, the function selectScalar has been added (which takes a SQL quesry as argument). This is mostly useful for places where you want to do a "select count(*)" or similar scalar selection.
The utf8 conversion functions (convertFromUTF8 and convertToUTF8) have moved from AjaxUtil to DataUtil when solving a bug to keep the users input in Ajax driven fields as they are intended.
While solving a Google AdSense script bug, where the script tags were automatically cleaned by the safeHTL output filter, a new feature has been added to FormUtil: Before cleaning posted input on an already installed site, the FormUtil now checks if the current user has overall admin permissions. This allows site admins to input potentially harmful tags (javascript for example), but it's their site after all!
Jörn has improved CSS style handling in pnForm plugins, as he has changed some pnForm classes to be derived from pnFormStyledPlugin, which in itself is derived from the original pnFormPlugin.
Because it's better to read the languages directory first for available languages and compare that result against the full list of languages in stead of the other way around, the LanguageUtil has a new function getInstalledLanguages. This now significantly reduces the number of directory checks.
To ensure that most commonly used plugins are found as early as possible, the order in the pnRender class, where the system is searching for plugins, has been modified. The current correct order for the 0.8 distribution is:
system/pnRender/plugins
system/Theme/plugins
config/plugins
current theme-directory/templates/modules/$module/plugins
current theme-directory/plugins
current module-directory/pntemplates/plugins
Furthermore, two new variables can be added to the rendered output page using the PageUtil class. First is 'description', which is default set to the current site slogan. Second is 'footer', with the ability to add custom content just prior to the closing body tag. The latter function is applied as an outputfilter.
Finally, an additional parameter 'display' is added to the pager plugin, which can be set to either 'page' or 'offset'. This is (why am I explaning, isn't this rather self-explanatory?) to allow paging by pages, rather than offsets. It also mirrors the 'show' parameter that exists in many templates (based on the example module) but was never actually implemented.
Last but not least, the Theme class has now added support for a filters section in a page configuration file. This allows for loading of, in the first instance, custom output filters. Note there is no user interface to the functionality the moment.And, why not, the Atom theme has been updated to Atom 1.0
Module modifications
The following modules have been updated for improved .8 compatibility, or just to make administering those modules easier.
The User module now has the long awaited alpha pager for browsing users. (*)
All occurences of the block rendering APIs (read by the Blocks module) have changed from the old style call "return themesideblock" to "return pnBlockThemeBlock". (*)
To the Settings module there has been added a configurable separator for permalinks (*)Furthermore, a switch to globally disable JS Quicktags (which adds a set of buttons for common html tags to enabled textareas) is now part of the Settings module. (*)
Both the Ratings and the Multisites module are modified to meet the new standards of coding and templating. Work still needs to be done to both modules, so testing functionality for these modules may not be that worthwhile as yet. (*)
The Theme module takes over from the Xanthia module in an upgrade. This doesn't mean that it is not Xanthia anymore: it still is actually the Xanthia 3.0 engine (*).
To the Recommend_Us module a display hook has been added. This will add a list of social bookmark links, like the Diggers plugin also does.
Language files overhaul
The language defines in some modules have been reviewed and adjusted to the naming conventions of .8 (see also Dev Update 2006-06). This means that module-specific language defines start with a module-name specific prefix. Additionally, some new general language strings (using the pnML function) have been added to the core language file. The major effect this will have is to subtantially reduce the number of strings that need translating.These changes are applied to the following system modules: Admin, Admin_Messages, AuthPN, Blocks, Mailer, legal, Settings and SysInfo. ValueAddons modules will follow later.
PostgreSQL DBMS testers wanted
The .8 DBUtil class, as mentioned many times before, makes it possible to run PostNuke on different DBMS platforms, like PostgreSQL,
Generated on February 20, 2007.
-
Development Update, 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, 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.
-
German PHPMagazin starts PostNuke Workshop
(News)
-
HTML layout into a Xanthia-Theme and explain how to customize module templates and where best to store them save of system updates.
The third part is planned as an introduction into Pagesetter and will emphasize the strengths of Postnuke regarding the interconnction of modules via plugins and API functions. For example how to display the avatar in modules that normally only show the username.
The magazine should be available at every better German bookstall or online at www.phpmag.de
Generated on August 1, 2006.
-
.8 Development Summary
(News)
-
New Theme Module
Recently, the new theme module, which acts as a replacement for Xanthia in the .8 series was committed to CVS. This module corrects many of the established flaws in the .7x Xanthia codebase and also provides new enhancements. New in this module is the ability to assign a custom template to any page on your website, the use of .ini configuration files in themes, the removal of block control in favour of a new Blocks module and the ability for theme authors to provide a 'version.php' file in their theme to provide relevant information to site administrators.
Using .ini configuration files in the new Themes module brings two advantages over the current setup of Xanthia. Firstly, theme generation and display are much faster as no database queries are required to build the layout. This should provide a marked performance increase in .8 websites. Additionally, it is much easier for theme authors to export their themes, as in the new Theme module the details previously contained in xaninit.php in PHP code are now automatically generated by the Theme module.
Due to the sweeping changes in this new module, the user interface has been completely redesigned. While we realise this will take some getting used to, the new interface is more intuitive than previous versions and logically follows the layout of the Modules module when displaying the available themes. Additionally, all theme related settings have been moved from the Settings module to the Theme module, and the user theme switcher is now part of the Theme module display.
Themes used under the .7x Xanthia module will need upgrading to use the new .8 Themes module. This is a relatively simple process which is mostly handled by the Themes module itself, as both systems are based on Smarty the template logic is the same and there are few changes to the tags themselves. These by and large stay the same with one notable expection, block tags are replaced with the plugin call where name is the name of the block zone to display.
The recoded Blocks module has yet to be checked into CVS, however we anticipate this within the next week. Until that time, the Theme module in CVS is nearing completion and is fully functional.
New Themes / Removal of Old Themes
Two new themes designed for the new Theme engine have been added to CVS. These are free templates from Open Source Web Design, and serve as an example of what can be achieved with the new module. The new themes are tableless and HTML compliant, which along with the improvements in compliance in the rest of the codebase serve to ensure PostNuke remains one of the few content management systems to take HTML standards seriously. All output in .8 will be XHTML valid.
To this end, the old themes that have been present throughout the .7x series are no longer in CVS. While they can be easily converted to work with the new Themes module, they use table based layouts which do not conform to the standards PostNuke has set for output. A appearence overhaul is well overdue for the PostNuke codebase and so a set of new themes will be available with the .8 release.
Workflow Engine
The release of .8 will also bring a new statebased XML Workflow engine to PostNuke with simple API implementation. Additional enhancements are planned to include a workflow schedular to process workflows at timed intervals in batches.
Use of the module is simply a case of adding a directory 'pnworkflows' to your module containing a set of workflows with operations, states and actions. The workflow engine also fully supports the PostNuke permissions system. Documentation for the module will be released with the first .8 Milestone.
XML Event Based Forms
GuppyForm allows a developer to describe a form content and layout in XML with an event handler bringing automatic validation. This can drastically reduce the time taken to develop user input forms. Can be combined with pnRender templates or used standalone. For those that like OO, and descriptive coding, this is an interesting option in the framework.
Completion of Users Module and Profile Enhancements
Another recent change to CVS are updates to the Users and Profile modules. These now almost fully functional, with huge improvements to the dynamic data system now in CVS. New field types avaiable for user input are date fields, calendar 'select date' fields and combination fields where a number of seperate input types can be combined. The new users module also allows for the use of SHA-1 or MD5 password encryption, you can store the user's last login date in the database and finally the registration process has been improved to include the option to vaidate user's email addresses through an activation link. All these improvements are optional and can be enabled and disabled through the Users module administration interface.
Template Updates
As part of an overview of usability and update to the 'look and feel' of PostNuke many of the module templates have been enhanced. These range from subtle changes to much more obvious improvements in the location of links and reporting of status messages. As previously mentioned all templates validate to XHTML standards and further improvements will be made before the final release of .8.
Languages Changes and config Directory
pnDefineMachine is now the recommended tool to use for translating PostNuke into other languages. This third party module scans the whole codebase for language defines and provides an easy to use administration form for translators to write new language files. A new version of pnDefineMachine was released recently, and to facilitate its future development a number of internal define changes have been made. These should not, however affect translators themselves.
Another addition which does affect translators and site administrators is a global language file which can be edited by users and is safe from being overwritten on an upgrade. PostNuke now contains a 'config' directory where all PostNuke's configuration details are stored. The files config.php and config-old.php have been moved to this directory, and furthermore the directory can contain both global template overrides (in addition to theme-specific overrides in use in .7x) and also global language defines. While it is not currently possible to override core language defines through this change without generating a PHP Notice, you can store your own language defines for use in, for example, themes. Any changes you make here will then remain intact throughout any upgrades you may carry out.
.8 Milestone Release Date
After the Steering Committee Meeting held this Tuesday, a tentative release period for .8 Milestone 1 has been set. We currently aim to release .8 MS1 in the third or fourth weeks of April, however this may change if the codebase requires further work for the release to be of the required quality. A milestone release is an opportunity for third party module developers to test their modules with the upcoming release. It is not intended for a production environment and user support is not available for this release, however support for developers will be provided through the forums. The milestone will not be feature complete, and may not be stable.
The milestone can be taken as an indication that the codebase is beginning to get to a usable stage from which we can work towards
Generated on March 31, 2006.
-
German PostNuke Foundation Launches New Support Site
(News)
-
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.
Generated on December 7, 2005.