-
pnMeeting 2007: Mark West talks about .8/.9
(News)
-
system information module will make it easier for webmasters to collect the needed information in case they seek help in the forums.
The use of Ajax makes the handling of various modules far easier. You can drag and drop permissions or user information fields. And on the user side you can for example rate a content item using the Ratings hook using an Ajax function and not having to reload the whole page after rating it.
The new URL system add permalinks to .8 and make URLs nice and readable as you can already find them in other systems like Wordpress. The permalinks can be defined by the administrator and can be included into other modules. It already works for example with the News module and the Pages module. The Pages module in the Value Addons package is the successor of Mark's htmlpages.
Included into the new Theme module is a Theme generator that creates all the basic files and file entries you need to start working on a new layout.
A real enhancement compared to .7 can be found in the block control - Blocks can be dragged and dropped into place and various block setups can be set not only for modules but for single content items.
There are still 2 or 3 major bugs in the bugtracker that are already partly fixed but which must be fixed before RC2 can be releast. That shouldn't take too much time.
In his outlook on .9 Mark explained that all Postnuke releases after Feburary next year will at least require PHP 5.2 - so ask your hosting providers early enough for updates. The background of this decision is the move towards object orientation in the Postnuke codebase and the fact that PHP 5 is around long enough now to become standard.
The language system is the last big project on the roadmap towards Postnuke 1.0 - other PHP projects will be evaluated to find the best solution. In the same move the internationalisation of content will be improved. Direct translations for content must be possible - News articles with the same ID in different languages are the result. Again getText was discussed as a possible solution and the move to UTF-8.
One of the most complex parts of Postnuke today is the Permission system. It is powerful yet often to complicated. So soultions have to be found to solve standard permissions requirements.
Axel Guckelsberger requested an addition to the hooks system - hooks don't know the permissions a user has for the item they are hooked into. So if you want to download a files that is attached to a forum post the permissions to download would result from the a) the permission of the user to view the thread and b) the permission of the user to download files. Hooks are today blind for this. Mark agreed that this had to be changed for future releases.
While talking about hooks Frank Schummertz requested more hook types. Currently we have display, transform, create, update and delete hooks. A required new type is the init or pageload hook that hooks into the start of the system like the spam prevention system BadBehaviour for example that stops the loading of the page if it detects a spam bot.
Mark Ronchera asked for the use of OpenID in future releases which Mark West answered by explaining the flexibility of the .8
Generated on September 9, 2007.
-
PHP Projects Join Forces To Go PHP 5
(News)
-
The Symfony, Typo3, phpMyAdmin, Drupal, Propel, and Doctrine projects have all announced
that their next release after February 5, 2008 will require PHP version 5.2 as part of a
coordinated effort at GoPHP5.org, and have issued an open invitation to any other PHP
projects and applications, both open source and proprietary, that want to participate in the
effort.
Most PHP-based web applications today run in both PHP version 4 and PHP version 5. PHP
4 was released in 2000, and quickly cemented itself as one of the dominant web development
languages. Version 5 was released in 2004 with dramatic improvements in functionality, but
adoption has been slow due mostly to the "chicken and egg" problem that accompanies many
new platform releases.
"Most of the PHP developers I talk to want to use PHP 5 but can't because so many web
hosts offer PHP 4 by default," said Larry Garfield, a Drupal developer and one of
GoPHP5.org's founders. "The hosts won't upgrade until projects do, but projects won't
upgrade until the hosts do. That has made a lot of projects reluctant to be the first to drop
support for PHP 4, so we've decided that we will all be first."
By pre-announcing plans to require PHP 5.2 in upcoming software versions in 2008, GoPHP5
hopes to provide web hosts with the incentive to upgrade their servers to newer, more stable,
more feature-rich versions of PHP as well as sufficient time to do so. Users that are already
using current versions of participating projects won't be left out in the cold, either. All involved
projects will continue to support current releases on PHP 4 for their normal life cycle, giving
both users and hosts time to plan and implement an upgrade.
"The phpMyAdmin project is very enthusiastic to join the GoPHP5 initiative," added
phpMyAdmin's project lead, Marc Delisle. "We see GoPHP5 as a way both to improve our
product's new versions — not always having to add workarounds to remain PHP4compatible
— and improve the experience of our users — by projecting the correct message about the
PHP system itself and its evolution."
PHP 5 offers developers a wide array of features designed to make developing fast, modern
web applications faster and easier. That includes vastly improved XML handling for Web
services, an integrated SQL database called SQLite, better handling of time zones,
dramatically improved security tools, stronger object-oriented functionality, and more.
Many PHP projects already require PHP 5. Encouraging a larger installed base of PHP 5 will broaden the market for those projects as well. PHP is a widely-used general purpose scripting language that is especially suited for Web development. PHP is one of the leading web development languages in the world, running on a third of the world's web servers. It is the platform of choice for companies from Yahoo to Facebook as well as the most widely available development platform on shared hosting,
which powers millions of web sites world wide.
For more information:
http://gophp5.org/
http://www.phpmyadmin.net/home_page/gophp5.php
http://drupal.org/gophp5
Press Contact:
larry.garfield@gophp5.org
Generated on July 10, 2007.
-
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.
-
Pixels for Sale at PostNuke dot com!
(News)
-
What are pixel ads?
In case you haven't heard about the newest fad in online advertising, a pixel ad allows you to purchase a space for an image, paying 'by-the-pixel', a link, and the alt. text tied to the image - unlike other banner or pay-per-click (PPC) advertising there is only a one time cost associated with a given duration that your pixel ad is visble. PostNuke guarantees visibility of purchased pixels for a duration of 2 years.
Why buy?
Buying pixels at PostNuke.com is a smart business move because it's inexpensive, you get results and you can demonstrate your support for the project. For a minimal one-time investment, a $100 square works out to 14 cents a day, which drives traffic to your site for the next 2 years. A prominent link to the Pixels.PostNuke.com page from the PostNuke.com home page will assure a constant stream of traffic and exposure of the pixels.postnuke.com page. As we grow your link will directly benefit – the more popular we get, the more traffic you'll get -- and you will directly benefit, without having to pay anything extra, from all the additional clicks.
Does it work?
The PostNuke pixel ads page will be promoted and linked directly from the PostNuke.com homepage so supporters can be assured of traffic, and it will be a great resource for anyone looking to work with companies who actively support the PostNuke project.
Visit the site to view or buy pixels today!
http://pixels.postnuke.com
About PostNuke.com & PostNuke Software Foundation (PNSF)
Launched in July 2001, the PostNuke project is an open source content management system distributed freely under the open source general public license (GPL) with hundreds of thousands of sites using the software around the world. In June 2004 the PostNuke Software Foundation was established to provide the legal structure & identity in the form of a non-profit foundation to ensure the project continues to grow and develop beyond the individuals contributing. The founding members of the PNSF organization are Harry Zink (Fizbin Consultants, LLC), Mark West (Lead Developer), German PostNuke Foundation (currently represented by Andreas Krapohl), Drak (HostNuke), and Vanessa Haakenson (Distance-Educator.com).
Generated on November 23, 2005.
-
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.
-
A Time to Grow and Change: PostNuke Software Foundation Formed
(News)
-
German PostNuke Foundation, currently represented by Andreas Krapohl, Drak of HostNuke, and Vanessa Haakenson. (see short bios below)
The functions of the founding members serve a managerial and strategic function, ensuring the project goals and directions remain constant and true to the open source philosophy, quality coding, collaboration, and open standards. It's important to stress you are not required to be member of the foundation (there is currently no membership option) to contribute to the project.
As a result of our combined experiences over the last four years the founding members agree the best way to move the project forward is to have a PN Steering Committee* (see details below) consisting of members of the various teams chosen from well-known, long term active community members and developers.
The job of the steering committee will be to handle the day-to-day running of the project and will be chosen by the founding members. The announcement of the appointments will be made within the next 10 days.
In closing, in the coming days look for an announcement regarding the PN Steering Committee and over the coming weeks look for announcements about a new look/feel for main PN site, a formal site for the foundation (read current bylaws here: http://www.postnuke.com/foundation/) and an updated project road map.
We have set up a forum for further discussions regarding the foundation here.
Viva la PN!
Sincerely,
Board of Directors
PostNuke Software Foundation, Inc
Harry Zink through Fizbin, LLC
Mark West, Lead Developer
German Postnuke Foundation, currently represented by Andreas Krapohl
Drak through HostNuke
Vanessa Haakenson
_________________________________________________________
PNSF Facts & Information
PostNuke Software Foundation
Non-profit registered in the State of Delaware
PostNuke Steering Committee
Advisory body made up of members of the various teams and responsibilities include:
Community management & resourcing
Determine software project priorities
PostNuke software development and direction
Provide policy recommendations
Approval of development plans
Goals/Objectives:
The Corporation is a non-profit organization organized and operated exclusively for charitable and educational purposes. No part of the earnings of the Corporation shall ever inure to the benefit of or be distributed to any member or individual having a personal or private interest in the activities of the Corporation.
Board of Directors
The Board of Directors serve a managerial and strategic function, ensuring PostNuke remains constant and true to the open source philosophy, quality coding, collaboration, and open standards. The following people/organizations serve as initial members of the corporation:
Fizbin, LLC (Harry Zink)
One of the original founders of the project, Harry has been a constant, continued project supporter. He works as a systems administrator for a large entertainment corporation and lives in Los Angeles, California. He has a Ph.D. in psychology and loves to travel to Thailand for the food.
Vanessa Haakenson
Is co-founder of Distance-Educator.com and has been an active participant in PostNuke since July 2001 consulting on usability issues and acting as a PN evangelist to the educational community. In November of 2001 she started the site Designs4Nuke.com to consolidate and share all the information and resources regarding theme design for PostNuke. With a Master's Degree
in Educational Technology she brings a unique perspective to the project having developed web based products focusing on usability, standards, documentation, and community. Over the years she has presented at conferences about PostNuke and has authored articles on effective information design. She recently moved with her son from San Diego, California to Woodland Park, a small mountain town in Colorado.
HostNuke Ltd. (Drak)
Drak has been with the project since July 2001 and was the first to create hosting accounts with PostNuke preinstalled as a way of making it easy for new users to get started. He has 19 years experience in the computer industry and devotes most of his time working for a humanitarian charity. He donates equipment and colocation to the project and is responsive for all server level security and administration.
Mark West, Lead Developer
Works as the computing officer for Systems and Operations for Kingston University and lives
in
South
West
London,
UK.
He
specializes
in
directory
enabled
enterprise
computing,
he's
taught
programming;
techniques,
data
structures
and
algorithms
to
first
year
undergrads
at
Kingston
University
and
adheres
to
a strict
style
of
programming
- heavy
on
layout,
consistency
and
style.
Believing
the
benefits
of
this
strict,
consistent
and
academic
approach
to
coding
is
a stronger,
more
stable
and
bug
free
end
product.
He
has
been
using
PostNuke
from
the.70x.
series
and
is
the
lead
developer.
German
PostNuke
Foundation
(Represented
by Andreas
Krapohl)
Andreas
Krapohl
[aka
larsneo]
is
President
of
the
German
PostNuke
e.V.
foundation
and
is
the
head
of
IT
for
a local
newspaper
in
southern
Germany.
Has
been
with
PostNuke
since
almost
the
beginning
- at
first
with
some
translation
stuff,
then
as
module
author
(phpBB_14)
and
since
early
2002
as
a core
developer.
Main
focus
is
security,
usability
and
accessibility.
He
believes
a solution
should
be
simple
and
elegant.
Current
Jobs in PostNuke
Structure
Development & Quality
Assurance
Communications & News
Moderation
Forum
Moderation & Support
Documentation
Language
Project
Marketing
Generated on August 18, 2005.
-
Moving on: Better PostNuke ShortURLs
(News)
-
and thus doesn't index PostNuke sites well, while making the URLs hard to post to people in email or in forums. For instance, a news link looks like this:
/index.php?name=News&file=article&sid=123&mode=thread&order=0&thold=0
For some time now, PostNuke users have cried out for better Search-Engine Friendly URLs, and for the past few years, the only thing available has been a theme hack first detailed by Karateka (possibly E. Soysal before that, the links in the article are dead) way back in 2002, since worked on by ColdRolledSteel (Craig Saunders), and consequently me.
The advent of the ShortURL hack has seen sites hosted on Apache servers with the URL Rewriting module (mod_rewrite) enabled get URLs like
/Article123.html
for the above link, where certain assumptions have been made about the default settings for mode, thread and threshhold. A big improvement, but not very descriptive, and it comes at the cost of heavy post-processing of the site's content for links. Also, Search Engines use link keyword relevance in their rankings, and Article123 doesn't say much about the link, except that it's an article with the id 123.
As Karateka pointed out at the time in his article, a problem in implementing friendlier URLs with virtual directories is that all paths in PostNuke are relative, ie relative to the site root folder where index.php is located, and fixing it then would have required extensive changes in the core. That is, a URL like /Example/view.html would result in the browser looking for all links relative to its present location, ie in the nonexistant subfolder called Example, and subsequently it would fail to find the linked stylesheets, images etc, and all links from the page would similarly fail.
Unfortunately this situation has not changed in the intervening years, but as PostNuke modules are becoming API-compliant, they reference the same system function to build their URLs, so fixing this function and other associated functions to use root-relative links(1) will fix all compliant module URLs. But that leaves all other links, like images, Javascript, and stylesheets. The move to templating with Xanthia (for themes) and pnRender (for modules) is also making it easier, since Xanthia templates use a Xanthia variable to reference the theme's image directory path. So fixing Xanthia and pnRender will fix most paths in Xanthia themes. The exception are stylesheet and Javascript link paths and any links in the theme header, for which new path variables need to be introduced, so some updating of Xanthia themes is required. This makes the transition period to PN 0.8 an ideal time to introduced these changes, since few Xanthia themes have been released so far, and core modules are only just being converted to pnRender.
I stopped work on ShortURLs some time ago (before pn0.75) on the advice that a core module was being developed; however I have seen no evidence of this to date, and there is no indication in the upcoming PN 0.76 or CVS that there is anything coming. I got curious a month or so ago, and was somewhat dismayed at what I found.
Since then no progress seems to have been made on PostNuke ShortURLs. In fact, the current Xanthia filter hack has regressed, becoming bloated with complex and wholly unnecessary Regular Expression rules, many badly written with duplication and a number of bugs, especially in the accompanying htaccess file, going from the 15 rules proposed by Karateka to a massive 89. So, I set out to try and fix it, but ended up revisiting the idea of a core implementation using virtual directories to more logically structure the URLs in a way that is not only Search-Engine Friendly, but more User-Friendly.
Along the way, I've also been sidetracked and made a direly-needed new themable tab system for the Administration area based on AlistApart.com's Sliding Doors technique and consequently overhauled most of the Admin templates and a few User templates too, partly out of necessity due to the new Adminpanel, partly because they badly needed it. Those of you who have tried the pn0.76 Release Candidates would know that the templated output in them leaves something to be desired, drab and somewhat unprofessional-looking due to all the styling and CSS-classes having been ripped out, leaving a basic grey and white look with overly large headings and no theme tables for backgrounds. Hardly what you would call of Release Candidate quality. So pnRender and its plugins have been fixed to allow the use of Xanthia-like theme-colour tags as well as a tag for root-relative paths needed for ShortURLs, and the opentable functions have been fixed so that proper themed borders can be used. In fact most of the changes are in fixed templates, plugins, and module files.
My proposed implementation still retain the Xanthia filter for backwards compatibility with older themes, modules and blocks, but has been wholly rewritten and pared down to 24 rules, including a rule to fix all links to be root-relative. As PostNuke is in transition to be fully pnAPI-compliant by PostNuke 0.8, the remaining ones can gradually be removed altogether as themes, modules and blocks are updated. There's also a version for AutoTheme.
This particular scheme is experimental and may be tweaked or improved upon. It seeks to reduce the reliance on the Regular Expression(2) post-processing for links and introduce more user-friendly URLs that have more relevance for people and search engines alike by using virtual directories to visually distinguish sections of the site by module and function, such as
/Example/View.html
and for the News articles introduce Category, Topic, and Title information in the link:
/Category/Topic/ArticleXXX-title-of-story.html
For instance for a news story in the category Computers and the topic Postnuke called "PostNuke Shorturls", you'd have the URL
/Computers/Postnuke/Article123-PostNuke-Shorturls.html
This is a clear, concise and informative link that tells the user and search engine alike something about the link before going there, while retaining backwards compatibility with links of the old ShortURL scheme. It more closely emulates the way we think and organise information, using the folder analogy where we have a clearly-labelled Computer category folder, under which we have the various sub-categories - Topics - with various articles. In this case, we're using a virtual file anchored by the word "Article", clearly identifying it as such, followed by the article number and title. There is backwards compatibility, so that older links for Article123.html will still work.
In this instance I've excluded the News keyword altogether for brevity in favour of the Category and Topic keywords which insinuate News anyway, though there is nothing against being consistent with all the other ShortURLs and having the Module appear first, as in
/News/Computers/Postnuke/Article123:-PostNuke-Shorturls.html
This is for the special case of the core News module though, a more generic method is needed overall for URLs with various unknown parameters passed in the query string. This implementation uses the scheme:
/Module/Function-Param1:Value1-Param2:Value2... -ParamN:ValueN.(p)htm(l)
where the Query string parameters are tagged onto the virtual filename grouped by colons and separated by hyphens, the idea being to use commonly-used characters we might normally use in a list to make it look as natural and readable as possible. It may be a less-commonly used character than the hyphen is needed, like the tilde ~ character, since some parameter values may use a hyphen, in particular usernames. This is not a problem if passed as the last parameter, where it may contain any character. So if the module developer kept this in mind, it might not be an issue. I'm not aware of it being one so far. The PostCalender ShortURL plugin deliberately places uname, if present, last.
The extension is not necessary, but used for convenience. The 3 types used are either one of html, htm, or phtml, the latter useful to distinguish when you want to link to real HTML files on the site. The extensions as well as the option to use ShortURLs or not is set in the Settings panel, though I've only offered the option of html and phtml, since frankly the MS DOS-holdover extension htm annoys me.
Older URLs are marked with a + before the Function name, as in
/PNphpBB2/+profile-mode:editprofile.html
so that the server can translate it correctly. If the directory doesn't actually exist, entering
/Example/
will redirect to the Example module main page (Apache only)
/Example/main.phtml
which in return gets rewritten invisibly to
/index.php?module=Example&func=main
Otherwise, if it does exist, the index file of the relevant directory will be opened.
Similarly, with
/HTML/filename.html
if the file exists, it will be opened, else PN will look for
/index.php?module=HTML&func=filename
It is still possible to tag on query strings like
/ModName/main.phtml?theme=seabreeze
or
/ModName/main-theme:seabreeze.phtml
will both be translated to
/index.php?module=ModName&func=main&theme=seabreeze
There are any number of possible ShortURL systems, the simplest being to simply chop the URL into virtual directories, like /News/123/ from the above News example as some do. Xaraya uses a variant of this for news, though it doesn't use mod_rewrite, so appears like
/index.php/news/123
Again, this is concise, but contains few meaningful keywords other than the module name News. You can combine the two methods for News and have
/News/Category/Topic/123/title-of-article
which works very well, but loses some of the elegance of the above philosophy, since the latter part breaks up the virtual file into 3 with no anchor words, which is not how we organise information.
For generic URLs, there are a number of methods; for instance Mambo, another CMS, use generic ShortURLs like
/component/option,com_newsfeeds/catid,5/Itemid,7/
for a News URL like
/index.php?option=com_newsfeeds&catid=5&Itemid=7
where the querystring values are grouped by commas and separated by forward slashes (virtual directories). It is a ShortURL, though in this case not shorter, and doesn't have any useful keywords, other than "newsfeed", and is not very human-readable. For a generic URL, this is somewhat unavoidable, but can be better than that.
This implementation also contain a way to customise ShortURLs on a per-module basis through a file called shorturls.php placed in the module folder (see the Example module), such as the News URLs, or 3rd party modules like PostCalendar, which instead of the full URL like
/index.php?module=PostCalendar&func=view&tplview=&viewtype=day&Date=20050405&pc_username=&pc_category=&pc_topic=&print=
with the above generic ShortURLs would be rendered as
/PostCalendar/view-viewtype:day-Date:20050405.html
but with customised URLs become
/Calendar/05-04-2005/day.html
The beauty is, though, once we've created the groundwork in the core of PostNuke, any implementation will be fairly easy.
1) Root-relative links: Links relative to the server site root (eg /nuke/filename.html), which stays static, as opposed to relative to the present file (eg filename.html).
2) Regular Expression (RegEx): A complex pattern-matching language that can look a bit like a mathematical formula, used in the Xanthia ShortURL filter at /modules/Xanthia/plugins/outputfilter.shorturls.php.
----------------------------------------------------------------
If this were Mambo, I'd charge you 80 Euros for all this (the price for SEF Advance), but because you're all such nice people (except that guy up the back, you know who you are :) ), I'll let you have it for free.
A PDF of the ReadMe included in the package, but with additional screenshots, is found here (570kb).
I've also written a more technical ReadMe on installing ShortURLs, included in the package under the docs folder, and also found here.
here's a test of the tab system using the Aqua theme. It also comes with an XP-styled theme and the default-CSS-based one. I hope you like it, because it took a lot of work to perfect.
OK, screenshots: Well, no point having screenshots of URLs, so here's some of the tab system and modified SeaBreeze and PostNukeBlue themes' Admin templates instead:
1. The main adminpanel in PostNukeBlue with the Aqua-themed tabs, hovering over the Settings panel.
2. Same as above, but with the Theme Override set under Modify Config and with a tabs.css stylesheets in the theme's style folder. The rounded corners are only visible in Mozilla/FireFox.
3. The Luna tab theme in SeaBreeze, hovering over the 3rd Party tab.
4. The Xanthia Admin tabs using Aqua tabs in PostNukeBlue, hovering on Theme Settings.
And finally, the downloads:
I started out fixing PN0.75, so there are 2 downloads: One for PN0.75, and one for PN0.76rc4. I'll update it once the PN0.76 final is released.
Please backup your site before installing these patches, since a lot of system files are replaced. The PostNuke 0.76rc4 ShortURL package is rather large, consisting of some 400 files in a 1Mb zip file. The PN0.75 package has some 170 files and is around 800kb. Most of the changes are drop-in changes that doesn't necessitate updating of modules, but there are some exceptions in the PN0.76 package, in particular the Settings and Polls modules, where you need to first go to the Module list, regenerate, and update. Specific patches for popular 3rd party templated modules like AutoTheme and PNphpBB2 are included, but only a limited number of 3rd party modules have been tested with this package. No changes are made to the database, but it is still a good idea to back that up as well. You have been warned.
PostNuke 0.75 ShortURL package (833kb)
PostNuke 0.76rc4 ShortURL package (1Mb)
Two of the updated core themes:
PostNukeBlue (249kb)
SeaBreeze (120kb)
Feel free to discuss this proposal in the forums.
Enjoy!
Martin Andersen 8/7/200
Generated on July 9, 2005.
-
pnFlashGames Tops 5,000 Users
(News)
-
At pnFlashGames.com, website owners can download the pnFlashGames module and try out new games. As pnFlashgames continues to grow with traditional web users, SourceKit has seen an increase in businesses and educational institutions incorporating Flash technology and Web games onto their websites. PnFlashgames supplies games that are being used as learning tools, vehicles that drive corporate branding goals, and entertaining added-value features meant to drive traffic to websites.
“We were excited to see that pnFlashGames maintained its popularity among webmasters, website owners and the Flash game community and has gained new users from other industries,†said Drew Adams, managing member of SourceKit, LLC. “Now that pnFlashGames has passed the 5,000 member milestone, we are enhancing its capabilities to meet the Flash trends, which are growing to become more widely used in business and educational formats. We are excited to see how our relationship with these communities continues to grow into the future.â€
In January of this year, SourceKit acquired pnFlashGames.com. The site averages over 150,000 unique visitors each month with over 5,000 website owners registered. Once installed inside a portal system, the module enables webmasters to host Flash games and keep scores of each user. This creates new Internet communities, and increases hits to webmasters sites. Flash technology allows developers to create a web application that can communicate with the web server or database without having to reload any web pages. Flash also allows for a rich user experience, with flowing animation and sound without the clunky overhead.
Generated on June 6, 2005.
-
Multisite Analysis and Design
(News)
-
Substitution of database prefix occurs in 863 edits. This occurrence is the actual number of tables in a single install event.
This number can be reduced substantially. My analysis and subsequent regret with this project was the lack of database prototyping before the final template was selected. Tables remain in this database that will never be used. This can be solved by editing the install files to generate a bare bones installation but consider this.
You will be selecting one of two choices regarding further prefix instantiation. If you start coding in the install files and sub-routines you will inevitably want to continue using the install routine to provoke your changes. The other choice I've already mentioned.
Time constraints considered the editor is far superior choice. Consider for some time the actual data entry required in the process. Consider the underlying protocols.
Data will have to be entered in the appropriate Zone file on your DNS server. At this time you have a list of table space names you are going to use. Consider how to cut copy and paste:
www.site1 IN CNAME site.com.
Efficiency and Quality are very important. Maintaining proper data now leads directly to less downtime in the site name order of events. Continue with your file manager now and create the directory structure you desire in the parameters folder. Consider how to best create this quickly.
mkdir .site1.site.com
mkdir .site2.site.com
mkdire
At this point in the design a need arises to process the modules_var table quickly between sites on port 80. You can use your Web_Links module to link to the sites you will be editing in rapid succession by leaving one window open to the links and by clicking proceed to the new site --> admin --> settings and change the appropriate variables for the site.
I elected to use the jump box generation code that AlarConcepts provided for the project. Consider the data replication procedure carefully. Again creating a list of one hundred jump box links is best done with efficiency and quality.
Open you favorite editor once again. Open your httpd.conf file and reiterate your virtual host template. Consider the amount of data entry. You may want to use an include file in your httpd.conf. Efficiency and Quality are paramount in your data entry at this point. Replace and Paste quickly until all your selected domain concatenations are fulfilled.
Also on the sql side you have to consider the amount of data entry, Replace and Paste actions undergone. Personally I use vi transplanttable.sql through a shell and leave WordPad open with the data that undergoes Replacements. I leave it highlighted and quickly approve the all changes and copy text and one click drop into the INSERT buffer and move on changing the next as rapidly as the last.
So in conclusion we have to alter the Zone file, the httpd.conf file and the dump. Once this has occurred do mysql targetdatabase < reiteratedtables.sql and watch a dump of half a million lines slam your mysqld for as long as it wants to take.
Further database analysis will reveal number of tables present. I'm estimating around twenty-five thousand tables at present. Functionally your sites are live after the mysql import. Put the coffee on get busy.
Change the site names and make the sites user aware by providing data to the submit_news admin module and the settings module. These are the only two places I had to visit on a fresh install to change data. Consider changing even three different modules... Work quickly. The bots are coming.
Generated on May 19, 2005.
-
pnAddons.com Under New Management, Soundwebdev.com Opens
(News)
-
recently employed outside the Postnuke "realm" and is no longer able to be involved. Craig has moved all his development to his new project: soundwebdev.com. The transfer and move is amicable and all involved are looking forward to their new projects.
pnAddons will continue to host all of Harry's old projects including zClassifieds and most of the hacks and blocks. Alex will do his best to support the users of these projects. Alex had this to say about the future of pnAddons: "I dont plan to change many things at pnAddons. Actually for some time [I'll change] nothing. In the future the site will continue the same line of postnuke development and probably I will just add new content to it and a postnuke sites portofolio."
Soundwebdev.com will be the new home of future pnBloodhound development and support as well as other projects including pnMyGuide and pnCopilot. Sound Web Development is a Postnuke-centered hosting and development company. Please consider soundwebdev.com for your postnuke-hosting needs!
Thank you to the pnAddons community for your past and ongoing support and loyalty. Please continue to support both pnAddons.com
Generated on April 14, 2005.