Dot 8 evolving: language files progression and legacy functionality
Thanks to the testing of the community users (yes, YOU!), some legacy functions (residing in /includes/legacy/ have been updated by Simon to solve some bugs. This is another proof that we do need everyone to test the releases and help not only yourself to make this release a success! The following files have also been marked 'deprecated', with an accompanying comment in the DocBlock: admin.php, backend.php, banners.php, error.php, modules.php, print.php and user.php. These files shall be removed in the next (post-dot8) major release.
The overhaul of language files has also applied to the Groups, Theme, Users and Profile modules. These modules now have better multilingual options and (by using the pnML function), making it a lot easier to translate the package and showing better logic in grammar for localisations. Furthermore, lots of open bugs have been solved and the templates have been revised also. For example, the emails sent by the Users module can now be adjusted by just editing a template!
David Nelson has offered to completely review the language files for dot8, and we all have to thank Olaf Fichtner for helping revamp the current language constants. The PostNuke Languages Project is actively following the development!
Important change in the language strings is the use of the _CREATEDBY / _CREATEDON and the _UPDATEDBY / _UPDATEDON constants. For better support in other languages, these are replaced by the following:
'_CREATEDBY', 'Created by %username%'
'_CREATEDON', 'Created on %date%'
'_CREATEDBYON', 'Created by %username% on %date%'
'_UPDATEDBY', 'Last updated by %username%'
'_UPDATEDON', 'Updated on %date%'
'_UPDATEDBYON', 'Last updated by %username% on %date%'
and can now be accessed through the normal pnml plugin in the templates.
System modules: pnForm and PageLock
Jørn has moved the pnForm framework to it's own module location within the system directory. Major reason for this is to properly save some pnForm specific javascript and style files. Usage of the module should be quite the same. In addition, some new context menu plugins have been added. These plugins create a popup menu to be used as a right-click context menu. More information can be found in the added files in the pnForm plugin directory, and at the pnForm Wiki Pages.
Also introduced by Jørn is a new system module. The PageLock module is a module that helps enforcing single user access to a specific page, by blocking access to other users when one has it open.
Example: User A opens article X for editing. This is registered on the server. User B tries to open article X for editing too. But as soon as the article editing window is opened, it is overlayed with a transparent dark film and a box in the middle tells the user "Sorry this page has been locked by user A - please wait or come back later".
Functionality: The lock is maintained by an Ajax plugin that keeps pinging the server as long as user A keeps the editing page open. When user A closes the window then the pinging stops and the lock times out. If user B chooses to wait then his page keeps pinging the server for the release of the lock (also Ajax) - and when that happens he gains access to the page. The module can be used on all pages that edites a single item - articles, user data, news items, book pages, permissions settings - you name it.
To use this system, a module author has to use API calls in their own code for adding or releasing a block: pnModAPIFunc('PageLock', 'user', 'pageLock', ...) and pnModAPIFunc('PageLock', 'user', 'releaseLock', ...). To see al this in action, grab the latest nightly snapshot and play around with the HowtoPnForm module: edit a recipe in one browser, and try to edit the same in another browser.
ValueAddons modules: Members_List and EZComments
The Members_List module has been revised by Mark West, with some added configuration options. It is now possible to set the number of (allowed) registered users, and some new blocks (featured user last seen and last x users) have been added. Check out the latest nightly build to see the functionality and options.
Mark has now finished the integration of categories into the user side of the Reviews, Pages, FAQ and News modules. This way, migration of .7x categories into the new Categories module is now supported and can be tested by our users who want to upgrade their .7 site to .8.
Finally, there have been added configuration options for categorization and category titles in the permalinks with these modules.
One hot issue at the moment is the increasing amount of spam that is on lots of websites at this moment. More and more features are to be found on the internet to prevent spam showing on your site. Akismet / Bad Behaviour are one of these. As some already know, Akismet has been applied in EZCommnents for a while. For testing purposes, Mark has implemented a bad behaviour (http://www.bad-behavior.ioerror.us/) function also for testing purposes (as Steffen has found that this could also be a good application). It does need some code hacking to pnApi.php at this moment, so only advanmced users willing to help integreating this feature are invited to test this and report any iussues to the EZComments tracker at the EZComments NOC project page.
Core and API: ThemeUtil and Categories
The pnTheme system has now been converted to the ThemeUtil class. With this conversion, all occurences in the core were updated too. Both the old and the new file are loaded in pnInit for backwards compatibility, but the old file (onTheme) and its functions are now marked as 'deprecated' and will be removed in the next major release.
Also added to the new ThemeUtil is a getModuleStylesheet method which contains the logic from the modulestylesheet plugin. You can do PageUtil::addVar('stylesheet', ThemeUtil::getModuleStylesheet('modulename')) to include the value of pnModGetVar('modulename', 'modulestylesheet') or style.css (in this order) or PageUtil::addVar('stylesheet', ThemeUtil::getModuleStylesheet('modulename', 'special.css)) to include the special.css file in your rendered page.
While unnecessary for correct functioning of the website, one is now allowed to turn off session regeneration completely. This is added because it may be helpful with a couple of undecided bugs in the tracker at the moment.
Module Development: information for 3rd party Devs!
Axel introduced a very nice application called EasyDist. This allows you to create your own PostNuke package easily. You can find it at modulestudio.de. It is still in a very early stage, but you should get the idea. This is all still in development fase and is just for testing purposes at this moment.
A preliminary for the (automatic) creation of packages using EasyDist is that module authors package their modules in a standard way. Right now, there are different file structures in the ZIPs or TGZs the authors distribute. We came to the conclusion that the preferred file structure inside the archive should be - modules - MyModule - pnuser.php etc so that an unpacked archive could be copied inside the pnroot. More information is in t
I always a very simple theme for the backend. I don't need any blocks there at all. And I don't 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.
March 5: Mentoring organizations can begin submitting applications to Google
March 12: Mentoring organization application deadline
March 13: Google program administrators review organization applications
March 14: List of accepted mentoring organizations published on code.google.com; student application period opens
March 23: Student application deadline
Interim Period: Mentoring organizations review and rank student
proposals; where necessary, mentoring organizations may request further
proposal detail from the student applicant
April 2: List of accepted student applications published on code.google.com
Interim Period: Students learn more about/integrate with their project communities
May 28: Students begin coding for their Google Summer of Code projects;
Google begins issuing initial student payments
Interim Period: Mentors give students a helping hand and guidance on
their projects
July 9: Students upload code to the Google Summer of Code project
repository; mentors begin mid-term evaluations
July 16: Mid-term evaluation deadline; Google begins issuing mid-term
student payments
August 20: Students upload code to the Google Summer of Code project
repository; mentors begin final evaluations; students begin final program
evaluations
August 31: Final evaluation deadline; Google begins issuing student and
mentoring organization payments
This schedule is subject to change and taken directly from Google. For the latest schedule please see Google SOC 2007 Wiki
PN Project Goals
The general goals of Google are recognized and extended with our own goals. In short, we want to improve the innovation within the project by offering students the opportunity to propose PostNuke related topics. We aim to offer students an inspiring environment to do research, access to field experts, the ability to create proof-of-concepts and the opportunity to create working functional tools that can be used with PostNuke.
There is a limited list of program goals defined below. Please keep in mind this is an initial list of subjects we would like to shoot for and the final projects are open for discussion. It's important to understand we need guidelines for project proposal evaluation otherwise we'll end up with all nice initiatives, but no choice between the individual project.
The following are a few examples of the types of projects we'd like to see during the SOC 2007.
Here are a few suggested project examples:
Version management of content. Add features to PN, either via hooks or extensions to DBUtil, to allow control of versions of content items. Additionally add workflow processes via the existing workflow module
Translation management. Currently a translation of a content item is an entirely different and un-related item. A project to introduce a method of translating content while keeping the the relationship to the original item (and hence related content e.g. comments, ratings etc.).
Loudblog rewrite based on PostNuke's API
A second project could be the implementation of a better language system + the import of the old system.
OpenID Implementation
Universally implemented content versioning such that it's possible to revert back to old versions of specific content items. DBUtil contains a feature called object-logging which basically gives you the ability to log all changes to objects as they are altered (and even revert back to old versions of an obejct), but a proper GUI with some nice administrative features would be nice.
Integration of the categories system with the nested-set algorithm. The current implementation is path-based which works and carries with it some proper semantic information, but for performance reasons integrating the nested-set algorithm would probably be a good idea.
Implementation of additional features to the category system on the GUI side. This could be advanced AJAX controls, a better user-side editing system, etc.
Integration with Lucene and other search engines ideally through a generic search-engine interface which can then be extended to other backend systems.
A proper universal web services interface for PN.
A proper test suite including a performance testing framework.
A proper data import/export system with the ability to generate multiple data formats (CSV, XML, etc.) including a proper control GUI.
Project Organization
There will be two program guides (admins) that will provide all mentors and students with help and guidance throughout the project. The structure will be flat so there won't be a lot of red tape in the process. The mentors are expected to work closely with each student to accomplish each project's goal and objectives.
For each accepted project into the SOC program there will at least one mentor and one student. Along with the one-to-one support the student will have access to the developers list so they have access to the entire team to bounce ideas off of in the process.
Overview of Mentor Selection Process
The general "criteria" for mentors are:
Mentor is familiar with the PostNuke project and API.
Mentor is expected to work well with others.
Mentor should have knowledge about the topic he/she is going to mentor.
The mentor is responsible for working directly with the student.
Note, before volunteering you should be aware there is a time commitment. We estimate it will take at the minimum 3 to 5 hours per week of your time over a 3 month period. Mentors should also expect to encounter cultural and time zone differences making this a challenging experience on many different levels especially since this will be a virtual mentor/student experience.
Expectations
Commitment to the goals/objectives of your project, your time, mutual respect, and open communication.
Remember when you were a student -- you were there to learn. This is the same thing -- students are here to learn and may not be experienced in working on a team, and will less likely have experience working with someone virtually so as a mentor you're expected to introduce the student to the protocals of this environment.
Students, remember, no question is stupid, don't expect to know everything, and if in doubt ask! Communication is key in a virtual environment and never take anything for granted especially in text based communication since things can often be mis-read or interpreted.
If you are chosen a mentor then what do you get? You get to contribute to a great project, experience working on a virtual team with an international team of great/inspiring people.
Team/Mentor/Student Communications
This is most likely the most important part of the process -- communication is key especially in a virtual environment. And communicating/sharing will be important to the success of each project. So students are expected to put together a weekly report -- it doesn't have to be anything fancy -- just an email updating your mentor about your progress and any problems you working on or having. Mentors are expected to take the lead in solving any problems that might arise with timing, language or cultural barriers. Note, the default language for the program is English so all mentors and students are expected to be able to communicate clearly and effectively in English. When disagreements or conflicts arise within a project team members are encouraged to resolve disputes amongst themselves. If they can't resolve it between themselves then you can ask a program mgr to get involved to mediate the dispute.
Project Tools & Support
You will have access to the following software tools:
The PostNuke NOC (Network Operating Center) where all project related
resources will be housed
Google Project Page (including wiki)
Mentor Application from Google
Developers Mailing List
Student Info
Google provides some time to allow the student to familiarize themselves with the project and tasks. During this time the mentor can prepare the stucture and any documents that will help the student in the goals and objectives of the project.
Some examples include:
Action/Tasks planning so the student will have a clear idea of milstones
for the project.
Provide the student with your communication expectations - i.e., how can
the student communicate with you, skype, instant messenger, email etc.
Review time committments and goals/objectives for the project.
Model good behavior -- take the lead when you see the student needs the
extra encouragement and guidance.
Throttle-Status shows a critical analysis of Postnuke Multisite Scalability. Canada Ads Horses is out of the gate and pushing to catch up to the third genertion sequence demonstrated by Toronto. Reiteration improvements outlined briefly at this advancement describe the actual start date of the fourth generation sequence.
Lethbridge improved considerably as a direct database dump transfer over the previous second generation original creation Edmonton Work Wanted in the transfer to the Linux Guru domain. The main fault and subsequent end of life for municipality based linux advocacy and teaching sites arose from being replicated too much like the original.
First generation analysis of Swingerz was and still is the origin of thought for further analysis of multisite design. Each surviving platform gives clues as to what can be expected from the next generation. With a Black Diamond arriving in the heart of cowboy country this forth generation prototype takes its first cautious steps towards easy country living.
She's running the latest Regina post apocolyptic armagedon core. It consists of a highly customizable and extendable admin modular interface. The armagedon core prototype is slated to start undergoing basic sql preparations for advanced graphical user interface considerations almost immediatly.
Even in it's earliest infancy the post apocolyptic armagedon core proved invaluable in singular module replication affecting over three hundred websites with a one percent non-catastrophic failure rate. The armagedon core was in essence responsible for bringing the ads22Transfer.sql file to life after dump and proves that other data reiteration ideologies for Multisites are only hypothetical. Par for the reusable and simplistic module NS-MySQL_Tools
The practicality of of generating a large index of Multisites in one intall routine remains well tried according to this article. The data processed by the failure of the second generation reiteration concatenated with sequential envolution1-20 dot linuxguru.ca predisposed any notions of any glitzy bells and whistle transfers in the future. Neither is hand instantiation an option as evidenced in the heretofore previously mentioned article. It was the beginning of an unanswered and even unthought of question though.
It had something to do with creating an acceptable amount of content and community at an acceptable rate within standards applied by society. I find that having tried the blogging regression theories presented at this Drupal thread that I am still undergoing analysis of this project. The scope of my blogging content dissemination and aggregation theories reached a pitch with this announcement and slowly died an aggregating and aggravating RSS plague of duplicate destruction cumulating with the recinding of backend.php files from all root web directories.
With the creation of another advanced portal, very much like this one in many respects I continue to explore the bounds of Multisite
following line of code to your "header.php" file, located in your site's root directory. Be sure to add it before any CSS tags...
echo "backend.php\" type=\"application/rss+xml\" title=\"YOUR Site Name\">\n";
That's it! Now your site's feed will work with Firefox's automatic bookmark feature. Visitors of your site who use Firefox will be glad you did this! And as a reminder, do not add this line of code after any CSS tags. I made that mistake at first and it didn't work. Once I realized it needed to be before them, it worked.
to also use the same namingconvemtion as other stuff from this site, you will gain a wider syndication solution for your users.
First of all you get all the benefits from the backend2.php which is already out and used by a lot of people. See more information here
Second you will gain support for multiple feedtypes, just by adding something to the url.
By default you will recieve a RSS 2.0 feed. But if you specify an other of the supportet feedtypes you will be able to get validating RSS 0.91 feeds and validating Atom feeds.
However the Atom specification is only at version 0.3 so that may change in the future, but I will try to keep up with the development as it goes.
At the same time I would like to request some help from the community. I am looking for a coder who woul dlike to help me make a new version of the xRss module for Postnuke.
It seems there are a growing interrest for this, and I would like to add more functionality. My trouble is that I am not familiar with how to recieve information from other modules. Like getting lists of topics, languages, categories etc. to choose from while selcting your sources for the feed url or script.
Demonstration:
Atom
Atom validator
RSS 2
RSS 2 validator
RSS 0.91
RSS 0.91 validator
Functionality demo:
RSS 2 topic 1 and 18 only in danish and english languages
To support multilingual sites the language of the story is included in the link.
I will also be interested in headring from anyone who have special requirements for the feeds, like if you woul dlike to expand the use of elements in a feed.
Example: Under each Item a number of extra elements can be added like a link and description to the Category or topic. Postnuke
e said. “So I started planning my site by analyzing how sites keep me coming back. Good content is the primary draw, but what else?â€
Analyzing Website Assets and Annoyances
After a few days of surfing her favorite haunts and examining sites she’d let fall by the wayside, Christie came up with a laundry list of characteristics that she liked: short, easy to remember and descriptive site name; clear focus and organization; easy navigation; free and meaty content; plus links to additional resources.
She also identified a number of annoyances that sent her running to another site: multiple broken links, signup required to access content, popup ads, outdated content, poor navigation and/or search capability. And her number one complaint—locking you onto the site by disabling the browser back button!
Website Do’s and Don’ts
Then she went one step further and read numerous articles on what other people look for. “These articles strongly influenced not only what features were incorporated, but where they are placed,†Christie said. “For example, privacy and the ability to contact a real person are top priorities for many site visitors. So I placed both in the top navigation bar for easy access.â€
She also discovered that the best sites are designed to involve visitors—to invite them to contribute content, give feedback, voice their opinions, and exchange information with and help each other. “To improve the ‘stickiness’ of the site, we expanded our plan to include a forum, polls, contributing content, free classifieds and a job bank. I also redesigned my e-newsletter tone to make it more personal, as well as to make subscribers come to the site to read the full story or fill out an opinion poll.â€
Custom Development Gone Wrong
After talking to several Web developers, Christie chose a developer offering a custom designed PHP solution using SQL databases to store thousands of stories and favorite links. However, two months into the project, it became evident that the developer didn’t have adequate programming staff to launch the site within the promised three-month schedule. Unfortunately, Christie felt she had few alternatives. “I’d already spent hundreds of hours working on the site design and adding thousands of favorite links and articles to the database—work that would be lost if I changed vendors.â€
Three months later and one week before launch, the site went down. The next day it was still offline, even the backend admin area. Then the dreaded call came: hackers had broken into the server hosting facility. “What about the backup? I asked.â€
“The last backup file was corrupted,†was the answer. A two-month old zip file didn’t match the current software version, making site restoration almost impossible—but they said they would try. “At this point, I lost all confidence in the developer—not to mention over five-thousand records I’d uploaded,†Christie said.
Searching for a New Solution
Christie wasn’t sure what to do. “I couldn’t afford the time or money to start coding the site from scratch. I knew I would be shopping for champagne on a beer pocketbook of $5,000,†Christie said. “But I didn’t want to compromise unless I had to.â€
Christie began searching online for a new developer. Soon, one of the people she contacted emailed her a slew of probing questions.
What kind of site do you need developed?
How did you choose PHP?
Is an admin interface required?
Do you need to manage banner ads?
What are your support requirements after implementation?â€
“I felt like I was taking a test,†Christie said. “But the quality of his inquiries gave me confidence this person wanted to clearly understand the scope of the project, as well as my level of expertise to manage the site.â€
Soon Christie scheduled a meeting with Scott Kroeger, owner of Hudson Avenue Technologies in Omaha NE, to discuss the challenges of launching such a complex site on a limited budget. After Christie reviewed her well-documented site map and specifications with Kroeger, he recommended a proven and supported open source content management system (CMS): PostNuke.
“Many developers start coding right away,†Kroeger said. “Since my background is in integration, I get more excited about finding open source software, figuring out how the code works and then using my technical skills and coding to make the modules work together. This way I don’t have to spend a lot of time programming from scratch and debugging code.â€
Integrating/Customizing Open Source Solutions
The two biggest challenges Kroeger faced with the PostNuke implementation were finding a site search solution and providing unique page layout capabilities for each major category or page.
“Linda wanted the flexibility of using html blocks to handle the bulk of the content,†Kroeger said. “However, PostNuke only searches major modules, not html pages. To resolve this issue, I integrated a PostNuke module called Content Express. This module provides the site with a very friendly admin interface for adding html pages and controlling the site navigation, as well as a search engine for html pages.â€
Unique block/page configuration for additional pages isn’t supported by a single PostNuke install. By examining other PostNuke site installations and reading forum discussions, Kroeger quickly figured out that multiple PostNuke installs would work around the page layout problem and provide complete control over the subsite blocks.
“A PostNuke subsite is an additional installation of PostNuke within the ‘main’ PostNuke installation,†Kroeger said. “For example, if the main PostNuke installation is installed under ‘/htdocs/postnuke’, a subsite would be installed under ‘/htdocs/postnuke/subsite1’. So my challenge was to figure out how to make all 28 installs talk to each other by modifying what database tables each subsite looked at. I configured the subsites to maintain their own block layouts—thus each major topic category or subsite/page can be laid out uniquely. Also, Content Express wasn’t built for multi-site configuration, so I had to figure out what it was doing to know how to integrate it for the multi-site solution.â€
To complete the site, Kroeger integrated free PostNuke modules to provide an ezine, forum, job bank, and banner/ad management. “Within two weeks, I was laying out pages and uploading data.†Christie said. “And by the end of two months the DoctorVAR.com site I’d dreamed about was up—within my $5,000 budget and without sacrificing one feature or requirement. The only software I had to purchase was a classified ads module and shopping cart for $59, plus a $30 theme. The rest of the software was free.â€
Kroeger added, “Because Linda had educated herself on Website design and defined the site specifications so well, I knew clearly from the start what was expected. This made my job much easier, which combined with my open source integration strategy, saved her a lot of time and money.â€
The flexibility, performance, and ease of administration of the DoctorVAR.com implementation is a testament to how robust and cost effective open source content management systems are for supporting robust e-commerce Websites.
For additional information about DoctorVAR.com visit their Web site at http://www.doctorvar.com.
Website to help computer value added resellers (VARs) improve their technical know-how, consulting, marketing and management skills.
“An Internet portal, DoctorVAR.com (http://www.doctorvar.com) would aggregate up-to-date information technology news and some of the best articles and resources for VARs,†said Linda Christie, company president. “After talking to several Web developers, we chose a custom designed php solution with SQL databases to store thousands of stories and favorite links.â€
However, two months into the project, it became evident that the developer didn’t have adequate programming staff to launch the site within the promised three-month schedule. Unfortunately, Christie felt she had few alternatives. “I’d already spent hundreds of hours working on the site design and adding thousands of favorite links and articles to the database—work that could be lost if I changed vendors.â€
After returning from a two month assignment in Europe, during which no progress was made, Christie spent a couple of days with the programmer to iron out the final details. “At last we were making progress. I updated some of the content and began writing press releases for the big day.â€
One night the site went offline. The next day it was still down, even the backend admin area. Then the dreaded call came: hackers had broken into the server hosting facility. “What about the backup? I asked.â€
“The last backup file was corrupted,†was the answer. A two-month old zip file didn’t match the current software version, making site restoration almost impossible—but they said they would try. “They’d lost dozens of other sites and had no backups for them either,†Christie said. “So at this point, I lost all confidence in the developer—not to mention over ten-thousand records I’d uploaded.â€
Christie wasn’t sure what to do. “Our e-commerce project—a major commitment in time and resources--was already four months past due. And I couldn’t afford the time or money to start coding the site from scratch.â€
Christie began searching online for a new developer. Soon, one of the people she contacted emailed her a slew of probing questions. “I felt like I was taking a test,†Christie said. “But the quality of his inquiries gave me confidence this person wanted to clearly understand the scope of the project, as well as my level of expertise to manage the site.â€
Soon Christie scheduled a meeting with Scott Kroeger, owner of Hudson Avenue Technologies in Omaha NE, to discuss the challenges of launching such a complex site on a limited budget. Scott recommended utilizing a proven and supported open source content manager: PostNuke. “Not only is this software free, but the friendly user interface would allow me to perform all of the daily administration, even make page layout changes,†Christie said. “Scott said his goal was to make me as independent of him as possible by the end of the project.â€
One of the primary reasons Christie contracted with Kroeger was that he wanted to work himself out of a job instead of creating a customized program that would require his ongoing support. “I’d been burned once already,†Christie said. “So I was excited about integrating supported public domain software that could be maintained by a multitude of providers, should Scott and I part for whatever reason. Plus there would be no software debugging needed.â€
After resolving some technical difficulties with the PostNuke implementation, Kroeger proceeded to deliver the site on schedule and within the company’s limited budget. “Within two weeks, I was able to start laying out pages and uploading data. And by the end of two months the site was up. Scott integrated free PostNuke modules to provide an ezine, forum, job bank, and banner/ad management, as well as an html-oriented content manager, Content Express, that simplifies adding html pages, uploading content, and searching the entire site.
These two companies have shown that partnering with a developer that understands your business needs and integrates off-the-shelf solutions can help you quickly ramp up the right solution for the right price—without having to invest in custom software development and personnel.
For additional information about DoctorVAR.com visit their Web site at http://www.doctorvar.com.
Linda Freeman is a freelance writer based in Omaha NE.
Copyright 2003, Write Solutions, Inc., Tulsa OK. Reprinted by permission.
Introduction
PN has grown both in core logic and in modules/blocks available, the lines
between the core logic and the modules and/or extensions have blurred at times,
forcing 3rd party developers to impose upon the core, creating incompatibilities,
delaying upgrades, and slowing response times from the system (pnCore).
So we'll get to the point in the
beginning, what can you look forward to in the next release of PN? A modularized
core, plug and play architecture, short URL's, admin redesign, a templating
engine (get
more info here), better security, caching, and a visual editor. Some
may be asking, "How is this going to be accomplished?" and "Who is going
to do it?" Read on and you'll discover who has volunteered their time, how
it is organized and how you can contribute.
Modularizing the core is key to separating
core logic and presentation layers. And the work on modularizing pnAPI, and
key core components is well under way and means you will see this change
in the next release 0.8 (code named: adam_baum). As a result of this modularization
future PN releases will include the following packages, (i.e. Core, Modules,
Languages, Docs, & Themes) and are reflected in the current CVS as main
categories which in turn hold the components belonging to it, (i.e. Modules:
Content, Legacy, Miscellaneous, ResourcePack and Utility).
Some of you may be asking yourself, "How
do these changes help me as a module dev, webmaster, or user?" First for
module devs, the categorization of data provides you with the ability to
group your module in a logical way within the current module structure already
available in PN. It will also provide a webmaster with the ability to better
use and manage their site, targeting their site to specific use or tastes.
For example, you can create and tailor your installations based on your personal
tastes, needs, or target audiences, i.e., site focusing on community, content,
e-commerce, or education. For users this won't make much difference to you
other than the site you are using will provide you with a richer user experience.
Also, webmaster/admin's can look
forward to new and enhanced core functionality. PN will now be able to categorize
modules, blocks, and content. Furthermore it will be able to resolve module
dependencies; for example, if you want to install the "News" module it would
require the installation of dependent modules that provide additional functionality.
The new installer will detect those dependencies and guide you in the set-up
process of customizing and installing PN. For example, a request for the "News" module,
requires the following additional modules: Submit_News, Topics and NS-AddStory,
so the installer will prompt the user to install these dependent modules
at the time of installation. Once all the demands are met the Wizard will
continue with the installation.
Of course in order to accomplish
the above successfully, another technology is needed that we will call the "Custom-Wizard".
The "Custom-Wizard" is a low level tool with the ability to handle the dreaded
Unix permissions, create, delete, set permissions and ownership among many
other things and will even work under "SAFE MODE" installations. So where
ever PHP runs the "Custom-Wizard" will work regardless of the ownership and
host system restrictions. This extended functionality will cut down almost
98% of the installation/customization issues present today in support requests.
The new and improved core will also
cater a solution for 3rd party developers who wish to hook directly into
the pnCore, to extend it in a safe and efficient way. This new plug & play
architecture will also be made available allowing module devs to tap into
the resources without the need of modifying core files. These changes alone
will provide certainty and unparalleled power and flexibility to all devs.
Also, new CMS importers will be available in order to convert from other
systems (i.e., PHPNuke, Xoops, Envolution) with as much accuracy as possible.
Also, another valuable tool, the
pnAntiCracker will become a module that will allow greater flexibility. By
doing this webmasters will be able to finer control its operation and general
properties.
The visual editor will also become
a module with cross browser/platform capabilities in the latest generation
browsers. Along with this last point PN will be able to automatically detect
browser type versions and current rendering capabilities aiding in the creation
of themes and templates, which will be possible to enable in a per module
setting.
Last but not least, this brings us
to templates. Yes, finally the 0.8 version of PN on top of the previous points
will bring you the Phoenix template-rendering engine. The work in the global
implementation of the Phoenix rendering engine will engage in parallel tasks
associated with it, as the complete compliance of all system and core modules
with the pnAPI. With the templating system short URL's are implemented and
all modules will be fully template based. The administration module will
have a new and improved design and new database back ends (i.e. postgreSQL)
with enhanced caching technologies for queries and content will be added
as well, a new logging mechanism will track trends and use of your site in
a friendly and powerful new ways.
This will be a next generation CMS
that includes a slim core, is extensible, modular and smart. And will support
several backend database servers taking full advantage of ADODB and will
finally provide a complete separation of core logic and presentation layers,
becoming an N-Tier application. (For those non-developers an N-Tier application
architecture is a model for developers to create a flexible and reusable
application. By breaking the application into tiers, developers only have
to modify or add to specific layers to change or scale up a tool.) http://www.webopedia.com/quick_ref/app.arch.asp
The benefits will be astounding. Developers can
focus on code; designers can work on layout and presentation; and writers
can focus on content.
This provides a solid foundation
to extend the users management area, abstraction of reusable code and much,
much more.
You may ask who will do this and
how?
It is with great pleasure that I introduce you to, the newly elected Task
Force Team Leaders and Members along with its responsibilities and Tasks definitions.
PostNuke Development
Task Force Teams
In order to streamline our efforts
and efficiently organize the work we are dividing the development into different
teams. Each team in addition to the responsibilities listed below will also
be responsible for keeping their specific tasks up to date in the NOC and
maintain any team related
PostNuke_Security
The security task team will primarily
be responsible for overall security of the PN core as well as responding
to the security mailing list. They will be the front line for all security
concern with PostNuke. They will also be responsible for the permissions
system found in PostNuke.
Team Leader: Tanis
Team Members: larsneo, markwest
PostNuke_Research
The research task team will primarily
be responsible exploring and testing new and fresh ideas and technologies
that could possibly be used in PostNuke. As new technologies are identified
they will be slated for inclusion in a future PostNuke release. Analyzing
the current needs of admins and conducting suability research to improve
the current state of PN
Team Leader: bharvey42
Team Members: Tanis, elgranazul, vworld, class007, spliffster, Neo, pnCorps
PostNuke_Modules
The module task team will primarily
be responsible for the non-core (with the exception of 3rd party modules)
modules and blocks found in a PostNuke release.
Team Leader: magicx
Team Members: skooter, nunizgb, class007, markwest, spliffster
PostNuke_Themes
The themes task team will primarily
be responsible for the core themes as well as the Phoenix rendering engine.
Team Leader: Neo
Team Members: magicx, vworld, bharvey42
PostNuke_Core
The core task team will primarily
be responsible for the PostNuke API, the Install/Upgrade scripts and other
core logic of the PostNuke.
Team Leader: larsneo
Team Members: Neo, magicx, nunizgb, skooter, lcabrera, spliffster, cybersliver
PostNuke_Languages
The language task team will primarily
be responsible for all things related to language within the structure of
PostNuke.
Team Leader: nunizgb
Team Members: elgranazul, class007
PostNuke_Database
The database task team will primarily
be responsible for the main database access found within PostNuke. Currently
that will be with the pnADODB logic, as well as moving the code forward to
be used with any database engine.
Team Leader: lcabrera
Team Members: skooter, Tanis, xaplo, cybersliver
PostNuke_Releases
The releases task team will primarily
be responsible for the versioning, packaging, and posting new releases to
the appropriate locations. They will be the packaging experts and will provide
many various packages, including but not limited to *.tar, *.zip, *.deb and
possibly others like *.rpm.
Team Leader: magicx
Team Members: larsneo, nunizgb, class007, bharvey42
PostNuke_Docs
The docs task team will primarily
be responsible for documentation found within the released PostNuke package.
That could be their own developed documentation or documentation from 3rd
parties.
Team Leader: infopro
Team Members: jim
hadfield, pnCorps, class007
All Task Force Team leaders where
elected among their peers in an open vote in the IRC meeting. After these
elections a final vote was taken for the following: Lead Developer and Communications
Officer.
The elected individuals where:
Lead Developer: Neo
Communications Officer: vworld
Last but not least, project manager
is HZink
Conclusion
This summarizes the results of the meeting, presents us with the goals and
objectives for this 1st quarter and allows us to see clearly into the future.
All of these new developments and implementations will, be performed in
such a way that existing modules, themes and blocks will work flawlessly
while new generations of them will be able to do as much and more. These
new developments will also allow you to leverage your current and future
faith in PostNuke to be safeguarded and extended exponentially.
We invite you all to help us, because
together go even farther than we could if we worked alone. And we'd like
to thank everyone involved in the community for your support you are the
reason this project is unique and different from every other CMS out there!
This is the road, this is the
vision, and future of PostNuke.
The PostNuke development team
Related
Links:
IRC meeting log
http://noc.postnuke.com/docman/?group_id=5
(Look under IRC Meeting logs document
category)