-
OpenID for PostNuke
(News)
-
If you haven't read that yet and is interested in OpenID then please read it here - it will explain the whole OpenID background.
For those of you that haven't heard about OpenID yet, here is the very short explanation: OpenID is a relatively new web-technology for managing your online identity. It's primary purpose is to facilitate Single Sign On across independent websites. This means you can create yourself an OpenID identity and use that for login in to different websites without having to retype your password over and over again.
When I wrote the last article I promissed to deliver an OpenID implementation for PostNuke, and, well, here it is! You can now download OpenID from the NOC OpenID project page.
By installing this module you enable your users to:
Register an OpenID with their PostNuke account and login with this OpenID. The OpenID manager page can be found in the user account panel (Profile).
Create an account on your website using OpenID's registration process.
The OpenID module requires PostNuke version .8 from SVN (april 15th) - and probably also PHP 5.x since a required extension "domxml" is not delivered with PHP 4.x.
So don't hesitate - get your website OpenID enabled today and save yourself (and your customers) the hazzle of managing multiple user accounts.
Intra-web usage
You can use OpenID for Single Sign On between closed "intra-webs". For this
you must have a trusted OpenID Identity Provider (IP) - either your own or an
external one. Then you add a filter on the OpenID admin pages - this filter
should allow access from your trusted IP and deny access from any other
provider. In this way only users from your trusted IP will be allowed to access
your website.
Read more
You can find lots of information about OpenID around the web. The most obvious place to start is of course openid.net. But at openidbook.com you can get a free copy of the 200+ pages OpenID book from Rafeeq Ur Rehman. This should satisfy even the most curious people
Enjoy, Jørn Wildt
Generated on April 16, 2008.
-
Going OpenID
(News)
-
(if you already know OpenID then jump directly to the last section about
OpenID in PostNuke)
OpenID - a Free, Decentralized Online Identity
OpenID is a relatively new web-technology for managing your online identity. It's primary purpose is to facilitate Single Sign On across independent websites. This means you can create yourself an OpenID identity and use that for login in to different websites without having to retype your password over and over again.
Your OpenID consists of a URL, e.g., http://jornwildt.myopenid.com, and the OpenID technology makes it possible for you to prove that you own this URL. So, when you want to log in to a website supporting OpenID, you type this URL and then the website takes care of the rest (almost). EnThinnai Blog compares OpenIDs to credit cards: credit cards are issued by someone, it proves your identity at the issuer, you can have as many cards as you want, and in OpenID's case you can even use them to get access to places.
You can also use your OpenID to sign a weblog comment without the need to register as a user on that website. No one else can do that with your URL so your comments cannot be spoofed by anyone.
Take a look at these demos of how it works in some applications: OpenID for WordPress.
OpenID on blogger.com.
OpenID at
plaxo.com.
On Simon Willison's website you can also see some good examples of what OpenID can be used for.
One very interesting thing is that OpenID has just been adopted by Yahoo! So now each and every one of the 250 million Yahoo! users have their own OpenID identity. Even Google, IBM, Microsoft, and VeriSign have signed up to support the new technology. With that kind of backing OpenID is no more a kids toy.
OpenID is of course not the perfect solution for everything
(see for instance idcorner.org) but I would say it is close to perfect for Single Sign On and signing comments in the web/PostNuke world I live in.
If you want to start using your own OpenID then get one at
myopenid.com - it's free and it's all you need.
OpenID in a PostNuke world
PostNuke should of course also have such a thing as OpenID for Single Sign On, user registration, signing comments and so on. So a new OpenID module for Single Sign On and user registration is on it's way (expected release in March or April). Have fun with it.
An OpenID implementation with PostNuke should also enable you to use your PostNuke installation as an Identity Provider, meaning that your OpenID could be YourName.YourSite.com. Hopefully the OpenID module will support this.
Other uses for OpenID in PostNuke could be to sign comments using the ezComments module or pre-allow access to certain Mediashare photo albums through your friends OpenIDs. Only the sky is the limit and OpenID is free for you to use and invent with.
Regards, Jørn Wildt
Generated on February 29, 2008.
-
RosterMaster(PostNuke) 0.97 and TaskMaster(PostNuke)x .xx
(News)
-
only that, but the same guild or clan can also have different rosters for the different servers of the different games they play.
You will also be able to create rosters from either single user groups, or groups of user groups, as well as rosters of the entire user base (for controlled sites). If all works as I would like it to, you will be able to have a roster of user groups that acts like (using the above gaming environment example) another roster of that particular guild.
As should be obvious by now, roster objects will not be limited to any one 'Guild' as the last RosterMaster was and one can build many different roster objects based on many different roster needs.
The current architecture (NOT final) looks like this (I won't claim this is the best setup, but it works with my current aspirations):
ObjectTable MemberTable User(assoc.)Table
ObjectID(prime) ---------- ObectjID(idx) rmUID(prime)
ObjClass MemberID(prime) --------- MemberID(idx)
Name Name pnUserID
etc... etc. etc.
The ObjClass field of the Object Table is a suffix for the module object class called. In the case of Everquest II I used 'EQ2' as the value and named my classes PNRosterMasterEQII and PNRosterMasterEQIIArray calling them with a combination of DBUtil::selectFieldByID([ObjectClass by ObjID) and Loader::loadClasFromModule() with a derived php string as the 'base_obj_type'.
Along with this is a vars table with API functions that work identical to PostNukes' pMod[Get|Set|Del]Var() but requires an ObjID instead of modname so that different sets of vars can be associated to each roster object.
The logging functionality will also be ObjID oriented, and as such care must be taken when setting up logging as to avoid unnecessarily bloated log tables. Accordingly all loging will be set by default to 'off' except in the case of an upgrade from RosterMaster(PostNuke)0.96.
RosterMasters current status is a working upgrade script along with all the functionality of the 'main' RosterMaster display (although the func is now display (ya I'm learning)) for Everquest II. This includes table header reverse sort as well as advanced sort allowing two fields to be sorted in individual directions. The rest is forms and options. Once the EQII class is fully functional I'll begin to set up the other classes and refine the API.
My vision here is to have RosterMaster act as an extensible roster module suitable to organizing and maintaining roster and roster member profiles in association with, or indifferent to, the user base with consideration of user groups.
TaskMaster has the same goals but with reference to levels of accomplished tasks,
All of this has been made possible via PostNukes' 'adambaum' pre-release... this module will not work with anything prior and WILL BE COMPLETELY UNSOPPORTED until the adambaum release (other than beta testing).
Once the EQII class has been made fully functional I'll commit the project to the current PostNuke NOC project SVN for beta testing.
RosterMaster(PostNuke)0.97 and TaskMaster(PostNuke)x.xx naming policy will be dependent on the official release name of the adambaum
Generated on September 25, 2007.
-
Postnuke Meeting 2007 begins
(News)
-
The URL for the broadcast is
http://breeze.serv.uni-osnabrueck.de/postnuke
There you login in with you forum nickname and change the connection speed from LAN to DSL or whatever connection you have. There's a videos stream, the presentation and a chat. So if you have any questions or remarks - use it.
If you are in Osnabrück per chance, you can visit us in the Seminarstraße 20, room 103.
Generated on September 8, 2007.
-
New tools for postnuke community interaction
(News)
-
german speaking bikers. Because of the need of programming some new functions I decided not to re-program one new powerful module.
I decided to program some compact, little modules that can be linked together and be used in any kind of community. So perhaps the modules can alo be interesting for your postnuke community.
As I wrote already - the idea of all modules is to increase the communication and interaction between the community members.
Graphical member search
Whenever community members want to get new contacts they can write personal Messages to other community members. So I first programmed pnMap, a graphical based user search engine. This is not a free module but all other modules are free and open source.
See how active a user ist (last login)
But very often there are many peoples members of a community but not everybody is very active. Perhaps someone has logged in the last time some months ago? If this is the case you do not really need to write an personal mail to these members - you better write mails to the more active members.
So I released pnLastLogin, that loggs the last login of a user. These information can be integrated in a member search as a sort criteria with pnMap or in the profile page of a community member. So you can see who is really actice.
Do you want to know who has visited your profile page?
Did you ever think about the question who visited your profile page? I think this might be an interesting gimmick for all community members. So I released pnClickedMe. This little program loggs who clicks whoose profile page. You can install a little block afterwards on your page that shows a user who has visited his profile page. So many people get interested and want to see who is that person that clicked me? Perhaps this can create new contacts!
Manage friends in a little addressbook
If you have created new contacts, you might be interested to store a list of "friends" with additional information to the contacts. For this you can use pnUserinfo. This is like a little addressbook.
Give your community the possibillity to publish content in weblogs!
If you want to publish some things about yourself, blogging is the keyword. Weblogs can be a really great tool in a web community. pnWebLog for example is a weblog module for postnuke. You also can integrate the newest postings of a weblog owner in his profile etc.
We need faces not nicknames!
Web communities are full of nicknames. But who is the person behind the nic? Mostly user's can upload an avatar but avatars are mostly used for funny pictures etc. But I think in a community that was build up to create real contacts you should be able to see who is the person behind a nicname.
To reach this goal I release pnUserPictures. Using this module you can define picture templates that can be integrated in a user's profile page for example and you can also allow it that users can manage their own gallery. There is not only a category managment possible, usernames can be assigned to the uploaded pictures. So it is not only possible to see the picture, you know who is on the picture. You now can integrate a link in the user's profile that shows with how many other pictures a user is associated. This increases interaction in the community. For all pictures there are thumbnail galleries available. You can install a block that shows the newest pictures and so on.
Give the users the possibillity to delete themselfs - if they want it
Sometimes a user wants to leave a community. Did you ever notice that there is no possibillity in the postnuke core yet for a member so that a member can delete its account with a click? If a user can delete his account himself, the administrator even has less work with such things. To make this possible, I released pnUserDeletion. But before you use this module test the deletion process on an offline backup installation. Some modules might have problems if a user is not found any more in the database.
Invite guests to get registered!
OK - loosing members is not really great but sometimes you can't avoid it. It's better so see the community growing. To invite people to get registered I programmed pnRegisterNow. This module displays a nice javascript popup (no nerving popup...) after a specified number of pageviews. So if a guest surfs in your forum and he opens the 20th page for example, he'll see a popup with an register link and a login form.
The advanced postnuke profile links most of the modules automatically
Now you have seen various modules that can be usefull in a community. But you now say that linking these modules is hard work? No, not really.
Take a look at pnProfile. This is an advanced profile module for postnuke. All modules listed above that are linkable are automatically
Generated on May 21, 2007.
-
PostNuke .8 + OpenID
(News)
-
There requirements are:
* Distribute under an OSI-approved license.
* Have at least 200,000 public internet users and 5,000 downloads per month.
* Implement OpenID 2.0 support as a Relying Party (RP) or Identity Provider (IdP).
* Pass the OpenID compliance testing tool (to be released in August 2006).
* Make enabling OpenID no more difficult than changing one configuration setting (there can be more optional configuration settings).
* Distribute the implementation as part of the project's core (it cannot be an additional download or patch).
* Place an OpenID logo in the signon form (as on this site).
* Answer "What is OpenID?" (or link to an answer) near the signon form.
I think the 2 requirement is hard to meet for any piece of software. But IMHO PostNuke is popular enough.
As you know Postnuke .8 includes a new login system which is open to all kinds of authentications. It should be a piece of cake to implement the OpenID-system. So if you are interested in doing the job, you should get into contact with the OpenID-people.
Moreover PostNuke could use some pro comments on the OpenID page.
Links:
OpenID Code Bounty
Generated on February 14, 2007.
-
Development Update, November 2006-05
(News)
-
New teamlist member: Ammodump
Ammodump was asked to join the team. As quoted from his introduction in the team: "I enjoy being a community member, and that often my comments hold weight. Sometimes my comments and advice are misguided, but sometimes it is hard to understand others questions ;-) ". With two main hobbies (PN and beer), Ammodump seems to be born for the support team here at the community website.
Remote code injection problem
As some people already know, there is a remote code injection problem with the language parameter as mentioned in the Feedback Forum. Both the .7 and the .8 versions have been updated to fix this security vulnerability, so everybody is urged to upgrade their PostNuke version to the latest release (see also Release Announcement). Some background information: The FormUtil::getPassedValue() function also accepts an input vector GETPOST now. It allows to ensure that the contents of _COOKIE are not taken into account when you get data (as it would be when you go through _REQUEST). The input domain is limited to _GET and _POST and not through _REQUEST / _COOKIE anymore. This is applied firstly to the newlang and thistheme parameters, and has been (and will be) applied to the rest of the core functions additionally.
Session handling
Some features have been added to the session handling in the core system:
Session id regeneration (random and on login/logout), making it even more difficult to hijack a session. This has been achieved without any extra writes to the database, so the feature has no overheads.
The ability to rename the session variable (always was POSTNUKESID), and changing from session file storage to session db storage has been enhanced.
Auth-id check to the user login screen (and block) - this has introduced a login bug which has been entered into the bug tracker and will be fixed by the release of MS3.
The session regeneration options are available in the (upgraded) Settings module.
Also fixed for both the 0.764 release as well as the 0.8 release are some PHP >= 5.2.0 issues due to session handling (See the forums, credits to fredatwork). It seems to solve the problems with PostNuke installations running on 5.2.0 or higher.
Minimum MySQL and PHP versions
The minimum version for MySQL has been raised to 4.1.x, due to some installer problems that are related to old 3.x databases. See also MySQL's lifetime philosophy at Planet MySQL. Due to security reasons, the recommended minimum php-version is at least 4.3.10.
Installer
Now fixed are some install problems with register_globals ON. In addition, there has been added a check for register_globals at the .76x install process for information only. The installation of PostNuke on these environments is nevertheless still possible. Sync with the .8 installer is to be done.
System and core modules
The internal variables statusmsg and errormsg are now arrays: it is now possible to capture (and display) multiple errors. Therefore, pnGetStatusMsg() is renamed to pnGetStatusMsgs() and LogUtil::getStatusMessagesText().
Float handling returns from Ajax has been discussed within the team. It appears that floats in the Non-US locales did not correctly set the decimal delimiters. Therefore, the locale has been set to en_US to ensure this. A solution for writing floats to the DB is still pending.
Robert has added the encryption / decryption methods, using the mcrypt library function, for use in the API.
In the Theme module, the plugins for showing the sitename, slogan and complete title have been altered to use multilanguage support.
The Settings module has some nice dynamic interface elements added to the Security and General function types, increasing useability in this one.
The magic_quotes_gpc recommendation for .8 has been changed. It should be off in stead of on. According to php security group, this feature is inconsistent in blocking attacks, and can in some cases cause data loss with uploaded files. Besides the revert of magic_quotes_gpc recommendation, the SysInfo module now also checks for allow_url_include (new in PHP 5.2) and the suhosin patch/extension.
Finally, all variables retrieved through FormUtil::getPassedValue() are now cached
ValueAddons modules
The Pages module now displays the category that each page belongs to in the overview.
The Error module (or Error handler, where error pages within PostNuke are handled) has been undergoing some changes. System errors, forbidden / not-found errors and specific API errors have their own templates and level of error reporting. A no-auth error will result in a more suitable 403 response rather than a 200-response with a status message. As a result, a lot of code has been altered to correctly use the new Log- and Error message handling.
The Wiki module has been renamed to more suitable 'Wiki_Code', as this module is a transform hook to enable Wiki formatting in content items.
The ExampleObj module has been reviewed, revised and updated by Robert. It should serve as a good example for any module writers
Generated on November 20, 2006.
-
Development Update, September 2006-02
(News)
-
Design Team
In the past we've discussed the option of having an official 'design team' to work on the core templates and themes. The aim for this team is to enhance usability and aesthetics of the core PostNuke distribution, add further template improvements, write a dedicated admin theme and maybe write an official styleguide for module developers. This idea has been brought up again and the search for members for this team has been started.
Changing the Module names
A mechanism has been added to allow module developers to rename their modules while retaining the existing module id. Before, the modules db had to be handled manually and documentation covering how to rename the module had to be written. Or users had to backup data and then remove the old module and add the new one. In short: "Who wants to do this?"
So you can now add your old modulename to an oldnames-array in pnversion.php and the modules module will detect the relationship between the two modulenames, updating the database accordingly.
The rationale for looking at this now is that there exist a few modules that have misleading or confusing names. Also, the development team would like to encourage module developers to drop the pn prefix for modules. An exception for this are the modules that also exist as a stand alones, like pnWikka, pnMantis, PNphpBB2, ...
For renaming of tables, the a module author can raise the version number and write the appropriate "copy code" for his tables.
Icon sets
The aim of the pnicon plugin is to have multiple icon sets in the future without worrying about image filenames like when using the pnimg plugin. The pnicon loads the icon set config.php file, and selects the filename of the image by a 'type' parameter passed to the plugin.
Comment Spam
In the last couple of weeks, many posts have appeared on the community forums about spammers that login and post comments with their credentials obtained from the user registration mail. To prevent this, a check has been added for the useragent during registration at the User and NewUser module, which is an additional protection against spam-accounts by PERL agents like lwp and libwww. Of course, this is not a guarantee that these kind of registrations do not happen ever again, but it should at least help to prevent it.
Also (but still in test phase), optionally a question can be added to the registration process (comparable with the anti-spam option in formicula 1.0). This Q/A combination is freely configurable in the user administration.
For more information, discussion and Proof of Concept, please visit the forum.
System updates
The Profile module has now enhanced client-side (using prototype-driven validate.js) and server-side (to show messages on the same page) input validation.
The Extended Menu Block supports sorting via drag&drop (using scritaculous) and a utility link is also present in the menu to automatically add the current URL to the extended menu block. This is of course restricted to administrators only. It is also planned to make tree menus using this block.
The categorisation within the Admin area has been changed to a more logical sense. There now exist 7 categories:
'System': Admin Panel, Mailer, Modules, Settings
'Layout': Blocks, Themes, pnRender
'Users': Permissions, Groups, Users, Profile
'Content': Admin_Messages, Categories, legal, Search, blank
'3rd-party': Empty categorie for newly installed modules
'Security': SecurityCenter, SysInfo
'Hooks': Censor
ValueAddons updates
The Sections module has been renamed to the (more suitable and logical) Pages module. Intuitively, this module does what one might guess: serve static information on different pages.
The Top-List module is currently hardcoded to working with just the core modules, and planned is to move it to some sort of plugin architecture (using special plugin API files and call specific functions in them). This is in progress.
Miscellanious updates
We now have a html installation guide with a CSS based on http://community.postnuke.com, and an html upgrade guide is separated
Generated on September 4, 2006.
-
.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.
-
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.