Script: wonderPortal 0.5 beta

I've been promising this script to friends for a long, long time, and when I went on vacation, I finally got a chance to sit down and write it.

My friends and I syndicate our content on, but we've never been entirely happy with the results. We're scattered all over the globe - from the UK to Hawaii - and it's difficult to keep up with multiple blogs marked in multiple timezones. Tuesday in England doesn't necessarily equate to Tuesday in Hawaii.

I've been toying with ideas for a while, and it seemed like the right thing to do would be to create a set of PHP scripts that used an XML-RPC ping to trigger a PHP script, which would fetch the information the portal needed and save it into a mySQL database. That's what wonderPortal does.Doing it this way allows for some extra flexibility. Once the data for each site is retrieved, the date of the entry is changed back into a GMT timestamp (meaning, seconds since the Unix epoch). It can be pulled out in several ways, based on user preferences (which are saved in a cookie). Users can decide whether to sort the listings on the portal alphabetically or by date of last post. They can choose for how many hours posts should be flagged as "new." They can also choose their own timezone, and have all entry dates/times displayed in their timezone of choice.

The web server hosting the portal site must have PHP 4.x and mySQL. The 'client' sites have two options - if they're running a CMS that supports XML-RPC pinging, they can set up a wonderPortal ping within their CMS. If they don't, they can custom-create the data file that wonderPortal needs, and ping the server manually through a URL.

Currently, I have data files set up with variables for Quarto, MovableType, and Greymatter (though Greymatter requires hacking to support pings). I would like very much to get data files customized for b2 and PMachine put in with the package, but I'll have to wait for a b2 or PMachine user to pitch in and help.

There are some caveats with this software, which are included in the readme file, which discuss terms of use. Short version: personal use only, I make no guarantees about whether or not this code will even work, use at your own risk, etc. The big one, which I will enforce: the copyright language at the bottom of the main portal page must remain intact. You do not have permission to use the code without the copyright language, nor do you have permission to redistribute the code.

As is usual with scripts that I write, I've traded off a bit of ease of use for flexibility. I realize that. I've written up a pretty detailed readme file, which is included in the .zip file. Support is, as usual, bribeware. Purchases from Amazon wishlist do wonders for my availability and interest in providing tech support for my code.

I've got plans between now (0.5beta) and 1.0. Don't be surprised if things break. Good luck! You can obtain the zip file here: (28k .zip file)

all tags: 


Although I have no immediate use for it, this is a great idea. You are now awarded Whuffie for developing useful technology.